mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
d001ced41b
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.
225 lines
5.3 KiB
NASM
225 lines
5.3 KiB
NASM
PewterGym_Script:
|
|
ld hl, wCurrentMapScriptFlags
|
|
bit 6, [hl]
|
|
res 6, [hl]
|
|
call nz, .LoadNames
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, PewterGymTrainerHeaders
|
|
ld de, PewterGym_ScriptPointers
|
|
ld a, [wPewterGymCurScript]
|
|
call ExecuteCurMapScriptInTable
|
|
ld [wPewterGymCurScript], a
|
|
ret
|
|
|
|
.LoadNames:
|
|
ld hl, .CityName
|
|
ld de, .LeaderName
|
|
jp LoadGymLeaderAndCityName
|
|
|
|
.CityName:
|
|
db "PEWTER CITY@"
|
|
|
|
.LeaderName:
|
|
db "BROCK@"
|
|
|
|
PewterGymResetScripts:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wPewterGymCurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
PewterGym_ScriptPointers:
|
|
def_script_pointers
|
|
dw_const CheckFightingMapTrainers, SCRIPT_PEWTERGYM_DEFAULT
|
|
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_PEWTERGYM_START_BATTLE
|
|
dw_const EndTrainerBattle, SCRIPT_PEWTERGYM_END_BATTLE
|
|
dw_const PewterGymBrockPostBattle, SCRIPT_PEWTERGYM_BROCK_POST_BATTLE
|
|
|
|
PewterGymBrockPostBattle:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, PewterGymResetScripts
|
|
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
|
|
ld [wJoyIgnore], a
|
|
; fallthrough
|
|
PewterGymScriptReceiveTM34:
|
|
ld a, TEXT_PEWTERGYM_BROCK_WAIT_TAKE_THIS
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SetEvent EVENT_BEAT_BROCK
|
|
lb bc, TM_BIDE, 1
|
|
call GiveItem
|
|
jr nc, .BagFull
|
|
ld a, TEXT_PEWTERGYM_RECEIVED_TM34
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SetEvent EVENT_GOT_TM34
|
|
jr .gymVictory
|
|
.BagFull
|
|
ld a, TEXT_PEWTERGYM_TM34_NO_ROOM
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
.gymVictory
|
|
ld hl, wObtainedBadges
|
|
set BIT_BOULDERBADGE, [hl]
|
|
ld hl, wBeatGymFlags
|
|
set BIT_BOULDERBADGE, [hl]
|
|
|
|
ld a, HS_GYM_GUY
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
ld a, HS_ROUTE_22_RIVAL_1
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
|
|
ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
|
|
|
|
; deactivate gym trainers
|
|
SetEvent EVENT_BEAT_PEWTER_GYM_TRAINER_0
|
|
|
|
jp PewterGymResetScripts
|
|
|
|
PewterGym_TextPointers:
|
|
def_text_pointers
|
|
dw_const PewterGymBrockText, TEXT_PEWTERGYM_BROCK
|
|
dw_const PewterGymCooltrainerMText, TEXT_PEWTERGYM_COOLTRAINER_M
|
|
dw_const PewterGymGuideText, TEXT_PEWTERGYM_GYM_GUIDE
|
|
dw_const PewterGymBrockWaitTakeThisText, TEXT_PEWTERGYM_BROCK_WAIT_TAKE_THIS
|
|
dw_const PewterGymReceivedTM34Text, TEXT_PEWTERGYM_RECEIVED_TM34
|
|
dw_const PewterGymTM34NoRoomText, TEXT_PEWTERGYM_TM34_NO_ROOM
|
|
|
|
PewterGymTrainerHeaders:
|
|
def_trainers 2
|
|
PewterGymTrainerHeader0:
|
|
trainer EVENT_BEAT_PEWTER_GYM_TRAINER_0, 5, PewterGymCooltrainerMBattleText, PewterGymCooltrainerMEndBattleText, PewterGymCooltrainerMAfterBattleText
|
|
db -1 ; end
|
|
|
|
PewterGymBrockText:
|
|
text_asm
|
|
CheckEvent EVENT_BEAT_BROCK
|
|
jr z, .beforeBeat
|
|
CheckEventReuseA EVENT_GOT_TM34
|
|
jr nz, .afterBeat
|
|
call z, PewterGymScriptReceiveTM34
|
|
call DisableWaitingAfterTextDisplay
|
|
jr .done
|
|
.afterBeat
|
|
ld hl, .PostBattleAdviceText
|
|
call PrintText
|
|
jr .done
|
|
.beforeBeat
|
|
ld hl, .PreBattleText
|
|
call PrintText
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, PewterGymBrockReceivedBoulderBadgeText
|
|
ld de, PewterGymBrockReceivedBoulderBadgeText
|
|
call SaveEndBattleTextPointers
|
|
ldh a, [hSpriteIndex]
|
|
ld [wSpriteIndex], a
|
|
call EngageMapTrainer
|
|
call InitBattleEnemyParameters
|
|
ld a, $1
|
|
ld [wGymLeaderNo], a
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, SCRIPT_PEWTERGYM_BROCK_POST_BATTLE
|
|
ld [wPewterGymCurScript], a
|
|
ld [wCurMapScript], a
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
.PreBattleText:
|
|
text_far _PewterGymBrockPreBattleText
|
|
text_end
|
|
|
|
.PostBattleAdviceText:
|
|
text_far _PewterGymBrockPostBattleAdviceText
|
|
text_end
|
|
|
|
PewterGymBrockWaitTakeThisText:
|
|
text_far _PewterGymBrockWaitTakeThisText
|
|
text_end
|
|
|
|
PewterGymReceivedTM34Text:
|
|
text_far _PewterGymReceivedTM34Text
|
|
sound_get_item_1
|
|
text_far _TM34ExplanationText
|
|
text_end
|
|
|
|
PewterGymTM34NoRoomText:
|
|
text_far _PewterGymTM34NoRoomText
|
|
text_end
|
|
|
|
PewterGymBrockReceivedBoulderBadgeText:
|
|
text_far _PewterGymBrockReceivedBoulderBadgeText
|
|
sound_level_up ; probably supposed to play SFX_GET_ITEM_1 but the wrong music bank is loaded
|
|
text_far _PewterGymBrockBoulderBadgeInfoText ; Text to tell that the flash technique can be used
|
|
text_end
|
|
|
|
PewterGymCooltrainerMText:
|
|
text_asm
|
|
ld hl, PewterGymTrainerHeader0
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
PewterGymCooltrainerMBattleText:
|
|
text_far _PewterGymCooltrainerMBattleText
|
|
text_end
|
|
|
|
PewterGymCooltrainerMEndBattleText:
|
|
text_far _PewterGymCooltrainerMEndBattleText
|
|
text_end
|
|
|
|
PewterGymCooltrainerMAfterBattleText:
|
|
text_far _PewterGymCooltrainerMAfterBattleText
|
|
text_end
|
|
|
|
PewterGymGuideText:
|
|
text_asm
|
|
ld a, [wBeatGymFlags]
|
|
bit BIT_BOULDERBADGE, a
|
|
jr nz, .afterBeat
|
|
ld hl, PewterGymGuidePreAdviceText
|
|
call PrintText
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr nz, .PewterGymGuideBeginAdviceText
|
|
ld hl, PewterGymGuideBeginAdviceText
|
|
call PrintText
|
|
jr .PewterGymGuideAdviceText
|
|
.PewterGymGuideBeginAdviceText
|
|
ld hl, PewterGymGuideFreeServiceText
|
|
call PrintText
|
|
.PewterGymGuideAdviceText
|
|
ld hl, PewterGymGuideAdviceText
|
|
call PrintText
|
|
jr .done
|
|
.afterBeat
|
|
ld hl, PewterGymGuidePostBattleText
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
PewterGymGuidePreAdviceText:
|
|
text_far _PewterGymGuidePreAdviceText
|
|
text_end
|
|
|
|
PewterGymGuideBeginAdviceText:
|
|
text_far _PewterGymGuideBeginAdviceText
|
|
text_end
|
|
|
|
PewterGymGuideAdviceText:
|
|
text_far _PewterGymGuideAdviceText
|
|
text_end
|
|
|
|
PewterGymGuideFreeServiceText:
|
|
text_far _PewterGymGuideFreeServiceText
|
|
text_end
|
|
|
|
PewterGymGuidePostBattleText:
|
|
text_far _PewterGymGuidePostBattleText
|
|
text_end
|