pokered/scripts/PokemonTower7F.asm

284 lines
7.5 KiB
NASM
Raw Normal View History

PokemonTower7F_Script:
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, PokemonTower7TrainerHeaders
ld de, PokemonTower7F_ScriptPointers
ld a, [wPokemonTower7FCurScript]
2014-05-18 18:19:10 +00:00
call ExecuteCurMapScriptInTable
ld [wPokemonTower7FCurScript], a
2014-05-18 18:19:10 +00:00
ret
PokemonTower7FSetDefaultScript:
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld [wPokemonTower7FCurScript], a ; SCRIPT_POKEMONTOWER7F_DEFAULT
ld [wCurMapScript], a ; SCRIPT_POKEMONTOWER7F_DEFAULT
2014-05-18 18:19:10 +00:00
ret
PokemonTower7F_ScriptPointers:
def_script_pointers
dw_const CheckFightingMapTrainers, SCRIPT_POKEMONTOWER7F_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_POKEMONTOWER7F_START_BATTLE
dw_const PokemonTower7FEndBattleScript, SCRIPT_POKEMONTOWER7F_END_BATTLE
dw_const PokemonTower7FHideNPCScript, SCRIPT_POKEMONTOWER7F_HIDE_NPC
dw_const PokemonTower7FWarpToMrFujiHouseScript, SCRIPT_POKEMONTOWER7F_WARP_TO_MR_FUJI_HOUSE
2014-05-18 18:19:10 +00:00
PokemonTower7FEndBattleScript:
ld hl, wMiscFlags
res BIT_SEEN_BY_TRAINER, [hl]
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, PokemonTower7FSetDefaultScript
2014-05-18 18:19:10 +00:00
call EndTrainerBattle
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-09-13 07:50:56 +00:00
ld a, [wSpriteIndex]
ldh [hSpriteIndex], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
call PokemonTower7FRocketLeaveMovementScript
ld a, SCRIPT_POKEMONTOWER7F_HIDE_NPC
ld [wPokemonTower7FCurScript], a
2015-08-31 02:38:41 +00:00
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
PokemonTower7FHideNPCScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
2014-05-18 18:19:10 +00:00
ret nz
2015-08-31 02:38:41 +00:00
ld hl, wMissableObjectList
2014-09-13 07:50:56 +00:00
ld a, [wSpriteIndex]
2014-05-18 18:19:10 +00:00
ld b, a
.missableObjectsListLoop
ld a, [hli]
cp b ; search for sprite ID in missing objects list
ld a, [hli]
jr nz, .missableObjectsListLoop
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a ; remove missable object
predef HideObject
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
2014-05-18 18:19:10 +00:00
ld [wTrainerHeaderFlagBit], a
ld [wOpponentAfterWrongAnswer], a ; not used here; likely a mistake copied from maps/CinnabarGym.asm
ld a, SCRIPT_POKEMONTOWER7F_DEFAULT
ld [wPokemonTower7FCurScript], a
2015-08-31 02:38:41 +00:00
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
PokemonTower7FWarpToMrFujiHouseScript:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, HS_POKEMON_TOWER_7F_MR_FUJI
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
ld a, SPRITE_FACING_UP
ld [wSpritePlayerStateData1FacingDirection], a
ld a, MR_FUJIS_HOUSE
ldh [hWarpDestinationMap], a
2014-05-18 18:19:10 +00:00
ld a, $1
2014-09-13 07:50:56 +00:00
ld [wDestinationWarpID], a
ld a, LAVENDER_TOWN
ld [wLastMap], a
ld hl, wStatusFlags3
set BIT_WARP_FROM_CUR_SCRIPT, [hl]
ld a, SCRIPT_POKEMONTOWER7F_DEFAULT
ld [wPokemonTower7FCurScript], a
2015-08-31 02:38:41 +00:00
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
PokemonTower7FRocketLeaveMovementScript:
ld hl, PokemonTower7FNPCCoordMovementTable
2014-09-13 07:50:56 +00:00
ld a, [wSpriteIndex]
2014-05-18 18:19:10 +00:00
dec a
swap a
ld d, $0
ld e, a
add hl, de
2015-08-31 02:38:41 +00:00
ld a, [wYCoord]
2014-05-18 18:19:10 +00:00
ld b, a
2015-08-31 02:38:41 +00:00
ld a, [wXCoord]
2014-05-18 18:19:10 +00:00
ld c, a
.loop
2014-05-18 18:19:10 +00:00
ld a, [hli]
cp b
jr nz, .inc_and_skip
2014-05-18 18:19:10 +00:00
ld a, [hli]
cp c
jr nz, .skip
2014-05-18 18:19:10 +00:00
ld a, [hli]
ld d, [hl]
ld e, a
2014-09-13 07:50:56 +00:00
ld a, [wSpriteIndex]
ldh [hSpriteIndex], a
2014-05-18 18:19:10 +00:00
jp MoveSprite
.inc_and_skip
2014-05-18 18:19:10 +00:00
inc hl
.skip
2014-05-18 18:19:10 +00:00
inc hl
inc hl
jr .loop
2014-05-18 18:19:10 +00:00
PokemonTower7FNPCCoordMovementTable:
map_coord_movement 9, 12, PokemonTower7FRocket1ExitRightDownMovement
map_coord_movement 10, 11, PokemonTower7FRocket1ExitDownRightMovement
map_coord_movement 11, 11, PokemonTower7FRocketExitDownMovement
map_coord_movement 12, 11, PokemonTower7FRocketExitDownMovement
map_coord_movement 12, 10, PokemonTower7FRocket2ExitLeftDownMovement
map_coord_movement 11, 9, PokemonTower7FRocket2ExitDownLeftMovement
map_coord_movement 10, 9, PokemonTower7FRocketExitDownMovement
map_coord_movement 9, 9, PokemonTower7FRocketExitDownMovement
map_coord_movement 9, 8, PokemonTower7FRocket3ExitRightDownMovement
map_coord_movement 10, 7, PokemonTower7FRocketExitDownMovement
map_coord_movement 11, 7, PokemonTower7FRocketExitDownMovement
map_coord_movement 12, 7, PokemonTower7FRocketExitDownMovement
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket1ExitRightDownMovement:
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_LEFT
db -1 ; end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket1ExitDownRightMovement:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db -1 ; end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocketExitDownMovement:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db -1 ; end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket2ExitLeftDownMovement:
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db -1 ; end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket2ExitDownLeftMovement:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db -1 ; end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket3ExitRightDownMovement:
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db -1 ; end
2014-05-18 18:19:10 +00:00
PokemonTower7F_TextPointers:
def_text_pointers
dw_const PokemonTower7FRocket1Text, TEXT_POKEMONTOWER7F_ROCKET1
dw_const PokemonTower7FRocket2Text, TEXT_POKEMONTOWER7F_ROCKET2
dw_const PokemonTower7FRocket3Text, TEXT_POKEMONTOWER7F_ROCKET3
dw_const PokemonTower7FMrFujiText, TEXT_POKEMONTOWER7F_MR_FUJI
2014-05-18 18:19:10 +00:00
PokemonTower7TrainerHeaders:
def_trainers
2016-06-12 00:24:04 +00:00
PokemonTower7TrainerHeader0:
trainer EVENT_BEAT_POKEMONTOWER_7_TRAINER_0, 3, PokemonTower7FRocket1BattleText, PokemonTower7FRocket1EndBattleText, PokemonTower7FRocket1AfterBattleText
2016-06-12 00:24:04 +00:00
PokemonTower7TrainerHeader1:
trainer EVENT_BEAT_POKEMONTOWER_7_TRAINER_1, 3, PokemonTower7FRocket2BattleText, PokemonTower7FRocket2EndBattleText, PokemonTower7FRocket2AfterBattleText
2016-06-12 00:24:04 +00:00
PokemonTower7TrainerHeader2:
trainer EVENT_BEAT_POKEMONTOWER_7_TRAINER_2, 3, PokemonTower7FRocket3BattleText, PokemonTower7FRocket3EndBattleText, PokemonTower7FRocket3AfterBattleText
db -1 ; end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket1Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, PokemonTower7TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonTower7FRocket2Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, PokemonTower7TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
PokemonTower7FRocket3Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, PokemonTower7TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
PokemonTower7FMrFujiText:
text_asm
ld hl, .RescueText
2014-05-18 18:19:10 +00:00
call PrintText
2015-07-21 17:36:03 +00:00
SetEvent EVENT_RESCUED_MR_FUJI
SetEvent EVENT_RESCUED_MR_FUJI_2
ld a, HS_MR_FUJIS_HOUSE_MR_FUJI
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_SAFFRON_CITY_E
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_SAFFRON_CITY_F
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef ShowObject
ld a, SCRIPT_POKEMONTOWER7F_WARP_TO_MR_FUJI_HOUSE
ld [wPokemonTower7FCurScript], a
2015-08-31 02:38:41 +00:00
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.RescueText:
text_far _PokemonTower7FMrFujiRescueText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket1BattleText:
text_far _PokemonTower7FRocket1BattleText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket1EndBattleText:
text_far _PokemonTower7FRocket1EndBattleText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket1AfterBattleText:
text_far _PokemonTower7FRocket1AfterBattleText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket2BattleText:
text_far _PokemonTower7FRocket2BattleText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket2EndBattleText:
text_far _PokemonTower7FRocket2EndBattleText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket2AfterBattleText:
text_far _PokemonTower7FRocket2AfterBattleText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket3BattleText:
text_far _PokemonTower7FRocket3BattleText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket3EndBattleText:
text_far _PokemonTower7FRocket3EndBattleText
text_end
2014-05-18 18:19:10 +00:00
PokemonTower7FRocket3AfterBattleText:
text_far _PokemonTower7FRocket3AfterBattleText
text_end