diff options
author | Remy Oukaour <remy.oukaour@gmail.com> | 2018-01-11 00:25:14 -0500 |
---|---|---|
committer | Remy Oukaour <remy.oukaour@gmail.com> | 2018-01-11 00:25:14 -0500 |
commit | cc8dac5a22a4f9307dd2f94e4bf29ee5b132c0b7 (patch) | |
tree | 5984fd340a792f485ee19f3a60c85dbf80459ec4 | |
parent | 3b7c495e38345dc135ef3224d5fc3c8d0e0ce087 (diff) |
Use constants and data for Unown chamber events
-rw-r--r-- | constants/map_data_constants.asm | 67 | ||||
-rw-r--r-- | data/unown_walls.asm | 58 | ||||
-rw-r--r-- | engine/events/unown_walls.asm (renamed from engine/events/crystal_unown.asm) | 73 | ||||
-rwxr-xr-x | engine/unown_puzzle.asm | 9 | ||||
-rw-r--r-- | main.asm | 2 | ||||
-rw-r--r-- | maps/RuinsOfAlphAerodactylChamber.asm | 6 | ||||
-rw-r--r-- | maps/RuinsOfAlphHoOhChamber.asm | 6 | ||||
-rw-r--r-- | maps/RuinsOfAlphKabutoChamber.asm | 6 | ||||
-rw-r--r-- | maps/RuinsOfAlphOmanyteChamber.asm | 6 |
9 files changed, 127 insertions, 106 deletions
diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm index c8066f066..33a743a96 100644 --- a/constants/map_data_constants.asm +++ b/constants/map_data_constants.asm @@ -142,6 +142,11 @@ SLIDING EQU 3 EMOTE_OBJECT EQU 7 +; see engine/overworld.asm +MAX_OUTDOOR_SPRITES EQU 23 +SPRITE_GFX_LIST_CAPACITY EQU $20 + + ; SpawnPoints indexes (see data/maps/spawn_points.asm) const_value = -1 const SPAWN_N_A @@ -178,6 +183,26 @@ const_value = -1 NUM_SPAWNS EQU const_value +; treemon sets +; TreeMons indexes (see data/wild/treemons.asm) + const_def + const TREEMON_SET_CITY + const TREEMON_SET_CANYON + const TREEMON_SET_AZALEA + const TREEMON_SET_ROUTE + const TREEMON_SET_KANTO + const TREEMON_SET_LAKE + const TREEMON_SET_FOREST + const TREEMON_SET_ROCK +NUM_TREEMON_SETS EQU const_value + +; treemon scores + const_def + const TREEMON_SCORE_BAD ; 0 + const TREEMON_SCORE_GOOD ; 1 + const TREEMON_SCORE_RARE ; 2 + + ; TryBGEvent arguments (see engine/events.asm) const_def const BGEVENT_READ @@ -253,28 +278,8 @@ const_value set 1 NUM_FRUIT_TREES EQU const_value +- 1 -; treemon sets -; TreeMons indexes (see data/wild/treemons.asm) - const_def - const TREEMON_SET_CITY - const TREEMON_SET_CANYON - const TREEMON_SET_AZALEA - const TREEMON_SET_ROUTE - const TREEMON_SET_KANTO - const TREEMON_SET_LAKE - const TREEMON_SET_FOREST - const TREEMON_SET_ROCK -NUM_TREEMON_SETS EQU const_value - -; treemon scores - const_def - const TREEMON_SCORE_BAD ; 0 - const TREEMON_SCORE_GOOD ; 1 - const TREEMON_SCORE_RARE ; 2 - - ; elevator floors -; used by `elevfloor` +; used by elevfloor const_def const FLOOR_B4F const FLOOR_B3F @@ -305,6 +310,20 @@ CMDQUEUE_CAPACITY EQU 4 ; command queue types CMDQUEUE_STONETABLE EQU 2 -; see engine/overworld.asm -MAX_OUTDOOR_SPRITES EQU 23 -SPRITE_GFX_LIST_CAPACITY EQU $20 + +; used by Special_UnownPuzzle +; LoadUnownPuzzlePiecesGFX.LZPointers indexes (see engine/unown_puzzle.asm) + const_def + const UNOWNPUZZLE_KABUTO ; 0 + const UNOWNPUZZLE_OMANYTE ; 1 + const UNOWNPUZZLE_AERODACTYL ; 2 + const UNOWNPUZZLE_HO_OH ; 3 +NUM_UNOWN_PUZZLES EQU const_value + +; used by Special_DisplayUnownWords +; UnownWalls and MenuDataHeaders_UnownWalls indexes (see data/unown_walls.asm) + const_def + const UNOWNWORDS_ESCAPE ; 0 + const UNOWNWORDS_LIGHT ; 1 + const UNOWNWORDS_WATER ; 2 + const UNOWNWORDS_HO_OH ; 3 diff --git a/data/unown_walls.asm b/data/unown_walls.asm new file mode 100644 index 000000000..4e971f9b0 --- /dev/null +++ b/data/unown_walls.asm @@ -0,0 +1,58 @@ +unownwall: MACRO +rept _NARG +if \1 == "-" +x = $64 +else +if \1 >= "Y" +x = 2 * (\1 - "Y") + $60 +else +if \1 >= "Q" +x = 2 * (\1 - "Q") + $40 +else +if \1 >= "I" +x = 2 * (\1 - "I") + $20 +else +x = 2 * (\1 - "A") +endc +endc +endc +endc + db x +shift +endr + db -1 ; end +ENDM + +UnownWalls: ; 8aebc +; UNOWNWORDS_ESCAPE + ; db $08, $44, $04, $00, $2e, $08, $ff + unownwall "E", "S", "C", "A", "P", "E" +; UNOWNWORDS_LIGHT + ; db $26, $20, $0c, $0e, $46, $ff + unownwall "L", "I", "G", "H", "T" +; UNOWNWORDS_WATER + ; db $4c, $00, $46, $08, $42, $ff + unownwall "W", "A", "T", "E", "R" +; UNOWNWORDS_HO_OH + ; db $0e, $2c, $64, $2c, $0e, $ff + unownwall "H", "O", "-", "O", "H" +; 8aed5 + +MenuDataHeaders_UnownWalls: ; 0x8aed5 +; UNOWNWORDS_ESCAPE + db $40 ; flags + db 04, 03 ; start coords + db 09, 16 ; end coords +; UNOWNWORDS_LIGHT + db $40 ; flags + db 04, 04 ; start coords + db 09, 15 ; end coords +; UNOWNWORDS_WATER + db $40 ; flags + db 04, 04 ; start coords + db 09, 15 ; end coords +; UNOWNWORDS_HO_OH + db $40 ; flags + db 04, 04 ; start coords + db 09, 15 ; end coords +; 8aee9 diff --git a/engine/events/crystal_unown.asm b/engine/events/unown_walls.asm index ce9673ee7..d4e6083c4 100644 --- a/engine/events/crystal_unown.asm +++ b/engine/events/unown_walls.asm @@ -105,7 +105,7 @@ SpecialKabutoChamber: ; 8ae4e Special_DisplayUnownWords: ; 8ae68 ld a, [ScriptVar] - ld hl, .MenuDataHeaders_UnownWalls + ld hl, MenuDataHeaders_UnownWalls and a jr z, .load @@ -131,7 +131,7 @@ Special_DisplayUnownWords: ; 8ae68 add hl, de ld a, [ScriptVar] ld c, a - ld de, .UnownText + ld de, UnownWalls and a jr z, .copy .loop2 @@ -142,10 +142,10 @@ Special_DisplayUnownWords: ; 8ae68 dec c jr nz, .loop2 .copy - call .CopyWord + call _DisplayUnownWords_CopyWord ld bc, AttrMap - TileMap add hl, bc - call .FillAttr + call _DisplayUnownWords_FillAttr call WaitBGMap2 call JoyWaitAorB call PlayClickSFX @@ -153,66 +153,9 @@ Special_DisplayUnownWords: ; 8ae68 ret ; 8aebc -unownwall: MACRO -rept _NARG -if \1 == "-" -x = $64 -else -if \1 >= "Y" -x = 2 * (\1 - "Y") + $60 -else -if \1 >= "Q" -x = 2 * (\1 - "Q") + $40 -else -if \1 >= "I" -x = 2 * (\1 - "I") + $20 -else -x = 2 * (\1 - "A") -endc -endc -endc -endc - db x -shift -endr - db -1 ; end -ENDM +INCLUDE "data/unown_walls.asm" -.UnownText: ; 8aebc -;.UnownText_Escape: - ; db $08, $44, $04, $00, $2e, $08, $ff - unownwall "E", "S", "C", "A", "P", "E" -;.UnownText_Light: - ; db $26, $20, $0c, $0e, $46, $ff - unownwall "L", "I", "G", "H", "T" -;.UnownText_Water: - ; db $4c, $00, $46, $08, $42, $ff - unownwall "W", "A", "T", "E", "R" -;.UnownText_Ho_Oh: - ; db $0e, $2c, $64, $2c, $0e, $ff - unownwall "H", "O", "-", "O", "H" -; 8aed5 - -.MenuDataHeaders_UnownWalls: ; 0x8aed5 -;.MenuDataHeader_Escape: - db $40 ; flags - db 04, 03 ; start coords - db 09, 16 ; end coords -;.MenuDataHeader_Light: - db $40 ; flags - db 04, 04 ; start coords - db 09, 15 ; end coords -;.MenuDataHeader_Water: - db $40 ; flags - db 04, 04 ; start coords - db 09, 15 ; end coords -;.MenuDataHeader_Ho_Oh: - db $40 ; flags - db 04, 04 ; start coords - db 09, 15 ; end coords -; 8aee9 - -.FillAttr: ; 8aee9 +_DisplayUnownWords_FillAttr: ; 8aee9 ld a, [de] cp $ff ret z @@ -226,7 +169,7 @@ ENDM inc hl inc hl inc de - jr .FillAttr + jr _DisplayUnownWords_FillAttr ; 8aefd .PlaceSquare: ; 8aefd @@ -242,7 +185,7 @@ ENDM ret ; 8af09 -.CopyWord: ; 8af09 +_DisplayUnownWords_CopyWord: ; 8af09 push hl push de .word_loop diff --git a/engine/unown_puzzle.asm b/engine/unown_puzzle.asm index 2074fb314..429bfaefd 100755 --- a/engine/unown_puzzle.asm +++ b/engine/unown_puzzle.asm @@ -157,7 +157,7 @@ PlaceStartCancelBoxBorder: ; e128d ld a, $f3 ld [hli], a ld bc, 10 - ld a, $ef + ld a, PUZZLE_VOID call ByteFill hlcoord 15, 16 ld a, $f3 @@ -218,7 +218,7 @@ UnownPuzzleJumptable: ; e12ca ld a, [hl] cp 1 puzcoord 0 ret c - sub $6 + sub 6 ld [hl], a jr .done_joypad @@ -235,7 +235,7 @@ UnownPuzzleJumptable: ; e12ca ret z cp 5 puzcoord 0 ret nc - add $6 + add 6 ld [hl], a jr .done_joypad @@ -835,7 +835,7 @@ INCBIN "gfx/unown_puzzle/tile_borders.2bpp" LoadUnownPuzzlePiecesGFX: ; e17a3 ld a, [ScriptVar] - and 3 + maskbits NUM_UNOWN_PUZZLES +- 1 ld e, a ld d, 0 ld hl, .LZPointers @@ -851,6 +851,7 @@ LoadUnownPuzzlePiecesGFX: ; e17a3 ; e17bd .LZPointers: ; e17bd +; entries correspond to UNOWNPUZZLE_* constants dw KabutoPuzzleLZ dw OmanytePuzzleLZ dw AerodactylPuzzleLZ @@ -316,7 +316,7 @@ SECTION "Crystal Features 2", ROMX INCLUDE "engine/events/kurt.asm" INCLUDE "engine/player_gfx.asm" INCLUDE "mobile/mobile_22.asm" -INCLUDE "engine/events/crystal_unown.asm" +INCLUDE "engine/events/unown_walls.asm" INCLUDE "engine/events/buena.asm" INCLUDE "engine/events/dratini.asm" INCLUDE "engine/events/battle_tower/rules.asm" diff --git a/maps/RuinsOfAlphAerodactylChamber.asm b/maps/RuinsOfAlphAerodactylChamber.asm index 14ed627d1..cce84bafd 100644 --- a/maps/RuinsOfAlphAerodactylChamber.asm +++ b/maps/RuinsOfAlphAerodactylChamber.asm @@ -49,7 +49,7 @@ RuinsOfAlphAerodactylChamber_MapScriptHeader: MapRuinsOfAlphAerodactylChamberSignpost2Script: refreshscreen $0 - writebyte $2 + writebyte UNOWNPUZZLE_AERODACTYL special Special_UnownPuzzle closetext iftrue UnknownScript_0x58df7 @@ -83,7 +83,7 @@ MapRuinsOfAlphAerodactylChamberSignpost3Script: MapRuinsOfAlphAerodactylChamberSignpost4Script: opentext writetext UnknownText_0x58e4f - writebyte $1 + writebyte UNOWNWORDS_LIGHT special Special_DisplayUnownWords closetext end @@ -93,7 +93,7 @@ MapRuinsOfAlphAerodactylChamberSignpost5Script: iftrue UnknownScript_0x58e46 opentext writetext UnknownText_0x58e81 - writebyte $1 + writebyte UNOWNWORDS_LIGHT special Special_DisplayUnownWords closetext end diff --git a/maps/RuinsOfAlphHoOhChamber.asm b/maps/RuinsOfAlphHoOhChamber.asm index 586231a08..02a306f72 100644 --- a/maps/RuinsOfAlphHoOhChamber.asm +++ b/maps/RuinsOfAlphHoOhChamber.asm @@ -50,7 +50,7 @@ RuinsOfAlphHoOhChamber_MapScriptHeader: MapRuinsOfAlphHoOhChamberSignpost2Script: refreshscreen $0 - writebyte $3 + writebyte UNOWNPUZZLE_HO_OH special Special_UnownPuzzle closetext iftrue UnknownScript_0x585ba @@ -84,7 +84,7 @@ MapRuinsOfAlphHoOhChamberSignpost3Script: MapRuinsOfAlphHoOhChamberSignpost4Script: opentext writetext UnknownText_0x58612 - writebyte $3 + writebyte UNOWNWORDS_HO_OH special Special_DisplayUnownWords closetext end @@ -94,7 +94,7 @@ MapRuinsOfAlphHoOhChamberSignpost5Script: iftrue UnknownScript_0x58609 opentext writetext UnknownText_0x58644 - writebyte $3 + writebyte UNOWNWORDS_HO_OH special Special_DisplayUnownWords closetext end diff --git a/maps/RuinsOfAlphKabutoChamber.asm b/maps/RuinsOfAlphKabutoChamber.asm index e7ea3ee53..efcf238c0 100644 --- a/maps/RuinsOfAlphKabutoChamber.asm +++ b/maps/RuinsOfAlphKabutoChamber.asm @@ -56,7 +56,7 @@ RuinsOfAlphKabutoChamberReceptionistScript: MapRuinsOfAlphKabutoChamberSignpost2Script: refreshscreen $0 - writebyte $0 + writebyte UNOWNPUZZLE_KABUTO special Special_UnownPuzzle closetext iftrue UnknownScript_0x58778 @@ -121,7 +121,7 @@ MapRuinsOfAlphKabutoChamberSignpost3Script: MapRuinsOfAlphKabutoChamberSignpost4Script: opentext writetext UnknownText_0x58aa7 - writebyte $0 + writebyte UNOWNWORDS_ESCAPE special Special_DisplayUnownWords closetext end @@ -131,7 +131,7 @@ MapRuinsOfAlphKabutoChamberSignpost5Script: iftrue UnknownScript_0x587f7 opentext writetext UnknownText_0x58ad9 - writebyte $0 + writebyte UNOWNWORDS_ESCAPE special Special_DisplayUnownWords closetext end diff --git a/maps/RuinsOfAlphOmanyteChamber.asm b/maps/RuinsOfAlphOmanyteChamber.asm index 9943aeef8..862b629f7 100644 --- a/maps/RuinsOfAlphOmanyteChamber.asm +++ b/maps/RuinsOfAlphOmanyteChamber.asm @@ -50,7 +50,7 @@ RuinsOfAlphOmanyteChamber_MapScriptHeader: MapRuinsOfAlphOmanyteChamberSignpost2Script: refreshscreen $0 - writebyte $1 + writebyte UNOWNPUZZLE_OMANYTE special Special_UnownPuzzle closetext iftrue UnknownScript_0x58c36 @@ -84,7 +84,7 @@ MapRuinsOfAlphOmanyteChamberSignpost3Script: MapRuinsOfAlphOmanyteChamberSignpost4Script: opentext writetext UnknownText_0x58c8e - writebyte $2 + writebyte UNOWNWORDS_WATER special Special_DisplayUnownWords closetext end @@ -94,7 +94,7 @@ MapRuinsOfAlphOmanyteChamberSignpost5Script: iftrue UnknownScript_0x58c85 opentext writetext UnknownText_0x58cc0 - writebyte $2 + writebyte UNOWNWORDS_WATER special Special_DisplayUnownWords closetext end |