mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
SM: correctly check if items are SM items
This commit is contained in:
@@ -293,15 +293,15 @@ class SMWorld(World):
|
|||||||
if itemLoc.player == self.player and locationsDict[itemLoc.name].Id != None:
|
if itemLoc.player == self.player and locationsDict[itemLoc.name].Id != None:
|
||||||
# this SM world can find this item: write full item data to tables and assign player data for writing
|
# this SM world can find this item: write full item data to tables and assign player data for writing
|
||||||
romPlayerID = itemLoc.item.player if itemLoc.item.player <= ROM_PLAYER_LIMIT else 0
|
romPlayerID = itemLoc.item.player if itemLoc.item.player <= ROM_PLAYER_LIMIT else 0
|
||||||
if itemLoc.item.type in ItemManager.Items:
|
if isinstance(itemLoc.item, SMItem) and itemLoc.item.type in ItemManager.Items:
|
||||||
itemId = ItemManager.Items[itemLoc.item.type].Id
|
itemId = ItemManager.Items[itemLoc.item.type].Id
|
||||||
else:
|
else:
|
||||||
itemId = ItemManager.Items['ArchipelagoItem'].Id + idx
|
itemId = ItemManager.Items['ArchipelagoItem'].Id + idx
|
||||||
multiWorldItems.append({"sym": symbols["message_item_names"],
|
multiWorldItems.append({"sym": symbols["message_item_names"],
|
||||||
"offset": (vanillaItemTypesCount + idx)*64,
|
"offset": (vanillaItemTypesCount + idx)*64,
|
||||||
"values": self.convertToROMItemName(itemLoc.item.name)})
|
"values": self.convertToROMItemName(itemLoc.item.name)})
|
||||||
idx += 1
|
idx += 1
|
||||||
|
|
||||||
if (romPlayerID > 0 and romPlayerID not in self.playerIDMap.keys()):
|
if (romPlayerID > 0 and romPlayerID not in self.playerIDMap.keys()):
|
||||||
playerIDCount += 1
|
playerIDCount += 1
|
||||||
self.playerIDMap[romPlayerID] = playerIDCount
|
self.playerIDMap[romPlayerID] = playerIDCount
|
||||||
@@ -488,7 +488,13 @@ class SMWorld(World):
|
|||||||
# commit all the changes we've made here to the ROM
|
# commit all the changes we've made here to the ROM
|
||||||
romPatcher.commitIPS()
|
romPatcher.commitIPS()
|
||||||
|
|
||||||
itemLocs = [ItemLocation(ItemManager.Items[itemLoc.item.type if itemLoc.item.type in ItemManager.Items else 'ArchipelagoItem'], locationsDict[itemLoc.name], True) for itemLoc in self.world.get_locations() if itemLoc.player == self.player]
|
itemLocs = [
|
||||||
|
ItemLocation(ItemManager.Items[itemLoc.item.type
|
||||||
|
if isinstance(itemLoc.item, SMItem) and itemLoc.item.type in ItemManager.Items else
|
||||||
|
'ArchipelagoItem'],
|
||||||
|
locationsDict[itemLoc.name], True)
|
||||||
|
for itemLoc in self.world.get_locations() if itemLoc.player == self.player
|
||||||
|
]
|
||||||
romPatcher.writeItemsLocs(itemLocs)
|
romPatcher.writeItemsLocs(itemLocs)
|
||||||
|
|
||||||
itemLocs = [ItemLocation(ItemManager.Items[itemLoc.item.type], locationsDict[itemLoc.name] if itemLoc.name in locationsDict and itemLoc.player == self.player else self.DummyLocation(self.world.get_player_name(itemLoc.player) + " " + itemLoc.name), True) for itemLoc in self.world.get_locations() if itemLoc.item.player == self.player]
|
itemLocs = [ItemLocation(ItemManager.Items[itemLoc.item.type], locationsDict[itemLoc.name] if itemLoc.name in locationsDict and itemLoc.player == self.player else self.DummyLocation(self.world.get_player_name(itemLoc.player) + " " + itemLoc.name), True) for itemLoc in self.world.get_locations() if itemLoc.item.player == self.player]
|
||||||
|
|||||||
Reference in New Issue
Block a user