ref: 994f89b4906a2be44c92c3e6dcdc38371829d037
parent: 6c492cb86d4362ed481ea0ef991e47f8a4233e3b
author: yenatch <[email protected]>
date: Wed Feb 11 08:20:22 EST 2015
Split out the move deleter code.
--- /dev/null
+++ b/event/move_deleter.asm
@@ -1,0 +1,168 @@
+Function2c547: ; 2c547
+ ld hl, UnknownText_0x2c5ef
+ call PrintText
+ call YesNoBox
+ jr c, .asm_2c5c3
+ ld hl, UnknownText_0x2c5f4
+ call PrintText
+ callba Function50000
+ 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
+; 2c5d1
+
+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
+; 2c642
--- a/main.asm
+++ b/main.asm
@@ -41918,174 +41918,7 @@
ret
-Function2c547: ; 2c547
- ld hl, UnknownText_0x2c5ef
- call PrintText
- call YesNoBox
- jr c, .asm_2c5c3
- ld hl, UnknownText_0x2c5f4
- call PrintText
- callba Function50000
- 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
-; 2c5d1
-
-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
-; 2c642
+INCLUDE "event/move_deleter.asm"
Function2c642: ; 2c642 (b:4642)