Archipelago
Archipelago copied to clipboard
LTTP/SM/SMZ3: Show correct item icon for cross-game items
What is this fixing or adding?
Adds functionality to LTTP, Super Metroid, and SMZ3 to show the correct, corresponding item icon for items from the other game worlds, instead of stars or AP icons.
How was this tested?
Generating multiworlds containing all three games, playtesting and seeing the correct item graphics. Further testing should be done to ensure everything looks correct.
If this makes graphical changes, please attach screenshots.
You'll have to take my word for it that this is a Super Metroid item being found in SMZ3

LTTP items that aren't valid items in SMZ3 need to be filtered out. Triforce piece has the correct icon if you're in the LTTP side of SMZ3, but will identify it as "a junk item" and in SM side it will have a non-progression AP icon and show no item name when collected. Not sure the easiest way to do this since item names do not match and the item codes are in properties of a class. I could do a big converstion dict like with SM items but it would be a lot of items
I have concerns with world implementations hard coding information that exists in other world implementations. In my opinion, world implementations should not need to know anything about other worlds and also, if another world maintainer changes a name or id, this would break. Also, thinking forward, I don't want to set the precedent, "Hey it's okay to code info from another world implementation because their interaction would be neat."
It's a nice to have, for sure, but I think the cons outweigh the pros.
@lordlou is this something conceptually you'd like?
I personally like the idea but that opinion might be biased because I know AP well. Since it changes a behavior that was uniform across all games (I think?), it might confuse some players. That being said, maybe a vote could help us decide (see https://discord.com/channels/731205301247803413/731214280439103580/934522580864471061).
If the vote is in favor, maybe a core feature could be added to supply a matching list of ItemID that games can query. Also, maybe it would be worth making it an option since it is relevant only to each local player.