Skip to content

Commit

Permalink
Change order of item pickup
Browse files Browse the repository at this point in the history
1, Increase stacks in bag
2, Increase stacks in belt
3, Put items into empty bag spaces 1-n
4, Put items into empty belt spaces 1-6
  • Loading branch information
Caldarion committed Jun 8, 2014
1 parent 1ca22c3 commit fded65a
Showing 1 changed file with 37 additions and 40 deletions.
77 changes: 37 additions & 40 deletions src/Character.cpp
Expand Up @@ -481,58 +481,41 @@ int Character::createItem(Item::id_type id, Item::number_type number, Item::qual
int old_temp = temp;

if (cos.MaxStack > 1) {
for (unsigned char i = MAX_BODY_ITEMS; i < MAX_BELT_SLOTS + MAX_BODY_ITEMS && temp > 0; ++i) {
if ((characterItems[ i ].getId() == id) && (characterItems[ i ].equalData(data))) {
int itemsToCreate = temp;
temp = characterItems[ i ].increaseNumberBy(temp);

if (itemsToCreate != temp) {
characterItems[ i ].setWear(cos.AgeingSpeed);
characterItems[ i ].setQuality(quality);
}
}
}

if (temp > 0) {
if (backPackContents) {
bool ok = true;
it.setId(id);
it.setQuality(quality);
it.setWear(cos.AgeingSpeed);
it.setData(data);

if (backPackContents) {
bool ok = true;

while (ok && (temp > 0)) {
if (temp >= cos.MaxStack) {
it.setNumber(cos.MaxStack);
} else {
it.setNumber(temp);
}

auto leftOver = backPackContents->mergeItem(it);
while (ok && (temp > 0)) {
if (temp >= cos.MaxStack) {
it.setNumber(cos.MaxStack);
} else {
it.setNumber(temp);
}

if (leftOver > 0) {
ok = false;
}
auto leftOver = backPackContents->mergeItem(it);

temp -= it.getNumber() - leftOver;
if (leftOver > 0) {
ok = false;
}

temp -= it.getNumber() - leftOver;
}
}
}

for (unsigned char i = MAX_BODY_ITEMS; i < MAX_BELT_SLOTS + MAX_BODY_ITEMS && temp > 0; ++i) {
if (characterItems[ i ].getId() == 0) {
characterItems[ i ].setId(id);
characterItems[ i ].setWear(cos.AgeingSpeed);
characterItems[ i ].setQuality(quality);
characterItems[ i ].setData(data);
temp = characterItems[ i ].increaseNumberBy(temp);
}
}
for (unsigned char i = MAX_BODY_ITEMS; i < MAX_BELT_SLOTS + MAX_BODY_ITEMS && temp > 0; ++i) {
if ((characterItems[ i ].getId() == id) && (characterItems[ i ].equalData(data))) {
int itemsToCreate = temp;
temp = characterItems[ i ].increaseNumberBy(temp);

if (temp != old_temp && cos.Brightness > 0) {
updateAppearanceForAll(true);
if (itemsToCreate != temp) {
characterItems[ i ].setWear(cos.AgeingSpeed);
characterItems[ i ].setQuality(quality);
}
}
}
}

if ((temp > 0) && backPackContents) {
Expand All @@ -556,6 +539,20 @@ int Character::createItem(Item::id_type id, Item::number_type number, Item::qual
}
}
}

for (unsigned char i = MAX_BODY_ITEMS; i < MAX_BELT_SLOTS + MAX_BODY_ITEMS && temp > 0; ++i) {
if (characterItems[ i ].getId() == 0) {
characterItems[ i ].setId(id);
characterItems[ i ].setWear(cos.AgeingSpeed);
characterItems[ i ].setQuality(quality);
characterItems[ i ].setData(data);
temp = characterItems[ i ].increaseNumberBy(temp);
}
}

if (temp != old_temp && cos.Brightness > 0) {
updateAppearanceForAll(true);
}
}
}
}
Expand Down

0 comments on commit fded65a

Please sign in to comment.