diff options
Diffstat (limited to 'engine/events/hidden_object_functions18.asm')
-rwxr-xr-x | engine/events/hidden_object_functions18.asm | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/engine/events/hidden_object_functions18.asm b/engine/events/hidden_object_functions18.asm new file mode 100755 index 00000000..c0e5aa34 --- /dev/null +++ b/engine/events/hidden_object_functions18.asm @@ -0,0 +1,198 @@ +GymStatues: +; if in a gym and have the corresponding badge, a = GymStatueText2_id and jp PrintPredefTextID +; if in a gym and don’t have the corresponding badge, a = GymStatueText1_id and jp PrintPredefTextID +; else ret + call EnableAutoTextBoxDrawing + ld a, [wSpriteStateData1 + 9] + cp SPRITE_FACING_UP + ret nz + ld hl, .BadgeFlags + ld a, [wCurMap] + ld b, a +.loop + ld a, [hli] + cp $ff + ret z + cp b + jr z, .match + inc hl + jr .loop +.match + ld b, [hl] + ld a, [wBeatGymFlags] + and b + cp b + tx_pre_id GymStatueText2 + jr z, .haveBadge + tx_pre_id GymStatueText1 +.haveBadge + jp PrintPredefTextID + +.BadgeFlags: + db PEWTER_GYM, %00000001 + db CERULEAN_GYM, %00000010 + db VERMILION_GYM,%00000100 + db CELADON_GYM, %00001000 + db FUCHSIA_GYM, %00010000 + db SAFFRON_GYM, %00100000 + db CINNABAR_GYM, %01000000 + db VIRIDIAN_GYM, %10000000 + db $ff + +GymStatueText1:: + TX_FAR _GymStatueText1 + db "@" + +GymStatueText2:: + TX_FAR _GymStatueText2 + db "@" + +PrintBenchGuyText: + call EnableAutoTextBoxDrawing + ld hl, BenchGuyTextPointers + ld a, [wCurMap] + ld b, a +.loop + ld a, [hli] + cp $ff + ret z + cp b + jr z, .match + inc hl + inc hl + jr .loop +.match + ld a, [hli] + ld b, a + ld a, [wSpriteStateData1 + 9] + cp b + jr nz, .loop ; player isn't facing left at the bench guy + ld a, [hl] + jp PrintPredefTextID + +; format: db map id, player sprite facing direction, text id of PredefTextIDPointerTable +BenchGuyTextPointers: + db VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre ViridianCityPokecenterBenchGuyText + db PEWTER_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre PewterCityPokecenterBenchGuyText + db CERULEAN_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre CeruleanCityPokecenterBenchGuyText + db LAVENDER_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre LavenderCityPokecenterBenchGuyText + db VERMILION_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre VermilionCityPokecenterBenchGuyText + db CELADON_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre CeladonCityPokecenterBenchGuyText + db CELADON_HOTEL, SPRITE_FACING_LEFT + db_tx_pre CeladonCityHotelText + db FUCHSIA_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre FuchsiaCityPokecenterBenchGuyText + db CINNABAR_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre CinnabarIslandPokecenterBenchGuyText + db SAFFRON_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre SaffronCityPokecenterBenchGuyText + db MT_MOON_POKECENTER, SPRITE_FACING_LEFT + db_tx_pre MtMoonPokecenterBenchGuyText + db ROCK_TUNNEL_POKECENTER,SPRITE_FACING_LEFT + db_tx_pre RockTunnelPokecenterBenchGuyText + db $FF + +ViridianCityPokecenterBenchGuyText:: + TX_FAR _ViridianCityPokecenterGuyText + db "@" + +PewterCityPokecenterBenchGuyText:: + TX_FAR _PewterCityPokecenterGuyText + db "@" + +CeruleanCityPokecenterBenchGuyText:: + TX_FAR _CeruleanPokecenterGuyText + db "@" + +LavenderCityPokecenterBenchGuyText:: + TX_FAR _LavenderPokecenterGuyText + db "@" + +MtMoonPokecenterBenchGuyText:: + TX_FAR _MtMoonPokecenterBenchGuyText + db "@" + +RockTunnelPokecenterBenchGuyText:: + TX_FAR _RockTunnelPokecenterGuyText + db "@" + +UnusedBenchGuyText1:: + TX_FAR _UnusedBenchGuyText1 + db "@" + +UnusedBenchGuyText2:: + TX_FAR _UnusedBenchGuyText2 + db "@" + +UnusedBenchGuyText3:: + TX_FAR _UnusedBenchGuyText3 + db "@" + +VermilionCityPokecenterBenchGuyText:: + TX_FAR _VermilionPokecenterGuyText + db "@" + +CeladonCityPokecenterBenchGuyText:: + TX_FAR _CeladonCityPokecenterGuyText + db "@" + +FuchsiaCityPokecenterBenchGuyText:: + TX_FAR _FuchsiaCityPokecenterGuyText + db "@" + +CinnabarIslandPokecenterBenchGuyText:: + TX_FAR _CinnabarPokecenterGuyText + db "@" + +SaffronCityPokecenterBenchGuyText:: + TX_ASM + CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI + ld hl, SaffronCityPokecenterBenchGuyText2 + jr nz, .asm_624f2 + ld hl, SaffronCityPokecenterBenchGuyText1 +.asm_624f2 + call PrintText + jp TextScriptEnd + +SaffronCityPokecenterBenchGuyText1: + TX_FAR _SaffronCityPokecenterGuyText1 + db "@" + +SaffronCityPokecenterBenchGuyText2: + TX_FAR _SaffronCityPokecenterGuyText2 + db "@" + +CeladonCityHotelText:: + TX_FAR _CeladonCityHotelText + db "@" + + ret + +UnusedPredefText:: + db "@" + +PrintBookcaseText: + call EnableAutoTextBoxDrawing + tx_pre_jump BookcaseText + +BookcaseText:: + TX_FAR _BookcaseText + db "@" + +OpenPokemonCenterPC: + ld a, [wSpriteStateData1 + 9] + cp SPRITE_FACING_UP ; check to see if player is facing up + ret nz + call EnableAutoTextBoxDrawing + ld a, $1 + ld [wAutoTextBoxDrawingControl], a + tx_pre_jump PokemonCenterPCText + +PokemonCenterPCText:: + TX_POKECENTER_PC |