Desert Cannonball/Compass fix

Potential PoD stair fix
--Going a down stair in Q1 to a 00 x coord is problematic
PoD stair coordinates
Attempted Swamp layer fix
More swamp fixes
--Note: Left switch resets
This commit is contained in:
aerinon
2019-10-15 22:38:25 -06:00
parent 4d35265e5c
commit 6e4ab638aa
2 changed files with 15 additions and 13 deletions

View File

@@ -147,8 +147,8 @@ def create_doors(world, player):
create_door(player, 'Desert East Wing ES', Intr).dir(Direction.East, 0x85, Bot, High).pos(3),
create_door(player, 'Desert East Wing Key Door EN', Intr).dir(Direction.East, 0x85, Top, High).small_key().pos(1),
create_door(player, 'Desert Compass Key Door WN', Intr).dir(Direction.West, 0x85, Top, High).small_key().pos(1),
create_door(player, 'Desert Compass NW', Nrml).dir(Direction.North, 0x85, Left, High).trap(0x4).pos(0),
create_door(player, 'Desert Cannonball S', Nrml).dir(Direction.South, 0x75, Left, High).pos(1),
create_door(player, 'Desert Compass NW', Nrml).dir(Direction.North, 0x85, Right, High).trap(0x4).pos(0),
create_door(player, 'Desert Cannonball S', Nrml).dir(Direction.South, 0x75, Right, High).pos(1),
create_door(player, 'Desert Arrow Pot Corner S Edge', Open).dir(Direction.South, 0x75, None, High),
create_door(player, 'Desert Arrow Pot Corner W Edge', Open).dir(Direction.West, 0x75, None, High),
create_door(player, 'Desert North Hall SE Edge', Open).dir(Direction.South, 0x74, None, High),
@@ -270,8 +270,8 @@ def create_doors(world, player):
create_door(player, 'PoD Left Cage Down Stairs', Sprl).dir(Direction.Down, 0x4a, 1, HTH).ss(A, 0x12, 0x80, False, True),
create_door(player, 'PoD Middle Cage Down Stairs', Sprl).dir(Direction.Down, 0x4a, 0, HTH).ss(S, 0x12, 0x80, False, True),
create_door(player, 'PoD Middle Cage N', Nrml).dir(Direction.North, 0x4a, Mid, High).small_key().pos(2),
create_door(player, 'PoD Shooter Room Up Stairs', Sprl).dir(Direction.Up, 0x09, 1, HTH).ss(A, 0x31, 0x69, True, True),
create_door(player, 'PoD Warp Room Up Stairs', Sprl).dir(Direction.Up, 0x09, 0, HTH).ss(S, 0x30, 0x69, True, True),
create_door(player, 'PoD Shooter Room Up Stairs', Sprl).dir(Direction.Up, 0x09, 1, HTH).ss(A, 0x1b, 0x6c, True, True),
create_door(player, 'PoD Warp Room Up Stairs', Sprl).dir(Direction.Up, 0x09, 0, HTH).ss(S, 0x1a, 0x6c, True, True),
create_door(player, 'PoD Warp Room Warp', Warp),
create_door(player, 'PoD Pit Room S', Nrml).dir(Direction.South, 0x3a, Mid, High).small_key().pos(0),
create_door(player, 'PoD Pit Room NW', Nrml).dir(Direction.North, 0x3a, Left, High).pos(1),
@@ -360,18 +360,18 @@ def create_doors(world, player):
create_door(player, 'Swamp Hammer Switch SW', Intr).dir(Direction.South, 0x37, Left, High).small_key().pos(2),
create_door(player, 'Swamp Hammer Switch WN', Nrml).dir(Direction.West, 0x37, Top, High).pos(0),
create_door(player, 'Swamp Hub ES', Nrml).dir(Direction.East, 0x36, Bot, High).pos(4),
create_door(player, 'Swamp Hub S', Nrml).dir(Direction.South, 0x36, Mid, Low).pos(5),
create_door(player, 'Swamp Hub S', Nrml).dir(Direction.South, 0x36, Mid, High).pos(5),
create_door(player, 'Swamp Hub WS', Nrml).dir(Direction.West, 0x36, Bot, High).pos(3),
create_door(player, 'Swamp Hub WN', Nrml).dir(Direction.West, 0x36, Top, High).small_key().pos(2),
create_door(player, 'Swamp Hub Hook Path', Lgcl),
create_door(player, 'Swamp Hub Dead Ledge EN', Nrml).dir(Direction.East, 0x36, Top, High).pos(0),
create_door(player, 'Swamp Hub North Ledge N', Nrml).dir(Direction.North, 0x36, Mid, High).small_key().pos(1),
create_door(player, 'Swamp Hub North Ledge Drop Down', Lgcl),
create_door(player, 'Swamp Donut Top N', Nrml).dir(Direction.North, 0x46, Mid, Low).pos(0),
create_door(player, 'Swamp Donut Top SE', Intr).dir(Direction.South, 0x46, Right, Low).pos(2),
create_door(player, 'Swamp Donut Bottom NE', Intr).dir(Direction.North, 0x46, Right, Low).pos(2),
create_door(player, 'Swamp Donut Bottom NW', Intr).dir(Direction.North, 0x46, Left, Low).pos(1),
create_door(player, 'Swamp Compass Donut SW', Intr).dir(Direction.South, 0x46, Left, Low).pos(1),
create_door(player, 'Swamp Donut Top N', Nrml).dir(Direction.North, 0x46, Mid, High).pos(0),
create_door(player, 'Swamp Donut Top SE', Intr).dir(Direction.South, 0x46, Right, High).pos(2),
create_door(player, 'Swamp Donut Bottom NE', Intr).dir(Direction.North, 0x46, Right, High).pos(2),
create_door(player, 'Swamp Donut Bottom NW', Intr).dir(Direction.North, 0x46, Left, High).pos(1),
create_door(player, 'Swamp Compass Donut SW', Intr).dir(Direction.South, 0x46, Left, High).pos(1),
create_door(player, 'Swamp Compass Donut Push Block', Lgcl),
create_door(player, 'Swamp Crystal Switch EN', Nrml).dir(Direction.East, 0x35, Top, High).small_key().pos(0),
create_door(player, 'Swamp Crystal Switch SE', Intr).dir(Direction.South, 0x35, Right, High).pos(3),
@@ -389,7 +389,7 @@ def create_doors(world, player):
create_door(player, 'Swamp Big Key Ledge WN', Nrml).dir(Direction.West, 0x35, Top, High).pos(1),
create_door(player, 'Swamp West Shallows ES', Nrml).dir(Direction.East, 0x34, Bot, High).pos(1),
create_door(player, 'Swamp West Shallows Push Blocks', Lgcl),
create_door(player, 'Swamp West Block Path Up Stairs', Sprl).dir(Direction.Up, 0x34, 0, HTH).ss(Z, 0x1b, 0x6c),
create_door(player, 'Swamp West Block Path Up Stairs', Sprl).dir(Direction.Up, 0x34, 0, HTH).ss(Z, 0x1b, 0x6c, False, True),
create_door(player, 'Swamp West Ledge Drop Down', Lgcl),
create_door(player, 'Swamp West Ledge Hook Path', Lgcl),
create_door(player, 'Swamp Barrier Ledge Drop Down', Lgcl),
@@ -436,7 +436,7 @@ def create_doors(world, player):
create_door(player, 'Swamp I S', Intr).dir(Direction.South, 0x16, Mid, High).pos(0),
create_door(player, 'Swamp T SW', Intr).dir(Direction.South, 0x16, Left, High).small_key().pos(1),
create_door(player, 'Swamp T NW', Nrml).dir(Direction.North, 0x16, Left, High).pos(3),
create_door(player, 'Swamp Boss SW', Nrml).dir(Direction.South, 0x06, Left, High).pos(0),
create_door(player, 'Swamp Boss SW', Nrml).dir(Direction.South, 0x06, Left, High).trap(0x4).pos(0),
]
create_paired_doors(world, player)

View File

@@ -24,8 +24,10 @@ SpiralWarp: {
sep #$30
lda $00 : sta $a0
; shift quadrant if necessary
stz $07
lda $01 : and #$01 : !sub $a9
bne .xQuad
inc $07
lda $22 : bne .skipXQuad ; this is an edge case
dec $23 : bra .skipXQuad ; need to -1 if $22 is 0
.xQuad sta $06 : !add $a9 : sta $a9
@@ -41,7 +43,7 @@ SpiralWarp: {
lda $01 : and #$04 : lsr : sta $048a ;fix layer calc 0->0 2->1
lda $01 : and #$08 : lsr #2 : sta $0492 ;fix from layer calc 0->0 2->1
; shift lower coordinates
lda $02 : sta $22 : bne .adjY : inc $23
lda $02 : sta $22 : bne .adjY : lda $23 : !add $07 : sta $23
.adjY lda $03 : sta $20 : bne .upDownAdj : inc $21
.upDownAdj ldx #$08
lda $0462 : and #$04 : beq .upStairs