Allow PC to accept item that will stack, even if slots full

This commit is contained in:
2025-03-19 17:50:24 -05:00
parent cb73d5d7f6
commit 599f1030f2
7 changed files with 62 additions and 38 deletions

View File

@@ -373,7 +373,7 @@ void handle_sale(int i) {
univ.current_pc().status[eStatus::PARALYZED] = 0;
break;
case eShopItemType::REMOVE_CURSE:
for(int i = 0; i < univ.current_pc().items.size(); i++)
for(int i = 0; i < cPlayer::INVENTORY_SIZE; i++)
if((univ.current_pc().equip[i]) &&
(univ.current_pc().items[i].cursed))
univ.current_pc().items[i].cursed = univ.current_pc().items[i].unsellable = false;
@@ -589,7 +589,7 @@ void set_up_shop_array() {
shop_array.push_back(j);
break;
case eShopItemType::REMOVE_CURSE:
for(int i = 0; i < univ.current_pc().items.size(); i++) {
for(int i = 0; i < cPlayer::INVENTORY_SIZE; i++) {
if((univ.current_pc().equip[i]) && (univ.current_pc().items[i].cursed)) {
shop_array.push_back(j);
break;

View File

@@ -2342,7 +2342,7 @@ short damage_pc(cPlayer& which_pc,short how_much,eDamageType damage_type,eRace t
// armor
if(damage_type == eDamageType::WEAPON || damage_type == eDamageType::UNDEAD || damage_type == eDamageType::DEMON) {
how_much -= minmax(-5,5,which_pc.status[eStatus::BLESS_CURSE]);
for(short i = 0; i < which_pc.items.size(); i++) {
for(short i = 0; i < cPlayer::INVENTORY_SIZE; i++) {
const cItem& item = which_pc.items[i];
if(item.variety != eItemType::NO_ITEM && which_pc.equip[i]) {
if((*item.variety).is_armour) {
@@ -2534,7 +2534,7 @@ void kill_pc(cPlayer& which_pc,eMainStatus type) {
if(combat_active_pc < 6 && &which_pc == &univ.party[combat_active_pc])
combat_active_pc = 6;
for(short i = 0; i < which_pc.items.size(); i++)
for(short i = 0; i < cPlayer::INVENTORY_SIZE; i++)
which_pc.equip[i] = false;
item_loc = is_combat() ? which_pc.combat_pos : univ.party.town_loc;