pokered/scripts/PokemonFanClub.asm
vulcandth d001ced41b
Add macros, constants, and labels for map scripts and text (#367)
This introduces `def_script_pointers`, `def_text_pointers`, and `object_const_def` macros, and applies them to all maps. Most other map labels have also been identified.
2023-07-13 21:27:56 -04:00

169 lines
3.3 KiB
NASM

PokemonFanClub_Script:
jp EnableAutoTextBoxDrawing
PokemonFanClub_CheckBikeInBag:
; check if any bike paraphernalia in bag
CheckEvent EVENT_GOT_BIKE_VOUCHER
ret nz
ld b, BICYCLE
call IsItemInBag
ret nz
ld b, BIKE_VOUCHER
jp IsItemInBag
PokemonFanClub_TextPointers:
def_text_pointers
dw_const PokemonFanClubPikachuFanText, TEXT_POKEMONFANCLUB_PIKACHU_FAN
dw_const PokemonFanClubSeelFanText, TEXT_POKEMONFANCLUB_SEEL_FAN
dw_const PokemonFanClubPikachuText, TEXT_POKEMONFANCLUB_PIKACHU
dw_const PokemonFanClubSeelText, TEXT_POKEMONFANCLUB_SEEL
dw_const PokemonFanClubChairmanText, TEXT_POKEMONFANCLUB_CHAIRMAN
dw_const PokemonFanClubReceptionistText, TEXT_POKEMONFANCLUB_RECEPTIONIST
dw_const PokemonFanClubSign1Text, TEXT_POKEMONFANCLUB_SIGN_1
dw_const PokemonFanClubSign2Text, TEXT_POKEMONFANCLUB_SIGN_2
PokemonFanClubPikachuFanText:
text_asm
CheckEvent EVENT_PIKACHU_FAN_BOAST
jr nz, .mineisbetter
ld hl, .NormalText
call PrintText
SetEvent EVENT_SEEL_FAN_BOAST
jr .done
.mineisbetter
ld hl, .BetterText
call PrintText
ResetEvent EVENT_PIKACHU_FAN_BOAST
.done
jp TextScriptEnd
.NormalText:
text_far _PokemonFanClubPikachuFanNormalText
text_end
.BetterText:
text_far _PokemonFanClubPikachuFanBetterText
text_end
PokemonFanClubSeelFanText:
text_asm
CheckEvent EVENT_SEEL_FAN_BOAST
jr nz, .mineisbetter
ld hl, .NormalText
call PrintText
SetEvent EVENT_PIKACHU_FAN_BOAST
jr .done
.mineisbetter
ld hl, .BetterText
call PrintText
ResetEvent EVENT_SEEL_FAN_BOAST
.done
jp TextScriptEnd
.NormalText:
text_far _PokemonFanClubSeelFanNormalText
text_end
.BetterText:
text_far _PokemonFanClubSeelFanBetterText
text_end
PokemonFanClubPikachuText:
text_asm
ld hl, .Text
call PrintText
ld a, PIKACHU
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
.Text
text_far _PokemonFanClubPikachuText
text_end
PokemonFanClubSeelText:
text_asm
ld hl, .Text
call PrintText
ld a, SEEL
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
.Text:
text_far _PokemonFanClubSeelText
text_end
PokemonFanClubChairmanText:
text_asm
call PokemonFanClub_CheckBikeInBag
jr nz, .nothingleft
ld hl, .IntroText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .nothanks
; tell the story
ld hl, .StoryText
call PrintText
lb bc, BIKE_VOUCHER, 1
call GiveItem
jr nc, .bag_full
ld hl, .BikeVoucherText
call PrintText
SetEvent EVENT_GOT_BIKE_VOUCHER
jr .done
.bag_full
ld hl, .BagFullText
call PrintText
jr .done
.nothanks
ld hl, .NoStoryText
call PrintText
jr .done
.nothingleft
ld hl, .FinalText
call PrintText
.done
jp TextScriptEnd
.IntroText:
text_far _PokemonFanClubChairmanIntroText
text_end
.StoryText:
text_far _PokemonFanClubChairmanStoryText
text_end
.BikeVoucherText:
text_far _PokemonFanClubReceivedBikeVoucherText
sound_get_key_item
text_far _PokemonFanClubExplainBikeVoucherText
text_end
.NoStoryText:
text_far _PokemonFanClubNoStoryText
text_end
.FinalText:
text_far _PokemonFanClubChairFinalText
text_end
.BagFullText:
text_far _PokemonFanClubBagFullText
text_end
PokemonFanClubReceptionistText:
text_far _PokemonFanClubReceptionistText
text_end
PokemonFanClubSign1Text:
text_far _PokemonFanClubSign1Text
text_end
PokemonFanClubSign2Text:
text_far _PokemonFanClubSign2Text
text_end