diff options
author | yenatch <yenatch@gmail.com> | 2015-02-11 13:20:22 -0800 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-02-11 13:20:22 -0800 |
commit | 994f89b4906a2be44c92c3e6dcdc38371829d037 (patch) | |
tree | 544ebe419714678230d4e93189d5c518878c49ff | |
parent | 6c492cb86d4362ed481ea0ef991e47f8a4233e3b (diff) |
Split out the move deleter code.
-rw-r--r-- | event/move_deleter.asm | 168 | ||||
-rw-r--r-- | main.asm | 169 |
2 files changed, 169 insertions, 168 deletions
diff --git a/event/move_deleter.asm b/event/move_deleter.asm new file mode 100644 index 000000000..b81006681 --- /dev/null +++ b/event/move_deleter.asm @@ -0,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 @@ -41918,174 +41918,7 @@ AI_Redundant: ; 2c41a 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) |