Merge branch 'DoorDevVolatile' into StandingItems
# Conflicts: # Rom.py # data/base2current.bps
This commit is contained in:
@@ -109,6 +109,7 @@ def link_entrances(world, player):
|
||||
links_house_doors = [i for i in LW_Single_Cave_Doors if i not in Isolated_LH_Doors_Open]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
if links_house in bomb_shop_doors:
|
||||
bomb_shop_doors.remove(links_house)
|
||||
if links_house in blacksmith_doors:
|
||||
@@ -173,6 +174,7 @@ def link_entrances(world, player):
|
||||
links_house_doors = [i for i in lw_entrances if i not in Isolated_LH_Doors_Open]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
if links_house in lw_entrances:
|
||||
lw_entrances.remove(links_house)
|
||||
|
||||
@@ -337,6 +339,7 @@ def link_entrances(world, player):
|
||||
links_house_doors = [i for i in lw_entrances + lw_must_exits if i not in Isolated_LH_Doors_Open]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
if links_house in lw_entrances:
|
||||
lw_entrances.remove(links_house)
|
||||
if links_house in lw_must_exits:
|
||||
@@ -467,6 +470,7 @@ def link_entrances(world, player):
|
||||
links_house_doors = [i for i in links_house_doors if i not in exclusions]
|
||||
links_house = random.choice(list(links_house_doors))
|
||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
if links_house in entrances:
|
||||
entrances.remove(links_house)
|
||||
elif links_house in must_exits:
|
||||
@@ -937,6 +941,7 @@ def link_entrances(world, player):
|
||||
links_house_doors = [i for i in links_house_doors if i not in exclusions]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
exit_pool.remove(links_house)
|
||||
doors.remove(links_house)
|
||||
|
||||
@@ -1301,6 +1306,7 @@ def link_inverted_entrances(world, player):
|
||||
links_house_doors = [i for i in DW_Single_Cave_Doors if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
if links_house in bomb_shop_doors:
|
||||
bomb_shop_doors.remove(links_house)
|
||||
if links_house in blacksmith_doors:
|
||||
@@ -1381,6 +1387,7 @@ def link_inverted_entrances(world, player):
|
||||
links_house_doors = [i for i in dw_entrances if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
if links_house in dw_entrances:
|
||||
dw_entrances.remove(links_house)
|
||||
|
||||
@@ -1510,6 +1517,7 @@ def link_inverted_entrances(world, player):
|
||||
links_house_doors = [i for i in dw_entrances if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
if links_house in dw_entrances:
|
||||
dw_entrances.remove(links_house)
|
||||
|
||||
@@ -1647,6 +1655,7 @@ def link_inverted_entrances(world, player):
|
||||
links_house_doors = [i for i in entrances + must_exits if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
if links_house in entrances:
|
||||
entrances.remove(links_house)
|
||||
elif links_house in must_exits:
|
||||
@@ -1780,6 +1789,7 @@ def link_inverted_entrances(world, player):
|
||||
links_house_doors = [i for i in doors if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||
links_house = random.choice(links_house_doors)
|
||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||
doors.remove(links_house)
|
||||
exit_pool.remove(links_house)
|
||||
|
||||
@@ -3339,7 +3349,6 @@ inverted_mandatory_connections = [('Links House S&Q', 'Inverted Links House'),
|
||||
('EDDM Flute', 'The Sky'),
|
||||
('Dark Grassy Lawn Flute', 'The Sky'),
|
||||
('Hammer Peg Area Flute', 'The Sky'),
|
||||
('Chris Houlihan Room Exit', 'Pyramid Ledge'),
|
||||
('Bush Covered Lawn Inner Bushes', 'Light World'),
|
||||
('Bush Covered Lawn Outer Bushes', 'Bush Covered Lawn'),
|
||||
('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'),
|
||||
|
||||
2
Main.py
2
Main.py
@@ -32,7 +32,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
|
||||
|
||||
|
||||
__version__ = '1.0.2.0-v'
|
||||
__version__ = '1.0.3.0-v'
|
||||
|
||||
from source.classes.BabelFish import BabelFish
|
||||
|
||||
|
||||
@@ -133,6 +133,13 @@ CLI: ```--bombbag```
|
||||
|
||||
## Bug Fixes and Notes.
|
||||
|
||||
* 0.5.1.7
|
||||
* Baserom update
|
||||
* Fix for Inverted Mode: Dark Lake Hylia shop defaults to selling a blue potion
|
||||
* Fix for Ijwu's enemizer: Boss door in Thieves' Town no longer closes after the maiden hint if Blind is shuffled to Theives' Town in boss shuffle + crossed mode
|
||||
* No logic now sets the AllowAccidentalMajorGlitches flag in the rom appropriately
|
||||
* Houlihan room now exits wherever Link's House is shuffled to
|
||||
* Rom fixes from Catobat and Codemann8. Thanks!
|
||||
* 0.5.1.6
|
||||
* Rules fixes for TT (Boss and Cell) can now have TT Big Key if not otherwise required (boss shuffle + crossed dungeon)
|
||||
* BUg fix for money balancing
|
||||
|
||||
@@ -966,6 +966,7 @@ def create_shops(world, player):
|
||||
if world.mode[player] == 'inverted' and region_name == 'Dark Lake Hylia Shop':
|
||||
locked = True
|
||||
inventory = [('Blue Potion', 160), ('Blue Shield', 50), ('Bombs (10)', 50)]
|
||||
custom = True
|
||||
region = world.get_region(region_name, player)
|
||||
shop = Shop(region, room_id, type, shopkeeper, custom, locked, sram)
|
||||
region.shop = shop
|
||||
|
||||
4
Rom.py
4
Rom.py
@@ -35,7 +35,7 @@ from source.classes.SFX import randomize_sfx
|
||||
|
||||
|
||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||
RANDOMIZERBASEHASH = 'c1b18f6455af56b738d4fe8f266ef055'
|
||||
RANDOMIZERBASEHASH = '6c43ba88d17005bd1237fe1a62597705'
|
||||
|
||||
|
||||
class JsonRom(object):
|
||||
@@ -336,6 +336,7 @@ def patch_enemizer(world, player, rom, local_rom, enemizercli, random_sprite_on_
|
||||
rom.write_bytes(0xEA081, [0x5c, 0x00, 0x80, 0xb7, 0xc9, 0x6, 0xf0, 0x24,
|
||||
0xad, 0x3, 0x4, 0x29, 0x20, 0xf0, 0x1d])
|
||||
rom.write_byte(0x200101, 0) # Do not close boss room door on entry.
|
||||
rom.write_byte(0x1B0101, 0) # Do not close boss room door on entry. (for Ijwu's enemizer)
|
||||
|
||||
if random_sprite_on_hit:
|
||||
_populate_sprite_table()
|
||||
@@ -1545,6 +1546,7 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
||||
rom.write_byte(0x1800A3, 0x01) # enable correct world setting behaviour after agahnim kills
|
||||
rom.write_byte(0x1800A4, 0x01 if world.logic[player] != 'nologic' else 0x00) # enable POD EG fix
|
||||
rom.write_byte(0x180042, 0x01 if world.save_and_quit_from_boss else 0x00) # Allow Save and Quit after boss kill
|
||||
rom.write_byte(0x180358, 0x01 if world.logic[player] == 'nologic' else 0x00)
|
||||
|
||||
# remove shield from uncle
|
||||
rom.write_bytes(0x6D253, [0x00, 0x00, 0xf6, 0xff, 0x00, 0x0E])
|
||||
|
||||
@@ -76,6 +76,9 @@ nop : jsl OverridePaletteHeader
|
||||
org $02817e ; Bank02.asm : 414 (LDA $02811E, X)
|
||||
jsl FixAnimatedTiles
|
||||
|
||||
org $0aef43 ; UnderworldMap_RecoverGFX
|
||||
jsl FixCloseDungeonMap
|
||||
|
||||
org $028a06 ; Bank02.asm : 1941 Dungeon_ResetTorchBackgroundAndPlayer
|
||||
JSL FixWallmasterLamp
|
||||
|
||||
@@ -186,9 +189,9 @@ Main_ShowTextMessage:
|
||||
|
||||
; Conditionally disable UW music changes in Door Rando
|
||||
org $028ADB ; <- Bank02.asm:2088-2095 (LDX.b #$14 : LDA $A0 ...)
|
||||
JSL.l Underworld_DoorDown_Entry : CPX #$10
|
||||
db $B0, $21 ; BCS $028B04
|
||||
BRA + : NOP #6 : +
|
||||
JSL.l Underworld_DoorDown_Entry : CPX #$FF
|
||||
BEQ + : db $80, $1C ; BRA $028B04
|
||||
NOP #6 : +
|
||||
|
||||
org $02C3F2 ; <- Bank02.asm:10521 Unused call
|
||||
Underworld_DoorDown_Call:
|
||||
|
||||
10
asm/gfx.asm
10
asm/gfx.asm
@@ -45,6 +45,16 @@ FixAnimatedTiles:
|
||||
+ LDA $02802E, X ; what we wrote over
|
||||
RTL
|
||||
|
||||
FixCloseDungeonMap:
|
||||
LDA.l DRMode : CMP #$02 : BNE .vanilla
|
||||
LDA $040C : BMI .vanilla
|
||||
LSR : TAX
|
||||
LDA.l DungeonTilesets,x
|
||||
RTL
|
||||
.vanilla
|
||||
LDA $7EC20E
|
||||
RTL
|
||||
|
||||
FixWallmasterLamp:
|
||||
ORA $0458
|
||||
STY $1C : STA $1D : RTL ; what we wrote over
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user