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

303 lines
7.4 KiB
NASM

RocketHideoutB2F_Script:
call EnableAutoTextBoxDrawing
ld hl, RocketHideout2TrainerHeaders
ld de, RocketHideoutB2F_ScriptPointers
ld a, [wRocketHideoutB2FCurScript]
call ExecuteCurMapScriptInTable
ld [wRocketHideoutB2FCurScript], a
ret
RocketHideoutB2F_ScriptPointers:
def_script_pointers
dw_const RocketHideoutB2FDefaultScript, SCRIPT_ROCKETHIDEOUTB2F_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_ROCKETHIDEOUTB2F_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_ROCKETHIDEOUTB2F_END_BATTLE
dw_const RocketHideoutB2FPlayerSpinningScript, SCRIPT_ROCKETHIDEOUTB2F_PLAYER_SPINNING
RocketHideoutB2FDefaultScript:
ld a, [wYCoord]
ld b, a
ld a, [wXCoord]
ld c, a
ld hl, RocketHideout2ArrowTilePlayerMovement
call DecodeArrowMovementRLE
cp $ff
jp z, CheckFightingMapTrainers
ld hl, wd736
set 7, [hl]
call StartSimulatingJoypadStates
ld a, SFX_ARROW_TILES
call PlaySound
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB2F_PLAYER_SPINNING
ld [wCurMapScript], a
ret
RocketHideout2ArrowTilePlayerMovement:
map_coord_movement 4, 9, RocketHideout2ArrowMovement1
map_coord_movement 4, 11, RocketHideout2ArrowMovement2
map_coord_movement 4, 15, RocketHideout2ArrowMovement3
map_coord_movement 4, 16, RocketHideout2ArrowMovement4
map_coord_movement 4, 19, RocketHideout2ArrowMovement1
map_coord_movement 4, 22, RocketHideout2ArrowMovement5
map_coord_movement 5, 14, RocketHideout2ArrowMovement6
map_coord_movement 6, 22, RocketHideout2ArrowMovement7
map_coord_movement 6, 24, RocketHideout2ArrowMovement8
map_coord_movement 8, 9, RocketHideout2ArrowMovement9
map_coord_movement 8, 12, RocketHideout2ArrowMovement10
map_coord_movement 8, 15, RocketHideout2ArrowMovement8
map_coord_movement 8, 19, RocketHideout2ArrowMovement9
map_coord_movement 8, 23, RocketHideout2ArrowMovement11
map_coord_movement 9, 14, RocketHideout2ArrowMovement12
map_coord_movement 9, 22, RocketHideout2ArrowMovement12
map_coord_movement 10, 9, RocketHideout2ArrowMovement13
map_coord_movement 10, 10, RocketHideout2ArrowMovement14
map_coord_movement 10, 15, RocketHideout2ArrowMovement15
map_coord_movement 10, 17, RocketHideout2ArrowMovement16
map_coord_movement 10, 19, RocketHideout2ArrowMovement17
map_coord_movement 10, 25, RocketHideout2ArrowMovement2
map_coord_movement 11, 14, RocketHideout2ArrowMovement18
map_coord_movement 11, 16, RocketHideout2ArrowMovement19
map_coord_movement 11, 18, RocketHideout2ArrowMovement12
map_coord_movement 12, 9, RocketHideout2ArrowMovement20
map_coord_movement 12, 11, RocketHideout2ArrowMovement21
map_coord_movement 12, 13, RocketHideout2ArrowMovement22
map_coord_movement 12, 17, RocketHideout2ArrowMovement23
map_coord_movement 13, 10, RocketHideout2ArrowMovement24
map_coord_movement 13, 12, RocketHideout2ArrowMovement25
map_coord_movement 13, 16, RocketHideout2ArrowMovement26
map_coord_movement 13, 18, RocketHideout2ArrowMovement27
map_coord_movement 13, 19, RocketHideout2ArrowMovement28
map_coord_movement 13, 22, RocketHideout2ArrowMovement29
map_coord_movement 13, 23, RocketHideout2ArrowMovement30
map_coord_movement 14, 17, RocketHideout2ArrowMovement31
map_coord_movement 15, 16, RocketHideout2ArrowMovement12
map_coord_movement 16, 14, RocketHideout2ArrowMovement32
map_coord_movement 16, 16, RocketHideout2ArrowMovement33
map_coord_movement 16, 18, RocketHideout2ArrowMovement34
map_coord_movement 17, 10, RocketHideout2ArrowMovement35
map_coord_movement 17, 11, RocketHideout2ArrowMovement36
db -1 ; end
;format: direction, count
;each list is read starting from the $FF and working backwards
RocketHideout2ArrowMovement1:
db D_LEFT, 2
db -1 ; end
RocketHideout2ArrowMovement2:
db D_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement3:
db D_UP, 4
db D_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement4:
db D_UP, 4
db D_RIGHT, 4
db D_UP, 1
db -1 ; end
RocketHideout2ArrowMovement5:
db D_LEFT, 2
db D_UP, 3
db -1 ; end
RocketHideout2ArrowMovement6:
db D_DOWN, 2
db D_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement7:
db D_UP, 2
db -1 ; end
RocketHideout2ArrowMovement8:
db D_UP, 4
db -1 ; end
RocketHideout2ArrowMovement9:
db D_LEFT, 6
db -1 ; end
RocketHideout2ArrowMovement10:
db D_UP, 1
db -1 ; end
RocketHideout2ArrowMovement11:
db D_LEFT, 6
db D_UP, 4
db -1 ; end
RocketHideout2ArrowMovement12:
db D_DOWN, 2
db -1 ; end
RocketHideout2ArrowMovement13:
db D_LEFT, 8
db -1 ; end
RocketHideout2ArrowMovement14:
db D_LEFT, 8
db D_UP, 1
db -1 ; end
RocketHideout2ArrowMovement15:
db D_LEFT, 8
db D_UP, 6
db -1 ; end
RocketHideout2ArrowMovement16:
db D_UP, 2
db D_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement17:
db D_UP, 2
db D_RIGHT, 4
db D_UP, 2
db -1 ; end
RocketHideout2ArrowMovement18:
db D_DOWN, 2
db D_RIGHT, 4
db D_DOWN, 2
db -1 ; end
RocketHideout2ArrowMovement19:
db D_DOWN, 2
db D_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement20:
db D_LEFT, 10
db -1 ; end
RocketHideout2ArrowMovement21:
db D_LEFT, 10
db D_UP, 2
db -1 ; end
RocketHideout2ArrowMovement22:
db D_LEFT, 10
db D_UP, 4
db -1 ; end
RocketHideout2ArrowMovement23:
db D_UP, 2
db D_RIGHT, 2
db -1 ; end
RocketHideout2ArrowMovement24:
db D_RIGHT, 1
db D_DOWN, 2
db -1 ; end
RocketHideout2ArrowMovement25:
db D_RIGHT, 1
db -1 ; end
RocketHideout2ArrowMovement26:
db D_DOWN, 2
db D_RIGHT, 2
db -1 ; end
RocketHideout2ArrowMovement27:
db D_DOWN, 2
db D_LEFT, 2
db -1 ; end
RocketHideout2ArrowMovement28:
db D_UP, 2
db D_RIGHT, 4
db D_UP, 2
db D_LEFT, 3
db -1 ; end
RocketHideout2ArrowMovement29:
db D_DOWN, 2
db D_LEFT, 4
db -1 ; end
RocketHideout2ArrowMovement30:
db D_LEFT, 6
db D_UP, 4
db D_LEFT, 5
db -1 ; end
RocketHideout2ArrowMovement31:
db D_UP, 2
db -1 ; end
RocketHideout2ArrowMovement32:
db D_UP, 1
db -1 ; end
RocketHideout2ArrowMovement33:
db D_UP, 3
db -1 ; end
RocketHideout2ArrowMovement34:
db D_UP, 5
db -1 ; end
RocketHideout2ArrowMovement35:
db D_RIGHT, 1
db D_DOWN, 2
db D_LEFT, 4
db -1 ; end
RocketHideout2ArrowMovement36:
db D_LEFT, 10
db D_UP, 2
db D_LEFT, 5
db -1 ; end
RocketHideoutB2FPlayerSpinningScript:
ld a, [wSimulatedJoypadStatesIndex]
and a
jr nz, LoadSpinnerArrowTiles
xor a
ld [wJoyIgnore], a
ld hl, wd736
res 7, [hl]
ld a, SCRIPT_ROCKETHIDEOUTB2F_DEFAULT
ld [wCurMapScript], a
ret
INCLUDE "engine/overworld/spinners.asm"
RocketHideoutB2F_TextPointers:
def_text_pointers
dw_const RocketHideoutB2FRocketText, TEXT_ROCKETHIDEOUTB2F_ROCKET
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB2F_MOON_STONE
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB2F_NUGGET
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB2F_TM_HORN_DRILL
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB2F_SUPER_POTION
RocketHideout2TrainerHeaders:
def_trainers
RocketHideout2TrainerHeader0:
trainer EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0, 4, RocketHideoutB1FRocketBattleText, RocketHideoutB1FRocketEndBattleText, RocketHideoutB1FRocketAfterBattleText
db -1 ; end
RocketHideoutB2FRocketText:
text_asm
ld hl, RocketHideout2TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
RocketHideoutB1FRocketBattleText:
text_far _RocketHideoutB1FRocketBattleText
text_end
RocketHideoutB1FRocketEndBattleText:
text_far _RocketHideoutB1FRocketEndBattleText
text_end
RocketHideoutB1FRocketAfterBattleText:
text_far _RocketHideoutB1FRocketAfterBattleText
text_end