summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemy Oukaour <remy.oukaour@gmail.com>2018-01-11 00:25:14 -0500
committerRemy Oukaour <remy.oukaour@gmail.com>2018-01-11 00:25:14 -0500
commitcc8dac5a22a4f9307dd2f94e4bf29ee5b132c0b7 (patch)
tree5984fd340a792f485ee19f3a60c85dbf80459ec4
parent3b7c495e38345dc135ef3224d5fc3c8d0e0ce087 (diff)
Use constants and data for Unown chamber events
-rw-r--r--constants/map_data_constants.asm67
-rw-r--r--data/unown_walls.asm58
-rw-r--r--engine/events/unown_walls.asm (renamed from engine/events/crystal_unown.asm)73
-rwxr-xr-xengine/unown_puzzle.asm9
-rw-r--r--main.asm2
-rw-r--r--maps/RuinsOfAlphAerodactylChamber.asm6
-rw-r--r--maps/RuinsOfAlphHoOhChamber.asm6
-rw-r--r--maps/RuinsOfAlphKabutoChamber.asm6
-rw-r--r--maps/RuinsOfAlphOmanyteChamber.asm6
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
diff --git a/main.asm b/main.asm
index 6a6344152..66d88abbf 100644
--- a/main.asm
+++ b/main.asm
@@ -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