ref: f99a715fae311d2611ec4a714b002e103c4642ca
parent: 725b86ebbec23bd1f53fd60bf0201c904fee951d
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Sat Jul 6 20:44:21 EDT 2019
Replace some hard-coded values with constants
--- a/audio.asm
+++ b/audio.asm
@@ -371,7 +371,7 @@
jr .playSong
.notGymLeaderBattle
ld a, [wCurOpponent]
- cp 200
+ cp OPP_ID_OFFSET
jr c, .wildBattle
cp OPP_SONY3
jr z, .finalBattle
--- a/constants/pokedex_constants.asm
+++ b/constants/pokedex_constants.asm
@@ -152,4 +152,4 @@
const DEX_MEWTWO ; 150
const DEX_MEW ; 151
-NUM_POKEMON EQU 151
+NUM_POKEMON EQU const_value + -1
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -190,3 +190,5 @@
const BELLSPROUT ; $BC
const WEEPINBELL ; $BD
const VICTREEBEL ; $BE
+
+NUM_POKEMON_INDEXES EQU const_value + -1
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -1,6 +1,8 @@
+OPP_ID_OFFSET EQU 200
+
trainer_const: MACRO
\1 EQU const_value
-OPP_\1 EQU const_value + 200
+OPP_\1 EQU const_value + OPP_ID_OFFSET
const_value = const_value + 1
ENDM
--- a/engine/battle/battle_transitions.asm
+++ b/engine/battle/battle_transitions.asm
@@ -82,7 +82,7 @@
GetBattleTransitionID_WildOrTrainer:
ld a, [wCurOpponent]
- cp 200
+ cp OPP_ID_OFFSET
jr nc, .trainer
res 0, c
ret
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -6867,7 +6867,7 @@
res 1, [hl]
callab InitBattleVariables
ld a, [wEnemyMonSpecies2]
- sub 200
+ sub OPP_ID_OFFSET
jp c, InitWildBattle
ld [wTrainerClass], a
call GetTrainerInformation
--- a/engine/battle/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
@@ -101,7 +101,7 @@
; get trainer class number
ld a, [wCurOpponent]
- sub 200
+ sub OPP_ID_OFFSET
ld b, a
ld hl, TeamMoves
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -1,3 +1,5 @@
+MAP_TILESET_SIZE EQU $60
+
UpdatePlayerSprite:
ld a, [wSpriteStateData2]
and a
@@ -13,7 +15,7 @@
.checkIfTextBoxInFrontOfSprite
aCoord 8, 9
ld [hTilePlayerStandingOn], a
- cp $60
+ cp MAP_TILESET_SIZE
jr c, .lowerLeftTileIsMapTile
.disableSprite
ld a, $ff
@@ -127,7 +129,7 @@
and a
jp z, InitializeSpriteStatus
call CheckSpriteAvailability
- ret c ; if sprite is invisible, on tile >=$60, in grass or player is currently walking
+ ret c ; if sprite is invisible, on tile >=MAP_TILESET_SIZE, in grass or player is currently walking
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
ld l, a
@@ -508,21 +510,21 @@
; make the sprite invisible if a text box is in front of it
; $5F is the maximum number for map tiles
call GetTileSpriteStandsOn
- ld d, $60
+ ld d, MAP_TILESET_SIZE
ld a, [hli]
cp d
- jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom left tile)
+ jr nc, .spriteInvisible ; standing on tile with ID >=MAP_TILESET_SIZE (bottom left tile)
ld a, [hld]
cp d
- jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom right tile)
+ jr nc, .spriteInvisible ; standing on tile with ID >=MAP_TILESET_SIZE (bottom right tile)
ld bc, -20
add hl, bc ; go back one row of tiles
ld a, [hli]
cp d
- jr nc, .spriteInvisible ; standing on tile with ID >=$60 (top left tile)
+ jr nc, .spriteInvisible ; standing on tile with ID >=MAP_TILESET_SIZE (top left tile)
ld a, [hl]
cp d
- jr c, .spriteVisible ; standing on tile with ID >=$60 (top right tile)
+ jr c, .spriteVisible ; standing on tile with ID >=MAP_TILESET_SIZE (top right tile)
.spriteInvisible
ld h, wSpriteStateData1 / $100
ld a, [H_CURRENTSPRITEOFFSET]
--- a/engine/palettes.asm
+++ b/engine/palettes.asm
@@ -70,7 +70,7 @@
ld bc, $10
call CopyData
ld a, [wcf91]
- cp VICTREEBEL + 1
+ cp NUM_POKEMON_INDEXES + 1
jr c, .pokemon
ld a, $1 ; not pokemon
.pokemon
--- a/engine/pokedex_rating.asm
+++ b/engine/pokedex_rating.asm
@@ -86,7 +86,7 @@
dw PokedexRatingText_44242
db 150
dw PokedexRatingText_44247
- db 152
+ db NUM_POKEMON + 1
dw PokedexRatingText_4424c
PokedexRatingText_44201:
--- a/home.asm
+++ b/home.asm
@@ -2390,7 +2390,7 @@
ld b, FLAG_SET
call TrainerFlagAction ; flag trainer as fought
ld a, [wEnemyMonOrTrainerClass]
- cp 200
+ cp OPP_ID_OFFSET
jr nc, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite)
ld hl, wMissableObjectList
ld de, $2
@@ -2424,7 +2424,7 @@
ld a, [wEngagedTrainerClass]
ld [wCurOpponent], a
ld [wEnemyMonOrTrainerClass], a
- cp 200
+ cp OPP_ID_OFFSET
ld a, [wEngagedTrainerSet]
jr c, .noTrainer
ld [wTrainerNo], a
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -887,7 +887,7 @@
ld hl, wOverworldMap
ld a, [wMapBackgroundTile]
ld d, a
- ld bc, $0514
+ ld bc, wOverworldMapEnd - wOverworldMap
.backgroundTileLoop
ld a, d
ld [hli], a
--- a/scripts/PokemonMansion3F.asm
+++ b/scripts/PokemonMansion3F.asm
@@ -16,18 +16,18 @@
CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .asm_52224
ld a, $e
- ld bc, $207
+ lb bc, 2, 7
call Mansion2Script_5202f
ld a, $5f
- ld bc, $507
+ lb bc, 5, 7
call Mansion2Script_5202f
ret
.asm_52224
ld a, $5f
- ld bc, $207
+ lb bc, 2, 7
call Mansion2Script_5202f
ld a, $e
- ld bc, $507
+ lb bc, 5, 7
call Mansion2Script_5202f
ret
@@ -43,9 +43,9 @@
and a
jp z, CheckFightingMapTrainers
cp $3
- ld a, $a5
+ ld a, POKEMON_MANSION_1F
jr nz, .asm_52250
- ld a, $d6
+ ld a, POKEMON_MANSION_2F
.asm_52250
ld [wDungeonWarpDestinationMap], a
ret
--- a/scripts/SeafoamIslands1F.asm
+++ b/scripts/SeafoamIslands1F.asm
@@ -32,7 +32,7 @@
ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_4483b
- ld a, $9f
+ ld a, SEAFOAM_ISLANDS_B1F
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam1HolesCoords
jp IsPlayerOnDungeonWarp
--- a/scripts/SeafoamIslandsB1F.asm
+++ b/scripts/SeafoamIslandsB1F.asm
@@ -31,7 +31,7 @@
ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_46362
- ld a, $a0
+ ld a, SEAFOAM_ISLANDS_B2F
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam2HolesCoords
jp IsPlayerOnDungeonWarp
--- a/scripts/SeafoamIslandsB2F.asm
+++ b/scripts/SeafoamIslandsB2F.asm
@@ -31,7 +31,7 @@
ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_4649e
- ld a, $a1
+ ld a, SEAFOAM_ISLANDS_B3F
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam3HolesCoords
jp IsPlayerOnDungeonWarp
--- a/scripts/SeafoamIslandsB3F.asm
+++ b/scripts/SeafoamIslandsB3F.asm
@@ -32,7 +32,7 @@
predef ShowObject
jr .asm_465ed
.asm_465dc
- ld a, $a2
+ ld a, SEAFOAM_ISLANDS_B4F
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam4HolesCoords
call IsPlayerOnDungeonWarp
--- a/wram.asm
+++ b/wram.asm
@@ -346,6 +346,7 @@
wTempPic::
wOverworldMap:: ; c6e8
ds 1300
+wOverworldMapEnd::
wRedrawRowOrColumnSrcTiles:: ; cbfc
; the tiles of the row or column to be redrawn by RedrawRowOrColumn
@@ -1638,7 +1639,7 @@
wCurOpponent:: ; d059
; in a wild battle, this is the species of pokemon
-; in a trainer battle, this is the trainer class + 200
+; in a trainer battle, this is the trainer class + OPP_ID_OFFSET
ds 1
wBattleType:: ; d05a
@@ -2916,7 +2917,7 @@
ds 2
wEnemyMonOrTrainerClass:: ; d713
-; trainer classes start at 200
+; trainer classes start at OPP_ID_OFFSET
ds 1
wPlayerJumpingYScreenCoordsIndex:: ; d714