summaryrefslogtreecommitdiff
path: root/scripts/agatha.asm
blob: eb0e21d6671fcaa0319ddab8d55bc945fcd3acc7 (plain)
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
AgathaScript: ; 7642d (1d:642d)
	call AgathaScript_76443
	call EnableAutoTextBoxDrawing
	ld hl, AgathaTrainerHeaders
	ld de, AgathaScriptPointers
	ld a, [W_AGATHACURSCRIPT]
	call ExecuteCurMapScriptInTable
	ld [W_AGATHACURSCRIPT], a
	ret

AgathaScript_76443: ; 76443 (1d:6443)
	ld hl, $d126
	bit 5, [hl]
	res 5, [hl]
	ret z
	ld a, [$d865]
	bit 1, a
	jr z, .asm_76457
	ld a, $e
	jp AgathaScript_76459
.asm_76457
	ld a, $3b

AgathaScript_76459: ; 76459 (1d:6459)
	ld [$d09f], a
	ld bc, $2
	ld a, $17
	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))

AgathaScript_76464: ; 76464 (1d:6464)
	xor a
	ld [W_AGATHACURSCRIPT], a
	ret

AgathaScriptPointers: ; 76469 (1d:6469)
	dw AgathaScript0
	dw Func_324c
	dw AgathaScript2
	dw AgathaScript3
	dw AgathaScript4

AgathaScript4: ; 76473 (1d:6473)
	ret
asm_76474: ; 76474 (1d:6474)
	ld hl, $ccd3
	ld a, $40
	ld [hli], a
	ld [hli], a
	ld [hli], a
	ld [hli], a
	ld [hli], a
	ld [hl], a
	ld a, $6
	ld [$cd38], a
	call Func_3486
	ld a, $3
	ld [W_AGATHACURSCRIPT], a
	ld [W_CURMAPSCRIPT], a
	ret

AgathaScript0: ; 76490 (1d:6490)
	ld hl, CoordsData_764d1
	call ArePlayerCoordsInArray
	jp nc, CheckFightingMapTrainers
	xor a
	ld [hJoyPressed], a
	ld [hJoyHeld], a
	ld [$ccd3], a
	ld [$cd38], a
	ld a, [wWhichTrade] ; $cd3d
	cp $3
	jr c, .asm_764b4
	ld hl, $d865
	bit 6, [hl]
	set 6, [hl]
	jr z, asm_76474
.asm_764b4
	ld a, $2
	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
	call DisplayTextID
	ld a, $40
	ld [$ccd3], a
	ld a, $1
	ld [$cd38], a
	call Func_3486
	ld a, $3
	ld [W_AGATHACURSCRIPT], a
	ld [W_CURMAPSCRIPT], a
	ret

CoordsData_764d1: ; 764d1 (1d:64d1)
	db $0A,$04
	db $0A,$05
	db $0B,$04
	db $0B,$05
	db $FF

AgathaScript3: ; 764da (1d:64da)
	ld a, [$cd38]
	and a
	ret nz
	call Delay3
	xor a
	ld [wJoyIgnore], a
	ld [W_AGATHACURSCRIPT], a
	ld [W_CURMAPSCRIPT], a
	ret

AgathaScript2: ; 764ed (1d:64ed)
	call EndTrainerBattle
	ld a, [W_ISINBATTLE] ; $d057
	cp $ff
	jp z, AgathaScript_76464
	ld a, $1
	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
	call DisplayTextID
	ld a, $1
	ld [W_GARYCURSCRIPT], a
	ret

AgathaTextPointers: ; 76505 (1d:6505)
	dw AgathaText1
	dw AgathaText2

AgathaTrainerHeaders: ; 76509 (1d:6509)
AgathaTrainerHeader0: ; 76509 (1d:6509)
	db $1 ; flag's bit
	db ($0 << 4) ; trainer's view range
	dw $d865 ; flag's byte
	dw AgathaBeforeBattleText ; 0x6520 TextBeforeBattle
	dw AgathaAfterBattleText ; 0x652a TextAfterBattle
	dw AgathaEndBattleText ; 0x6525 TextEndBattle
	dw AgathaEndBattleText ; 0x6525 TextEndBattle

	db $ff

AgathaText1: ; 76516 (1d:6516)
	db $08 ; asm
	ld hl, AgathaTrainerHeader0
	call TalkToTrainer
	jp TextScriptEnd

AgathaBeforeBattleText: ; 76520 (1d:6520)
	TX_FAR _AgathaBeforeBattleText
	db "@"

AgathaEndBattleText: ; 76525 (1d:6525)
	TX_FAR _AgathaEndBattleText
	db "@"

AgathaAfterBattleText: ; 7652a (1d:652a)
	TX_FAR _AgathaAfterBattleText
	db "@"

AgathaText2: ; 7652f (1d:652f)
	TX_FAR _AgathaText2
	db "@"