pokered/scripts/PokemonMansionB1F.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

120 lines
3.4 KiB
NASM

PokemonMansionB1F_Script:
call Mansion4Script_523cf
call EnableAutoTextBoxDrawing
ld hl, Mansion4TrainerHeaders
ld de, PokemonMansionB1F_ScriptPointers
ld a, [wPokemonMansionB1FCurScript]
call ExecuteCurMapScriptInTable
ld [wPokemonMansionB1FCurScript], a
ret
Mansion4Script_523cf:
ld hl, wCurrentMapScriptFlags
bit 5, [hl]
res 5, [hl]
ret z
CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .asm_523ff
ld a, $e
ld bc, $80d
call Mansion2Script_5202f
ld a, $e
ld bc, $b06
call Mansion2Script_5202f
ld a, $5f
ld bc, $304
call Mansion2Script_5202f
ld a, $54
ld bc, $808
call Mansion2Script_5202f
ret
.asm_523ff
ld a, $2d
ld bc, $80d
call Mansion2Script_5202f
ld a, $5f
ld bc, $b06
call Mansion2Script_5202f
ld a, $e
ld bc, $304
call Mansion2Script_5202f
ld a, $e
ld bc, $808
call Mansion2Script_5202f
ret
Mansion4Script_Switches::
ld a, [wSpritePlayerStateData1FacingDirection]
cp SPRITE_FACING_UP
ret nz
xor a
ldh [hJoyHeld], a
ld a, TEXT_POKEMONMANSIONB1F_SWITCH
ldh [hSpriteIndexOrTextID], a
jp DisplayTextID
PokemonMansionB1F_ScriptPointers:
def_script_pointers
dw_const CheckFightingMapTrainers, SCRIPT_POKEMONMANSIONB1F_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_POKEMONMANSIONB1F_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_POKEMONMANSIONB1F_END_BATTLE
PokemonMansionB1F_TextPointers:
def_text_pointers
dw_const PokemonMansionB1FBurglarText, TEXT_POKEMONMANSIONB1F_BURGLAR
dw_const PokemonMansionB1FScientistText, TEXT_POKEMONMANSIONB1F_SCIENTIST
dw_const PickUpItemText, TEXT_POKEMONMANSIONB1F_RARE_CANDY
dw_const PickUpItemText, TEXT_POKEMONMANSIONB1F_FULL_RESTORE
dw_const PickUpItemText, TEXT_POKEMONMANSIONB1F_TM_BLIZZARD
dw_const PickUpItemText, TEXT_POKEMONMANSIONB1F_TM_SOLARBEAM
dw_const PokemonMansionB1FDiaryText, TEXT_POKEMONMANSIONB1F_DIARY
dw_const PickUpItemText, TEXT_POKEMONMANSIONB1F_SECRET_KEY
dw_const PokemonMansion2FSwitchText, TEXT_POKEMONMANSIONB1F_SWITCH ; This switch uses the text script from the 2F.
Mansion4TrainerHeaders:
def_trainers
Mansion4TrainerHeader0:
trainer EVENT_BEAT_MANSION_4_TRAINER_0, 0, PokemonMansionB1FBurglarBattleText, PokemonMansionB1FBurglarEndBattleText, PokemonMansionB1FBurglarAfterBattleText
Mansion4TrainerHeader1:
trainer EVENT_BEAT_MANSION_4_TRAINER_1, 3, PokemonMansionB1FScientistBattleText, PokemonMansionB1FScientistEndBattleText, PokemonMansionB1FScientistAfterBattleText
db -1 ; end
PokemonMansionB1FBurglarText:
text_asm
ld hl, Mansion4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonMansionB1FScientistText:
text_asm
ld hl, Mansion4TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
PokemonMansionB1FBurglarBattleText:
text_far _PokemonMansionB1FBurglarBattleText
text_end
PokemonMansionB1FBurglarEndBattleText:
text_far _PokemonMansionB1FBurglarEndBattleText
text_end
PokemonMansionB1FBurglarAfterBattleText:
text_far _PokemonMansionB1FBurglarAfterBattleText
text_end
PokemonMansionB1FScientistBattleText:
text_far _PokemonMansionB1FScientistBattleText
text_end
PokemonMansionB1FScientistEndBattleText:
text_far _PokemonMansionB1FScientistEndBattleText
text_end
PokemonMansionB1FScientistAfterBattleText:
text_far _PokemonMansionB1FScientistAfterBattleText
text_end
PokemonMansionB1FDiaryText:
text_far _PokemonMansionB1FDiaryText
text_end