v0.4.1: fixed some bugs with new rankings storage
This commit is contained in:
@@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Ooze;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Ooze;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Belongings;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DM300;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DM300;
|
||||||
@@ -35,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Tengu;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Yog;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Yog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.bags.Bag;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
||||||
@@ -125,11 +127,19 @@ public enum Rankings {
|
|||||||
public void saveGameData(Record rec){
|
public void saveGameData(Record rec){
|
||||||
rec.gameData = new Bundle();
|
rec.gameData = new Bundle();
|
||||||
|
|
||||||
|
Belongings belongings = Dungeon.hero.belongings;
|
||||||
|
|
||||||
//save the hero and belongings
|
//save the hero and belongings
|
||||||
ArrayList<Item> allItems = (ArrayList<Item>) Dungeon.hero.belongings.backpack.items.clone();
|
ArrayList<Item> allItems = (ArrayList<Item>) belongings.backpack.items.clone();
|
||||||
//remove items that won't show up in the rankings screen
|
//remove items that won't show up in the rankings screen
|
||||||
for (Item item : Dungeon.hero.belongings.backpack.items.toArray( new Item[0])) {
|
for (Item item : belongings.backpack.items.toArray( new Item[0])) {
|
||||||
if (!Dungeon.quickslot.contains(item)) Dungeon.hero.belongings.backpack.items.remove(item);
|
if (item instanceof Bag){
|
||||||
|
for (Item bagItem : ((Bag) item).items.toArray( new Item[0])){
|
||||||
|
if (Dungeon.quickslot.contains(bagItem)) belongings.backpack.items.add(bagItem);
|
||||||
|
}
|
||||||
|
belongings.backpack.items.remove(item);
|
||||||
|
} else if (!Dungeon.quickslot.contains(item))
|
||||||
|
belongings.backpack.items.remove(item);
|
||||||
}
|
}
|
||||||
rec.gameData.put( HERO, Dungeon.hero );
|
rec.gameData.put( HERO, Dungeon.hero );
|
||||||
|
|
||||||
@@ -145,13 +155,16 @@ public enum Rankings {
|
|||||||
|
|
||||||
//save handler information
|
//save handler information
|
||||||
Bundle handler = new Bundle();
|
Bundle handler = new Bundle();
|
||||||
Scroll.saveSelectively(handler, Dungeon.hero.belongings.backpack.items);
|
Scroll.saveSelectively(handler, belongings.backpack.items);
|
||||||
Potion.saveSelectively(handler, Dungeon.hero.belongings.backpack.items);
|
Potion.saveSelectively(handler, belongings.backpack.items);
|
||||||
Ring.saveSelectively(handler, Dungeon.hero.belongings.backpack.items);
|
//include worn rings
|
||||||
|
if (belongings.misc1 != null) belongings.backpack.items.add(belongings.misc1);
|
||||||
|
if (belongings.misc2 != null) belongings.backpack.items.add(belongings.misc2);
|
||||||
|
Ring.saveSelectively(handler, belongings.backpack.items);
|
||||||
rec.gameData.put( HANDLERS, handler);
|
rec.gameData.put( HANDLERS, handler);
|
||||||
|
|
||||||
//restore items now that we're done saving
|
//restore items now that we're done saving
|
||||||
Dungeon.hero.belongings.backpack.items = allItems;
|
belongings.backpack.items = allItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadGameData(Record rec){
|
public void loadGameData(Record rec){
|
||||||
|
|||||||
Reference in New Issue
Block a user