1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
Route5Gate_Script:
call EnableAutoTextBoxDrawing
ld a, [wRoute5GateCurScript]
ld hl, Route5Gate_ScriptPointers
jp CallFunctionInTable
Route5Gate_ScriptPointers:
def_script_pointers
dw_const Route5GateDefaultScript, SCRIPT_ROUTE5GATE_DEFAULT
dw_const Route5GatePlayerMovingScript, SCRIPT_ROUTE5GATE_PLAYER_MOVING
Route5GateMovePlayerUpScript:
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
jp StartSimulatingJoypadStates
Route5GateDefaultScript:
ld a, [wd728]
bit 6, a
ret nz
ld hl, .PlayerInCoordsArray
call ArePlayerCoordsInArray
ret nc
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
xor a
ldh [hJoyHeld], a
farcall RemoveGuardDrink
ldh a, [hItemToRemoveID]
and a
jr nz, .have_drink
ld a, TEXT_ROUTE5GATE_GUARD_GEE_IM_THIRSTY
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
call Route5GateMovePlayerUpScript
ld a, SCRIPT_ROUTE5GATE_PLAYER_MOVING
ld [wRoute5GateCurScript], a
ret
.have_drink
ld a, TEXT_ROUTE5GATE_GUARD_GIVE_DRINK
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld hl, wd728
set 6, [hl]
ret
.PlayerInCoordsArray:
dbmapcoord 3, 3
dbmapcoord 4, 3
db -1 ; end
Route5GatePlayerMovingScript:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
call Delay3
xor a
ld [wJoyIgnore], a
ld [wRoute5GateCurScript], a
ret
Route5Gate_TextPointers:
def_text_pointers
dw_const SaffronGateGuardText, TEXT_ROUTE5GATE_GUARD
dw_const SaffronGateGuardGeeImThirstyText, TEXT_ROUTE5GATE_GUARD_GEE_IM_THIRSTY
dw_const SaffronGateGuardGiveDrinkText, TEXT_ROUTE5GATE_GUARD_GIVE_DRINK
SaffronGateGuardText:
text_asm
ld a, [wd728]
bit 6, a
jr nz, .thanks_for_drink
farcall RemoveGuardDrink
ldh a, [hItemToRemoveID]
and a
jr nz, .have_drink
ld hl, SaffronGateGuardGeeImThirstyText
call PrintText
call Route5GateMovePlayerUpScript
ld a, SCRIPT_ROUTE5GATE_PLAYER_MOVING
ld [wRoute5GateCurScript], a
jp TextScriptEnd
.have_drink
ld hl, SaffronGateGuardGiveDrinkText
call PrintText
ld hl, wd728
set 6, [hl]
jp TextScriptEnd
.thanks_for_drink
ld hl, SaffronGateGuardThanksForTheDrinkText
call PrintText
jp TextScriptEnd
SaffronGateGuardGeeImThirstyText:
text_far _SaffronGateGuardGeeImThirstyText
text_end
SaffronGateGuardGiveDrinkText:
text_far _SaffronGateGuardImParchedText
sound_get_key_item
text_far _SaffronGateGuardYouCanGoOnThroughText
text_end
SaffronGateGuardThanksForTheDrinkText:
text_far _SaffronGateGuardThanksForTheDrinkText
text_end
|