Files

472 lines
9.8 KiB
NASM

ret
SilentHill_ScriptLoader::
ld hl, SilentHillScriptPointers
call RunMapScript
call WriteBackMapScriptNumber
ret
SilentHillDefaultNPCIDs:
SilentHillRivalCutsceneNPCIDs:
SilentHillRivalCutscene2NPCIDs:
npc_id SILENT_HILL_RIVAL
npc_id SILENT_HILL_TEACHER
npc_id SILENT_HILL_SUPER_NERD
db -1
SilentHillRivalCutsceneEndNPCIDs:
SilentHillFollowBlueNPCIDs:
SilentHillGotStarterNPCIDs:
npc_id SILENT_HILL_TEACHER
npc_id SILENT_HILL_SUPER_NERD
db -1
SilentHillBlueCutsceneNPCIDs:
npc_id SILENT_HILL_BLUE
npc_id SILENT_HILL_TEACHER
npc_id SILENT_HILL_SUPER_NERD
db -1
SilentHillScriptPointers::
def_script_pointers
script_pointer SilentHillDefaultScript, SilentHillDefaultNPCIDs, SCENE_SILENT_HILL_DEFAULT
script_pointer SilentHillRivalCutsceneScript, SilentHillRivalCutsceneNPCIDs, SCENE_SILENT_HILL_RIVAL_CUTSCENE
script_pointer SilentHillRivalCutscene2Script, SilentHillRivalCutscene2NPCIDs, SCENE_SILENT_HILL_RIVAL_CUTSCENE_2
script_pointer SilentHillRivalCutsceneEndScript, SilentHillRivalCutsceneEndNPCIDs, SCENE_SILENT_HILL_RIVAL_CUTSCENE_END
script_pointer SilentHillBlueCutsceneScript, SilentHillBlueCutsceneNPCIDs, SCENE_SILENT_HILL_BLUE_CUTSCENE
script_pointer SilentHillFollowBlueScript, SilentHillFollowBlueNPCIDs, SCENE_SILENT_HILL_FOLLOW_BLUE
script_pointer SilentHillGotStarterScript, SilentHillGotStarterNPCIDs, SCENE_SILENT_HILL_GOT_STARTER
SilentHillDefaultScript:
ld a, [wYCoord]
cp 5
ret nz
ld a, [wXCoord]
cp 5
ret nz
ld hl, wJoypadDisable
set JOYPAD_DISABLE_CUTSCENE_F, [hl]
ld a, SILENT_HILL_RIVAL
call FreezeAllOtherObjects
ld a, SILENT_HILL_RIVAL
ld hl, SilentHillMovement1
call LoadMovementDataPointer
ld hl, wOverworldFlags
set OVERWORLD_PAUSE_MAP_PROCESSES_F, [hl]
ld a, SCENE_SILENT_HILL_RIVAL_CUTSCENE
ld [wMapScriptNumber], a
ld a, MAPSTATUS_EVENT_RUNNING
call SetMapStatus
ret
SilentHillMovement1:
big_step UP
big_step UP
big_step UP
step UP
slow_step UP
turn_head LEFT
step_end
SilentHillRivalCutsceneScript:
ld a, PLAYER_OBJECT
ld d, RIGHT
call SetObjectFacing
ld hl, SilentHillTextRival1
call OpenTextbox
ld hl, SilentHillTextRival2
call OpenTextbox
ld hl, wJoypadDisable
set JOYPAD_DISABLE_CUTSCENE_F, [hl]
ld a, SILENT_HILL_RIVAL
ld hl, .movement
call LoadMovementDataPointer
ld hl, wOverworldFlags
set OVERWORLD_PAUSE_MAP_PROCESSES_F, [hl]
ld a, MAPSTATUS_EVENT_RUNNING
call SetMapStatus
ld a, SCENE_SILENT_HILL_RIVAL_CUTSCENE_2
ld [wMapScriptNumber], a
ret
.movement
turn_head DOWN
slow_step DOWN
step DOWN
big_step DOWN
big_step DOWN
big_step DOWN
remove_object
SilentHillRivalCutscene2Script:
call UnfreezeAllObjects
ld a, SCENE_SILENT_HILL_RIVAL_CUTSCENE_END
ld [wMapScriptNumber], a
call InitObjectMasks
ret
SilentHillRivalCutsceneEndScript:
ld a, [wXCoord]
cp 0
jr nz, .bigjump
ld a, [wYCoord]
cp 8
jr z, .jump
cp 9
jr nz, .bigjump
.jump
call .TalkedToBlue
ld hl, SilentHillTextNorthExit
call OpenTextbox
ld hl, wJoypadDisable
set JOYPAD_DISABLE_CUTSCENE_F, [hl]
ld a, SILENT_HILL_BLUE
call CopyMapObjectToReservedObjectStruct
ld a, SILENT_HILL_BLUE
call FreezeAllOtherObjects
ld a, [wYCoord]
cp 9
jr z, .jump2
ld hl, SilentHillMovement3
jr .skip
.jump2
ld hl, SilentHillMovement4
.skip
ld a, SILENT_HILL_BLUE
call LoadMovementDataPointer
ld hl, wOverworldFlags
set OVERWORLD_PAUSE_MAP_PROCESSES_F, [hl]
ld a, MAPSTATUS_EVENT_RUNNING
call SetMapStatus
ld a, SCENE_SILENT_HILL_BLUE_CUTSCENE
ld [wMapScriptNumber], a
ret
.bigjump
ld hl, SilentHillRivalCutsceneEndNPCIDs
ld de, SilentHillSignPointers
call CallMapTextSubroutine
ret
.TalkedToBlue:
SetEvent SILENT_HILL_TALKED_TO_BLUE
ld a, SCENE_SILENT_HILL_LAB_FRONT_START_BLUE_CUTSCENE
ld hl, wSilentHillLabFrontSceneID
ld [hl], a
ret
SilentHillMovement3:
step LEFT
step LEFT
step LEFT
step UP
step LEFT
slow_step LEFT
turn_head LEFT
step_end
SilentHillMovement4:
step LEFT
step LEFT
step LEFT
step LEFT
slow_step LEFT
turn_head LEFT
step_end
SilentHillBlueCutsceneScript:
ld a, PLAYER_OBJECT
ld d, RIGHT
call SetObjectFacing
ld hl, SilentHillTextPokemonInGrassString
call OpenTextbox
ld hl, wJoypadDisable
set JOYPAD_DISABLE_CUTSCENE_F, [hl]
ld a, SILENT_HILL_BLUE
call FreezeAllOtherObjects
ld a, PLAYER_OBJECT
call UnfreezeObject
ld b, SILENT_HILL_BLUE
ld c, PLAYER_OBJECT
call StartFollow
ld a, [wYCoord]
cp 9
jr z, .jump
ld hl, .movement
jr .skip
.jump
ld hl, .movement2
.skip
ld a, SILENT_HILL_BLUE
call LoadMovementDataPointer
ld hl, wOverworldFlags
set OVERWORLD_PAUSE_MAP_PROCESSES_F, [hl]
ld a, MAPSTATUS_EVENT_RUNNING
call SetMapStatus
ld a, SCENE_SILENT_HILL_FOLLOW_BLUE
ld [wMapScriptNumber], a
ret
.movement
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step DOWN
step DOWN
step DOWN
step DOWN
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
slow_step UP
remove_object
.movement2
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step DOWN
step DOWN
step DOWN
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
slow_step UP
remove_object
SilentHillFollowBlueScript:
ld hl, SilentHillFollowBlueNPCIDs
ld de, SilentHillSignPointers
call CallMapTextSubroutine
CheckEvent SILENT_HILL_LAB_BACK_CHOSE_STARTER
ret z
ld a, SCENE_SILENT_HILL_LAB_FRONT_FINISHED
ld [wSilentHillLabFrontSceneID], a
ld a, SCENE_SILENT_HILL_GOT_STARTER
ld [wMapScriptNumber], a
ret
SilentHillGotStarterScript:
call CheckLabDoor
ret z
ld hl, SilentHillGotStarterNPCIDs
ld de, SilentHillSignPointers
call CallMapTextSubroutine
ret
CheckLabDoor:
ld a, [wYCoord]
cp 12
ret nz
ld a, [wXCoord]
cp 14
jr z, .jump
ld a, [wXCoord]
cp 15
ret nz
.jump
ldh a, [hJoyState]
bit B_PAD_UP, a
ret z
ld a, PLAYER_OBJECT
ld d, UP
call SetObjectFacing
ld hl, wJoypadDisable
set JOYPAD_DISABLE_SYNC_MUTEX_F, [hl]
ld hl, .TextString
call OpenTextbox
call .LabClosed
call xor_a
ret
.LabClosed:
ld a, PLAYER_OBJECT
ld hl, .movement
call LoadMovementDataPointer
ld hl, wOverworldFlags
set OVERWORLD_PAUSE_MAP_PROCESSES_F, [hl]
ld a, MAPSTATUS_EVENT_RUNNING
call SetMapStatus
ret
.TextString:
text "あれ? カギが かかっている"
done
.movement
slow_step DOWN
step_end
SilentHillSignPointers::
dw SilentHillPlayerHouseText
dw PokecenterSignScript
dw SilentHillSignText1
dw SilentHillLabText
dw SilentHillRivalHouseText
SilentHillLabText:
ld hl, SilentHillTextString2
call OpenTextbox
ret
SilentHillTextString2:
text "にゅうきょしゃ ぼしゅうちゅう!"
done
SilentHillSignText1:
ld hl, SilentHillTextString3
call OpenTextbox
ret
SilentHillTextString3:
text "ここは サイレント ヒル"
line "しずかな おか"
done
SilentHillPlayerHouseText:
ld hl, SilentHillTextString4
call OpenTextbox
ret
SilentHillTextString4:
text "ここは <PLAYER> のいえ"
done
SilentHillRivalHouseText:
ld hl, SilentHillTextString5
call OpenTextbox
ret
SilentHillTextString5:
text "ここは <RIVAL> のいえ"
done
SilentHill_TextPointers::
dw SilentHillTextRival1 ; west
dw SilentHillTextNorthExit ; north
dw SilentHillTextBackpack ; npc1
dw SilentHillTextPokemonHate ; npc2
SilentHillTextRival1:
text "<RIVAL>『よう ちょっと おまえに"
cont "じまん したいことが"
cont "あってきたんだよ"
para "おれ あの ゆうめいなオーキドから"
line "メール もらっちゃった!"
cont "え? おまえにも きたの?"
cont "ちぇっ! つまんねーの!"
para "⋯⋯ふん!"
line "じゃあさ じゃあさー おまえさー"
cont "じぶんの ははおや のこと"
cont "いつも なんて よんでる?@"
start_asm
call LoadStandardMenuHeader
callfar MomNamePrompt
call CloseWindow
call GetMemSGBLayout
call UpdateSprites
call UpdateTimePals
jp TextAsmEnd
MomNameMenuHeaderUnused:
db MENU_BACKUP_TILES ; flags
menu_coords 0, 0, 10, 11
dw .MomNameMenuDataUnused
db 1 ; initial selection
.MomNameMenuDataUnused:
db STATICMENU_CURSOR
db 4 ; items
db "じぶんで きめる@"
db "おかあさん @"
db "ママ@"
db "かあちゃん@"
SilentHillTextRival2: ; BYTE OFF
text "<RIVAL>『えー かっこわりい!"
line "そんな こどもっぽい"
cont "よびかた してるなんて"
cont "おわらいだぜ!"
cont "あー ちょっとだけ すっきりした!"
para "そんじゃあ"
line "おれは ひとあし おさきに"
cont "オーキドのところへ"
cont "いくことに するぜ!"
done
SilentHillTextNorthExit:
text "ちょいまち!"
line "まってよ! まてっ てば!"
done
SilentHillTextPokemonInGrassString:
text "きみは まったく"
line "なんにも しらないんだね!"
cont "くさむらでは"
cont "やせいの ポケモンが とびだす!"
para "じぶんも ポケモンを"
line "もって いれば"
cont "たたかえるんだ⋯⋯"
para "あっ! ひょっとして きみは"
line "⋯⋯ちょっと"
cont "ぼくに ついて きて!"
done
SilentHillTextBackpack:
ld hl, SilentHillTextBackpackString
call OpenTextbox
ret
SilentHillTextBackpackString:
if DEF(_GOLD)
text "あなたの リュック かっこいいわよ"
line "どこで てに いれたの?"
done
endc
if DEF(_SILVER)
text "その とけい かっこいいわね"
line "えっ トレーナーギアって いうの?"
done
endc
SilentHillTextPokemonHate:
ld hl, SilentHillTextPokemonHateString
call OpenTextbox
ret
SilentHillTextPokemonHateString:
if DEF(_GOLD)
text "よのなかに ポケモンが きらいな"
line "ひとは いるのかな?"
done
endc
if DEF(_SILVER)
text "なに? きみは"
line "ポケモンを あつめてるのか!"
para "それは すばらしいことだ"
done
endc