summaryrefslogtreecommitdiff
path: root/event/move_deleter.asm
blob: 40456f31aac9b2f6a0eb55dfceefacaa1a53c198 (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
158
159
160
161
162
163
164
165
166
MoveDeletion:
	ld hl, UnknownText_0x2c5ef
	call PrintText
	call YesNoBox
	jr c, .asm_2c5c3
	ld hl, UnknownText_0x2c5f4
	call PrintText
	callba SelectMonFromParty
	jr c, .asm_2c5c3
	ld a, [CurPartySpecies]
	cp EGG
	jr z, .asm_2c5bc
	ld a, [CurPartyMon]
	ld hl, PartyMon1Moves + 1
	ld bc, PartyMon2 - PartyMon1
	call AddNTimes
	ld a, [hl]
	and a
	jr z, .asm_2c5ca
	ld hl, UnknownText_0x2c5ea
	call PrintText
	call Function1d6e
	callba Function12f5b
	push af
	call Function2b74
	pop af
	jr c, .asm_2c5c3
	ld a, [wcfa9]
	push af
	ld a, [CurSpecies]
	ld [wd265], a
	call GetMoveName
	ld hl, UnknownText_0x2c5d6
	call PrintText
	call YesNoBox
	pop bc
	jr c, .asm_2c5c3
	call Function2c5f9
	call WaitSFX
	ld de, SFX_MOVE_DELETED
	call PlaySFX
	call WaitSFX
	ld hl, UnknownText_0x2c5db
	call PrintText
	ret

.asm_2c5bc
	ld hl, UnknownText_0x2c5e0
	call PrintText
	ret

.asm_2c5c3
	ld hl, UnknownText_0x2c5e5
	call PrintText
	ret

.asm_2c5ca
	ld hl, UnknownText_0x2c5d1
	call PrintText
	ret

UnknownText_0x2c5d1: ; 0x2c5d1
	; That #MON knows only one move.
	text_jump UnknownText_0x1c5eba
	db "@"
; 0x2c5d6

UnknownText_0x2c5d6: ; 0x2c5d6
	; Oh, make it forget @ ?
	text_jump UnknownText_0x1c5eda
	db "@"
; 0x2c5db

UnknownText_0x2c5db: ; 0x2c5db
	; Done! Your #MON forgot the move.
	text_jump UnknownText_0x1c5ef5
	db "@"
; 0x2c5e0

UnknownText_0x2c5e0: ; 0x2c5e0
	; An EGG doesn't know any moves!
	text_jump UnknownText_0x1c5f17
	db "@"
; 0x2c5e5

UnknownText_0x2c5e5: ; 0x2c5e5
	; No? Come visit me again.
	text_jump UnknownText_0x1c5f36
	db "@"
; 0x2c5ea

UnknownText_0x2c5ea: ; 0x2c5ea
	; Which move should it forget, then?
	text_jump UnknownText_0x1c5f50
	db "@"
; 0x2c5ef

UnknownText_0x2c5ef: ; 0x2c5ef
	; Um… Oh, yes, I'm the MOVE DELETER. I can make #MON forget moves. Shall I make a #MON forget?
	text_jump UnknownText_0x1c5f74
	db "@"
; 0x2c5f4

UnknownText_0x2c5f4: ; 0x2c5f4
	; Which #MON?
	text_jump UnknownText_0x1c5fd1
	db "@"
; 0x2c5f9

Function2c5f9: ; 2c5f9
	ld a, b
	push bc
	dec a
	ld c, a
	ld b, 0
	ld hl, PartyMon1Moves
	add hl, bc
	ld a, [CurPartyMon]
	ld bc, PartyMon2 - PartyMon1
	call AddNTimes
	pop bc
	push bc
	inc b
.asm_2c60f
	ld a, b
	cp NUM_MOVES + 1
	jr z, .asm_2c61b
	inc hl
	ld a, [hld]
	ld [hl], a
	inc hl
	inc b
	jr .asm_2c60f

.asm_2c61b
	xor a
	ld [hl], a
	pop bc

	ld a, b
	push bc
	dec a
	ld c, a
	ld b, 0
	ld hl, PartyMon1PP
	add hl, bc
	ld a, [CurPartyMon]
	ld bc, PartyMon2 - PartyMon1
	call AddNTimes
	pop bc
	inc b
.asm_2c633
	ld a, b
	cp NUM_MOVES + 1
	jr z, .asm_2c63f
	inc hl
	ld a, [hld]
	ld [hl], a
	inc hl
	inc b
	jr .asm_2c633

.asm_2c63f
	xor a
	ld [hl], a
	ret