fenhl / OoT-Randomizer

A randomizer for Ocarina of Time.
https://ootrandomizer.com/generatorDev?version=devFenhl_
Other
9 stars 2 forks source link

Wrong player name used when buying shop items in multiworld #16

Closed fenhl closed 10 months ago

fenhl commented 1 year ago

The dev-fenhl branch includes a fix for https://github.com/OoTRandomizer/OoT-Randomizer/issues/208, https://github.com/OoTRandomizer/OoT-Randomizer/issues/848, and https://github.com/OoTRandomizer/OoT-Randomizer/issues/1854, which works by removing the hack for changing the vanilla game's player name text component and instead using a separate text component for the recipient of an outgoing item. However, when buying a (non-special-deal) item from a shop, the new text component is used without the recipient ID being set. This can result in the wrong player's name (or a placeholder such as “Player 0”) being shown when buying a shop item. (The item still goes to the correct player, this is a purely visual bug.)

A possible fix could be to use separate text boxes for shop items. I've already fixed a similar issue with songs this way.

fenhl commented 1 year ago

Here's a plando to reproduce the bug on the https://github.com/OoTRandomizer/OoT-Randomizer/pull/2035 branch:

{
    "settings": {
        "open_forest": "open",
        "shopsanity": "4",
        "spawn_positions": ["child"],
        "starting_items": {
            "Progressive Wallet": 3
        },
        "start_with_rupees": true
    },
    "entrances": {
        "Child Spawn -> KF Links House": "KF Kokiri Shop"
    },
    "locations": {
        "World 1": {
            "KF Shop Item 1": "Buy Deku Nuts (10)",
            "KF Shop Item 5": {
                "item": "Bow",
                "player": 2
            }
        }
    }
}

If you generate this as a 2-world seed and (as player 1) buy the bow first and then the Deku nuts, the text box for the nuts will show player 2's name.

fenhl commented 1 year ago

This issue is now fixed in https://github.com/OoTRandomizer/OoT-Randomizer/pull/2035. Leaving it open until the fix is merged into dev-fenhl.