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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
PokemonTower2Script: ; 604f2 (18:44f2)
call EnableAutoTextBoxDrawing
ld hl, PokemonTower2ScriptPointers
ld a, [W_POKEMONTOWER2CURSCRIPT]
jp CallFunctionInTable
PokemonTower2Script_604fe: ; 604fe (18:44fe)
xor a
ld [wJoypadForbiddenButtonsMask], a
ld [W_POKEMONTOWER2CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
PokemonTower2ScriptPointers: ; 60509 (18:4509)
dw PokemonTower2Script0
dw PokemonTower2Script1
dw PokemonTower2Script2
PokemonTower2Script0: ; 6050f (18:450f)
ld a, [$d764]
bit 7, a
ret nz
ld hl, CoordsData_6055e ; $455e
call ArePlayerCoordsInArray
ret nc
ld a, $ff
ld [$c0ee], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld hl, $d764
res 6, [hl]
ld a, [$cd3d]
cp $1
ld a, $8
ld b, $0
jr nz, .asm_60544 ; 0x60539 $9
ld hl, $d764
set 6, [hl]
ld a, $2
ld b, $c
.asm_60544
ld [$d528], a
ld a, $1
ld [$ff8c], a
ld a, b
ld [$ff8d], a
call Func_34a6
ld a, $1
ld [$ff8c], a
call DisplayTextID
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
ld [H_NEWLYPRESSEDBUTTONS], a
ret
CoordsData_6055e: ; 6055e (18:455e)
db $05,$0F
db $06,$0E
db $0F ; isn't this supposed to end in $ff?
PokemonTower2Script1: ; 60563 (18:4563)
ld a, [$d057]
cp $ff
jp z, PokemonTower2Script_604fe
ld a, $f0
ld [wJoypadForbiddenButtonsMask], a
ld hl, $d764
set 7, [hl]
ld a, $1
ld [$ff8c], a
call DisplayTextID
ld de, MovementData_605b2
ld a, [$d764]
bit 6, a
jr nz, .asm_60589 ; 0x60584 $3
ld de, MovementData_605a9
.asm_60589
ld a, $1
ld [$ff8c], a
call MoveSprite
ld a, $ff
ld [$c0ee], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $2
ld [W_POKEMONTOWER2CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
MovementData_605a9: ; 605a9 (18:45a9)
db $C0,$00,$00,$C0,$00,$00,$C0,$C0,$FF
MovementData_605b2: ; 605b2 (18:45b2)
db $00,$00,$C0,$C0,$C0,$C0,$00,$00,$FF
PokemonTower2Script2: ; 605bb (18:45bb)
ld a, [$d730]
bit 0, a
ret nz
ld a, $38
ld [$cc4d], a
ld a, $11
call Predef
xor a
ld [wJoypadForbiddenButtonsMask], a
call Func_2307
ld a, $0
ld [W_POKEMONTOWER2CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
PokemonTower2TextPointers: ; 605db (18:45db)
dw PokemonTower2Text1
dw PokemonTower2Text2
PokemonTower2Text1: ; 605df (18:45df)
db $08 ; asm
ld a, [$d764]
bit 7, a
jr z, .asm_16f24 ; 0x605e5
ld hl, PokemonTower2Text_6063c
call PrintText
jr .asm_41852 ; 0x605ed
.asm_16f24 ; 0x605ef
ld hl, PokemonTower2Text_6062d
call PrintText
ld hl, $d72d
set 6, [hl]
set 7, [hl]
ld hl, PokemonTower2Text_60632
ld de, PokemonTower2Text_60637 ; XXX $4637
call PreBattleSaveRegisters
ld a, SONY2 + $c8
ld [W_CUROPPONENT], a
; select which team to use during the encounter
ld a, [W_RIVALSTARTER]
cp STARTER2
jr nz, .NotSquirtle ; 0x6060f
ld a, $4
jr .done
.NotSquirtle ; 0x60615
cp STARTER3
jr nz, .Charmander ; 0x60617
ld a, $5
jr .done
.Charmander ; 0x6061d
ld a, $6
.done
ld [W_TRAINERNO], a
ld a, $1
ld [W_POKEMONTOWER2CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
.asm_41852 ; 0x6062a
jp TextScriptEnd
PokemonTower2Text_6062d: ; 6062d (18:462d)
TX_FAR _PokemonTower2Text_6062d
db "@"
PokemonTower2Text_60632: ; 60632 (18:4632)
TX_FAR _PokemonTower2Text_60632
db "@"
PokemonTower2Text_60637: ; 60637 (18:4637)
TX_FAR _PokemonTower2Text_60637
db "@"
PokemonTower2Text_6063c: ; 6063c (18:463c)
TX_FAR _PokemonTower2Text_6063c
db "@"
PokemonTower2Text2: ; 60641 (18:4641)
TX_FAR _PokemonTower2Text2
db "@"
|