2019-01-01 20:06:23 +00:00
|
|
|
SSAnne2F_Script:
|
2014-05-18 18:19:10 +00:00
|
|
|
call EnableAutoTextBoxDrawing
|
2019-01-01 20:06:23 +00:00
|
|
|
ld hl, SSAnne2F_ScriptPointers
|
|
|
|
ld a, [wSSAnne2FCurScript]
|
2014-05-18 18:19:10 +00:00
|
|
|
jp CallFunctionInTable
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FResetScripts:
|
2014-05-18 18:19:10 +00:00
|
|
|
xor a
|
2014-05-25 17:51:53 +00:00
|
|
|
ld [wJoyIgnore], a
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wSSAnne2FCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2019-01-01 20:06:23 +00:00
|
|
|
SSAnne2F_ScriptPointers:
|
2023-07-14 01:27:56 +00:00
|
|
|
def_script_pointers
|
|
|
|
dw_const SSAnne2FDefaultScript, SCRIPT_SSANNE2F_DEFAULT
|
|
|
|
dw_const SSAnne2FRivalStartBattleScript, SCRIPT_SSANNE2F_RIVAL_START_BATTLE
|
|
|
|
dw_const SSAnne2FRivalAfterBattleScript, SCRIPT_SSANNE2F_RIVAL_AFTER_BATTLE
|
|
|
|
dw_const SSAnne2FRivalExitScript, SCRIPT_SSANNE2F_RIVAL_EXIT
|
|
|
|
dw_const SSAnne2FNoopScript, SCRIPT_SSANNE2F_NOOP
|
|
|
|
|
|
|
|
SSAnne2FNoopScript:
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FDefaultScript:
|
|
|
|
ld hl, .PlayerCoordinatesArray
|
2014-05-18 18:19:10 +00:00
|
|
|
call ArePlayerCoordsInArray
|
|
|
|
ret nc
|
2020-07-03 20:37:47 +00:00
|
|
|
ld a, SFX_STOP_ALL_MUSIC
|
2015-08-09 05:32:44 +00:00
|
|
|
ld [wNewSoundID], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call PlaySound
|
|
|
|
ld c, BANK(Music_MeetRival)
|
|
|
|
ld a, MUSIC_MEET_RIVAL
|
|
|
|
call PlayMusic
|
2015-07-18 15:17:29 +00:00
|
|
|
ld a, [wCoordIndex]
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSavedCoordIndex], a
|
2019-01-01 20:06:23 +00:00
|
|
|
ld a, HS_SS_ANNE_2F_RIVAL
|
2015-07-25 03:27:59 +00:00
|
|
|
ld [wMissableObjectIndex], a
|
2014-06-16 20:57:26 +00:00
|
|
|
predef ShowObject
|
2014-05-18 18:19:10 +00:00
|
|
|
call Delay3
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SSANNE2F_RIVAL
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndex], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call SetSpriteMovementBytesToFF
|
|
|
|
xor a
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hJoyHeld], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
|
2014-05-25 17:51:53 +00:00
|
|
|
ld [wJoyIgnore], a
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hSavedCoordIndex]
|
2014-05-18 18:19:10 +00:00
|
|
|
cp $2
|
2023-07-14 01:27:56 +00:00
|
|
|
jr nz, .player_standing_right
|
|
|
|
ld de, .RivalDownFourMovement
|
|
|
|
jr .move_sprite
|
|
|
|
.player_standing_right
|
|
|
|
ld de, .RivalDownThreeMovement
|
|
|
|
.move_sprite
|
2014-05-18 18:19:10 +00:00
|
|
|
call MoveSprite
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_SSANNE2F_RIVAL_START_BATTLE
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wSSAnne2FCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
.RivalDownFourMovement:
|
2015-07-17 07:52:25 +00:00
|
|
|
db NPC_MOVEMENT_DOWN
|
2023-07-14 01:27:56 +00:00
|
|
|
.RivalDownThreeMovement:
|
2015-07-17 07:52:25 +00:00
|
|
|
db NPC_MOVEMENT_DOWN
|
|
|
|
db NPC_MOVEMENT_DOWN
|
|
|
|
db NPC_MOVEMENT_DOWN
|
2020-07-16 16:32:19 +00:00
|
|
|
db -1 ; end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
.PlayerCoordinatesArray:
|
2020-07-16 16:32:19 +00:00
|
|
|
dbmapcoord 36, 8
|
|
|
|
dbmapcoord 37, 8
|
|
|
|
db -1 ; end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FSetFacingDirectionScript:
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wXCoord]
|
2020-08-28 16:10:55 +00:00
|
|
|
cp 37
|
2023-07-14 01:27:56 +00:00
|
|
|
jr nz, .player_standing_left
|
2015-07-20 00:52:26 +00:00
|
|
|
ld a, PLAYER_DIR_LEFT
|
|
|
|
ld [wPlayerMovingDirection], a
|
2015-07-17 07:52:25 +00:00
|
|
|
ld a, SPRITE_FACING_RIGHT
|
2023-07-14 01:27:56 +00:00
|
|
|
jr .set_facing_direction
|
|
|
|
.player_standing_left
|
2015-07-18 15:17:29 +00:00
|
|
|
xor a ; SPRITE_FACING_DOWN
|
2023-07-14 01:27:56 +00:00
|
|
|
.set_facing_direction
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteFacingDirection], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SSANNE2F_RIVAL
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndex], a
|
2014-09-10 03:55:19 +00:00
|
|
|
jp SetSpriteFacingDirectionAndDelay
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FRivalStartBattleScript:
|
2024-07-16 17:02:54 +00:00
|
|
|
ld a, [wStatusFlags5]
|
|
|
|
bit BIT_SCRIPTED_NPC_MOVEMENT, a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret nz
|
2023-07-14 01:27:56 +00:00
|
|
|
call SSAnne2FSetFacingDirectionScript
|
2014-05-18 18:19:10 +00:00
|
|
|
xor a
|
2014-05-25 17:51:53 +00:00
|
|
|
ld [wJoyIgnore], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, TEXT_SSANNE2F_RIVAL
|
2024-09-19 01:01:18 +00:00
|
|
|
ldh [hTextID], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call DisplayTextID
|
|
|
|
call Delay3
|
2020-07-17 17:27:27 +00:00
|
|
|
ld a, OPP_RIVAL2
|
2015-08-31 02:38:41 +00:00
|
|
|
ld [wCurOpponent], a
|
2014-05-18 18:19:10 +00:00
|
|
|
|
|
|
|
; select which team to use during the encounter
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wRivalStarter]
|
2014-05-21 12:48:30 +00:00
|
|
|
cp STARTER2
|
2015-07-03 19:38:12 +00:00
|
|
|
jr nz, .NotSquirtle
|
2014-05-18 18:19:10 +00:00
|
|
|
ld a, $1
|
|
|
|
jr .done
|
|
|
|
.NotSquirtle
|
2014-05-21 12:48:30 +00:00
|
|
|
cp STARTER3
|
2015-07-03 19:38:12 +00:00
|
|
|
jr nz, .Charmander
|
2014-05-18 18:19:10 +00:00
|
|
|
ld a, $2
|
|
|
|
jr .done
|
|
|
|
.Charmander
|
|
|
|
ld a, $3
|
|
|
|
.done
|
2015-08-31 02:38:41 +00:00
|
|
|
ld [wTrainerNo], a
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
call SSAnne2FSetFacingDirectionScript
|
|
|
|
ld a, SCRIPT_SSANNE2F_RIVAL_AFTER_BATTLE
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wSSAnne2FCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FRivalAfterBattleScript:
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wIsInBattle]
|
2014-05-18 18:19:10 +00:00
|
|
|
cp $ff
|
2023-07-14 01:27:56 +00:00
|
|
|
jp z, SSAnne2FResetScripts
|
|
|
|
call SSAnne2FSetFacingDirectionScript
|
|
|
|
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
|
2014-05-25 17:51:53 +00:00
|
|
|
ld [wJoyIgnore], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, TEXT_SSANNE2F_RIVAL_CUT_MASTER
|
2024-09-19 01:01:18 +00:00
|
|
|
ldh [hTextID], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call DisplayTextID
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SSANNE2F_RIVAL
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndex], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call SetSpriteMovementBytesToFF
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wXCoord]
|
2020-08-28 16:10:55 +00:00
|
|
|
cp 37
|
2023-07-14 01:27:56 +00:00
|
|
|
jr nz, .player_standing_left
|
|
|
|
ld de, .RivalDownFourMovement
|
|
|
|
jr .move_sprite
|
|
|
|
.player_standing_left
|
|
|
|
ld de, .RivalWalkAroundPlayerMovement
|
|
|
|
.move_sprite
|
|
|
|
ld a, SSANNE2F_RIVAL
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndex], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call MoveSprite
|
2020-07-03 20:37:47 +00:00
|
|
|
ld a, SFX_STOP_ALL_MUSIC
|
2015-08-09 05:32:44 +00:00
|
|
|
ld [wNewSoundID], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call PlaySound
|
2020-07-07 01:18:22 +00:00
|
|
|
farcall Music_RivalAlternateStart
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_SSANNE2F_RIVAL_EXIT
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wSSAnne2FCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
.RivalWalkAroundPlayerMovement:
|
2015-07-17 07:52:25 +00:00
|
|
|
db NPC_MOVEMENT_RIGHT
|
|
|
|
db NPC_MOVEMENT_DOWN
|
2023-07-14 01:27:56 +00:00
|
|
|
.RivalDownFourMovement:
|
2015-07-17 07:52:25 +00:00
|
|
|
db NPC_MOVEMENT_DOWN
|
|
|
|
db NPC_MOVEMENT_DOWN
|
|
|
|
db NPC_MOVEMENT_DOWN
|
|
|
|
db NPC_MOVEMENT_DOWN
|
2020-07-16 16:32:19 +00:00
|
|
|
db -1 ; end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FRivalExitScript:
|
2024-07-16 17:02:54 +00:00
|
|
|
ld a, [wStatusFlags5]
|
|
|
|
bit BIT_SCRIPTED_NPC_MOVEMENT, a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret nz
|
|
|
|
xor a
|
2014-05-25 17:51:53 +00:00
|
|
|
ld [wJoyIgnore], a
|
2019-01-01 20:06:23 +00:00
|
|
|
ld a, HS_SS_ANNE_2F_RIVAL
|
2015-07-25 03:27:59 +00:00
|
|
|
ld [wMissableObjectIndex], a
|
2014-06-16 20:57:26 +00:00
|
|
|
predef HideObject
|
2014-09-10 03:55:19 +00:00
|
|
|
call PlayDefaultMusic
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_SSANNE2F_NOOP
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wSSAnne2FCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2019-01-01 20:06:23 +00:00
|
|
|
SSAnne2F_TextPointers:
|
2023-07-14 01:27:56 +00:00
|
|
|
def_text_pointers
|
|
|
|
dw_const SSAnne2FWaiterText, TEXT_SSANNE2F_WAITER
|
|
|
|
dw_const SSAnne2FRivalText, TEXT_SSANNE2F_RIVAL
|
|
|
|
dw_const SSAnne2FRivalCutMasterText, TEXT_SSANNE2F_RIVAL_CUT_MASTER
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FWaiterText:
|
|
|
|
text_far _SSAnne2FWaiterText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FRivalText:
|
2020-07-04 21:09:35 +00:00
|
|
|
text_asm
|
2023-07-14 01:27:56 +00:00
|
|
|
ld hl, .Text
|
2014-05-18 18:19:10 +00:00
|
|
|
call PrintText
|
2024-07-16 17:02:54 +00:00
|
|
|
ld hl, wStatusFlags3
|
|
|
|
set BIT_TALKED_TO_TRAINER, [hl]
|
|
|
|
set BIT_PRINT_END_BATTLE_TEXT, [hl]
|
2023-07-14 01:27:56 +00:00
|
|
|
ld hl, SSAnne2FRivalDefeatedText
|
|
|
|
ld de, SSAnne2FRivalVictoryText
|
2014-09-14 18:29:18 +00:00
|
|
|
call SaveEndBattleTextPointers
|
2014-05-18 18:19:10 +00:00
|
|
|
jp TextScriptEnd
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
.Text:
|
|
|
|
text_far _SSAnne2FRivalText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FRivalDefeatedText:
|
|
|
|
text_far _SSAnne2FRivalDefeatedText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FRivalVictoryText:
|
|
|
|
text_far _SSAnne2FRivalVictoryText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
SSAnne2FRivalCutMasterText:
|
|
|
|
text_far _SSAnne2FRivalCutMasterText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|