Added CharData to Item#update() parameters -- cannot rely on Riiablo.charData in multiplayer cases

This commit is contained in:
Collin Smith
2020-01-07 14:07:59 -08:00
parent 23376c4bdc
commit 9b78c010e9
2 changed files with 8 additions and 7 deletions

View File

@ -212,7 +212,7 @@ public class CharData {
final int alternate = getAlternate(); final int alternate = getAlternate();
for (Item item : equipped.values()) { for (Item item : equipped.values()) {
if (item == null) continue; if (item == null) continue;
item.update(); item.update(this);
if (item.bodyLoc == BodyLoc.getAlternate(item.bodyLoc, alternate)) { if (item.bodyLoc == BodyLoc.getAlternate(item.bodyLoc, alternate)) {
stats.add(item.props.remaining()); stats.add(item.props.remaining());
Stat stat; Stat stat;
@ -298,7 +298,7 @@ public class CharData {
break; break;
case EQUIPPED: case EQUIPPED:
setEquipped(item.bodyLoc, item); setEquipped(item.bodyLoc, item);
item.update(); item.update(this);
if (item.bodyLoc == BodyLoc.getAlternate(item.bodyLoc, getAlternate())) { if (item.bodyLoc == BodyLoc.getAlternate(item.bodyLoc, getAlternate())) {
stats.add(item.props.remaining()); stats.add(item.props.remaining());
Stat stat; Stat stat;
@ -309,7 +309,7 @@ public class CharData {
break; break;
case STORED: case STORED:
store.get(item.storeLoc).add(item); store.get(item.storeLoc).add(item);
item.update(); item.update(this);
if (item.storeLoc == INVENTORY && item.type.is(Type.CHAR)) { if (item.storeLoc == INVENTORY && item.type.is(Type.CHAR)) {
stats.add(item.props.remaining()); stats.add(item.props.remaining());
} }
@ -378,7 +378,7 @@ public class CharData {
public Item setEquipped(BodyLoc bodyLoc, Item item) { public Item setEquipped(BodyLoc bodyLoc, Item item) {
Item oldItem = equipped.put(bodyLoc, item); Item oldItem = equipped.put(bodyLoc, item);
if (item != null) item.update(); if (item != null) item.update(this);
updateSets(oldItem, item); updateSets(oldItem, item);
updateStats(); updateStats();
notifyEquippedChanged(bodyLoc, oldItem, item); notifyEquippedChanged(bodyLoc, oldItem, item);

View File

@ -10,6 +10,7 @@ import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.Disposable;
import com.badlogic.gdx.utils.GdxRuntimeException; import com.badlogic.gdx.utils.GdxRuntimeException;
import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.ObjectMap;
import com.riiablo.CharData;
import com.riiablo.CharacterClass; import com.riiablo.CharacterClass;
import com.riiablo.Riiablo; import com.riiablo.Riiablo;
import com.riiablo.codec.DC6; import com.riiablo.codec.DC6;
@ -346,7 +347,7 @@ public class Item extends Actor implements Disposable {
return this; return this;
} }
public void update() { public void update(CharData charData) {
if ((flags & COMPACT) == COMPACT) return; if ((flags & COMPACT) == COMPACT) return;
props.reset(); props.reset();
if (stats[MAGIC_PROPS] != null) props.add(stats[MAGIC_PROPS]); if (stats[MAGIC_PROPS] != null) props.add(stats[MAGIC_PROPS]);
@ -368,12 +369,12 @@ public class Item extends Actor implements Disposable {
} }
} }
} }
props.update(Riiablo.charData); props.update(charData);
} }
public Details details() { public Details details() {
if (details == null) { if (details == null) {
update(); update(Riiablo.charData);
details = new Details(); details = new Details();
} }
return details; return details;