Fixed a problem with edges when those are turned off (experimental not on)
Fixed a problem with standard requiring you to go through the tapestry backwards to save Zelda Added debugging features to help figure out some bugs
This commit is contained in:
@@ -1301,12 +1301,15 @@ class DROptions(Flag):
|
||||
Eternal_Mini_Bosses = 0x01 # If on, GT minibosses marked as defeated when they try to spawn a heart
|
||||
Town_Portal = 0x02 # If on, Players will start with mirror scroll
|
||||
Map_Info = 0x04
|
||||
Debug = 0x08
|
||||
Open_Desert_Wall = 0x80 # If on, pre opens the desert wall, no fire required
|
||||
|
||||
# DATA GOES DOWN HERE
|
||||
|
||||
logical_connections = [
|
||||
('Hyrule Dungeon North Abyss Catwalk Dropdown', 'Hyrule Dungeon North Abyss'),
|
||||
('Hyrule Castle Throne Room Tapestry', 'Hyrule Castle Behind Tapestry'),
|
||||
('Hyrule Castle Tapestry Backwards', 'Hyrule Castle Throne Room'),
|
||||
('Sewers Secret Room Push Block', 'Sewers Secret Room Blocked Path'),
|
||||
('Eastern Hint Tile Push Block', 'Eastern Hint Tile'),
|
||||
('Eastern Map Balcony Hook Path', 'Eastern Map Room'),
|
||||
@@ -1528,8 +1531,8 @@ open_edges = [
|
||||
('Desert Main Lobby E Edge', 'Desert East Wing W Edge'),
|
||||
('Desert East Wing N Edge', 'Desert Arrow Pot Corner S Edge'),
|
||||
('Desert Arrow Pot Corner W Edge', 'Desert North Hall E Edge'),
|
||||
('Desert North Hall W Edge', 'Desert Sandworm Corner S Edge'),
|
||||
('Desert Sandworm Corner E Edge', 'Desert West Wing N Edge'),
|
||||
('Desert West Wing N Edge', 'Desert Sandworm Corner S Edge'),
|
||||
('Desert Sandworm Corner E Edge', 'Desert North Hall W Edge'),
|
||||
('Thieves Lobby N Edge', 'Thieves Ambush S Edge'),
|
||||
('Thieves Lobby NE Edge', 'Thieves Ambush SE Edge'),
|
||||
('Thieves Ambush ES Edge', 'Thieves BK Corner WS Edge'),
|
||||
|
||||
5
Doors.py
5
Doors.py
@@ -61,6 +61,8 @@ def create_doors(world, player):
|
||||
create_door(player, 'Hyrule Castle Back Hall W', Nrml).dir(We, 0x01, Top, Low).pos(0),
|
||||
create_door(player, 'Hyrule Castle Back Hall E', Nrml).dir(Ea, 0x01, Top, Low).pos(1),
|
||||
create_door(player, 'Hyrule Castle Back Hall Down Stairs', Sprl).dir(Dn, 0x01, 0, HTL).ss(A, 0x2a, 0x00),
|
||||
create_door(player, 'Hyrule Castle Throne Room Tapestry', Lgcl),
|
||||
create_door(player, 'Hyrule Castle Tapestry Backwards', Lgcl),
|
||||
create_door(player, 'Hyrule Castle Throne Room N', Nrml).dir(No, 0x51, Mid, High).pos(1),
|
||||
create_door(player, 'Hyrule Castle Throne Room South Stairs', StrS).dir(So, 0x51, Mid, Low),
|
||||
|
||||
@@ -1086,7 +1088,8 @@ def create_doors(world, player):
|
||||
world.get_door('Swamp Flooded Room Ladder', player).event('Swamp Drain')
|
||||
|
||||
if world.mode[player] == 'standard':
|
||||
world.get_door('Hyrule Castle Throne Room N', player).event('Zelda Pickup')
|
||||
world.get_door('Hyrule Castle Throne Room Tapestry', player).event('Zelda Pickup')
|
||||
world.get_door('Hyrule Castle Tapestry Backwards', player).event('Zelda Pickup')
|
||||
|
||||
# crystal switches and barriers
|
||||
world.get_door('Hera Lobby Down Stairs', player).c_switch()
|
||||
|
||||
14
Dungeons.py
14
Dungeons.py
@@ -162,13 +162,13 @@ dungeon_music_addresses = {'Eastern Palace - Prize': [0x1559A],
|
||||
|
||||
hyrule_castle_regions = [
|
||||
'Hyrule Castle Lobby', 'Hyrule Castle West Lobby', 'Hyrule Castle East Lobby', 'Hyrule Castle East Hall',
|
||||
'Hyrule Castle West Hall', 'Hyrule Castle Back Hall', 'Hyrule Castle Throne Room', 'Hyrule Dungeon Map Room',
|
||||
'Hyrule Dungeon North Abyss', 'Hyrule Dungeon North Abyss Catwalk', 'Hyrule Dungeon South Abyss',
|
||||
'Hyrule Dungeon South Abyss Catwalk', 'Hyrule Dungeon Guardroom', 'Hyrule Dungeon Armory Main',
|
||||
'Hyrule Dungeon Armory Boomerang', 'Hyrule Dungeon Armory North Branch', 'Hyrule Dungeon Staircase',
|
||||
'Hyrule Dungeon Cellblock', 'Sewers Behind Tapestry', 'Sewers Rope Room', 'Sewers Dark Cross', 'Sewers Water',
|
||||
'Sewers Key Rat', 'Sewers Rat Path', 'Sewers Secret Room Blocked Path', 'Sewers Secret Room',
|
||||
'Sewers Yet More Rats', 'Sewers Pull Switch', 'Sanctuary'
|
||||
'Hyrule Castle West Hall', 'Hyrule Castle Back Hall', 'Hyrule Castle Throne Room', 'Hyrule Castle Behind Tapestry',
|
||||
'Hyrule Dungeon Map Room', 'Hyrule Dungeon North Abyss', 'Hyrule Dungeon North Abyss Catwalk',
|
||||
'Hyrule Dungeon South Abyss', 'Hyrule Dungeon South Abyss Catwalk', 'Hyrule Dungeon Guardroom',
|
||||
'Hyrule Dungeon Armory Main', 'Hyrule Dungeon Armory Boomerang', 'Hyrule Dungeon Armory North Branch',
|
||||
'Hyrule Dungeon Staircase', 'Hyrule Dungeon Cellblock', 'Sewers Behind Tapestry', 'Sewers Rope Room',
|
||||
'Sewers Dark Cross', 'Sewers Water', 'Sewers Key Rat', 'Sewers Rat Path', 'Sewers Secret Room Blocked Path',
|
||||
'Sewers Secret Room', 'Sewers Yet More Rats', 'Sewers Pull Switch', 'Sanctuary'
|
||||
]
|
||||
|
||||
eastern_regions = [
|
||||
|
||||
2
Main.py
2
Main.py
@@ -24,7 +24,7 @@ from Fill import distribute_items_cutoff, distribute_items_staleness, distribute
|
||||
from ItemList import generate_itempool, difficulties, fill_prizes
|
||||
from Utils import output_path, parse_player_names
|
||||
|
||||
__version__ = '0.1.0.4-u'
|
||||
__version__ = '0.1.0.5-u'
|
||||
|
||||
class EnemizerError(RuntimeError):
|
||||
pass
|
||||
|
||||
@@ -8,7 +8,13 @@
|
||||
### Experimental features
|
||||
|
||||
* Open "Edge" transitions can now be linked with normal doors
|
||||
* "Straight" staircases (the ones similar to normal doors) can be linked with both normal doors and edges
|
||||
* "Straight" staircases (the ones similar to normal doors) can be linked with both normal doors and edges
|
||||
|
||||
|
||||
* Couple of temporary debug features added:
|
||||
* Total item count displays where TFH's goal usually does
|
||||
* A red square appears in the upper right corner of the hud if the castle gate is closed
|
||||
|
||||
|
||||
# Bug Fixes
|
||||
|
||||
@@ -19,6 +25,7 @@
|
||||
* Enemizer settings made consistent with website
|
||||
* Swamp flooded ladders in the basement now requires Flippers
|
||||
* PoD EG Glitch gets killed on transitions (Only when DR is on)
|
||||
* Problem with standard logic fixed wanting you to pass through the tapestry backwards to rescue Zelda
|
||||
|
||||
##### In Progress
|
||||
|
||||
|
||||
@@ -211,7 +211,8 @@ def create_dungeon_regions(world, player):
|
||||
'Hyrule Castle East Hall SW']),
|
||||
create_dungeon_region(player, 'Hyrule Castle West Hall', 'Hyrule Castle', None, ['Hyrule Castle West Hall E', 'Hyrule Castle West Hall S']),
|
||||
create_dungeon_region(player, 'Hyrule Castle Back Hall', 'Hyrule Castle', None, ['Hyrule Castle Back Hall E', 'Hyrule Castle Back Hall W', 'Hyrule Castle Back Hall Down Stairs']),
|
||||
create_dungeon_region(player, 'Hyrule Castle Throne Room', 'Hyrule Castle', None, ['Hyrule Castle Throne Room N', 'Hyrule Castle Throne Room South Stairs']),
|
||||
create_dungeon_region(player, 'Hyrule Castle Throne Room', 'Hyrule Castle', None, ['Hyrule Castle Throne Room Tapestry', 'Hyrule Castle Throne Room South Stairs']),
|
||||
create_dungeon_region(player, 'Hyrule Castle Behind Tapestry', 'Hyrule Castle', None, ['Hyrule Castle Throne Room N', 'Hyrule Castle Tapestry Backwards']),
|
||||
|
||||
create_dungeon_region(player, 'Hyrule Dungeon Map Room', 'Hyrule Castle', ['Hyrule Castle - Map Chest', 'Hyrule Castle - Map Guard Key Drop'], ['Hyrule Dungeon Map Room Key Door S', 'Hyrule Dungeon Map Room Up Stairs']),
|
||||
create_dungeon_region(player, 'Hyrule Dungeon North Abyss', 'Hyrule Castle', None, ['Hyrule Dungeon North Abyss South Edge', 'Hyrule Dungeon North Abyss Key Door N']),
|
||||
|
||||
3
Rom.py
3
Rom.py
@@ -22,7 +22,7 @@ from EntranceShuffle import door_addresses, exit_ids
|
||||
|
||||
|
||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||
RANDOMIZERBASEHASH = '4fdf20e033770cf92786a790a020d2d5'
|
||||
RANDOMIZERBASEHASH = '69e8cbb3dd3cf9f5cebece101d95d0d7'
|
||||
|
||||
|
||||
class JsonRom(object):
|
||||
@@ -598,6 +598,7 @@ def patch_rom(world, rom, player, team, enemized):
|
||||
dr_flags = DROptions.Eternal_Mini_Bosses if world.doorShuffle[player] == 'vanilla' else DROptions.Town_Portal
|
||||
if world.experimental[player]:
|
||||
dr_flags |= DROptions.Map_Info
|
||||
dr_flags |= DROptions.Debug
|
||||
|
||||
# patch doors
|
||||
if world.doorShuffle[player] == 'crossed':
|
||||
|
||||
3
Rules.py
3
Rules.py
@@ -863,7 +863,8 @@ def standard_rules(world, player):
|
||||
add_rule(world.get_entrance(ent, player), lambda state: standard_escape_rule(state))
|
||||
|
||||
set_rule(world.get_location('Zelda Pickup', player), lambda state: state.has('Big Key (Escape)', player))
|
||||
set_rule(world.get_entrance('Hyrule Castle Throne Room N', player), lambda state: state.has('Zelda Herself', player))
|
||||
set_rule(world.get_entrance('Hyrule Castle Throne Room Tapestry', player), lambda state: state.has('Zelda Herself', player))
|
||||
set_rule(world.get_entrance('Hyrule Castle Tapestry Backwards', player), lambda state: state.has('Zelda Herself', player))
|
||||
|
||||
def check_rule_list(state, r_list):
|
||||
return True if len(r_list) <= 0 else r_list[0](state) and check_rule_list(state, r_list[1:])
|
||||
|
||||
@@ -500,7 +500,7 @@ db $00,$80,$11, $00,$80,$11, $00,$80,$11, $00,$80,$11
|
||||
db $00,$80,$11, $00,$80,$11, $00,$80,$11, $00,$80,$11
|
||||
db $00,$80,$11, $00,$80,$11, $00,$80,$11
|
||||
SouthOpenEdge:
|
||||
db $83,$a2,$11, $00,$80,$11, $00,$80,$11, $00,$80,$11
|
||||
db $00,$80,$11, $00,$80,$11, $00,$80,$11, $00,$80,$11
|
||||
db $00,$80,$11, $00,$80,$11, $00,$80,$11, $00,$80,$11
|
||||
db $00,$80,$11, $00,$80,$11, $00,$80,$11
|
||||
WestOpenEdge:
|
||||
|
||||
@@ -7,6 +7,19 @@ DrHudOverride:
|
||||
|
||||
HudAdditions:
|
||||
{
|
||||
lda DRFlags : and #$0008 : beq ++
|
||||
lda $7EF423 : and #$00ff
|
||||
jsr HudHexToDec4DigitCopy
|
||||
LDX.b $05 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+10 ; draw 100's digit
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+12 ; draw 10's digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+14 ; draw 1's digit
|
||||
|
||||
lda $7ef29b : and #$0020 : beq +
|
||||
lda #$207f : bra .drawthing
|
||||
+ lda #$345e
|
||||
.drawthing STA !GOAL_DRAW_ADDRESS+16 ; castle gate indicator
|
||||
++
|
||||
|
||||
ldx $040c : cpx #$ff : bne + : rts : +
|
||||
lda DRMode : bne + : rts : +
|
||||
phb : phk : plb
|
||||
@@ -94,4 +107,37 @@ CountBonkItem:
|
||||
+ lda.b #$24 ; default to small key
|
||||
++
|
||||
phy : tay : jsr CountChest : ply
|
||||
rtl
|
||||
rtl
|
||||
|
||||
;================================================================================
|
||||
; 16-bit A, 8-bit X
|
||||
; in: A(b) - Byte to Convert
|
||||
; out: $04 - $07 (high - low)
|
||||
;================================================================================
|
||||
HudHexToDec4DigitCopy:
|
||||
LDY.b #$90
|
||||
-
|
||||
CMP.w #1000 : !BLT +
|
||||
INY
|
||||
SBC.w #1000 : BRA -
|
||||
+
|
||||
STY $04 : LDY #$90 ; Store 1000s digit & reset Y
|
||||
-
|
||||
CMP.w #100 : !BLT +
|
||||
INY
|
||||
SBC.w #100 : BRA -
|
||||
+
|
||||
STY $05 : LDY #$90 ; Store 100s digit & reset Y
|
||||
-
|
||||
CMP.w #10 : !BLT +
|
||||
INY
|
||||
SBC.w #10 : BRA -
|
||||
+
|
||||
STY $06 : LDY #$90 ; Store 10s digit & reset Y
|
||||
CMP.w #1 : !BLT +
|
||||
-
|
||||
INY
|
||||
DEC : BNE -
|
||||
+
|
||||
STY $07 ; Store 1s digit
|
||||
RTS
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user