From cf55405cc032cca4539dd3d59e952f6710c461e0 Mon Sep 17 00:00:00 2001 From: mogami Date: Fri, 22 Feb 2002 18:18:09 +0000 Subject: [PATCH] =?utf8?q?=E5=90=8C=E3=81=98=E7=A8=AE=E9=A1=9E=E3=81=AE?= =?utf8?q?=E3=82=A2=E3=82=A4=E3=83=86=E3=83=A0=E3=81=AE=E6=9D=9F=E3=81=8C2?= =?utf8?q?=E3=81=A4=E3=81=82=E3=82=8B=E3=81=A8=E3=81=8D=E3=80=81=E4=B8=8A?= =?utf8?q?=E3=81=AE=E6=9D=9F=E3=81=8C=E6=97=A2=E3=81=AB99=E6=9C=AC?= =?utf8?q?=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=82=8B=E6=99=82?= =?utf8?q?=E3=81=A7=E3=82=82=20=E6=8C=81=E3=81=A1=E7=89=A9=E3=81=AE?= =?utf8?q?=E6=95=B4=E7=90=86=E3=81=AE=E3=82=B3=E3=83=BC=E3=83=89=E3=82=92?= =?utf8?q?=E5=AE=9F=E8=A1=8C=E3=81=97=E3=81=A6=E3=81=97=E3=81=BE=E3=81=A3?= =?utf8?q?=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= =?utf8?q?=E3=80=82=E5=8B=9D=E6=89=8B=E3=81=AA=E9=8A=98=E3=81=AE=E3=82=B3?= =?utf8?q?=E3=83=94=E3=83=BC=E7=AD=89=20=E3=81=8C=E8=B5=B7=E3=81=8D?= =?utf8?q?=E3=81=A6=E4=B8=80=E8=A6=8B=E4=B8=8D=E5=8F=AF=E8=A7=A3=E3=81=AB?= =?utf8?q?=E8=A6=8B=E3=81=88=E3=82=8B=E6=8C=AF=E3=82=8B=E3=81=BE=E3=81=84?= =?utf8?q?=E3=82=92=E3=81=97=E3=81=A6=E3=81=84=E3=81=9F=E3=80=82=E3=81=A4?= =?utf8?q?=E3=81=84=E3=81=A7=E3=81=AB=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE?= =?utf8?q?=E6=95=B4=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/object2.c | 66 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/src/object2.c b/src/object2.c index 60253738b..20e623456 100644 --- a/src/object2.c +++ b/src/object2.c @@ -5955,48 +5955,46 @@ void combine_pack(void) /* Skip empty items */ if (!j_ptr->k_idx) continue; - /* Can we drop "o_ptr" onto "j_ptr"? */ - if (object_similar(j_ptr, o_ptr)) + /* Can we (partialy) drop "o_ptr" onto "j_ptr"? */ + if (object_similar_part(j_ptr, o_ptr) + && j_ptr->number < MAX_STACK_SIZE-1) { - /* Take note */ - flag = TRUE; - - /* Add together the item counts */ - object_absorb(j_ptr, o_ptr); - - /* One object is gone */ - inven_cnt--; - - /* Slide everything down */ - for (k = i; k < INVEN_PACK; k++) + if (o_ptr->number + j_ptr->number < MAX_STACK_SIZE) { - /* Structure copy */ - inventory[k] = inventory[k+1]; - } - - /* Erase the "final" slot */ - object_wipe(&inventory[k]); - - /* Window stuff */ - p_ptr->window |= (PW_INVEN); - - /* Done */ - break; - } - else if (object_similar_part(j_ptr, o_ptr)) - { - int remain = j_ptr->number + o_ptr->number - 99; + /* Take note */ + flag = TRUE; - o_ptr->number -= remain; + /* Add together the item counts */ + object_absorb(j_ptr, o_ptr); - /* Add together the item counts */ - object_absorb(j_ptr, o_ptr); + /* One object is gone */ + inven_cnt--; - o_ptr->number = remain; + /* Slide everything down */ + for (k = i; k < INVEN_PACK; k++) + { + /* Structure copy */ + inventory[k] = inventory[k+1]; + } + + /* Erase the "final" slot */ + object_wipe(&inventory[k]); + } + else + { + int remain = j_ptr->number + o_ptr->number - 99; + + o_ptr->number -= remain; + + /* Add together the item counts */ + object_absorb(j_ptr, o_ptr); + o_ptr->number = remain; + + } /* Window stuff */ p_ptr->window |= (PW_INVEN); - + /* Done */ break; } -- 2.11.0