Fix for colorized pots in "dark desert hint" aka mire storyteller
This commit is contained in:
2
Main.py
2
Main.py
@@ -31,7 +31,7 @@ from Utils import output_path, parse_player_names
|
|||||||
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
||||||
from source.tools.BPS import create_bps_from_data
|
from source.tools.BPS import create_bps_from_data
|
||||||
|
|
||||||
__version__ = '1.0.1.0-u'
|
__version__ = '1.0.1.1-u'
|
||||||
|
|
||||||
from source.classes.BabelFish import BabelFish
|
from source.classes.BabelFish import BabelFish
|
||||||
|
|
||||||
|
|||||||
@@ -787,12 +787,13 @@ vanilla_pots = {
|
|||||||
Pot(230, 27, PotItem.Bomb, 'Light World Bomb Hut', obj=RoomObject(0x03EF5E, [0xCF, 0xDF, 0xFA]))],
|
Pot(230, 27, PotItem.Bomb, 'Light World Bomb Hut', obj=RoomObject(0x03EF5E, [0xCF, 0xDF, 0xFA]))],
|
||||||
0x108: [Pot(166, 19, PotItem.Chicken, 'Chicken House', obj=RoomObject(0x03EFA9, [0x4F, 0x9F, 0xFA]))],
|
0x108: [Pot(166, 19, PotItem.Chicken, 'Chicken House', obj=RoomObject(0x03EFA9, [0x4F, 0x9F, 0xFA]))],
|
||||||
0x10C: [Pot(88, 14, PotItem.Heart, 'Hookshot Fairy', obj=RoomObject(0x03F329, [0xB3, 0x73, 0xFA]))],
|
0x10C: [Pot(88, 14, PotItem.Heart, 'Hookshot Fairy', obj=RoomObject(0x03F329, [0xB3, 0x73, 0xFA]))],
|
||||||
0x114: [Pot(92, 4, PotItem.Heart, 'Dark Desert Hint', obj=RoomObject(0x03F7A0, [0xBB, 0x23, 0xFA])),
|
# note: these addresses got moved thanks to waterfall fairy edit
|
||||||
Pot(96, 4, PotItem.Heart, 'Dark Desert Hint', obj=RoomObject(0x03F7A3, [0xC3, 0x23, 0xFA])),
|
0x114: [Pot(92, 4, PotItem.Heart, 'Dark Desert Hint', obj=RoomObject(0x03F79A, [0xBB, 0x23, 0xFA])),
|
||||||
Pot(92, 5, PotItem.Bomb, 'Dark Desert Hint', obj=RoomObject(0x03F7A6, [0xBB, 0x2B, 0xFA])),
|
Pot(96, 4, PotItem.Heart, 'Dark Desert Hint', obj=RoomObject(0x03F79D, [0xC3, 0x23, 0xFA])),
|
||||||
Pot(96, 5, PotItem.Bomb, 'Dark Desert Hint', obj=RoomObject(0x03F7A9, [0xC3, 0x2B, 0xFA])),
|
Pot(92, 5, PotItem.Bomb, 'Dark Desert Hint', obj=RoomObject(0x03F7A0, [0xBB, 0x2B, 0xFA])),
|
||||||
Pot(92, 10, PotItem.FiveArrows, 'Dark Desert Hint', obj=RoomObject(0x03F7AC, [0xBB, 0x53, 0xFA])),
|
Pot(96, 5, PotItem.Bomb, 'Dark Desert Hint', obj=RoomObject(0x03F7A3, [0xC3, 0x2B, 0xFA])),
|
||||||
Pot(96, 10, PotItem.Heart, 'Dark Desert Hint', obj=RoomObject(0x03F7AF, [0xC3, 0x53, 0xFA]))],
|
Pot(92, 10, PotItem.FiveArrows, 'Dark Desert Hint', obj=RoomObject(0x03F7A6, [0xBB, 0x53, 0xFA])),
|
||||||
|
Pot(96, 10, PotItem.Heart, 'Dark Desert Hint', obj=RoomObject(0x03F7A9, [0xC3, 0x53, 0xFA]))],
|
||||||
0x117: [Pot(138, 3, PotItem.Heart, 'Spike Cave', obj=RoomObject(0x03FCB2, [0x17, 0x1F, 0xFA])), # 0x38A -> 38A
|
0x117: [Pot(138, 3, PotItem.Heart, 'Spike Cave', obj=RoomObject(0x03FCB2, [0x17, 0x1F, 0xFA])), # 0x38A -> 38A
|
||||||
Pot(142, 3, PotItem.Heart, 'Spike Cave', obj=RoomObject(0x03FCB8, [0x1F, 0x1F, 0xFA])),
|
Pot(142, 3, PotItem.Heart, 'Spike Cave', obj=RoomObject(0x03FCB8, [0x1F, 0x1F, 0xFA])),
|
||||||
Pot(166, 3, PotItem.Heart, 'Spike Cave', obj=RoomObject(0x03FCC1, [0x4F, 0x1F, 0xFA])),
|
Pot(166, 3, PotItem.Heart, 'Spike Cave', obj=RoomObject(0x03FCC1, [0x4F, 0x1F, 0xFA])),
|
||||||
|
|||||||
@@ -183,6 +183,8 @@ Same as above but both small keys and bigs keys of the dungeon are not allowed o
|
|||||||
|
|
||||||
#### Unstable
|
#### Unstable
|
||||||
|
|
||||||
|
* 1.0.1.1
|
||||||
|
* Fixed the pots in Mire Storyteller/ Dark Desert Hint to be colorized when they should be
|
||||||
* 1.0.1.0
|
* 1.0.1.0
|
||||||
* Large features
|
* Large features
|
||||||
* New pottery modes - see notes above
|
* New pottery modes - see notes above
|
||||||
@@ -235,7 +237,7 @@ Same as above but both small keys and bigs keys of the dungeon are not allowed o
|
|||||||
* Fixed a bug with shopsanity + district algorithm where pre-placed potions messed up the placeholder count
|
* Fixed a bug with shopsanity + district algorithm where pre-placed potions messed up the placeholder count
|
||||||
* Fixed usestartinventory flag (can be use on a per player basis)
|
* Fixed usestartinventory flag (can be use on a per player basis)
|
||||||
* Sprite selector fix for systems with SSL issues
|
* Sprite selector fix for systems with SSL issues
|
||||||
* Fix for Standard ER where locations in rain state could be in logic
|
* Fix for Standard ER where locations in rain state could be in logic
|
||||||
* 1.0.0.3
|
* 1.0.0.3
|
||||||
* overworld_map=map mode fixed. Location of dungeons with maps are not shown until map is retrieved. (Dungeon that do not have map like Castle Tower are simply never shown)
|
* overworld_map=map mode fixed. Location of dungeons with maps are not shown until map is retrieved. (Dungeon that do not have map like Castle Tower are simply never shown)
|
||||||
* Aga2 completion on overworld_map now tied to boss defeat flag instead of pyramid hole being opened (fast ganon fix)
|
* Aga2 completion on overworld_map now tied to boss defeat flag instead of pyramid hole being opened (fast ganon fix)
|
||||||
|
|||||||
25
Rom.py
25
Rom.py
@@ -663,18 +663,6 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
|||||||
if world.mapshuffle[player]:
|
if world.mapshuffle[player]:
|
||||||
rom.write_byte(0x155C9, random.choice([0x11, 0x16])) # Randomize GT music too with map shuffle
|
rom.write_byte(0x155C9, random.choice([0x11, 0x16])) # Randomize GT music too with map shuffle
|
||||||
|
|
||||||
if world.pottery[player] not in ['none']:
|
|
||||||
rom.write_bytes(snes_to_pc(0x1F8375), int32_as_bytes(0x2A8000))
|
|
||||||
# make hammer pegs use different tiles
|
|
||||||
Room0127.write_to_rom(snes_to_pc(0x2A8000), rom)
|
|
||||||
|
|
||||||
if world.pot_contents[player]:
|
|
||||||
colorize_pots = is_mystery or (world.pottery[player] not in ['vanilla', 'lottery']
|
|
||||||
and (world.colorizepots[player]
|
|
||||||
or world.pottery[player] in ['reduced', 'clustered']))
|
|
||||||
if world.pot_contents[player].size() > 0x2800:
|
|
||||||
raise Exception('Pot table is too big for current area')
|
|
||||||
world.pot_contents[player].write_pot_data_to_rom(rom, colorize_pots)
|
|
||||||
# fix for swamp drains if necessary
|
# fix for swamp drains if necessary
|
||||||
swamp1location = world.get_location('Swamp Palace - Trench 1 Pot Key', player)
|
swamp1location = world.get_location('Swamp Palace - Trench 1 Pot Key', player)
|
||||||
if not swamp1location.pot.indicator:
|
if not swamp1location.pot.indicator:
|
||||||
@@ -1545,6 +1533,19 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
|||||||
if room.player == player and room.modified:
|
if room.player == player and room.modified:
|
||||||
rom.write_bytes(room.address(), room.rom_data())
|
rom.write_bytes(room.address(), room.rom_data())
|
||||||
|
|
||||||
|
if world.pottery[player] not in ['none']:
|
||||||
|
rom.write_bytes(snes_to_pc(0x1F8375), int32_as_bytes(0x2A8000))
|
||||||
|
# make hammer pegs use different tiles
|
||||||
|
Room0127.write_to_rom(snes_to_pc(0x2A8000), rom)
|
||||||
|
|
||||||
|
if world.pot_contents[player]:
|
||||||
|
colorize_pots = is_mystery or (world.pottery[player] not in ['vanilla', 'lottery']
|
||||||
|
and (world.colorizepots[player]
|
||||||
|
or world.pottery[player] in ['reduced', 'clustered']))
|
||||||
|
if world.pot_contents[player].size() > 0x2800:
|
||||||
|
raise Exception('Pot table is too big for current area')
|
||||||
|
world.pot_contents[player].write_pot_data_to_rom(rom, colorize_pots)
|
||||||
|
|
||||||
write_strings(rom, world, player, team)
|
write_strings(rom, world, player, team)
|
||||||
|
|
||||||
# write initial sram
|
# write initial sram
|
||||||
|
|||||||
Reference in New Issue
Block a user