shithub: pokered

Download patch

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