Several fixes for problems with staircases in Hera/AgaTower
This commit is contained in:
24
Doors.py
24
Doors.py
@@ -180,16 +180,16 @@ def create_doors(world, player):
|
||||
trap(blocked(create_dir_door(player, 'Desert Boss SW', DoorType.Normal, Direction.South, 0x33, Left, High)), 0x2),
|
||||
|
||||
# Hera
|
||||
create_spiral_stairs(player, 'Hera Lobby Down Stairs', DoorType.SpiralStairs, Direction.Down, 0x77, 0, HTL, Z, 0x21, 0x90),
|
||||
small_key(create_spiral_stairs(player, 'Hera Lobby Key Stairs', DoorType.SpiralStairs, Direction.Down, 0x77, 0, HTL, A, 0x12, 0x80)),
|
||||
create_spiral_stairs(player, 'Hera Lobby Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x77, 0, HTL, X, 0x2b, 0x5c),
|
||||
create_spiral_stairs(player, 'Hera Basement Cage Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x87, 0, LTH, Z, 0x42, 0x7c),
|
||||
create_spiral_stairs(player, 'Hera Tile Room Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x87, 0, LTH, A, 0x32, 0x6c),
|
||||
create_spiral_stairs(player, 'Hera Lobby Down Stairs', DoorType.SpiralStairs, Direction.Down, 0x77, 3, HTL, Z, 0x21, 0x90, False, True),
|
||||
small_key(create_spiral_stairs(player, 'Hera Lobby Key Stairs', DoorType.SpiralStairs, Direction.Down, 0x77, 1, HTL, A, 0x12, 0x80)),
|
||||
create_spiral_stairs(player, 'Hera Lobby Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x77, 2, HTL, X, 0x2b, 0x5c, False, True),
|
||||
create_spiral_stairs(player, 'Hera Basement Cage Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x87, 3, LTH, Z, 0x42, 0x7c, True, True),
|
||||
create_spiral_stairs(player, 'Hera Tile Room Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x87, 1, LTH, A, 0x32, 0x6c, True, True),
|
||||
create_dir_door(player, 'Hera Tile Room EN', DoorType.Interior, Direction.East, 0x87, Top, High),
|
||||
create_dir_door(player, 'Hera Tridorm WN', DoorType.Interior, Direction.West, 0x87, Top, High),
|
||||
create_dir_door(player, 'Hera Tridorm SE', DoorType.Interior, Direction.South, 0x87, Right, High),
|
||||
create_dir_door(player, 'Hera Torches NE', DoorType.Interior, Direction.North, 0x87, Right, High),
|
||||
create_spiral_stairs(player, 'Hera Beetles Down Stairs', DoorType.SpiralStairs, Direction.Down, 0x31, 0, LTH, X, 0x3a, 0x70),
|
||||
create_spiral_stairs(player, 'Hera Beetles Down Stairs', DoorType.SpiralStairs, Direction.Down, 0x31, 2, LTH, X, 0x3a, 0x70, True, True),
|
||||
create_dir_door(player, 'Hera Beetles WS', DoorType.Interior, Direction.West, 0x31, Bot, High),
|
||||
create_door(player, 'Hera Beetles Holes', DoorType.Hole),
|
||||
create_dir_door(player, 'Hera Startile Corner ES', DoorType.Interior, Direction.East, 0x31, Bot, High),
|
||||
@@ -197,14 +197,14 @@ def create_doors(world, player):
|
||||
create_door(player, 'Hera Startile Corner Holes', DoorType.Hole),
|
||||
# technically ugly but causes lots of failures in basic
|
||||
create_dir_door(player, 'Hera Startile Wide SW', DoorType.Interior, Direction.South, 0x31, Left, High),
|
||||
create_spiral_stairs(player, 'Hera Startile Wide Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x31, 0, HTH, S, 0x6b, 0xac),
|
||||
create_spiral_stairs(player, 'Hera Startile Wide Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x31, 0, HTH, S, 0x6b, 0xac, False, True),
|
||||
create_door(player, 'Hera Startile Wide Holes', DoorType.Hole),
|
||||
create_spiral_stairs(player, 'Hera 4F Down Stairs', DoorType.SpiralStairs, Direction.Down, 0x27, 0, HTH, S, 0x62, 0xc0),
|
||||
create_spiral_stairs(player, 'Hera 4F Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x27, 0, HTH, A, 0x6b, 0x2c),
|
||||
create_spiral_stairs(player, 'Hera 4F Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x27, 1, HTH, A, 0x6b, 0x2c),
|
||||
create_door(player, 'Hera 4F Holes', DoorType.Hole),
|
||||
create_door(player, 'Hera Big Chest Landing Exit', DoorType.Logical),
|
||||
create_door(player, 'Hera Big Chest Landing Holes', DoorType.Hole),
|
||||
create_spiral_stairs(player, 'Hera 5F Down Stairs', DoorType.SpiralStairs, Direction.Down, 0x17, 0, HTH, A, 0x62, 0x40),
|
||||
create_spiral_stairs(player, 'Hera 5F Down Stairs', DoorType.SpiralStairs, Direction.Down, 0x17, 1, HTH, A, 0x62, 0x40),
|
||||
create_spiral_stairs(player, 'Hera 5F Up Stairs', DoorType.SpiralStairs, Direction.Up, 0x17, 0, HTH, S, 0x6a, 0x9c),
|
||||
create_door(player, 'Hera 5F Star Hole', DoorType.Hole),
|
||||
create_door(player, 'Hera 5F Pothole Chain', DoorType.Hole),
|
||||
@@ -225,8 +225,8 @@ def create_doors(world, player):
|
||||
create_dir_door(player, 'Tower Dark Maze EN', DoorType.Interior, Direction.East, 0xd0, Top, High),
|
||||
small_key(create_dir_door(player, 'Tower Dark Maze ES', DoorType.Interior, Direction.East, 0xd0, Bot, High)),
|
||||
small_key(create_dir_door(player, 'Tower Dark Chargers WS', DoorType.Interior, Direction.West, 0xd0, Bot, High)),
|
||||
create_spiral_stairs(player, 'Tower Dark Chargers Up Stairs', DoorType.SpiralStairs, Direction.Up, 0xd0, 0, HTH, X, 0x1b, 0x8c),
|
||||
create_spiral_stairs(player, 'Tower Dual Statues Down Stairs', DoorType.SpiralStairs, Direction.Down, 0xc0, 0, HTH, X, 0x12, 0xa0),
|
||||
create_spiral_stairs(player, 'Tower Dark Chargers Up Stairs', DoorType.SpiralStairs, Direction.Up, 0xd0, 2, HTH, X, 0x1b, 0x8c),
|
||||
create_spiral_stairs(player, 'Tower Dual Statues Down Stairs', DoorType.SpiralStairs, Direction.Down, 0xc0, 2, HTH, X, 0x12, 0xa0),
|
||||
create_dir_door(player, 'Tower Dual Statues WS', DoorType.Interior, Direction.West, 0xc0, Bot, High),
|
||||
create_dir_door(player, 'Tower Dark Pits ES', DoorType.Interior, Direction.East, 0xc0, Bot, High),
|
||||
create_dir_door(player, 'Tower Dark Pits EN', DoorType.Interior, Direction.East, 0xc0, Top, High),
|
||||
@@ -239,7 +239,7 @@ def create_doors(world, player):
|
||||
create_dir_door(player, 'Tower Circle of Pots NW', DoorType.Interior, Direction.North, 0xb0, Left, High),
|
||||
small_key(create_dir_door(player, 'Tower Circle of Pots WS', DoorType.Interior, Direction.West, 0xb0, Bot, High)),
|
||||
small_key(create_dir_door(player, 'Tower Pacifist Run ES', DoorType.Interior, Direction.East, 0xb0, Bot, High)),
|
||||
create_spiral_stairs(player, 'Tower Pacifist Run Up Stairs', DoorType.SpiralStairs, Direction.Up, 0xb0, 0, LTH, S, 0x33, 0x8c),
|
||||
create_spiral_stairs(player, 'Tower Pacifist Run Up Stairs', DoorType.SpiralStairs, Direction.Up, 0xb0, 2, LTH, X, 0x33, 0x8c),
|
||||
create_spiral_stairs(player, 'Tower Push Statue Down Stairs', DoorType.SpiralStairs, Direction.Down, 0x40, 0, HTL, X, 0x12, 0xa0),
|
||||
create_dir_door(player, 'Tower Push Statue WS', DoorType.Interior, Direction.West, 0x40, Bot, Low),
|
||||
create_dir_door(player, 'Tower Catwalk ES', DoorType.Interior, Direction.East, 0x40, Bot, Low),
|
||||
|
||||
2
Rom.py
2
Rom.py
@@ -18,7 +18,7 @@ from EntranceShuffle import door_addresses
|
||||
|
||||
|
||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||
RANDOMIZERBASEHASH = '760a7c62303ab662427661e58ab74a2d'
|
||||
RANDOMIZERBASEHASH = '7227bd73423d4ff43e731ee436d7c596'
|
||||
|
||||
|
||||
class JsonRom(object):
|
||||
|
||||
@@ -171,6 +171,9 @@ Places where sta $e2 happens
|
||||
|
||||
Stuff about big key door south
|
||||
1e -> Y
|
||||
this is at 00ce24 or pc 004e24
|
||||
org 00ce24
|
||||
dw 2ac8
|
||||
1aab1 ldx ce06,y (where y is 1e = ce24) loads 2a80, but should be 2ac8 for the gfx
|
||||
not detected as big key door - need to look into tile attributes
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ SpiralWarp: {
|
||||
ldy #$00 : jsr ShiftQuadSimple
|
||||
|
||||
.skipXQuad
|
||||
lda $01 : and #$02 : lsr : sta $06 : lda $aa : lsr : !sub $06
|
||||
lda $aa : lsr : sta $06 : lda $01 : and #$02 : lsr : !sub $06
|
||||
beq .skipYQuad
|
||||
sta $06 : asl : !add $aa : sta $aa
|
||||
ldy #$01 : jsr ShiftQuadSimple
|
||||
@@ -82,7 +82,7 @@ LookupSpiralOffset: {
|
||||
cmp #$01 : beq .done
|
||||
|
||||
; look up the quad
|
||||
lda $a8 : and #$03 : beq .quad0
|
||||
lda $a9 : ora $aa : and #$03 : beq .quad0
|
||||
cmp #$01 : beq .quad1
|
||||
cmp #$02 : beq .quad2
|
||||
cmp #$03 : beq .quad3
|
||||
@@ -90,7 +90,7 @@ LookupSpiralOffset: {
|
||||
inc $01 : lda $22 : cmp #$98 : bcc .done ;gt ent and hc stairwell
|
||||
inc $01 : bra .done
|
||||
.quad1
|
||||
lda $22 : cmp #$78 : bcc .done ;swamp/pod dual stairs
|
||||
lda $22 : cmp #$98 : bcc .done ;swamp/pod dual stairs
|
||||
inc $01 : bra .done
|
||||
.quad2 ;ice room
|
||||
lda #$03 : sta $01
|
||||
@@ -139,6 +139,8 @@ SetCamera: {
|
||||
lda CoordIndex,y : tax
|
||||
lda $20,x : cmp #$78 : bcs .setQuad
|
||||
!add #$78 : sta $04
|
||||
lda CamQuadIndex,y : tax : lda $0603, x : pha
|
||||
lda CameraIndex,y : tax : pla : sta $e3, x
|
||||
.adj1
|
||||
tya : asl : !add #$08 : tax : jsr AdjCamBounds : bra .done
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user