diff --git a/InitialSram.py b/InitialSram.py index d7d79a18..a33f2454 100644 --- a/InitialSram.py +++ b/InitialSram.py @@ -114,6 +114,9 @@ class InitialSram: equip[0x37B] = 1 equip[0x36E] = 0x80 + if startingstate.has('Return Old Man', player): + self._initial_sram_bytes[0x410] = self._initial_sram_bytes[0x410] | 0x01 + for item in world.precollected_items: if item.player != player: continue @@ -123,7 +126,8 @@ class InitialSram: 'Golden Sword', 'Tempered Sword', 'Master Sword', 'Fighter Sword', 'Progressive Sword', 'Mirror Shield', 'Red Shield', 'Blue Shield', 'Progressive Shield', 'Red Mail', 'Blue Mail', 'Progressive Armor', - 'Magic Upgrade (1/4)', 'Magic Upgrade (1/2)']: + 'Magic Upgrade (1/4)', 'Magic Upgrade (1/2)', + 'Return Old Man']: continue set_table = {'Book of Mudora': (0x34E, 1), 'Hammer': (0x34B, 1), 'Bug Catching Net': (0x34D, 1), 'Hookshot': (0x342, 1), 'Magic Mirror': (0x353, 2), diff --git a/ItemList.py b/ItemList.py index fcbffadf..21d3b446 100644 --- a/ItemList.py +++ b/ItemList.py @@ -227,6 +227,12 @@ def generate_itempool(world, player): loc.locked = True loc.forced_item = loc.item + if 'Return Old Man' in list(map(str, [i for i in world.precollected_items if i.player == player])): + old_man = world.get_location('Old Man', player) + world.push_item(old_man, ItemFactory('Nothing', player), False) + old_man.forced_item = old_man.item + old_man.skip = True + world.get_location('Ganon', player).event = True world.get_location('Ganon', player).locked = True world.push_item(world.get_location('Agahnim 1', player), ItemFactory('Beat Agahnim 1', player), False)