diff options
Diffstat (limited to 'engine/overworld/doors.asm')
-rwxr-xr-x | engine/overworld/doors.asm | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm new file mode 100755 index 00000000..ff58b752 --- /dev/null +++ b/engine/overworld/doors.asm @@ -0,0 +1,88 @@ +HandleDoors: ; 1a609 (6:6609) + push de + ld hl, DoorTileIDPointers ; $662c + ld a, [W_CURMAPTILESET] ; $d367 + ld de, $3 + call IsInArray + pop de + jr nc, .asm_1a62a + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + FuncCoord 8, 9 ; $c45c + ld a, [Coord] + ld b, a +.asm_1a621 + ld a, [hli] + and a + jr z, .asm_1a62a + cp b + jr nz, .asm_1a621 + scf + ret +.asm_1a62a + and a + ret + +DoorTileIDPointers: ; 1a62c (6:662c) + db OVERWORLD + dw OverworldDoorTileIDs + db FOREST + dw ForestDoorTileIDs + db MART + dw MartDoorTileIDs + db HOUSE + dw HouseDoorTileIDs + db FOREST_GATE + dw TilesetMuseumDoorTileIDs + db MUSEUM + dw TilesetMuseumDoorTileIDs + db GATE + dw TilesetMuseumDoorTileIDs + db SHIP + dw ShipDoorTileIDs + db LOBBY + dw LobbyDoorTileIDs + db MANSION + dw MansionDoorTileIDs + db LAB + dw LabDoorTileIDs + db FACILITY + dw FacilityDoorTileIDs + db PLATEAU + dw PlateauDoorTileIDs + db $ff + +OverworldDoorTileIDs: ; 1a654 (6:6654) + db $1B,$58,$00 + +ForestDoorTileIDs: ; 1a657 (6:6657) + db $3a,$00 + +MartDoorTileIDs: ; 1a659 (6:6659) + db $5e,$00 + +HouseDoorTileIDs: ; 1a65b (6:665b) + db $54,$00 + +TilesetMuseumDoorTileIDs: ; 1a65d (6:665d) + db $3b,$00 + +ShipDoorTileIDs: ; 1a65f (6:665f) + db $1e,$00 + +LobbyDoorTileIDs: ; 1a661 (6:6661) + db $1c,$38,$1a,$00 + +MansionDoorTileIDs: ; 1a665 (6:6665) + db $1a,$1c,$53,$00 + +LabDoorTileIDs: ; 1a669 (6:6669) + db $34,$00 + +FacilityDoorTileIDs: ; 1a66b (6:666b) + db $43,$58,$1b,$00 + +PlateauDoorTileIDs: ; 1a66f (6:666f) + db $3b,$1b,$00 |