diff options
-rwxr-xr-x | engine/battle/4_2.asm | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/engine/battle/4_2.asm b/engine/battle/4_2.asm index aaada492..ef4798bd 100755 --- a/engine/battle/4_2.asm +++ b/engine/battle/4_2.asm @@ -110,31 +110,36 @@ Func_13870: ; 13870 (4:7870) jr z, .asm_13905 ld [wd0db], a .asm_1389e +; determine if wild pokémon can appear where we’re standing. +; are we standing in grass/water? hlCoord 9, 9 ld c, [hl] ld a, [W_GRASSTILE] cp c - ld a, [W_GRASSRATE] ; W_GRASSRATE - jr z, .asm_138c4 - ld a, $14 + ld a, [W_GRASSRATE] + jr z, .CanEncounter + ld a, $14 ; in all tilesets with a water tile, this is its id cp c - ld a, [W_WATERRATE] ; wEnemyMon1Species - jr z, .asm_138c4 - ld a, [W_CURMAP] ; W_CURMAP - cp REDS_HOUSE_1F - jr c, .asm_13912 - ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET + ld a, [W_WATERRATE] + jr z, .CanEncounter +; even if not in grass/water, standing anywhere we can encounter pokémon +; so long as the map is “indoor” and has wild pokémon defined. +; …as long as it’s not Viridian Forest or Safari Zone. + ld a, [W_CURMAP] + cp REDS_HOUSE_1F ; is this an indoor map? + jr c, .CantEncounter + ld a, [W_CURMAPTILESET] cp FOREST ; Viridian Forest/Safari Zone - jr z, .asm_13912 - ld a, [W_GRASSRATE] ; W_GRASSRATE -.asm_138c4 + jr z, .CantEncounter + ld a, [W_GRASSRATE] +.CanEncounter ld b, a ld a, [hRandomAdd] cp b - jr nc, .asm_13912 + jr nc, .CantEncounter ld a, [hRandomSub] ld b, a - ld hl, WildMonEncounterSlotChances ; $7918 + ld hl, WildMonEncounterSlotChances .asm_138d0 ld a, [hli] cp b @@ -143,27 +148,27 @@ Func_13870: ; 13870 (4:7870) jr .asm_138d0 .asm_138d7 ld c, [hl] - ld hl, W_GRASSMONS ; wd888 + ld hl, W_GRASSMONS aCoord 8, 9 cp $14 jr nz, .asm_138e5 - ld hl, W_WATERMONS ; wd8a5 (aliases: wEnemyMon1HP) + ld hl, W_WATERMONS .asm_138e5 ld b, $0 add hl, bc ld a, [hli] - ld [W_CURENEMYLVL], a ; W_CURENEMYLVL + ld [W_CURENEMYLVL], a ld a, [hl] ld [wcf91], a ld [wEnemyMonSpecies2], a ld a, [wd0db] and a jr z, .asm_13916 - ld a, [wPartyMon1Level] ; wPartyMon1Level + ld a, [wPartyMon1Level] ld b, a - ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL + ld a, [W_CURENEMYLVL] cp b - jr c, .asm_13912 + jr c, .CantEncounter jr .asm_13916 .asm_13905 ld [wd0db], a @@ -171,7 +176,7 @@ Func_13870: ; 13870 (4:7870) ld [H_DOWNARROWBLINKCNT2], a ; $ff8c call EnableAutoTextBoxDrawing call DisplayTextID -.asm_13912 +.CantEncounter ld a, $1 and a ret |