From 61521f4458a06ae5e7b8c872ae1b48cb5dd9572c Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 4 Jun 2014 16:21:10 -0700 Subject: [PATCH 01/22] Comment PrintNum. --- main.asm | 337 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 174 insertions(+), 163 deletions(-) diff --git a/main.asm b/main.asm index d87cc9323..23947c972 100644 --- a/main.asm +++ b/main.asm @@ -8503,55 +8503,65 @@ SpecialTrainerHouse: ; 0xc4b9 ld [ScriptVar], a jp CloseSRAM -_PrintNum:: ; c4c7 - push bc - bit 5, b - jr z, .asm_c4d9 - bit 7, b - jr nz, .asm_c4d4 - bit 6, b - jr z, .asm_c4d9 -.asm_c4d4 +_PrintNum:: ; c4c7 +; Print c digits of the b-byte value at hl. +; Allows 2 to 7 digits. For 1-digit numbers, add +; the value to char "0" instead of calling PrintNum. +; Some extra flags can be given in bits 5-7 of b. + + push bc + + bit 5, b + jr z, .main + bit 7, b + jr nz, .bit_7 + bit 6, b + jr z, .main + +.bit_7 ld a, $f0 ld [hli], a res 5, b -.asm_c4d9 +.main xor a - ld [hProduct], a - ld [hMultiplicand], a + ld [$ffb3], a + ld [$ffb4], a ld [$ffb5], a ld a, b and $f - cp $1 - jr z, .asm_c501 - cp $2 - jr z, .asm_c4f8 + cp 1 + jr z, .byte + cp 2 + jr z, .word + +.long ld a, [de] - ld [hMultiplicand], a + ld [$ffb4], a inc de ld a, [de] ld [$ffb5], a inc de ld a, [de] ld [$ffb6], a - jr .asm_c504 + jr .start -.asm_c4f8 +.word ld a, [de] ld [$ffb5], a inc de ld a, [de] ld [$ffb6], a - jr .asm_c504 + jr .start -.asm_c501 +.byte ld a, [de] ld [$ffb6], a -.asm_c504 +.start push de + ld d, b ld a, c swap a @@ -8560,123 +8570,126 @@ _PrintNum:: ; c4c7 ld a, c and $f ld b, a - ld c, $0 - cp $2 - jr z, .asm_c57c - cp $3 - jr z, .asm_c56c - cp $4 - jr z, .asm_c55b - cp $5 - jr z, .asm_c54a - cp $6 - jr z, .asm_c538 - ld a, $f - ld [hMultiplier], a - ld a, $42 - ld [hMathBuffer], a - ld a, $40 - ld [$ffb9], a - call Functionc5cb - call PrintNumber_AdvancePointer + ld c, 0 + cp 2 + jr z, .two + cp 3 + jr z, .three + cp 4 + jr z, .four + cp 5 + jr z, .five + cp 6 + jr z, .six -.asm_c538 - ld a, $1 - ld [hMultiplier], a - ld a, $86 - ld [hMathBuffer], a - ld a, $a0 +.seven + ld a, 1000000 / $10000 % $100 + ld [$ffb7], a + ld a, 1000000 / $100 % $100 + ld [$ffb8], a + ld a, 1000000 % $100 ld [$ffb9], a - call Functionc5cb - call PrintNumber_AdvancePointer + call .PrintDigit + call .AdvancePointer -.asm_c54a +.six + ld a, 100000 / $10000 % $100 + ld [$ffb7], a + ld a, 100000 / $100 % $100 + ld [$ffb8], a + ld a, 100000 % $100 + ld [$ffb9], a + call .PrintDigit + call .AdvancePointer + +.five xor a - ld [hMultiplier], a - ld a, $27 - ld [hMathBuffer], a - ld a, $10 + ld [$ffb7], a + ld a, 10000 / $100 + ld [$ffb8], a + ld a, 10000 % $100 ld [$ffb9], a - call Functionc5cb - call PrintNumber_AdvancePointer + call .PrintDigit + call .AdvancePointer -.asm_c55b +.four xor a - ld [hMultiplier], a - ld a, $3 - ld [hMathBuffer], a - ld a, $e8 + ld [$ffb7], a + ld a, 1000 / $100 + ld [$ffb8], a + ld a, 1000 % $100 ld [$ffb9], a - call Functionc5cb - call PrintNumber_AdvancePointer + call .PrintDigit + call .AdvancePointer -.asm_c56c +.three xor a - ld [hMultiplier], a + ld [$ffb7], a xor a - ld [hMathBuffer], a - ld a, $64 + ld [$ffb8], a + ld a, 100 ld [$ffb9], a - call Functionc5cb - call PrintNumber_AdvancePointer + call .PrintDigit + call .AdvancePointer -.asm_c57c +.two dec e jr nz, .asm_c583 ld a, $f6 - ld [hProduct], a - + ld [$ffb3], a .asm_c583 - ld c, $0 - ld a, [$ffb6] -.asm_c587 - cp $a - jr c, .asm_c590 - sub $a - inc c - jr .asm_c587 -.asm_c590 + ld c, 0 + ld a, [$ffb6] +.mod_10 + cp 10 + jr c, .modded_10 + sub 10 + inc c + jr .mod_10 +.modded_10 + ld b, a - ld a, [hProduct] + ld a, [$ffb3] or c jr nz, .asm_c59b - call PrintNumber_PrintLeadingZero + call .PrintLeadingZero jr .asm_c5ad .asm_c59b - call Functionc5ba + call .PrintYen push af - ld a, $f6 + ld a, "0" add c ld [hl], a pop af - ld [hProduct], a + ld [$ffb3], a inc e dec e jr nz, .asm_c5ad inc hl - ld [hl], $f2 + ld [hl], $f2 ; XXX .asm_c5ad - call PrintNumber_AdvancePointer - call Functionc5ba - ld a, $f6 + call .AdvancePointer + call .PrintYen + ld a, "0" add b ld [hli], a + pop de pop bc ret ; c5ba -Functionc5ba: ; c5ba +.PrintYen: ; c5ba push af - ld a, [hProduct] + ld a, [$ffb3] and a jr nz, .asm_c5c9 bit 5, d jr z, .asm_c5c9 - ld a, $f0 + ld a, "¥" ld [hli], a res 5, d @@ -8685,76 +8698,72 @@ Functionc5ba: ; c5ba ret ; c5cb - -; known jump sources: c532 (3:4532), c544 (3:4544), c555 (3:4555), c566 (3:4566), c576 (3:4576) -Functionc5cb: ; c5cb (3:45cb) +.PrintDigit: ; c5cb (3:45cb) dec e - jr nz, PrintNumber_PrintDigit + jr nz, .ok ld a, $f6 - ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) - -; known jump sources: c5cc (3:45cc) -PrintNumber_PrintDigit: ; c5d2 (3:45d2) + ld [$ffb3], a +.ok ld c, $0 .asm_c5d4 - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [$ffb7] ld b, a - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) - ld [$FF00+$ba], a + ld a, [$ffb4] + ld [$ffba], a cp b jr c, .asm_c624 sub b - ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) - ld a, [hMathBuffer] ; $ff00+$b8 + ld [$ffb4], a + ld a, [$ffb8] ld b, a - ld a, [$FF00+$b5] - ld [$FF00+$bb], a + ld a, [$ffb5] + ld [$ffbb], a cp b jr nc, .asm_c5f6 - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) + ld a, [$ffb4] or $0 jr z, .asm_c620 dec a - ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) - ld a, [$FF00+$b5] + ld [$ffb4], a + ld a, [$ffb5] .asm_c5f6 sub b - ld [$FF00+$b5], a - ld a, [$FF00+$b9] + ld [$ffb5], a + ld a, [$ffb9] ld b, a - ld a, [$FF00+$b6] - ld [$FF00+$bc], a + ld a, [$ffb6] + ld [$ffbc], a cp b jr nc, .asm_c616 - ld a, [$FF00+$b5] + ld a, [$ffb5] and a jr nz, .asm_c611 - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) + ld a, [$ffb4] and a jr z, .asm_c61c dec a - ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) + ld [$ffb4], a xor a .asm_c611 dec a - ld [$FF00+$b5], a - ld a, [$FF00+$b6] + ld [$ffb5], a + ld a, [$ffb6] .asm_c616 sub b - ld [$FF00+$b6], a + ld [$ffb6], a inc c jr .asm_c5d4 .asm_c61c - ld a, [$FF00+$bb] - ld [$FF00+$b5], a + ld a, [$ffbb] + ld [$ffb5], a .asm_c620 - ld a, [$FF00+$ba] - ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) + ld a, [$ffba] + ld [$ffb4], a .asm_c624 - ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) + ld a, [$ffb3] or c - jr z, PrintNumber_PrintLeadingZero - ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) + jr z, .PrintLeadingZero + ld a, [$ffb3] and a jr nz, .asm_c637 bit 5, d @@ -8766,7 +8775,7 @@ PrintNumber_PrintDigit: ; c5d2 (3:45d2) ld a, $f6 add c ld [hl], a - ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) + ld [$ffb3], a inc e dec e ret nz @@ -8774,49 +8783,51 @@ PrintNumber_PrintDigit: ; c5d2 (3:45d2) ld [hl], $f2 ret -PrintNumber_PrintLeadingZero: ; c644 +.PrintLeadingZero: ; c644 ; prints a leading zero unless they are turned off in the flags bit 7, d ; print leading zeroes? ret z ld [hl], "0" ret -PrintNumber_AdvancePointer: ; c64a +.AdvancePointer: ; c64a ; increments the pointer unless leading zeroes are not being printed, ; the number is left-aligned, and no nonzero digits have been printed yet bit 7, d ; print leading zeroes? - jr nz, .incrementPointer + jr nz, .inc bit 6, d ; left alignment or right alignment? - jr z, .incrementPointer - ld a, [hPastLeadingZeroes] + jr z, .inc + ld a, [$ffb3] and a ret z -.incrementPointer +.inc inc hl ret -; 0xc658 +; c658 + Functionc658: ; c658 xor a ld [CurPartyMon], a ld hl, PartySpecies -.asm_c65f +.loop ld a, [hli] cp $ff - jr z, .asm_c676 - cp $fd - jr z, .asm_c66d + jr z, .done + cp EGG + jr z, .next + push hl call Functionc677 pop hl -.asm_c66d +.next ld a, [CurPartyMon] inc a ld [CurPartyMon], a - jr .asm_c65f + jr .loop -.asm_c676 +.done ret ; c677 @@ -44727,7 +44738,7 @@ Function3989d: ; 3989d ; known jump sources: 397d0 (e:57d0) Function3991b: ; 3991b (e:591b) - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld hl, $ffb3 xor a ld [hli], a ld [hli], a @@ -51173,10 +51184,10 @@ Function48d4a: ; 48d4a (12:4d4a) ; known jump sources: 48d40 (12:4d40), 48d46 (12:4d46) Function48d94: ; 48d94 (12:4d94) xor a - ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) + ld [$ffb3], a ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, [hli] - ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) + ld [$ffb3], a ld a, [hl] ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, 100 @@ -106119,7 +106130,7 @@ Function104a95: ; 104a95 (41:4a95) ld a, [$FF00+$bb] cp $2 jr z, Function104b22 - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld hl, $ffb3 ld b, $1 call Function104d56 jr nz, .asm_104ac8 @@ -106197,7 +106208,7 @@ Function104b22: ; 104b22 (41:4b22) ; known jump sources: 104b04 (41:4b04), 104b2e (41:4b2e) Function104b40: ; 104b40 (41:4b40) - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld hl, $ffb3 ld b, $1 call Function104d56 ret nz @@ -106208,14 +106219,14 @@ Function104b49: ; 104b49 (41:4b49) ld a, [$FF00+$bc] cp $6c ret nz - ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) + ld a, [$ffb3] cp $96 jp nz, Function104d32 ld a, $90 - ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) + ld [$ffb3], a call Function104d38 ret nz - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld hl, $ffb3 ld b, $1 call Function104d4e ret nz @@ -106238,8 +106249,8 @@ Function104b49: ; 104b49 (41:4b49) ; known jump sources: 104b10 (41:4b10), 104b22 (41:4b22) Function104b88: ; 104b88 (41:4b88) ld a, $96 - ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld [$ffb3], a + ld hl, $ffb3 ld b, $1 call Function104d4e ret nz @@ -106249,7 +106260,7 @@ Function104b88: ; 104b88 (41:4b88) ret nz call Function104d43 ret nz - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld hl, $ffb3 ld b, $1 call Function104d56 ret nz @@ -106257,7 +106268,7 @@ Function104b88: ; 104b88 (41:4b88) ld a, [$FF00+$bc] cp $6c ret nz - ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) + ld a, [$ffb3] cp $90 jp nz, Function104d32 call Function104d38 @@ -106358,7 +106369,7 @@ Function104c2d: ; 104c2d (41:4c2d) ; known jump sources: 104c4e (41:4c4e), 104c78 (41:4c78) Function104c8a: ; 104c8a (41:4c8a) - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld hl, $ffb3 ld b, $1 call Function104d56 ret nz @@ -106366,14 +106377,14 @@ Function104c8a: ; 104c8a (41:4c8a) ld a, [$FF00+$bc] cp $6c ret nz - ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) + ld a, [$ffb3] cp $3c jp nz, Function104d32 swap a - ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) + ld [$ffb3], a call Function104d38 ret nz - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld hl, $ffb3 ld b, $1 call Function104d4e ret nz @@ -106396,8 +106407,8 @@ Function104c8a: ; 104c8a (41:4c8a) ; known jump sources: 104c5a (41:4c5a), 104c6c (41:4c6c) Function104cd2: ; 104cd2 (41:4cd2) ld a, $3c - ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld [$ffb3], a + ld hl, $ffb3 ld b, $1 call Function104d4e ret nz @@ -106407,7 +106418,7 @@ Function104cd2: ; 104cd2 (41:4cd2) ret nz call Function104d43 ret nz - ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) + ld hl, $ffb3 ld b, $1 call Function104d56 ret nz @@ -106415,7 +106426,7 @@ Function104cd2: ; 104cd2 (41:4cd2) ld a, [$FF00+$bc] cp $6c ret nz - ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) + ld a, [$ffb3] swap a cp $3c jp nz, Function104d32 From 0d682e076acd6e742bd711a43ab1c6c7c3492b3c Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 10 Jun 2014 23:03:21 -0700 Subject: [PATCH 02/22] Fix argument handling in *coord macros. Add a "percent" shortcut. Random returns a value from 0 to 0xff. Instead of doing extra work, most probabilities are out of 0xff. Convert these from percentages at build time for readability. --- macros.asm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/macros.asm b/macros.asm index aa8876055..efd43318a 100644 --- a/macros.asm +++ b/macros.asm @@ -13,6 +13,8 @@ page EQUS "db $50," ; Start a new Pokedex page. dex EQUS "db $e8, $50" ; End a Pokedex entry. +percent EQUS "* $ff / 100" + ; macros require rst vectors to be defined FarCall EQU $08 Bankswitch EQU $10 @@ -118,15 +120,15 @@ B_ EQU 12 bccoord: MACRO - ld bc, TileMap + SCREEN_WIDTH * \2 + \1 + ld bc, TileMap + SCREEN_WIDTH * (\2) + (\1) ENDM decoord: MACRO - ld de, TileMap + SCREEN_WIDTH * \2 + \1 + ld de, TileMap + SCREEN_WIDTH * (\2) + (\1) ENDM hlcoord: MACRO - ld hl, TileMap + SCREEN_WIDTH * \2 + \1 + ld hl, TileMap + SCREEN_WIDTH * (\2) + (\1) ENDM From 86c1e0feea0ba487b020b801835aa19b221edb4d Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 10 Jun 2014 23:08:07 -0700 Subject: [PATCH 03/22] Consolidate NUM_MOVES usage and monster struct labels. There turned out to be a lot of instances of NUM_MOVES. --- battle/core.asm | 223 ++++++++-------- battle/effect_commands.asm | 475 +++++++++++++++++++---------------- constants/misc_constants.asm | 10 + items/item_effects.asm | 87 ++++--- main.asm | 402 ++++++++++++++--------------- wram.asm | 145 +++-------- 6 files changed, 655 insertions(+), 687 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index 6cb19b7d6..b4678e8f9 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -172,7 +172,7 @@ Function3c12f: ; 3c12f ld [$c73f], a ld [$c740], a ld [CurDamage], a - ld [$d257], a + ld [CurDamage + 1], a call Function3c27c call UpdateBattleMonInParty callba AIChooseMove @@ -723,7 +723,7 @@ Function3c4df: ; 3c4df dec a ld [PlayerEncoreCount], a jr z, .asm_3c50a - ld hl, BattleMonPPMove1 + ld hl, BattleMonPP ld a, [CurMoveNum] ld c, a ld b, $0 @@ -747,7 +747,7 @@ Function3c4df: ; 3c4df dec a ld [EnemyEncoreCount], a jr z, .asm_3c535 - ld hl, EnemyMonPPMove1 + ld hl, EnemyMonPP ld a, [CurEnemyMoveNum] ld c, a ld b, $0 @@ -1390,14 +1390,14 @@ Function3c93c: ; 3c93c .asm_3c957 callab GetUserItem ld a, b - cp $6 + cp HELD_RESTORE_PP jr nz, .asm_3c9ae ld hl, PartyMon1PP ld a, [CurBattleMon] call GetPartyLocation ld d, h ld e, l - ld hl, PartyMon1Move1 + ld hl, PartyMon1Moves ld a, [CurBattleMon] call GetPartyLocation ld a, [hBattleTurn] @@ -1408,12 +1408,12 @@ Function3c93c: ; 3c93c ld a, [IsInBattle] dec a jr z, .asm_3c99b - ld hl, OTPartyMon1PPMove1 + ld hl, OTPartyMon1PP ld a, [CurOTMon] call GetPartyLocation ld d, h ld e, l - ld hl, OTPartyMon1Move1 + ld hl, OTPartyMon1Moves ld a, [CurOTMon] call GetPartyLocation @@ -1430,18 +1430,19 @@ Function3c93c: ; 3c93c inc de inc c ld a, c - cp $4 + cp NUM_MOVES jr nz, .asm_3c99d .asm_3c9ae ret .asm_3c9af + ; lousy hack ld a, [hl] - cp $a6 - ld b, $1 + cp SKETCH + ld b, 1 jr z, .asm_3c9b8 - ld b, $5 + ld b, 5 .asm_3c9b8 ld a, [de] @@ -1451,18 +1452,18 @@ Function3c93c: ; 3c93c push bc ld a, [hl] ld [$d265], a - ld de, BattleMonItem - ld hl, BattleMonPPMove1 + ld de, BattleMonMoves - 1 + ld hl, BattleMonPP ld a, [hBattleTurn] and a jr z, .asm_3c9d2 - ld de, EnemyMonItem - ld hl, EnemyMonPPMove1 + ld de, EnemyMonMoves - 1 + ld hl, EnemyMonPP .asm_3c9d2 inc de pop bc - ld b, $0 + ld b, 0 add hl, bc push hl ld h, d @@ -1542,27 +1543,32 @@ Function3ca26: ; 3ca26 ld [hl], a cp $1 ret nz + ld hl, BattleText_0x808b6 call StdBattleTextBox - ld a, $10 + + ld a, BATTLE_VARS_MOVE call _GetBattleVar push af - ld a, $f8 + ld a, FUTURE_SIGHT ld [hl], a + callab UpdateMoveData xor a ld [AttackMissed], a ld [AlreadyDisobeyed], a - ld a, $a + ld a, 10 ld [TypeModifier], a callab DoMove xor a ld [CurDamage], a - ld [$d257], a - ld a, $10 + ld [CurDamage + 1], a + + ld a, BATTLE_VARS_MOVE call _GetBattleVar pop af ld [hl], a + call UpdateBattleMonInParty jp UpdateEnemyMonInParty ; 3ca8f @@ -1635,24 +1641,24 @@ Function3cafb: ; 3cafb call .asm_3cb1c .asm_3cb09 ld a, [PlayerScreens] - bit 2, a + bit SCREENS_SAFEGUARD, a ret z ld hl, $c701 dec [hl] ret nz - res 2, a + res SCREENS_SAFEGUARD, a ld [PlayerScreens], a xor a jr .asm_3cb2e .asm_3cb1c ld a, [EnemyScreens] - bit 2, a + bit SCREENS_SAFEGUARD, a ret z ld hl, $c705 dec [hl] ret nz - res 2, a + res SCREENS_SAFEGUARD, a ld [EnemyScreens], a ld a, $1 @@ -1676,7 +1682,7 @@ Function3cb36: ; 3cb36 .CheckPlayer call SetPlayerTurn ld de, .Your - call .asm_3cb6f + call .Copy ld hl, PlayerScreens ld de, PlayerLightScreenCount jr .FadeScreens @@ -1684,7 +1690,7 @@ Function3cb36: ; 3cb36 .CheckEnemy call SetEnemyTurn ld de, .Enemy - call .asm_3cb6f + call .Copy ld hl, EnemyScreens ld de, EnemyLightScreenCount @@ -1695,7 +1701,7 @@ Function3cb36: ; 3cb36 call nz, FadeReflect ret -.asm_3cb6f +.Copy ld hl, StringBuffer1 jp CopyName2 ; 3cb75 @@ -1852,7 +1858,7 @@ Function3cc45: ; 3cc45 ld a, [hBattleTurn] and a jr z, .asm_3cc50 - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP .asm_3cc50 inc hl @@ -2099,7 +2105,7 @@ Function3cd55: ; 3cd55 call nz, Function3df48 ld a, $1 ld [hBGMapMode], a - ld c, $3c + ld c, 60 call DelayFrames ld a, [IsInBattle] dec a @@ -2147,7 +2153,7 @@ Function3cdca: ; 3cdca jr z, .asm_3cde6 call ClearSprites hlcoord 1, 0 - ld bc, $040a + lb bc, 4, 10 call ClearBox call Function3d2b3 ld a, $1 @@ -2264,27 +2270,29 @@ Function3ce01: ; 3ce01 Function3ceaa: ; 3ceaa ld a, [PartyCount] ld b, a - ld hl, PartyMon1Species + ld hl, PartyMon1 ld c, $1 ld d, $0 .asm_3ceb5 push hl push bc - ld bc, $0022 + ld bc, PartyMon1HP - PartyMon1 add hl, bc ld a, [hli] or [hl] pop bc pop hl jr z, .asm_3ced1 + push hl push bc - ld bc, $0001 + ld bc, PartyMon1Item - PartyMon1 add hl, bc pop bc ld a, [hl] pop hl - cp $39 + + cp EXP_SHARE jr nz, .asm_3ced1 ld a, d or c @@ -2293,7 +2301,7 @@ Function3ceaa: ; 3ceaa .asm_3ced1 sla c push de - ld de, $0030 + ld de, PartyMon2 - PartyMon1 add hl, de pop de dec b @@ -2331,7 +2339,7 @@ Function3cef1: ; 3cef1 call Function37b6 call Function3d43b hlcoord 9, 7 - ld bc, $050b + lb bc, 5, 11 call ClearBox ld hl, BattleText_0x80a75 jp StdBattleTextBox @@ -2345,7 +2353,7 @@ Function3cf14: ; 3cf14 ld de, SFX_UNKNOWN_2A call PlaySFX hlcoord 1, 0 - ld bc, $040a + lb bc, 4, 10 call ClearBox ld hl, BattleText_0x809a8 jp StdBattleTextBox @@ -2356,7 +2364,7 @@ Function3cf35: ; 3cf35 ld b, a xor a ld hl, OTPartyMon1HP - ld de, $0030 + ld de, PartyMon2 - PartyMon1 .asm_3cf40 or [hl] inc hl @@ -2494,7 +2502,7 @@ Function3d02b: ; 3d02b push af ld a, $0 jr nc, .asm_3d044 - ld a, [$d854] + ld a, [wMomSavingMoney] and $7 cp $3 jr nz, .asm_3d044 @@ -2525,7 +2533,7 @@ Function3d02b: ; 3d02b call Function3d099 pop af jr nc, .asm_3d07b - ld a, [$d854] + ld a, [wMomSavingMoney] and $7 jr z, .asm_3d07b ld hl, SentToMomTexts @@ -2547,7 +2555,7 @@ Function3d02b: ; 3d02b Function3d081: ; 3d081 push bc ld hl, $c688 - ld de, $d853 + ld de, wMomsMoney + 2 call Function3d0be pop bc ret @@ -2556,7 +2564,7 @@ Function3d081: ; 3d081 Function3d08d: ; 3d08d push bc ld hl, $c688 - ld de, $d850 + ld de, Money + 2 call Function3d0be pop bc ret @@ -2585,13 +2593,13 @@ SentToMomTexts: ; 3d0ab Function3d0b1: ; 3d0b1 - ld hl, $d853 + ld hl, wMomsMoney + 2 ld a, [hld] - cp $3f + cp 999999 % $100 ld a, [hld] - sbc $42 + sbc 999999 / $100 % $100 ld a, [hl] - sbc $f + sbc 999999 / $10000 % $100 ret ; 3d0be @@ -2616,17 +2624,17 @@ Function3d0be: ; 3d0be jr nz, .asm_3d0ce pop hl ld a, [hld] - cp $3f + cp 999999 % $100 ld a, [hld] - sbc $42 + sbc 999999 / $100 % $100 ld a, [hl] - sbc $f + sbc 999999 / $10000 % $100 ret c - ld [hl], $f + ld [hl], 999999 / $10000 % $100 inc hl - ld [hl], $42 + ld [hl], 999999 / $100 % $100 inc hl - ld [hl], $3f + ld [hl], 999999 % $100 ret ; 3d0ea @@ -3412,7 +3420,7 @@ Function3d599: ; 3d599 Function3d5d7: ; 3d5d7 push bc - ld hl, OTPartyMon1Move1 + ld hl, OTPartyMon1Moves ld a, b call GetPartyLocation pop bc @@ -5531,7 +5539,7 @@ Function3e4bc: ; 3e4bc ret .asm_3e4c8 - ld hl, EnemyMonMove1 + ld hl, EnemyMonMoves ld a, [$d235] dec a jr z, .asm_3e4e2 @@ -5539,49 +5547,50 @@ Function3e4bc: ; 3e4bc jr z, .asm_3e4dd call Function3e786 ret z - ld hl, BattleMonMove1 + ld hl, BattleMonMoves jr .asm_3e4e2 .asm_3e4dd - ld a, $2 + ld a, PartyMon1Moves - PartyMon1 call GetPartyParamLocation .asm_3e4e2 ld de, $d25e - ld bc, $0004 + ld bc, NUM_MOVES call CopyBytes xor a ld [hBGMapMode], a - hlcoord 4, 12 - ld b, $4 - ld c, $e + + hlcoord 4, 17 - NUM_MOVES - 1 + ld b, 4 + ld c, 14 ld a, [$d235] cp $2 jr nz, .asm_3e503 - hlcoord 4, 8 - ld b, $4 - ld c, $e - + hlcoord 4, 17 - NUM_MOVES - 1 - 4 + ld b, 4 + ld c, 14 .asm_3e503 call TextBox - hlcoord 6, 13 + + hlcoord 6, 17 - NUM_MOVES ld a, [$d235] cp $2 jr nz, .asm_3e513 - hlcoord 6, 9 - + hlcoord 6, 17 - NUM_MOVES - 4 .asm_3e513 - ld a, $14 + ld a, SCREEN_WIDTH ld [Buffer1], a - ld a, $20 + ld a, PREDEF_LIST_MOVES call Predef - ld b, $5 + + ld b, 5 ld a, [$d235] cp $2 - ld a, $d + ld a, 17 - NUM_MOVES jr nz, .asm_3e52c - ld b, $5 - ld a, $9 + ld b, 5 + ld a, 17 - NUM_MOVES - 4 .asm_3e52c ld [$cfa1], a @@ -5641,10 +5650,10 @@ Function3e4bc: ; 3e4bc and a jr z, .asm_3e5a3 hlcoord 5, 13 - ld bc, $0014 + ld bc, SCREEN_WIDTH dec a call AddNTimes - ld [hl], $ec + ld [hl], "▷" .asm_3e5a3 ld a, $1 @@ -5681,10 +5690,10 @@ Function3e4bc: ; 3e4bc .asm_3e5d9 pop af ret nz - ld hl, BattleMonPPMove1 + ld hl, BattleMonPP ld a, [$cfa9] ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] and $3f @@ -5699,9 +5708,9 @@ Function3e4bc: ; 3e4bc and a jr nz, .asm_3e606 ld a, [$cfa9] - ld hl, BattleMonMove1 + ld hl, BattleMonMoves ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] @@ -6018,8 +6027,8 @@ Function3e7c1: ; 3e7c1 bit 4, [hl] ld a, [LastEnemyMove] jp nz, .asm_3e87f - ld hl, EnemyMonMove1 - ld b, $0 + ld hl, EnemyMonMoves + ld b, 0 add hl, bc ld a, [hl] jp .asm_3e87f @@ -6041,9 +6050,9 @@ Function3e7c1: ; 3e7c1 jr .asm_3e87f .asm_3e830 - ld hl, EnemyMonMove1 - ld de, EnemyMonPPMove1 - ld b, $4 + ld hl, EnemyMonMoves + ld de, EnemyMonPP + ld b, NUM_MOVES .asm_3e838 ld a, [hl] and a @@ -6067,11 +6076,11 @@ Function3e7c1: ; 3e7c1 dec a jr nz, .asm_3e882 .asm_3e855 - ld hl, EnemyMonMove1 + ld hl, EnemyMonMoves call BattleRandom - and $3 + and 3 ; TODO factor in NUM_MOVES ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [EnemyDisableCount] swap a @@ -6082,7 +6091,7 @@ Function3e7c1: ; 3e7c1 ld a, [hl] and a jr z, .asm_3e855 - ld hl, EnemyMonPPMove1 + ld hl, EnemyMonPP add hl, bc ld b, a ld a, [hl] @@ -6105,25 +6114,25 @@ Function3e7c1: ; 3e7c1 .asm_3e894 ld a, [EnemyMoveEffect] - cp $77 + cp EFFECT_FURY_CUTTER jr z, .asm_3e89f xor a ld [EnemyFuryCutterCount], a .asm_3e89f ld a, [EnemyMoveEffect] - cp $51 + cp EFFECT_RAGE jr z, .asm_3e8af ld hl, EnemySubStatus4 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] xor a ld [$c72c], a .asm_3e8af ld a, [EnemyMoveEffect] - cp $6f + cp EFFECT_PROTECT ret z - cp $74 + cp EFFECT_ENDURE ret z xor a ld [$c681], a @@ -6140,20 +6149,20 @@ Function3e8c1: ; 3e8c1 ld [$c681], a ld [$c72c], a ld hl, EnemySubStatus4 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] ret ; 3e8d1 Function3e8d1: ; 3e8d1 ld a, [EnemySubStatus4] - and $20 + and 1 << SUBSTATUS_RECHARGE ret nz ld hl, EnemySubStatus3 ld a, [hl] - and $13 + and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_ROLLOUT | 1 << SUBSTATUS_BIDE ret nz ld hl, EnemySubStatus1 - bit 6, [hl] + bit SUBSTATUS_ENCORED, [hl] ret ; 3e8e4 @@ -8520,19 +8529,19 @@ Function3f607: ; 3f607 ld [IsInBattle], a callba Function10605d call LoadEnemyMon - ld hl, EnemyMonMove1 + ld hl, EnemyMonMoves ld de, $c735 - ld bc, $0004 + ld bc, NUM_MOVES call CopyBytes - ld hl, EnemyMonPPMove1 + ld hl, EnemyMonPP ld de, $c739 - ld bc, $0004 + ld bc, NUM_MOVES call CopyBytes ld hl, EnemyMonAtkDefDV ld a, $2d call Predef ld a, [CurPartySpecies] - cp $c9 + cp UNOWN jr nz, .asm_3f648 ld a, [$def4] and a @@ -8555,9 +8564,9 @@ Function3f607: ; 3f607 ; 3f662 Function3f662: ; 3f662 - ld hl, EnemyMonMove1 + ld hl, EnemyMonMoves ld de, $d25e - ld b, 4 + ld b, NUM_MOVES .loop ld a, [de] inc de @@ -8618,7 +8627,7 @@ Function3f6a5: ; 3f6a5 and a jr z, .asm_3f6b7 call Function3f759 - ld c, $96 + ld c, 150 call DelayFrames call Function3f77c ret @@ -8693,7 +8702,7 @@ Function3f71d: ; 3f71d .asm_3f73d ld hl, $c6ee - ld de, $d850 + ld de, Money + 2 call Function3d0be ld hl, BattleText_0x80730 call StdBattleTextBox diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index d16528d22..ed6f0257a 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -905,7 +905,7 @@ BattleCommand02: ; 343db .UseInstead ; Can't use another move if the monster only has one! - ld a, [BattleMonMove2] + ld a, [BattleMonMoves + 1] and a jr z, .DoNothing @@ -1744,8 +1744,8 @@ Function3484e: ; 3484e Function348de: ; 348de - ld de, EnemyMonMove1 - ld b, 5 + ld de, EnemyMonMoves + ld b, NUM_MOVES + 1 ld c, 0 ld a, [$d265] @@ -1775,7 +1775,7 @@ Function348de: ; 348de jr z, .loop inc c - cp $a + cp 10 jr c, .loop inc c @@ -1784,10 +1784,10 @@ Function348de: ; 348de inc c inc c - cp $a + cp 10 jr z, .loop - ld c, $64 + ld c, 100 jr .loop .exit @@ -1797,9 +1797,9 @@ Function348de: ; 348de ld a, c and a jr z, .doubledown ; double down - cp $5 + cp 5 jr c, Function34931 ; down - cp $64 + cp 100 ret c jr Function34939 ; up @@ -1833,11 +1833,11 @@ Function34941: ; 34941 ret c ld a, [EnemySubStatus1] - bit 4, a + bit SUBSTATUS_PERISH, a jr z, .asm_34986 - ld a, [$c67f] - cp $1 + ld a, [EnemyPerishCount] + cp 1 jr nz, .asm_34986 call Function349f4 @@ -1969,10 +1969,11 @@ Function349f4: ; 349f4 ld a, c or b ld c, a + .asm_34a16 srl b push bc - ld bc, $30 + ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc inc e @@ -2010,7 +2011,7 @@ Function34a2a: ; 34a2a push hl push bc - ld bc, $0022 + ld bc, PartyMon1HP - PartyMon1 add hl, bc pop bc ld a, [hli] @@ -2045,7 +2046,7 @@ Function34a2a: ; 34a2a ret z push bc - ld bc, $30 + ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc @@ -2074,7 +2075,7 @@ Function34a85: ; 34a85 .asm_34a98 srl b push bc - ld bc, $2f + ld bc, PartyMon2HP - (PartyMon1HP + 1) add hl, bc pop bc dec e @@ -2093,7 +2094,7 @@ Function34aa7: ; 34aa7 ld a, $ff ld [$c716], a - ld hl, OTPartyMon1Move1 + ld hl, OTPartyMon1Moves ld b, $20 ld d, $0 ld e, $0 @@ -2104,7 +2105,7 @@ Function34aa7: ; 34aa7 push hl push bc - ld b, $4 + ld b, NUM_MOVES ld c, $0 .asm_34abf ld a, [hli] @@ -2159,7 +2160,7 @@ Function34aa7: ; 34aa7 .asm_34b00 push bc - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc srl b @@ -2288,7 +2289,7 @@ Function34b77: ; 34b77 srl b pop hl push bc - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc jr .asm_34b82 @@ -4991,17 +4992,17 @@ BattleCommand48: ; 35b33 jr nz, .asm_35ba3 ; 35b3a $67 ld a, [hBattleTurn] and a - ld hl, BattleMonMove2 + ld hl, BattleMonMoves + 1 ld a, [DisabledMove] ld d, a jr z, .asm_35b4f ; 35b46 $7 - ld hl, EnemyMonMove2 + ld hl, EnemyMonMoves + 1 ld a, [EnemyDisabledMove] ld d, a .asm_35b4f ld a, BATTLE_VARS_STATUS call GetBattleVar - and $7 + and SLP jr z, .asm_35ba3 ; 35b56 $4b ld a, [hl] and a @@ -5012,9 +5013,9 @@ BattleCommand48: ; 35b33 .asm_35b62 push hl call BattleRandom - and $3 + and 3 ; TODO factor in NUM_MOVES ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] pop hl @@ -5068,11 +5069,11 @@ BattleCommand48: ; 35b33 ld a, [EnemyDisabledMove] .asm_35bbe ld b, a - ld a, $10 + ld a, BATTLE_VARS_MOVE call GetBattleVar ld c, a dec hl - ld d, $4 + ld d, NUM_MOVES .asm_35bc8 ld a, [hl] and a @@ -5112,17 +5113,17 @@ BattleCommand48: ; 35b33 pop de pop hl - cp $91 + cp EFFECT_SKULL_BASH ret z - cp $27 + cp EFFECT_RAZOR_WIND ret z - cp $4b + cp EFFECT_SKY_ATTACK ret z - cp $97 + cp EFFECT_SOLARBEAM ret z - cp $9b + cp EFFECT_FLY ret z - cp $1a + cp EFFECT_BIDE ret ; 35bff @@ -5132,7 +5133,7 @@ BattleCommand49: ; 35bff ld a, BATTLE_VARS_SUBSTATUS5 call _GetBattleVar - set 6, [hl] + set SUBSTATUS_DESTINY_BOND, [hl] call AnimateCurrentMove ld hl, DestinyBondEffectText jp StdBattleTextBox @@ -5156,7 +5157,7 @@ BattleCommand4a: ; 35c0f call GetBattleVar and a jr z, .asm_35c91 ; 35c2a $65 - cp $a5 + cp STRUGGLE jr z, .asm_35c91 ; 35c2e $61 ld b, a ld c, $ff @@ -5178,7 +5179,7 @@ BattleCommand4a: ; 35c0f push bc call GetMoveName call BattleRandom - and $3 + and 3 inc a inc a ld b, a @@ -5192,7 +5193,7 @@ BattleCommand4a: ; 35c0f sub b ld [hl], a push af - ld a, $17 + ld a, PartyMon1PP - PartyMon1 call OpponentPartyAttr ld d, b pop af @@ -5275,7 +5276,7 @@ BattleCommand4c: ; 35cc9 ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - res 0, [hl] + res SUBSTATUS_NIGHTMARE, [hl] ld de, PartyMon1Status ld a, [hBattleTurn] and a @@ -5288,8 +5289,8 @@ BattleCommand4c: ; 35cc9 ld [hl], a ld h, d ld l, e - ld bc, $30 - ld d, $6 + ld bc, PartyMon2 - PartyMon1 + ld d, PartyEnd - PartySpecies .asm_35ce9 ld [hl], a add hl, bc @@ -5313,7 +5314,7 @@ FarPlayBattleAnimation: ; 35d00 ; battle animations disabled? ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar - and $60 ; bit 6 | 5 + and 1 << 6 | 1 << 5 ret nz ; fallthrough @@ -5347,19 +5348,19 @@ Function35d1c: ; 35d1c jr nz, .asm_35d31 ld a, [EnemySubStatus4] - bit 4, a + bit SUBSTATUS_SUBSTITUTE, a jp nz, Function35de0 .asm_35d31 ld a, [hld] ld b, a - ld a, [EnemyMonHPLo] + ld a, [EnemyMonHP + 1] ld [$d1ec], a sub b - ld [EnemyMonHPLo], a + ld [EnemyMonHP + 1], a ld a, [hl] ld b, a - ld a, [EnemyMonHPHi] - ld [$d1ed], a + ld a, [EnemyMonHP] + ld [$d1ec + 1], a sbc b ld [EnemyMonHPHi], a jr nc, .asm_35d59 @@ -5368,17 +5369,19 @@ Function35d1c: ; 35d1c ld [hli], a ld a, [$d1ec] ld [hl], a + xor a - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld [hli], a ld [hl], a + .asm_35d59 - ld hl, EnemyMonMaxHPHi + ld hl, EnemyMonMaxHP ld a, [hli] ld [$d1eb], a ld a, [hl] ld [$d1ea], a - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] ld [$d1ef], a ld a, [hl] @@ -5406,35 +5409,37 @@ Function35d7e: ; 35d7e jr nz, .asm_35d93 ld a, [PlayerSubStatus4] - bit 4, a + bit SUBSTATUS_SUBSTITUTE, a jp nz, Function35de0 .asm_35d93 ld a, [hld] ld b, a - ld a, [$c63d] + ld a, [BattleMonHP + 1] ld [$d1ec], a sub b - ld [$c63d], a + ld [BattleMonHP + 1], a ld [$d1ee], a ld b, [hl] ld a, [BattleMonHP] - ld [$d1ed], a + ld [$d1ec + 1], a sbc b ld [BattleMonHP], a - ld [$d1ef], a + ld [$d1ee + 1], a jr nc, .asm_35dc5 - ld a, [$d1ed] + ld a, [$d1ec + 1] ld [hli], a ld a, [$d1ec] ld [hl], a xor a + ld hl, BattleMonHP ld [hli], a ld [hl], a ld hl, $d1ee ld [hli], a ld [hl], a + .asm_35dc5 ld hl, BattleMonMaxHP ld a, [hli] @@ -5456,29 +5461,28 @@ Function35de0: ; 35de0 ld hl, SubTookDamageText call StdBattleTextBox - ld de, $c6e0 + ld de, EnemySubstituteHP ld a, [hBattleTurn] and a - jr z, .asm_35df1 + jr z, .got_hp + ld de, PlayerSubstituteHP +.got_hp - ld de, $c6df -.asm_35df1 ld hl, CurDamage ld a, [hli] and a - jr nz, .asm_35dff + jr nz, .broke ld a, [de] sub [hl] ld [de], a - jr z, .asm_35dff + jr z, .broke + jr nc, .done - jr nc, .asm_35e3d - -.asm_35dff +.broke ld a, BATTLE_VARS_SUBSTATUS4_OPP call _GetBattleVar - res 4, [hl] + res SUBSTATUS_SUBSTITUTE, [hl] ld hl, SubFadedText call StdBattleTextBox @@ -5487,28 +5491,27 @@ Function35de0: ; 35de0 call BattleCommanda7 ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar - and $60 ; fly | dig + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND call z, Function37ec7 call SwitchTurn ld a, BATTLE_VARS_MOVE_EFFECT call _GetBattleVar cp EFFECT_MULTI_HIT - jr z, .asm_35e3a + jr z, .ok cp EFFECT_DOUBLE_HIT - jr z, .asm_35e3a + jr z, .ok cp EFFECT_TWINEEDLE - jr z, .asm_35e3a + jr z, .ok cp EFFECT_TRIPLE_KICK - jr z, .asm_35e3a + jr z, .ok cp EFFECT_BEAT_UP - jr z, .asm_35e3a - + jr z, .ok xor a ld [hl], a -.asm_35e3a +.ok call RefreshBattleHuds -.asm_35e3d +.done jp ResetDamage ; 35e40 @@ -8271,17 +8274,19 @@ BattleCommand31: ; 36e7c call BattleCommandaa ld hl, BattleMonMaxHP - ld de, $c6df + ld de, PlayerSubstituteHP ld a, [hBattleTurn] and a - jr z, .asm_36e90 ; 36e88 $6 - ld hl, EnemyMonMaxHPHi - ld de, $c6e0 -.asm_36e90 + jr z, .got_hp + ld hl, EnemyMonMaxHP + ld de, EnemySubstituteHP +.got_hp + ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVar - bit 4, a + bit SUBSTATUS_SUBSTITUTE, a jr nz, .asm_36ef4 ; 36e97 $5b + ld a, [hli] ld b, [hl] srl a @@ -8296,7 +8301,7 @@ BattleCommand31: ; 36e7c sub b ld e, a ld a, [hl] - sbc $0 + sbc 0 ld d, a jr c, .asm_36eff ; 36eae $4f ld a, d @@ -8305,22 +8310,26 @@ BattleCommand31: ; 36e7c ld [hl], d inc hl ld [hl], e + ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - set 4, [hl] + set SUBSTATUS_SUBSTITUTE, [hl] + ld hl, $c730 ld de, $c72e ld a, [hBattleTurn] and a - jr z, .asm_36ecf ; 36ec7 $6 + jr z, .asm_36ecf ld hl, $c731 ld de, $c72f .asm_36ecf + xor a ld [hl], a ld [de], a call Function37ed5 jr c, .asm_36ee8 ; 36ed5 $11 + xor a ld [$cfca], a ld [FXAnimIDHi], a @@ -8328,17 +8337,20 @@ BattleCommand31: ; 36e7c ld a, $a4 call Function37e44 jr .asm_36eeb ; 36ee6 $3 + .asm_36ee8 call BattleCommanda6 .asm_36eeb ld hl, MadeSubstituteText call StdBattleTextBox jp RefreshBattleHuds + .asm_36ef4 call Function34548 call nz, BattleCommand0c ld hl, HasSubstituteText - jr .asm_36f08 ; 36efd $9 + jr .asm_36f08 + .asm_36eff call Function34548 call nz, BattleCommand0c @@ -8351,7 +8363,7 @@ BattleCommand32: ; 36f0b ; rechargenextturn ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - set 5, [hl] + set SUBSTATUS_RECHARGE, [hl] ret ; 36f13 @@ -8360,7 +8372,7 @@ EndRechargeOpp: ; 36f13 push hl ld a, BATTLE_VARS_SUBSTATUS4_OPP call _GetBattleVar - res 5, [hl] + res SUBSTATUS_RECHARGE, [hl] pop hl ret ; 36f1d @@ -8370,7 +8382,7 @@ BattleCommand97: ; 36f1d ; rage ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - set 6, [hl] + set SUBSTATUS_RAGE, [hl] ret ; 36f25 @@ -8431,10 +8443,10 @@ BattleCommand33: ; 36f46 call GetBattleVar and a jr z, .asm_36f9a ; 36f68 $30 - cp $a5 + cp STRUGGLE jr z, .asm_36f9a ; 36f6c $2c ld b, a - ld c, $4 + ld c, NUM_MOVES .asm_36f71 ld a, [hli] cp b @@ -8444,16 +8456,16 @@ BattleCommand33: ; 36f46 dec hl .asm_36f79 ld a, [hld] - cp $66 + cp MIMIC jr nz, .asm_36f79 ; 36f7c $fb inc hl ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar ld [hl], a ld [$d265], a - ld bc, $0006 + ld bc, BattleMonPP - BattleMonMoves add hl, bc - ld [hl], $5 + ld [hl], 5 call GetMoveName call AnimateCurrentMove ld hl, LearnedMoveText @@ -8467,34 +8479,39 @@ BattleCommand35: ; 36f9d ; leechseed ld a, [AttackMissed] and a - jr nz, .asm_36fd8 ; 36fa1 $35 + jr nz, .evaded call CheckSubstituteOpp - jr nz, .asm_36fd8 ; 36fa6 $30 + jr nz, .evaded + ld de, EnemyMonType1 ld a, [hBattleTurn] and a - jr z, .asm_36fb3 ; 36fae $3 + jr z, .ok ld de, BattleMonType1 -.asm_36fb3 +.ok + ld a, [de] - cp $16 - jr z, .asm_36fd2 ; 36fb6 $1a + cp GRASS + jr z, .grass inc de ld a, [de] - cp $16 - jr z, .asm_36fd2 ; 36fbc $14 + cp GRASS + jr z, .grass + ld a, BATTLE_VARS_SUBSTATUS4_OPP call _GetBattleVar - bit 7, [hl] - jr nz, .asm_36fd8 ; 36fc5 $11 - set 7, [hl] + bit SUBSTATUS_LEECH_SEED, [hl] + jr nz, .evaded + set SUBSTATUS_LEECH_SEED, [hl] call AnimateCurrentMove ld hl, WasSeededText jp StdBattleTextBox -.asm_36fd2 + +.grass call AnimateFailedMove jp PrintDoesntAffect -.asm_36fd8 + +.evaded call AnimateFailedMove ld hl, EvadedText jp StdBattleTextBox @@ -8514,6 +8531,7 @@ BattleCommand37: ; 36fed ld a, [AttackMissed] and a jr nz, .asm_37059 ; 36ff1 $66 + ld de, EnemyDisableCount ld hl, EnemyMonMoves ld a, [hBattleTurn] @@ -8522,15 +8540,18 @@ BattleCommand37: ; 36fed ld de, PlayerDisableCount ld hl, BattleMonMoves .asm_37004 + ld a, [de] and a jr nz, .asm_37059 ; 37006 $51 + ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a jr z, .asm_37059 ; 3700e $49 - cp $a5 + cp STRUGGLE jr z, .asm_37059 ; 37012 $45 + ld b, a ld c, $ff .asm_37017 @@ -8538,20 +8559,21 @@ BattleCommand37: ; 36fed ld a, [hli] cp b jr nz, .asm_37017 ; 3701a $fb + ld a, [hBattleTurn] and a - ld hl, EnemyMonPPMove1 + ld hl, EnemyMonPP jr z, .asm_37027 ; 37022 $3 ld hl, BattleMonPP .asm_37027 - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] and a jr z, .asm_37059 ; 3702c $2b .asm_3702e call BattleRandom - and $7 + and 7 jr z, .asm_3702e ; 37033 $f9 inc a inc c @@ -8583,22 +8605,24 @@ BattleCommand1e: ; 3705c xor a ld hl, StringBuffer1 ld [hli], a + ld a, [hBattleTurn] and a ld a, [BattleMonLevel] - jr z, .asm_3706c ; 37067 $3 + jr z, .ok ld a, [EnemyMonLevel] -.asm_3706c +.ok + add a ld hl, $c6ee add [hl] ld [hld], a - jr nc, .asm_37079 ; 37072 $5 + jr nc, .done inc [hl] dec hl - jr nz, .asm_37079 ; 37076 $1 + jr nz, .done inc [hl] -.asm_37079 +.done ld hl, CoinsScatteredText jp StdBattleTextBox ; 3707f @@ -8611,7 +8635,7 @@ BattleCommand1f: ; 3707f ld de, BattleMonType1 ld a, [hBattleTurn] and a - jr z, .asm_37090 ; 37088 $6 + jr z, .asm_37090 ld hl, EnemyMonMoves ld de, EnemyMonType1 .asm_37090 @@ -8625,7 +8649,7 @@ BattleCommand1f: ; 3707f ld a, [hl] pop hl and a - jr z, .asm_370b2 ; 3709d $13 + jr z, .asm_370b2 push hl push bc dec a @@ -8637,8 +8661,8 @@ BattleCommand1f: ; 3707f pop hl inc c ld a, c - cp $4 - jr c, .asm_37096 ; 370b0 $e4 + cp NUM_MOVES + jr c, .asm_37096 .asm_370b2 ld a, $ff ld [de], a @@ -8651,43 +8675,44 @@ BattleCommand1f: ; 3707f .asm_370bd ld a, [hl] cp $ff - jr z, .asm_370d3 ; 370c0 $11 - cp $13 - jr z, .asm_370d0 ; 370c4 $a + jr z, .asm_370d3 + cp CURSE_T + jr z, .asm_370d0 ld a, [de] cp [hl] - jr z, .asm_370d0 ; 370c8 $6 + jr z, .asm_370d0 inc de ld a, [de] dec de cp [hl] - jr nz, .asm_370d9 ; 370ce $9 + jr nz, .asm_370d9_a .asm_370d0 inc hl - jr .asm_370bd ; 370d1 $ea + jr .asm_370bd .asm_370d3 call AnimateFailedMove jp PrintButItFailed -.asm_370d9 +.asm_370d9_a +.asm_370d9_b call BattleRandom - and $3 + and 3 ; TODO factor in NUM_MOVES ld c, a - ld b, $0 + ld b, 0 ld hl, StringBuffer1 add hl, bc ld a, [hl] cp $ff - jr z, .asm_370d9 ; 370e8 $ef - cp $13 - jr z, .asm_370d9 ; 370ec $eb + jr z, .asm_370d9_b ; 370e8 $ef + cp CURSE_T + jr z, .asm_370d9_b ; 370ec $eb ld a, [de] cp [hl] - jr z, .asm_370d9 ; 370f0 $e7 + jr z, .asm_370d9_b ; 370f0 $e7 inc de ld a, [de] dec de cp [hl] - jr z, .asm_370d9 ; 370f6 $e1 + jr z, .asm_370d9_b ; 370f6 $e1 ld a, [hl] ld [de], a inc de @@ -8727,10 +8752,10 @@ BattleCommand20: ; 3710e .Fill ld b, PlayerStatLevelsEnd - PlayerStatLevels -.asm_37139 +.next ld [hli], a dec b - jr nz, .asm_37139 + jr nz, .next ret ; 3713e @@ -8743,8 +8768,8 @@ BattleCommand2c: ; 3713e ld a, [hBattleTurn] and a jr z, .asm_3714f ; 37147 $6 - ld de, EnemyMonHPHi - ld hl, EnemyMonMaxHPHi + ld de, EnemyMonHP + ld hl, EnemyMonMaxHP .asm_3714f ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar @@ -8752,14 +8777,14 @@ BattleCommand2c: ; 3713e push hl push de push bc - ld c, $2 + ld c, 2 call StringCmp pop bc pop de pop hl jp z, .asm_371c4 ld a, b - cp $9c + cp REST jr nz, .asm_37199 ; 37166 $31 push hl push de @@ -8767,12 +8792,12 @@ BattleCommand2c: ; 3713e call BattleCommandaa ld a, BATTLE_VARS_SUBSTATUS5 call _GetBattleVar - res 0, [hl] + res SUBSTATUS_TOXIC, [hl] ld a, BATTLE_VARS_STATUS call _GetBattleVar ld a, [hl] and a - ld [hl], $3 + ld [hl], 3 ld hl, WentToSleepText jr z, .asm_37186 ; 37181 $3 ld hl, RestedText @@ -8832,12 +8857,12 @@ BattleCommand2d: ; 371cd ld [$c689], a ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - bit 4, [hl] + bit SUBSTATUS_SUBSTITUTE, [hl] push af jr z, .asm_37200 ; 371f4 $a call Function34548 jr nz, .asm_37200 ; 371f9 $5 - ld a, $a4 + ld a, SUBSTITUTE call Function37e44 .asm_37200 ld a, BATTLE_VARS_SUBSTATUS5 @@ -8860,7 +8885,7 @@ BattleCommand2d: ; 371cd inc hl inc de inc de - ld bc, $0004 + ld bc, NUM_MOVES call CopyBytes ld a, [hBattleTurn] and a @@ -8897,7 +8922,7 @@ BattleCommand2d: ; 371cd pop hl ld bc, $ffe8 add hl, bc - ld b, $4 + ld b, NUM_MOVES .asm_3725f ld a, [de] inc de @@ -8945,7 +8970,7 @@ BattleCommand2d: ; 371cd ld a, $2 ld [$c689], a pop af - ld a, $a4 + ld a, SUBSTITUTE call nz, Function37e44 ld hl, TransformedText jp StdBattleTextBox @@ -9024,23 +9049,23 @@ BattleCommand2e: ; 372fc cp EFFECT_LIGHT_SCREEN jr nz, .Reflect - bit 3, [hl] - jr nz, .asm_37337 - set 3, [hl] - ld a, $5 + bit SCREENS_LIGHT_SCREEN, [hl] + jr nz, .failed + set SCREENS_LIGHT_SCREEN, [hl] + ld a, 5 ld [bc], a ld hl, LightScreenEffectText jr .asm_37331 .Reflect - bit 4, [hl] - jr nz, .asm_37337 - set 4, [hl] + bit SCREENS_REFLECT, [hl] + jr nz, .failed + set SCREENS_REFLECT, [hl] ; LightScreenCount -> ReflectCount inc bc - ld a, $5 + ld a, 5 ld [bc], a ld hl, ReflectEffectText @@ -9048,7 +9073,7 @@ BattleCommand2e: ; 372fc call AnimateCurrentMove jp StdBattleTextBox -.asm_37337 +.failed call AnimateFailedMove jp PrintButItFailed ; 3733d @@ -9121,7 +9146,7 @@ PrintParalyze: ; 37372 CheckSubstituteOpp: ; 37378 ld a, BATTLE_VARS_SUBSTATUS4_OPP call GetBattleVar - bit 4, a + bit SUBSTATUS_SUBSTITUTE, a ret ; 37380 @@ -9145,10 +9170,10 @@ BattleCommand1a: ; 37380 call Function37e36 ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - res 7, [hl] + res SUBSTATUS_LEECH_SEED, [hl] ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar - res 6, [hl] + res SUBSTATUS_DESTINY_BOND, [hl] call Function37ed5 ret nc callba DrawPlayerHUD @@ -9360,30 +9385,30 @@ BattleCommand5f: ; 377ce ; attract ld a, [AttackMissed] and a - jr nz, .asm_377f2 + jr nz, .failed call Function377f5 - jr c, .asm_377f2 + jr c, .failed call CheckHiddenOpponent - jr nz, .asm_377f2 + jr nz, .failed ld a, BATTLE_VARS_SUBSTATUS1_OPP call _GetBattleVar - bit 7, [hl] - jr nz, .asm_377f2 + bit SUBSTATUS_IN_LOVE, [hl] + jr nz, .failed - set 7, [hl] + set SUBSTATUS_IN_LOVE, [hl] call AnimateCurrentMove ; 'fell in love!' ld hl, FellInLoveText jp StdBattleTextBox -.asm_377f2 +.failed jp Function37354 ; 377f5 Function377f5: ; 377f5 - ld a, 0 + ld a, PartyMon1Species - PartyMon1 call BattlePartyAttr ld a, [hl] ld [CurPartySpecies], a @@ -9404,7 +9429,7 @@ Function377f5: ; 377f5 push bc ld a, [TempEnemyMonSpecies] ld [CurPartySpecies], a - ld hl, EnemyMonAtkDefDV + ld hl, EnemyMonDVs ld a, [EnemySubStatus5] bit 3, a jr z, .asm_37829 @@ -9444,22 +9469,22 @@ BattleCommand60: ; 3784b ld hl, BattleMonHappiness ld a, [hBattleTurn] and a - jr z, .asm_37857 ; 37852 $3 + jr z, .ok ld hl, EnemyMonHappiness -.asm_37857 +.ok xor a - ld [$ffb4], a - ld [$ffb5], a + ld [hMultiplicand], a + ld [hMultiplicand + 1], a ld a, [hl] - ld [$ffb6], a - ld a, $a - ld [$ffb7], a + ld [hMultiplicand + 2], a + ld a, 10 + ld [hMultiplier], a call Multiply - ld a, $19 - ld [$ffb7], a - ld b, $4 + ld a, 25 + ld [hDivisor], a + ld b, 4 call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] ld d, a pop bc ret @@ -9471,23 +9496,27 @@ BattleCommand61: ; 37874 ld a, [InLinkBattle] cp $3 - jr z, .asm_3787d ; 37879 $2 + jr z, .asm_3787d push bc push de .asm_3787d + call BattleCommand07 + ld a, [InLinkBattle] cp $3 - jr z, .asm_37889 ; 37885 $2 + jr z, .asm_37889 pop de pop bc .asm_37889 + ld a, [$d265] and a jp z, AnimateFailedMove ld a, [AttackMissed] and a jp nz, AnimateFailedMove + push bc call BattleRandom ld b, a @@ -9502,6 +9531,7 @@ BattleCommand61: ; 37874 inc c inc hl jr .asm_378a1 ; 378ab $f4 + .asm_378ad ld a, c ld [$c689], a @@ -9509,6 +9539,7 @@ BattleCommand61: ; 37874 ld d, [hl] pop bc ret + .asm_378b7 pop bc ld a, $3 @@ -9524,6 +9555,7 @@ BattleCommand61: ; 37874 ld a, BANK(AICheckPlayerMaxHP) rst FarCall jr c, .asm_378f3 ; 378d1 $20 + ld hl, GetQuarterMaxHP call CallBattleCore call SwitchTurn @@ -9535,6 +9567,7 @@ BattleCommand61: ; 37874 call SwitchTurn call UpdateOpponentInParty jr .asm_37904 ; 378f1 $11 + .asm_378f3 call SwitchTurn call Function37ed5 @@ -9546,9 +9579,9 @@ BattleCommand61: ; 37874 jp EndMoveEffect .table_37907 - db $66, 40 - db $b3, 80 - db $cc, 120 + db 40 percent, 40 + db 70 percent + 1, 80 + db 80 percent, 120 db $ff ; 3790e @@ -9569,12 +9602,12 @@ BattleCommand63: ; 3790e xor a ld [$ffb4], a ld [$ffb5], a - ld a, $a + ld a, 10 ld [$ffb7], a call Multiply - ld a, $19 + ld a, 25 ld [$ffb7], a - ld b, $4 + ld b, 4 call Divide ld a, [$ffb6] ld d, a @@ -9587,22 +9620,22 @@ BattleCommand64: ; 37939 ; safeguard ld hl, PlayerScreens - ld de, $c701 + ld de, PlayerSafeguardCount ld a, [hBattleTurn] and a - jr z, .asm_3794a ; 37942 $6 + jr z, .ok ld hl, EnemyScreens - ld de, $c705 -.asm_3794a - bit 2, [hl] - jr nz, .asm_3795c ; 3794c $e - set 2, [hl] - ld a, $5 + ld de, EnemySafeguardCount +.ok + bit SCREENS_SAFEGUARD, [hl] + jr nz, .failed + set SCREENS_SAFEGUARD, [hl] + ld a, 5 ld [de], a call AnimateCurrentMove ld hl, CoveredByVeilText jp StdBattleTextBox -.asm_3795c +.failed call AnimateFailedMove jp PrintButItFailed ; 37962 @@ -9617,7 +9650,7 @@ Function37962: ; 37962 ld hl, PlayerScreens .asm_3796e - bit 2, [hl] + bit SCREENS_SAFEGUARD, [hl] pop hl ret ; 37972 @@ -9631,9 +9664,9 @@ BattleCommand65: ; 37972 jr z, .asm_3797d ; 37978 $3 ld hl, PlayerScreens .asm_3797d - bit 2, [hl] + bit SCREENS_SAFEGUARD, [hl] ret z - ld a, $1 + ld a, 1 ld [AttackMissed], a call BattleCommandaa ld hl, SafeguardProtectText @@ -9649,14 +9682,14 @@ BattleCommand66: ; 37991 call BattleRandom ld b, a ld hl, .Magnitudes -.asm_37999 +.loop ld a, [hli] cp b - jr nc, .asm_379a1 ; 3799b $4 + jr nc, .ok inc hl inc hl - jr .asm_37999 ; 3799f $f8 -.asm_379a1 + jr .loop +.ok ld d, [hl] push de inc hl @@ -9821,7 +9854,7 @@ FailedBatonPass: ; 37aab ResetBatonPassStatus: ; 37ab1 ; Reset status changes that aren't passed by Baton Pass. -; Nightmare isn't passed. + ; Nightmare isn't passed. ld a, BATTLE_VARS_STATUS call GetBattleVar and SLP @@ -9832,10 +9865,10 @@ ResetBatonPassStatus: ; 37ab1 res SUBSTATUS_NIGHTMARE, [hl] .ok -; Disable isn't passed. + ; Disable isn't passed. call ResetActorDisable -; Attraction isn't passed. + ; Attraction isn't passed. ld hl, PlayerSubStatus1 res SUBSTATUS_IN_LOVE, [hl] ld hl, EnemySubStatus1 @@ -9847,7 +9880,7 @@ ResetBatonPassStatus: ; 37ab1 res 3, [hl] res 4, [hl] -; New mon hasn't used a move yet. + ; New mon hasn't used a move yet. ld a, BATTLE_VARS_LAST_MOVE call _GetBattleVar ld [hl], 0 @@ -9944,12 +9977,13 @@ BattleCommand69: ; 37b39 ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - bit 7, [hl] + bit SUBSTATUS_LEECH_SEED, [hl] jr z, .asm_37b4a ; 37b40 $8 - res 7, [hl] + res SUBSTATUS_LEECH_SEED, [hl] ld hl, ShedLeechSeedText call StdBattleTextBox .asm_37b4a + ld hl, PlayerScreens ld de, $c730 ld a, [hBattleTurn] @@ -9958,14 +9992,15 @@ BattleCommand69: ; 37b39 ld hl, EnemyScreens ld de, $c731 .asm_37b5b - bit 0, [hl] + bit SCREENS_SPIKES, [hl] jr z, .asm_37b69 ; 37b5d $a - res 0, [hl] + res SCREENS_SPIKES, [hl] ld hl, BlewSpikesText push de call StdBattleTextBox pop de .asm_37b69 + ld a, [de] and a ret z @@ -10130,14 +10165,14 @@ BattleCommand95: ; 37c1a pop bc callab Function3cc3f call UpdateUserInParty - ld a, $5 + ld a, 5 .asm_37c41 push af call BattleCommand77 pop af dec a - jr nz, .asm_37c41 ; 37c47 $f8 + jr nz, .asm_37c41 ld hl, BellyDrumText jp StdBattleTextBox @@ -10262,9 +10297,9 @@ BattleCommand9d: ; 37ce6 ld hl, $c6fa ld a, [hBattleTurn] and a - jr z, .asm_37cf1 ; 37cec $3 + jr z, .ok ld hl, $c6fe -.asm_37cf1 +.ok ld a, [hl] and a ret z @@ -10358,12 +10393,12 @@ BattleCommand9c: ; 37d34 ld hl, CurDamage ld a, [hl] ld [de], a - ld [hl], $0 + ld [hl], 0 inc hl inc de ld a, [hl] ld [de], a - ld [hl], $0 + ld [hl], 0 jp EndMoveEffect .asm_37d87 pop bc @@ -10382,13 +10417,13 @@ BattleCommand9f: ; 37d94 inc hl ld a, [Weather] cp WEATHER_RAIN - jr z, .asm_37da7 ; 37d9f $6 + jr z, .rain cp WEATHER_SUN ret nz - ld [hl], $80 + ld [hl], 50 percent + 1 ret -.asm_37da7 - ld [hl], $ff +.rain + ld [hl], 100 percent ret ; 37daa @@ -10396,7 +10431,7 @@ BattleCommand9f: ; 37d94 CheckHiddenOpponent: ; 37daa ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar - and $60 ; fly | dig + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND ret ; 37db2 @@ -10675,5 +10710,3 @@ Function37ed5: ; 37ed5 ret ; 37ee2 - - diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 9236887a4..076684345 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -2,9 +2,18 @@ ; strings PLAYER_NAME_LENGTH EQU 8 PKMN_NAME_LENGTH EQU 11 +MOVE_NAME_LENGTH EQU 13 NAME_LENGTH EQU 11 LV_CHAR EQU $6e +; GetName types +PKMN_NAME EQU 1 +MOVE_NAME EQU 2 +ITEM_NAME EQU 4 +PARTY_OT_NAME EQU 5 +ENEMY_OT_NAME EQU 6 +TRAINER_NAME EQU 7 + ; boxes NUM_BOXES EQU 14 @@ -22,6 +31,7 @@ PREDEF_UPDATE_ENEMY_HUD EQU $15 PREDEF_START_BATTLE EQU $16 PREDEF_FILL_IN_EXP_BAR EQU $17 PREDEF_FILLMOVES EQU $1B +PREDEF_LIST_MOVES EQU $20 PREDEF_GET_GENDER EQU $24 PREDEF_STATS_SCREEN EQU $25 PREDEF_DRAW_PLAYER_HP EQU $26 diff --git a/items/item_effects.asm b/items/item_effects.asm index 51994ca1f..d294d198c 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -366,7 +366,7 @@ ParkBall: ; e8a2 .asm_e98e ld b, a - ld [MagikarpLength], a + ld [Buffer1], a call Random cp b @@ -478,13 +478,13 @@ ParkBall: ; e8a2 bit 3, [hl] jr nz, .asm_ea67 ld hl, $c735 - ld de, EnemyMonMove1 - ld bc, $0004 + ld de, EnemyMonMoves + ld bc, NUM_MOVES call CopyBytes ld hl, $c739 - ld de, EnemyMonPPMove1 - ld bc, $0004 + ld de, EnemyMonPP + ld bc, NUM_MOVES call CopyBytes .asm_ea67 @@ -2633,11 +2633,11 @@ Functionf652: ; f652 .asm_f677 ld a, [CurPartyMon] - ld hl, PartyMon1Move1 - ld bc, $0030 + ld hl, PartyMon1Moves + ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld de, BattleMonMove1 - ld b, $4 + ld de, BattleMonMoves + ld b, NUM_MOVES .asm_f688 ld a, [de] and a @@ -2647,13 +2647,10 @@ Functionf652: ; f652 push hl push de push bc + rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves inc de - inc de - inc de - inc de - inc de - inc de - ld bc, $0015 + endr + ld bc, PartyMon1PP - PartyMon1Moves add hl, bc ld a, [hl] ld [de], a @@ -2682,15 +2679,16 @@ Functionf6af: ; f6af ld hl, $cfa9 ld [hli], a ld [hl], a - ld b, $4 + ld b, NUM_MOVES .asm_f6b7 push bc - ld hl, PartyMon1Move1 - ld bc, $0030 + ld hl, PartyMon1Moves + ld bc, PartyMon2 - PartyMon1 call Functionf963 ld a, [hl] and a jr z, .asm_f6ce + call Functionf6e8 jr z, .asm_f6ce ld hl, $cfaa @@ -2721,7 +2719,7 @@ Functionf6e8: ; f6e8 ld [MonType], a call Functionf8ec ld hl, PartyMon1PP - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call Functionf963 ld a, [$d265] ld b, a @@ -2739,6 +2737,7 @@ Functionf6e8: ; f6e8 ld c, 5 cp MYSTERYBERRY jr z, .asm_f715 + ld c, 10 .asm_f715 @@ -2985,7 +2984,7 @@ WontHaveAnyEffect_NotUsedMessage: ; f7ca ld hl, WontHaveAnyEffectText call PrintText -; Item wasn't used. + ; Item wasn't used. ld a, $2 ld [$d0ec], a ret @@ -3000,7 +2999,7 @@ Ball_BoxIsFullMessage: ; f7dc ld hl, Ball_BoxIsFullText call PrintText -; Item wasn't used. + ; Item wasn't used. ld a, $2 ld [$d0ec], a ret @@ -3116,21 +3115,21 @@ GotOffTheItemText: ; 0xf847 Functionf84c: ; f84c - ld a, $2 + ld a, PartyMon1Moves - PartyMon1 call GetPartyParamLocation push hl - ld de, MagikarpLength - ld a, $5 + ld de, Buffer1 + ld a, PREDEF_FILLPP call Predef pop hl - ld bc, $0015 + ld bc, PartyMon1PP - PartyMon1Moves add hl, bc - ld de, MagikarpLength - ld b, $0 + ld de, Buffer1 + ld b, 0 .asm_f864 inc b ld a, b - cp $5 + cp NUM_MOVES + 1 ret z ld a, [$d265] dec a @@ -3157,14 +3156,14 @@ Functionf84c: ; f84c Functionf881: ; f881 push bc ld a, [de] - ld [$ffb6], a + ld [hDividend + 3], a xor a - ld [hProduct], a - ld [hMultiplicand], a - ld [$ffb5], a - ld a, $5 - ld [hMultiplier], a - ld b, $4 + ld [hDividend], a + ld [hDividend + 1], a + ld [hDividend + 2], a + ld a, 5 + ld [hDivisor], a + ld b, 4 call Divide ld a, [hl] ld b, a @@ -3197,16 +3196,16 @@ Functionf881: ; f881 ; f8b9 Functionf8b9: ; f8b9 - ld a, $17 + ld a, PartyMon1PP - PartyMon1 call GetPartyParamLocation push hl - ld a, $2 + ld a, PartyMon1Moves - PartyMon1 call GetPartyParamLocation pop de xor a ld [$cfa9], a ld [MonType], a - ld c, $4 + ld c, NUM_MOVES .asm_f8ce ld a, [hli] and a @@ -3265,21 +3264,21 @@ Functionf8ec: ; f8ec ld a, [hl] dec a push hl - ld hl, $5b00 - ld bc, $0007 + ld hl, Moves + MOVE_PP + ld bc, MOVE_LENGTH call AddNTimes - ld a, $10 + ld a, BANK(Moves) call GetFarByte ld b, a ld de, StringBuffer1 ld [de], a pop hl push bc - ld bc, $0015 + ld bc, PartyMon1PP - PartyMon1Moves ld a, [MonType] cp WILDMON jr nz, .asm_f942 - ld bc, $0006 + ld bc, EnemyMonPP - EnemyMonMoves .asm_f942 add hl, bc @@ -3310,7 +3309,7 @@ Functionf963: ; f963 Functionf969: ; f969 ld a, [$cfa9] ld c, a - ld b, $0 + ld b, 0 add hl, bc ret ; f971 diff --git a/main.asm b/main.asm index 23947c972..ffdeda602 100644 --- a/main.asm +++ b/main.asm @@ -5266,13 +5266,13 @@ Function6508: ; 6508 call CopyBytes Function6520: ; 6520 - ld hl, PartyMon1Move1 - ld bc, $0030 + ld hl, PartyMon1Moves + ld bc, PartyMon2 - PartyMon1 ld a, [CurPartyMon] call AddNTimes ld d, h ld e, l - ld b, $4 + ld b, NUM_MOVES .asm_6530 ld a, [hl] and a @@ -5284,9 +5284,11 @@ Function6520: ; 6520 call Function65d3 pop de jp c, Function65b5 + push hl push de ld [$d265], a + ld b, a ld a, [IsInBattle] and a @@ -5297,8 +5299,8 @@ Function6520: ; 6520 xor a ld [DisabledMove], a ld [PlayerDisableCount], a - .asm_6559 + call GetMoveName ld hl, UnknownText_0x6684 call PrintText @@ -5334,13 +5336,13 @@ Function6520: ; 6520 jp nz, Function65ca ld h, d ld l, e - ld de, BattleMonMove1 - ld bc, $0004 + ld de, BattleMonMoves + ld bc, NUM_MOVES call CopyBytes - ld bc, $0011 + ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES) add hl, bc - ld de, BattleMonPPMove1 - ld bc, $0004 + ld de, BattleMonPP + ld bc, NUM_MOVES call CopyBytes jp Function65ca ; 65b5 @@ -5370,11 +5372,11 @@ Function65d3: ; 65d3 call YesNoBox pop hl ret c - ld bc, $fffc + ld bc, -NUM_MOVES add hl, bc push hl ld de, $d25e - ld bc, $0004 + ld bc, NUM_MOVES call CopyBytes pop hl .asm_65ee @@ -5382,13 +5384,13 @@ Function65d3: ; 65d3 ld hl, UnknownText_0x6670 call PrintText hlcoord 5, 2 - ld b, $8 - ld c, $d + ld b, NUM_MOVES * 2 + ld c, MOVE_NAME_LENGTH call TextBox - hlcoord 7, 4 - ld a, $28 + hlcoord 5 + 2, 2 + 2 + ld a, SCREEN_WIDTH * 2 ld [Buffer1], a - ld a, $20 + ld a, PREDEF_LIST_MOVES call Predef ld a, $4 ld [$cfa1], a @@ -5420,7 +5422,7 @@ Function65d3: ; 65d3 ld a, [$cfa9] dec a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] push af @@ -5474,9 +5476,6 @@ UnknownText_0x667f: ; 667f UnknownText_0x6684: ; 6684 text_jump UnknownText_0x1c5740 start_asm -; 6689 - -; 6689 push de ld de, SFX_SWITCH_POKEMON call PlaySFX @@ -7790,7 +7789,7 @@ PredefPointers: ; 856b dwb Function28f63, BANK(Function28f63) dwb Function28f24, BANK(Function28f24) dwb Function5084a, BANK(Function5084a) - dwb Function50d6f, BANK(Function50d6f) ; $20 + dwb ListMoves, BANK(ListMoves) ; $20 dwb Function50d2e, BANK(Function50d2e) dwb Function50cdb, BANK(Function50cdb) dwb Function50c50, BANK(Function50c50) @@ -12379,7 +12378,7 @@ Functiond88c: ; d88c .asm_d8fd ld a, [$ffae] dec a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes Functiond906: ; d906 ld e, l @@ -12409,25 +12408,21 @@ Functiond906: ; d906 ld a, [MonType] and a jr nz, .asm_d943 - ld de, EnemyMonMove1 - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a + ld de, EnemyMonMoves + rept NUM_MOVES + -1 ld a, [de] inc de ld [hli], a + endr ld a, [de] ld [hl], a jr .asm_d950 .asm_d943 xor a + rept NUM_MOVES + -1 ld [hli], a - ld [hli], a - ld [hli], a + endr ld [hl], a ld [Buffer1], a ld a, $1b @@ -12553,9 +12548,10 @@ Functiond906: ; d906 ld a, [EnemyMonSpdSpclDV] ld [de], a inc de + push hl - ld hl, EnemyMonPPMove1 - ld b, $4 + ld hl, EnemyMonPP + ld b, NUM_MOVES .asm_da03 ld a, [hli] ld [de], a @@ -12563,7 +12559,8 @@ Functiond906: ; d906 dec b jr nz, .asm_da03 pop hl - ld a, $46 + + ld a, BASE_HAPPINESS ld [de], a inc de xor a @@ -12617,7 +12614,7 @@ Functiond906: ; d906 ld hl, PartyMon1DVs ld a, [PartyCount] dec a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, $2d call Predef @@ -12676,7 +12673,7 @@ Functionda96: ; da96 ld hl, PartyMon1Species ld a, [PartyCount] dec a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld e, l ld d, h @@ -12713,9 +12710,9 @@ Functionda96: ; da96 ld hl, PartyMon1Happiness ld a, [PartyCount] dec a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld [hl], $46 + ld [hl], BASE_HAPPINESS .asm_db12 ld a, [CurPartySpecies] @@ -12724,7 +12721,7 @@ Functionda96: ; da96 ld hl, PartyMon1DVs ld a, [PartyCount] dec a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, $2d call Predef @@ -12781,7 +12778,7 @@ Functiondb3f: ; db3f ld a, [$d10b] dec a ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld a, [PartyCount] jr nz, .asm_db97 ld hl, BoxMon1Species @@ -12805,7 +12802,7 @@ Functiondb3f: ; db3f ld hl, BreedMon1Species jr z, .asm_dbbd ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 .asm_dbb7 ld a, [CurPartyMon] @@ -12996,7 +12993,7 @@ Functiondcb6: ; dcb6 ld a, [hli] and a jr z, .asm_dd18 - ld [TempMonMove1], a + ld [TempMonMoves+0], a ld a, BOXMON ld [MonType], a ld a, b @@ -13128,10 +13125,10 @@ Functiondd64: ; dd64 push bc ld b, $1 call Functione167 - ld hl, PartyMon1Move1 + ld hl, PartyMon1Moves ld a, [PartyCount] dec a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l @@ -13163,7 +13160,7 @@ Functionde1a: ; de1a ld a, [PartyCount] dec a ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l @@ -13197,7 +13194,7 @@ Functionde44: ; de44 call CopyBytes ld a, [CurPartyMon] ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld bc, $0020 jp CopyBytes @@ -13303,7 +13300,7 @@ Functionde6e: ; de6e .asm_df20 ld hl, BoxMon1Moves - ld de, TempMonMove1 + ld de, TempMonMoves ld bc, NUM_MOVES call CopyBytes ld hl, BoxMon1PP @@ -13417,7 +13414,7 @@ Functiondf8c:: ; df8c ld [CurPartySpecies], a ld a, [PartyCount] dec a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld hl, PartyMon1Species call AddNTimes ld a, [CurPartySpecies] @@ -13438,7 +13435,7 @@ Functiondf8c:: ; df8c ld a, [PartyCount] dec a ld hl, PartyMon1Happiness - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, [$c2cc] bit 1, a @@ -13451,7 +13448,7 @@ Functiondf8c:: ; df8c ld a, [PartyCount] dec a ld hl, PartyMon1HP - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes xor a ld [hli], a @@ -13875,7 +13872,7 @@ Functione277:: ; e277 jr z, .asm_e2e1 ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, [CurItem] ld [hl], a @@ -13958,7 +13955,7 @@ Functione277:: ; e277 push bc ld a, [CurPartyMon] ld hl, PartyMon1ID - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, $3 ld [hli], a @@ -14261,7 +14258,7 @@ UnknownText_0xe533: ; 0xe533 Functione538: ; e538 ld hl, PartyMon1HP - ld de, $0030 + ld de, PartyMon2 - PartyMon1 ld b, $0 .asm_e540 ld a, [CurPartyMon] @@ -14539,7 +14536,7 @@ Functione6fd: ; e6fd ld [CurPartySpecies], a call GetBaseData xor a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld hl, $df9c call ByteFill xor a @@ -20670,8 +20667,8 @@ Function12fd5: ; 12fd5 jp .asm_13018 .asm_130de - ld hl, PartyMon1Move1 - ld bc, $0030 + ld hl, PartyMon1Moves + ld bc, PartyMon2 - PartyMon1 ld a, [CurPartyMon] call AddNTimes push hl @@ -20682,7 +20679,7 @@ Function12fd5: ; 12fd5 call Function1313a ld a, [IsInBattle] jr z, .asm_13113 - ld hl, BattleMonMove1 + ld hl, BattleMonMoves ld bc, $0020 ld a, [CurPartyMon] call AddNTimes @@ -20804,14 +20801,14 @@ Function131ef: ; 131ef ld [MonType], a ld a, $1f call Predef - ld hl, TempMonMove1 + ld hl, TempMonMoves ld de, $d25e - ld bc, $0004 + ld bc, NUM_MOVES call CopyBytes - ld a, $28 + ld a, SCREEN_WIDTH * 2 ld [Buffer1], a hlcoord 2, 3 - ld a, $20 + ld a, PREDEF_LIST_MOVES call Predef hlcoord 10, 4 ld a, $23 @@ -20822,14 +20819,14 @@ Function131ef: ; 131ef inc a ld [$cfa3], a hlcoord 0, 11 - ld b, $5 - ld c, $12 + ld b, 5 + ld c, 18 jp TextBox ; 13235 Function13235: ; 13235 - ld hl, PartyMon1Move1 - ld bc, $0030 + ld hl, PartyMon1Moves + ld bc, PartyMon2 - PartyMon1 ld a, [CurPartyMon] call AddNTimes ld a, [$cfa9] @@ -20840,7 +20837,7 @@ Function13235: ; 13235 ld a, [hl] ld [CurSpecies], a hlcoord 1, 12 - ld bc, $0512 + lb bc, 5, 18 jp ClearBox ; 13256 @@ -28827,7 +28824,7 @@ Function16798: ; 16798 callba Functione538 jr c, .asm_167e9 ld hl, PartyMon1Item - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld a, [CurPartyMon] call AddNTimes ld d, [hl] @@ -29231,17 +29228,17 @@ Function169ac: ; 169ac call Function16a31 ld hl, EggOT call CopyBytes - ld hl, PartyMon1Species - ld bc, $0030 + ld hl, PartyMon1 + ld bc, PartyMon2 - PartyMon1 call Function16a31 - ld hl, EggSpecies + ld hl, EggMon ld bc, $0020 call CopyBytes call GetBaseData ld a, [PartyCount] dec a - ld hl, PartyMon1Species - ld bc, $0030 + ld hl, PartyMon1 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld b, h ld c, l @@ -36944,7 +36941,7 @@ Function28499: ; 28499 .asm_284db push bc call Function284f6 - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc dec c @@ -38183,7 +38180,7 @@ Function28b87: ; 28b87 ld a, c call GetPartyLocation ld de, TempMonSpecies - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call CopyBytes ld a, $7 call Predef @@ -39873,22 +39870,23 @@ Function29bfb: ; 29bfb pop bc pop hl jr c, .asm_29c5e - ld de, $0030 + ld de, PartyMon2 - PartyMon1 add hl, de dec b jr nz, .asm_29c13 - ld hl, PartyMon1Move1 + + ld hl, PartyMon1Moves ld a, [PartyCount] ld b, a .asm_29c2e - ld c, $4 + ld c, NUM_MOVES .asm_29c30 ld a, [hli] cp STRUGGLE + 1 jr nc, .asm_29c4c dec c jr nz, .asm_29c30 - ld de, $002c + ld de, PartyMon2 - (PartyMon1 + NUM_MOVES) add hl, de dec b jr nz, .asm_29c2e @@ -42153,11 +42151,11 @@ Function2c547: ; 2c547 callba Function50000 jr c, .asm_2c5c3 ld a, [CurPartySpecies] - cp $fd + cp EGG jr z, .asm_2c5bc ld a, [CurPartyMon] - ld hl, PartyMon1Move2 - ld bc, $0030 + ld hl, PartyMon1Moves + 1 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, [hl] and a @@ -42258,18 +42256,18 @@ Function2c5f9: ; 2c5f9 push bc dec a ld c, a - ld b, $0 - ld hl, PartyMon1Move1 + ld b, 0 + ld hl, PartyMon1Moves add hl, bc ld a, [CurPartyMon] - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes pop bc push bc inc b .asm_2c60f ld a, b - cp $5 + cp NUM_MOVES + 1 jr z, .asm_2c61b inc hl ld a, [hld] @@ -42282,21 +42280,22 @@ Function2c5f9: ; 2c5f9 xor a ld [hl], a pop bc + ld a, b push bc dec a ld c, a - ld b, $0 + ld b, 0 ld hl, PartyMon1PP add hl, bc ld a, [CurPartyMon] - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes pop bc inc b .asm_2c633 ld a, b - cp $5 + cp NUM_MOVES + 1 jr z, .asm_2c63f inc hl ld a, [hld] @@ -43108,7 +43107,7 @@ Function2ed44: ; 2ed44 ld hl, PartyMon1PokerusStatus ld a, [PartyCount] ld b, a - ld de, $0030 + ld de, PartyMon2 - PartyMon1 .loopMons ld a, [hl] and $f @@ -43757,7 +43756,7 @@ Function38170: ; 38170 ld d, a ld e, $0 ld hl, OTPartyMon1Level - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 .asm_3817c ld a, [hl] cp e @@ -44200,7 +44199,7 @@ Function3844b: ; 3844b .asm_3845b push bc - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc dec c @@ -44224,7 +44223,7 @@ Function3846c: ; 3846c push af ld a, [CurOTMon] ld hl, OTPartyMon1Status - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l @@ -44269,7 +44268,7 @@ Function384d5: ; 384d5 Function384e0: ; 384e0 ld a, [CurOTMon] ld hl, OTPartyMon1Status - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes xor a ld [hl], a @@ -44569,20 +44568,20 @@ Function39806: ; 39806 ld [CurPartyLevel], a ld a, [hli] ld [CurPartySpecies], a - ld a, $1 + ld a, OTPARTYMON ld [MonType], a push hl ld a, $6 call Predef ld a, [OTPartyCount] dec a - ld hl, OTPartyMon1Move1 - ld bc, $0030 + ld hl, OTPartyMon1Moves + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l pop hl - ld b, $4 + ld b, NUM_MOVES .asm_39830 ld a, [hli] ld [de], a @@ -44593,7 +44592,7 @@ Function39806: ; 39806 ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l @@ -44674,7 +44673,7 @@ Function3989d: ; 3989d ld a, [OTPartyCount] dec a ld hl, $d289 - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l @@ -44685,7 +44684,7 @@ Function3989d: ; 3989d ld a, [OTPartyCount] dec a ld hl, $d28a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l @@ -44701,7 +44700,7 @@ Function3989d: ; 3989d ld a, [OTPartyCount] dec a ld hl, OTPartyMon1 - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l @@ -47652,8 +47651,8 @@ Function421f5: ; 421f5 jp z, .asm_423f8 push hl - ld de, TempMonAtk - ld hl, TempMonDef + ld de, TempMonAttack + ld hl, TempMonDefense ld c, 2 call StringCmp ld a, ATK_EQ_DEF @@ -47850,7 +47849,7 @@ Function421f5: ; 421f5 ld [hl], a ld hl, TempMonSpecies - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call CopyBytes ld a, [CurSpecies] @@ -48014,11 +48013,11 @@ Function42487: ; 42487 jr nz, .asm_4249d push hl ld d, a - ld hl, PartyMon1Move1 + ld hl, PartyMon1Moves ld a, [CurPartyMon] - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld b, $4 + ld b, NUM_MOVES .asm_424b9 ld a, [hli] cp d @@ -48121,7 +48120,7 @@ FillMoves: ; 424e1 and a jr z, .ShiftedMove push de - ld bc, PartyMon1PP - PartyMon1Move4 + ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1) add hl, bc ld d, h ld e, l @@ -48161,7 +48160,7 @@ FillMoves: ; 424e1 ; 4256e ShiftMoves: ; 4256e - ld c, $3 + ld c, NUM_MOVES - 1 .asm_42570 inc de ld a, [de] @@ -48268,7 +48267,7 @@ AIChooseMove: ; 440ce and a jr z, .CheckPP - ld hl, EnemyMonMove1 + ld hl, EnemyMonMoves ld c, 0 .CheckDisabledMove cp [hl] @@ -48380,12 +48379,12 @@ AIChooseMove: ; 440ce inc [hl] dec hl inc a - cp EnemyMonMovesEnd - EnemyMonMoves + 1 + cp NUM_MOVES + 1 jr nz, .asm_44175 ld hl, Buffer1 ld de, EnemyMonMoves - ld c, EnemyMonMovesEnd - EnemyMonMoves + ld c, NUM_MOVES .asm_44184 ld a, [de] and a @@ -48447,14 +48446,16 @@ AIScoringPointers: ; 441af Function441cf: ; 441cf ld hl, Unknown_441fc ld b, 25 -.asm_441d4 - ld a, [hli] - cp $fe - jr nz, .asm_441dd - ld hl, Unknown_441fc +.loop ld a, [hli] -.asm_441dd + ; Wrap around + cp $fe + jr nz, .ok + ld hl, Unknown_441fc + ld a, [hli] +.ok + ld [$c7db], a ld a, [hli] ld c, a @@ -48465,7 +48466,7 @@ Function441cf: ; 441cf pop bc call DelayFrames dec b - jr nz, .asm_441d4 + jr nz, .loop xor a ld [$c7db], a call Function44207 @@ -48475,11 +48476,11 @@ Function441cf: ; 441cf ; 441fc Unknown_441fc: ; 441fc - db $00, $07 - db $01, $07 - db $02, $07 - db $03, $07 - db $04, $07 + db 0, 7 + db 1, 7 + db 2, 7 + db 3, 7 + db 4, 7 db $fe ; 44207 @@ -48865,7 +48866,7 @@ Function44654:: ; 44654 jr c, .asm_446c6 ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, [hl] callba ItemIsMail @@ -48928,7 +48929,7 @@ Function446cc:: ; 446cc push af push bc ld hl, PartyMon1Item - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes pop bc ld [hl], b @@ -48954,7 +48955,7 @@ Function446cc:: ; 446cc call CopyBytes pop af ld hl, PartyMon1ID - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, [hli] ld [de], a @@ -49029,7 +49030,7 @@ Function44781: ; 44781 pop de pop hl ret c - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 add hl, bc dec e jr nz, .asm_4478b @@ -55796,7 +55797,7 @@ Function4d319: ; 4d319 dec a ld [CurPartyMon], a call LowVolume - ld a, $25 + ld a, PREDEF_STATS_SCREEN call Predef ld a, [CurPartyMon] inc a @@ -56615,12 +56616,12 @@ Function4d9e5: ; 4d9e5 ld hl, PartyMon1Species ld a, [PartyCount] dec a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld d, h ld e, l ld hl, $df9c - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call CopyBytes ld a, [PartyCount] dec a @@ -56902,7 +56903,7 @@ Function4dc0a: ; 4dc0a dec a push hl push bc - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes pop bc ld a, b @@ -56935,7 +56936,7 @@ Function4dc31: ; 4dc31 dec a push hl push bc - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes pop bc ld a, b @@ -57702,18 +57703,18 @@ Function4e147: ; 4e147 (13:6147) ld de, String_4e1a9 hlcoord 0, 10 call PlaceString - ld hl, TempMonMoves ; $d110 (aliases: TempMonMove1) + ld hl, TempMonMoves ld de, $d25e - ld bc, $4 + ld bc, NUM_MOVES call CopyBytes hlcoord 8, 10 - ld a, $28 - ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) - ld a, $20 + ld a, SCREEN_WIDTH * 2 + ld [Buffer1], a + ld a, PREDEF_LIST_MOVES call Predef hlcoord 12, 11 ld a, $28 - ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) + ld [Buffer1], a ld a, $23 call Predef ret @@ -59194,7 +59195,7 @@ Function500cf: ; 500cf Function50117: ; 50117 ld a, b - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld hl, PartyMon1HP call AddNTimes ld a, [hli] @@ -59234,7 +59235,7 @@ Function50138: ; 50138 jr z, .asm_5016b push hl ld a, b - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld hl, PartyMon1HP call AddNTimes ld e, l @@ -59407,7 +59408,7 @@ Function5022f: ; 5022f jr z, .asm_5025d push hl ld a, b - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld hl, PartyMon1Species call AddNTimes ld a, [hl] @@ -60415,7 +60416,7 @@ Function5084a: ; 5084a ld a, [CurPartyMon] call AddNTimes ld de, TempMonSpecies - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call CopyBytes .asm_5088a @@ -60739,16 +60740,16 @@ Function50b7b: ; 50b7b add hl, bc ld bc, $0014 add hl, bc - ld de, TempMonAtk + ld de, TempMonAttack ld bc, $0203 call Function50bab - ld de, TempMonDef + ld de, TempMonDefense call Function50bab ld de, TempMonSpclAtk call Function50bab ld de, TempMonSpclDef call Function50bab - ld de, TempMonSpd + ld de, TempMonSpeed jp PrintNum ; 50bab @@ -60916,8 +60917,8 @@ Function50c50: ; 50c50 inc hl ld d, h ld e, l - ld hl, TempMonMove1 - ld b, $0 + ld hl, TempMonMoves + ld b, 0 .asm_50c7a ld a, [hli] and a @@ -60937,7 +60938,7 @@ Function50c50: ; 50c50 pop de pop hl push hl - ld bc, $0014 + ld bc, TempMonPP - (TempMonMoves + 1) add hl, bc ld a, [hl] and $3f @@ -60956,7 +60957,7 @@ Function50c50: ; 50c50 pop hl ld a, [Buffer1] ld e, a - ld d, $0 + ld d, 0 add hl, de ld d, h ld e, l @@ -60964,7 +60965,7 @@ Function50c50: ; 50c50 pop bc inc b ld a, b - cp $4 + cp NUM_MOVES jr nz, .asm_50c7a .asm_50cc8 @@ -61095,7 +61096,8 @@ FrzString: db "FRZ@" ParString: db "PAR@" ; 50d6f -Function50d6f: ; 50d6f +ListMoves: ; 50d6f +; List moves at hl, spaced every [Buffer1] tiles. ld de, $d25e ld b, $0 .asm_50d74 @@ -61107,7 +61109,7 @@ Function50d6f: ; 50d6f push hl push hl ld [CurSpecies], a - ld a, $2 + ld a, MOVE_NAME ld [$cf61], a call GetName ld de, StringBuffer1 @@ -61122,12 +61124,12 @@ Function50d6f: ; 50d6f push bc ld a, [Buffer1] ld c, a - ld b, $0 + ld b, 0 add hl, bc pop bc pop de ld a, b - cp $4 + cp NUM_MOVES jr z, .asm_50db8 jr .asm_50d74 @@ -61135,14 +61137,14 @@ Function50d6f: ; 50d6f ld a, b .asm_50da8 push af - ld [hl], $e3 + ld [hl], "-" ld a, [Buffer1] ld c, a - ld b, $0 + ld b, 0 add hl, bc pop af inc a - cp $4 + cp NUM_MOVES jr nz, .asm_50da8 .asm_50db8 @@ -61151,41 +61153,42 @@ Function50d6f: ; 50d6f Function50db9: ; 50db9 ld a, [$d263] + cp $1 jr nz, .asm_50dca ld hl, OTPartyCount ld de, OTPartyMon1OT - ld a, $6 + ld a, ENEMY_OT_NAME jr .asm_50dfc - .asm_50dca + cp $4 jr nz, .asm_50dd8 ld hl, PartyCount ld de, PartyMon1OT - ld a, $5 + ld a, PARTY_OT_NAME jr .asm_50dfc - .asm_50dd8 + cp $5 jr nz, .asm_50de6 ld hl, $d0f0 ld de, PokemonNames - ld a, $1 + ld a, PKMN_NAME jr .asm_50dfc - .asm_50de6 + cp $2 jr nz, .asm_50df4 ld hl, NumItems - ld de, Function50000 - ld a, $4 + ld de, ItemNames + ld a, ITEM_NAME jr .asm_50dfc - .asm_50df4 + ld hl, $d0f0 - ld de, Function50000 - ld a, $4 + ld de, ItemNames + ld a, ITEM_NAME .asm_50dfc ld [$cf61], a @@ -61197,7 +61200,7 @@ Function50db9: ; 50db9 ld [$d102], a ld a, d ld [$d103], a - ld bc, $67c1 + ld bc, $67c1 ; XXX ItemAttributes? ld a, c ld [$d104], a ld a, b @@ -62047,12 +62050,12 @@ Function51322: ; 51322 ld de, $d018 call Function513e0 ld hl, $d01a - ld de, TempMonMove1 - ld bc, $0004 + ld de, TempMonMoves + ld bc, NUM_MOVES call CopyBytes ld hl, $d02f ld de, TempMonPP - ld bc, $0004 + ld bc, NUM_MOVES call CopyBytes ld a, [CurPartyMon] ld b, a @@ -62081,7 +62084,7 @@ Function5138b: ; 5138b dec a ld [$d265], a ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld de, $d018 call Function513e0 ret @@ -66509,7 +66512,7 @@ Function8653f: ; 8653f push bc ld a, c ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld c, l ld b, h @@ -73161,7 +73164,7 @@ Function8b2e9: ; 8b2e9 Function8b31a: ; 8b31a push bc - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 add hl, bc inc de pop bc @@ -96856,7 +96859,7 @@ Functione3316: ; e3316 ld hl, PartyMon1OT call Functione3376 ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call Functione3389 xor a ld [$d10b], a @@ -101146,7 +101149,7 @@ Functionfbb32: ; fbb32 jr nz, .asm_fbba4 ld a, [CurPartyMon] ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call AddNTimes push hl ld bc, $0015 @@ -103997,8 +104000,8 @@ Function100bc2: ; 100bc2 ld a, [$cfa9] dec a ld c, a - ld b, $0 - ld hl, BattleMonPPMove1 + ld b, 0 + ld hl, BattleMonPP add hl, bc ld a, [hl] and $3f @@ -104012,8 +104015,8 @@ Function100bc2: ; 100bc2 ld a, [$cfa9] dec a ld c, a - ld b, $0 - ld hl, BattleMonMove1 + ld b, 0 + ld hl, BattleMonMoves add hl, bc ld a, [hl] ld [CurPlayerMove], a @@ -104035,23 +104038,23 @@ Function100bc2: ; 100bc2 Function100c74: ; 100c74 hlcoord 0, 8 - ld b, $8 - ld c, $8 + ld b, 8 + ld c, 8 call TextBox - ld hl, BattleMonMove1 + ld hl, BattleMonMoves ld de, $d25e - ld bc, $0004 + ld bc, NUM_MOVES call CopyBytes - ld a, $28 + ld a, SCREEN_WIDTH * 2 ld [Buffer1], a hlcoord 2, 10 - ld a, $20 + ld a, PREDEF_LIST_MOVES call Predef ret ; 100c98 Function100c98: ; 100c98 - ld de, $4cad + ld de, Unknown_100cad call Function1bb1 ld a, [$d0eb] inc a @@ -104062,6 +104065,7 @@ Function100c98: ; 100c98 ret ; 100cad +Unknown_100cad: ; 100cad INCBIN "baserom.gbc",$100cad,$100cb5 - $100cad @@ -112882,7 +112886,7 @@ Function11b98f: ; 11b98f ld a, $ff ld [bc], a ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld a, e ld [$cd2a], a .asm_11b9ba @@ -112896,7 +112900,7 @@ Function11b98f: ; 11b98f ld l, a ld a, [$cd23] ld h, a - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 call CopyBytes ld hl, PartyMon1OT ld bc, $000b @@ -119488,7 +119492,7 @@ Function1dc381: ; 1dc381 ld de, String1dc554 call PlaceString hlcoord 7, 14 - ld a, [TempMonMove1] + ld a, [TempMonMoves + 0] call Function1dc51a call Function1dc52c ld hl, TempMonDVs @@ -119498,7 +119502,7 @@ Function1dc381: ; 1dc381 xor a ld [hl], a ld a, [CurPartySpecies] - cp $c9 + cp UNOWN jr z, .asm_1dc469 inc [hl] @@ -119531,22 +119535,22 @@ Function1dc47b: ; 1dc47b hlcoord 0, 1 call CopyBytes hlcoord 7, 0 - ld a, [TempMonMove2] + ld a, [TempMonMoves + 1] call Function1dc51a hlcoord 7, 2 - ld a, [TempMonMove3] + ld a, [TempMonMoves + 2] call Function1dc51a hlcoord 7, 4 - ld a, [TempMonMove4] + ld a, [TempMonMoves + 3] call Function1dc51a hlcoord 7, 7 ld de, String1dc55d call PlaceString hlcoord 16, 7 - ld de, TempMonAtk + ld de, TempMonAttack call Function1dc507 hlcoord 16, 9 - ld de, TempMonDef + ld de, TempMonDefense call Function1dc507 hlcoord 16, 11 ld de, TempMonSpclAtk @@ -119555,7 +119559,7 @@ Function1dc47b: ; 1dc47b ld de, TempMonSpclDef call Function1dc507 hlcoord 16, 15 - ld de, TempMonSpd + ld de, TempMonSpeed call Function1dc507 call WaitBGMap ld b, $3 diff --git a/wram.asm b/wram.asm index bb510806a..eb572b201 100644 --- a/wram.asm +++ b/wram.asm @@ -6,11 +6,7 @@ party_struct: MACRO \1Species:: db \1Item:: db -\1Moves:: -\1Move1:: db -\1Move2:: db -\1Move3:: db -\1Move4:: db +\1Moves:: ds NUM_MOVES \1ID:: dw \1Exp:: ds 3 ; Big endian @@ -25,11 +21,7 @@ party_struct: MACRO \1AtkDefDV:: db \1SpdSpcDV:: db -\1PP:: -\1PPMove1:: db -\1PPMove2:: db -\1PPMove3:: db -\1PPMove4:: db +\1PP:: ds NUM_MOVES \1Happiness:: db \1PokerusStatus:: db @@ -483,15 +475,8 @@ BattleMonSpecies:: ; c62c BattleMonItem:: ; c62d ds 1 -BattleMonMoves:: -BattleMonMove1:: ; c62e - ds 1 -BattleMonMove2:: ; c62f - ds 1 -BattleMonMove3:: ; c630 - ds 1 -BattleMonMove4:: ; c631 - ds 1 +BattleMonMoves:: ; c62e + ds NUM_MOVES BattleMonDVs:: BattleMonAtkDefDV:: ; c632 @@ -499,15 +484,8 @@ BattleMonAtkDefDV:: ; c632 BattleMonSpdSpclDV:: ; c633 ds 1 -BattleMonPP:: -BattleMonPPMove1:: ; c634 - ds 1 -BattleMonPPMove2:: ; c635 - ds 1 -BattleMonPPMove3:: ; c636 - ds 1 -BattleMonPPMove4:: ; c637 - ds 1 +BattleMonPP:: ; c634 + ds NUM_MOVES BattleMonHappiness:: ; c638 ds 1 @@ -736,7 +714,14 @@ EnemyTurnsTaken:: ; c6dc PlayerTurnsTaken:: ; c6dd ds 1 - ds 5 + ds 1 + +PlayerSubstituteHP:: ; c6df + ds 1 +EnemySubstituteHP:: ; c6e0 + ds 1 + + ds 2 CurPlayerMove:: ; c6e3 ds 1 @@ -788,15 +773,17 @@ EnemyScreens:: ; c700 ; see PlayerScreens ds 1 +PlayerSafeguardCount:: ; c701 ds 1 - PlayerLightScreenCount:: ; c702 ds 1 PlayerReflectCount:: ; c703 ds 1 - ds 2 + ds 1 +EnemySafeguardCount:: ; c705 + ds 1 EnemyLightScreenCount:: ; c706 ds 1 EnemyReflectCount:: ; c707 @@ -1083,70 +1070,7 @@ CurPartyMon:: ; d109 ds 4 TempMon:: -TempMonSpecies:: ; d10e - ds 1 -TempMonItem:: ; d10f - ds 1 -TempMonMoves:: ; d110 -TempMonMove1:: ; d110 - ds 1 -TempMonMove2:: ; d111 - ds 1 -TempMonMove3:: ; d112 - ds 1 -TempMonMove4:: ; d113 - ds 1 -TempMonID:: ; d114 - ds 2 -TempMonExp:: ; d116 - ds 3 -TempMonHPExp:: ; d119 - ds 2 -TempMonAtkExp:: ; d11b - ds 2 -TempMonDefExp:: ; d11d - ds 2 -TempMonSpdExp:: ; d11f - ds 2 -TempMonSpclExp:: ; d121 - ds 2 -TempMonDVs:: ; d123 -; hp = %1000 for each dv - ds 1 ; atk/def - ds 1 ; spd/spc -TempMonPP:: ; d125 - ds 4 -TempMonHappiness:: ; d129 - ds 1 -TempMonPokerusStatus:: ; d12a - ds 1 -TempMonCaughtData:: ; d12b -TempMonCaughtTime:: ; d12b -TempMonCaughtLevel:: ; d12b - ds 1 -TempMonCaughtGender:: ; d12c -TempMonCaughtLocation:: ; d12c - ds 1 -TempMonLevel:: ; d12d - ds 1 -TempMonStatus:: ; d12e - ds 1 -; d12f - ds 1 -TempMonHP:: ; d130 - ds 2 -TempMonMaxHP:: ; d132 - ds 2 -TempMonAtk:: ; d134 - ds 2 -TempMonDef:: ; d136 - ds 2 -TempMonSpd:: ; d138 - ds 2 -TempMonSpclAtk:: ; d13a - ds 2 -TempMonSpclDef:: ; d13c - ds 2 + party_struct TempMon TempMonEnd:: ; d13e ds 3 @@ -1316,15 +1240,8 @@ EnemyMonSpecies:: ; d206 EnemyMonItem:: ; d207 ds 1 -EnemyMonMoves:: -EnemyMonMove1:: ; d208 - ds 1 -EnemyMonMove2:: ; d209 - ds 1 -EnemyMonMove3:: ; d20a - ds 1 -EnemyMonMove4:: ; d20b - ds 1 +EnemyMonMoves:: ; d208 + ds NUM_MOVES EnemyMonMovesEnd:: EnemyMonDVs:: @@ -1333,16 +1250,9 @@ EnemyMonAtkDefDV:: ; d20c EnemyMonSpdSpclDV:: ; d20d ds 1 -EnemyMonPP:: -EnemyMonPPMove1:: ; d20e - ds 1 -EnemyMonPPMove2:: ; d20f - ds 1 -EnemyMonPPMove3:: ; d210 - ds 1 -EnemyMonPPMove4:: ; d211 - ds 1 - +EnemyMonPP:: ; d20e + ds NUM_MOVES + EnemyMonHappiness:: ; d212 ds 1 EnemyMonLevel:: ; d213 @@ -1729,7 +1639,10 @@ StatusFlags2:: ; d84d Money:: ; d84e ds 3 - ds 4 +wMomsMoney:: ; d851 + ds 3 +wMomSavingMoney:: ; d854 + ds 1 Coins:: ; d855 ds 2 @@ -2087,7 +2000,7 @@ EggNick:: ; df65 ds 11 EggOT:: ; df70 ds 11 -EggStats:: +EggMon:: EggSpecies:: ; df7b ds 1 ds 31 From 23f9b5d21e93f1b3c8de5e4ecf72da89265ccea8 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 10 Jun 2014 23:23:55 -0700 Subject: [PATCH 04/22] Use constants for move struct positioning. This eliminates the need for arbitrary move labels like Move2 and Move1 that don't have anything to do with their respective moves. --- battle/ai/scoring.asm | 6 +++--- battle/core.asm | 6 +++--- battle/effect_commands.asm | 22 +++++++++++----------- battle/moves/moves.asm | 11 +++-------- event/dratini.asm | 4 ++-- main.asm | 10 +++++----- text/types.asm | 4 ++-- 7 files changed, 29 insertions(+), 34 deletions(-) diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 19c652370..7a34ec3d0 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -1658,8 +1658,8 @@ AIScoring_Conversion2: ; 38d98 push hl dec a - ld hl, Moves + PlayerMoveType - PlayerMoveStruct - ld bc, Move2 - Move1 + ld hl, Moves + MOVE_TYPE + ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) @@ -3314,7 +3314,7 @@ AIGetEnemyMove: ; 39508 push bc dec a ld hl, Moves - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld de, EnemyMoveStruct diff --git a/battle/core.asm b/battle/core.asm index b4678e8f9..9f3dbc661 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -915,7 +915,7 @@ GetMoveEffect: ; 3c5ec ld a, b dec a ld hl, Moves + MOVE_EFFECT - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) call GetFarByte @@ -3436,7 +3436,7 @@ Function3d5d7: ; 3d5d7 push bc dec a ld hl, Moves + MOVE_ANIM - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld de, EnemyMoveAnimation ld a, BANK(Moves) @@ -8580,7 +8580,7 @@ Function3f662: ; 3f662 push hl dec a ld hl, Moves + MOVE_PP - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) call GetFarByte diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index ed6f0257a..b7f41c04f 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -1675,7 +1675,7 @@ Function3484e: ; 3484e jr z, .asm_3489f ; 0x34863 $3a push hl dec a - ld hl, Moves + PlayerMovePower - PlayerMoveStruct + ld hl, Moves + MOVE_POWER call GetMoveAttr and a jr z, .asm_3489b ; 0x3486e $2b @@ -1761,7 +1761,7 @@ Function348de: ; 348de inc de dec a - ld hl, Moves + PlayerMovePower - PlayerMoveStruct + ld hl, Moves + MOVE_POWER call GetMoveAttr and a jr z, .loop @@ -2024,7 +2024,7 @@ Function34a2a: ; 34a2a call GetBaseData ld a, [LastEnemyCounterMove] dec a - ld hl, Moves + PlayerMovePower - PlayerMoveStruct + ld hl, Moves + MOVE_POWER call GetMoveAttr and a jr z, .asm_34a77 @@ -2114,7 +2114,7 @@ Function34aa7: ; 34aa7 jr z, .asm_34aef dec a - ld hl, Moves + PlayerMovePower - PlayerMoveStruct + ld hl, Moves + MOVE_POWER call GetMoveAttr and a jr z, .asm_34ae9 @@ -2207,7 +2207,7 @@ Function34b20: ; 34b20 jr z, .asm_34b4a dec a - ld hl, Moves + PlayerMovePower - PlayerMoveStruct + ld hl, Moves + MOVE_POWER call GetMoveAttr and a jr z, .asm_34b4a @@ -4779,7 +4779,7 @@ BattleCommand44: ; 359e6 jr z, .asm_35a50 ; 359fd $51 push hl dec a - ld hl, Moves + PlayerMoveType - PlayerMoveStruct + ld hl, Moves + MOVE_TYPE call GetMoveAttr ld d, a pop hl @@ -4904,10 +4904,10 @@ BattleCommand46: ; 35a74 push bc push hl dec a - ld hl, Moves + PlayerMovePP - PlayerMoveStruct + ld hl, Moves + MOVE_PP call GetMoveAttr pop hl - ld bc, $0006 + ld bc, BattleMonPP - BattleMonMoves add hl, bc ld [hl], a pop bc @@ -8653,7 +8653,7 @@ BattleCommand1f: ; 3707f push hl push bc dec a - ld hl, Moves + PlayerMoveType - PlayerMoveStruct + ld hl, Moves + MOVE_TYPE call GetMoveAttr ld [de], a inc de @@ -10656,7 +10656,7 @@ SkipToBattleCommand: ; 37e8c GetMoveAttr: ; 37ea1 ; Assuming hl = Moves + x, return attribute x of move a. push bc - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes call GetMoveByte pop bc @@ -10667,7 +10667,7 @@ GetMoveAttr: ; 37ea1 GetMoveData: ; 37ead ; Copy move struct a to de. ld hl, Moves - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld a, Bank(Moves) jp FarCopyBytes diff --git a/battle/moves/moves.asm b/battle/moves/moves.asm index d37376378..3877e9960 100644 --- a/battle/moves/moves.asm +++ b/battle/moves/moves.asm @@ -1,22 +1,17 @@ Moves: ; 41afb - -; Characteristics of each move - -; animation, effect, power, type, accuracy, PP, effect chance +; Characteristics of each move. move: MACRO db \1 ; animation db \2 ; effect db \3 ; power db \4 ; type - db \5 * $ff / 100 ; accuracy (percent) + db \5 percent ; accuracy db \6 ; pp - db \7 * $ff / 100 ; effect chance (percent) + db \7 percent ; effect chance ENDM -Move1: move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 -Move2: move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0 move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0 move COMET_PUNCH, EFFECT_MULTI_HIT, 18, NORMAL, 85, 15, 0 diff --git a/event/dratini.asm b/event/dratini.asm index bf8ae2d57..1845673c8 100644 --- a/event/dratini.asm +++ b/event/dratini.asm @@ -51,8 +51,8 @@ SpecialDratini: ; 0x8b170 ; get the PP of the new move dec a - ld hl, Moves + PlayerMovePP - PlayerMoveStruct - ld bc, Move2 - Move1 + ld hl, Moves + MOVE_PP + ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) call GetFarByte diff --git a/main.asm b/main.asm index ffdeda602..ef9196b6a 100644 --- a/main.asm +++ b/main.asm @@ -5316,7 +5316,7 @@ Function6520: ; 6520 push de dec a ld hl, Moves + MOVE_PP - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) call GetFarByte @@ -12637,7 +12637,7 @@ FillPP: ; da6d push de push bc ld hl, Moves - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld de, StringBuffer1 ld a, BANK(Moves) @@ -20861,7 +20861,7 @@ Function13256: ; 13256 ld a, [CurSpecies] dec a ld hl, Moves + MOVE_POWER - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) call GetFarByte @@ -44611,7 +44611,7 @@ Function39806: ; 39806 push bc dec a ld hl, Moves + MOVE_PP - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) call GetFarByte @@ -48143,7 +48143,7 @@ FillMoves: ; 424e1 push hl dec a ld hl, Moves + MOVE_PP - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) call GetFarByte diff --git a/text/types.asm b/text/types.asm index 0addaaf6e..c3076fb10 100644 --- a/text/types.asm +++ b/text/types.asm @@ -42,13 +42,13 @@ PrintMoveType: ; 5093a push hl ld a, b dec a - ld bc, Move2 - Move1 + ld bc, MOVE_LENGTH ld hl, Moves call AddNTimes ld de, StringBuffer1 ld a, BANK(Moves) call FarCopyBytes - ld a, [StringBuffer1 + PlayerMoveType - PlayerMoveStruct] + ld a, [StringBuffer1 + MOVE_TYPE] pop hl ld b, a From 023cfdbb051ea5184ebc7fa329db3ca43f1ca23e Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 12 Jun 2014 18:32:42 -0700 Subject: [PATCH 05/22] Consolidate monster structs in wram and sram. The PartyMon struct is really the box struct with volatile variables like status added. Some other labels have been reworked. Move structs no longer have explicit labels since their location is arbitrary and usually shared. --- battle/ai/scoring.asm | 261 ++++--- battle/core.asm | 296 ++++---- battle/effect_commands.asm | 103 +-- constants/misc_constants.asm | 4 +- data/odd_eggs.asm | 2 +- engine/engine_flags.asm | 12 +- engine/scripting.asm | 2 +- event/name_rater.asm | 10 +- event/poke_seer.asm | 6 +- home/battle.asm | 8 +- home/map.asm | 2 +- items/item_effects.asm | 20 +- main.asm | 1232 +++++++++++++++++----------------- wram.asm | 708 +++++-------------- 14 files changed, 1128 insertions(+), 1538 deletions(-) diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 7a34ec3d0..ab4aca83f 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -16,7 +16,7 @@ AIScoring_RedStatus: ; 38591 inc de call AIGetEnemyMove - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] ld c, a push hl @@ -28,7 +28,7 @@ AIScoring_RedStatus: ; 38591 pop hl jr nz, .discourage - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] push hl push de push bc @@ -82,7 +82,7 @@ AIScoring_RedStatMods: ; 385e0 inc de call AIGetEnemyMove - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_ATTACK_UP jr c, .checkmove @@ -119,7 +119,7 @@ AIScoring_RedStatMods: ; 385e0 jr nz, .discourage .encourage - call Function_0x39527 + call Function39527 jr c, .checkmove dec [hl] @@ -173,7 +173,7 @@ AIScoring_RedSuperEffective: ; 38635 jr c, .noteffective ; effective - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .checkmove dec [hl] @@ -185,7 +185,7 @@ AIScoring_RedSuperEffective: ; 38635 push hl push de push bc - ld a, [EnemyMoveType] + ld a, [wEnemyMoveStruct + MOVE_TYPE] ld d, a ld hl, EnemyMonMoves ld b, EnemyMonMovesEnd - EnemyMonMoves + 1 @@ -199,10 +199,10 @@ AIScoring_RedSuperEffective: ; 38635 jr z, .asm_38693 call AIGetEnemyMove - ld a, [EnemyMoveType] + ld a, [wEnemyMoveStruct + MOVE_TYPE] cp d jr z, .checkmove2 - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr nz, .asm_38692 jr .checkmove2 @@ -244,7 +244,7 @@ AIScoring_Offensive: ; 386a2 inc de call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr nz, .checkmove @@ -275,7 +275,7 @@ AIScoring_Smart: ; 386be push hl call AIGetEnemyMove - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] ld hl, .table_386f2 ld de, 3 call IsInArray @@ -398,7 +398,7 @@ AIScoring_Sleep: ; 387e3 ret nc .asm_387f0 - call Function_0x39527 + call Function39527 ret c dec [hl] dec [hl] @@ -421,7 +421,7 @@ AIScoring_LeechHit: ; 387f7 call AICheckEnemyMaxHP ret c - call Function_0x39521 + call Function39521 ret c dec [hl] @@ -484,8 +484,8 @@ AIScoring_LockOn: ; 3881d call AIGetEnemyMove - ld a, [EnemyMoveAccuracy] - cp $b4 + ld a, [wEnemyMoveStruct + MOVE_ACC] + cp 180 jr nc, .asm_3884f ld a, $1 @@ -513,7 +513,7 @@ AIScoring_LockOn: ; 3881d .asm_3887a pop hl - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -538,8 +538,8 @@ AIScoring_LockOn: ; 3881d inc de call AIGetEnemyMove - ld a, [EnemyMoveAccuracy] - cp $b4 + ld a, [wEnemyMoveStruct + MOVE_ACC] + cp 180 jr nc, .asm_3888b dec [hl] @@ -602,19 +602,16 @@ AIScoring_EvasionUp: ; 388d4 jp nc, AIDiscourageMove call AICheckEnemyMaxHP - jr nc, .asm_388f2 ld a, [PlayerSubStatus5] - bit 0, a + bit SUBSTATUS_TOXIC, a jr nz, .asm_388ef call Random - cp $b2 jr nc, .asm_38911 - .asm_388ef dec [hl] dec [hl] @@ -622,42 +619,35 @@ AIScoring_EvasionUp: ; 388d4 .asm_388f2 call AICheckEnemyQuarterHP - jr nc, .asm_3890f call Random - cp $a jr c, .asm_388ef call AICheckEnemyHalfHP - jr nc, .asm_3890a - call Function_0x39521 - + call Function39521 jr c, .asm_388ef - jr .asm_38911 .asm_3890a - call Function_0x39527 - + call Function39527 jr c, .asm_38911 - .asm_3890f inc [hl] inc [hl] .asm_38911 ld a, [PlayerSubStatus5] - bit 0, a + bit SUBSTATUS_TOXIC, a jr nz, .asm_38938 ld a, [PlayerSubStatus4] - bit 7, a + bit SUBSTATUS_LEECH_SEED, a jr nz, .asm_38941 ld a, [EnemyEvaLevel] @@ -671,7 +661,7 @@ AIScoring_EvasionUp: ; 388d4 jr nz, .asm_388ef ld a, [PlayerSubStatus1] - bit 6, a + bit SUBSTATUS_ENCORED, a jr nz, .asm_388ef @@ -688,7 +678,7 @@ AIScoring_EvasionUp: ; 388d4 ret .asm_38941 - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -706,7 +696,7 @@ AIScoring_AlwaysHit: ; 38947 ret c .asm_38954 - call Function_0x39521 + call Function39521 ret c dec [hl] @@ -721,30 +711,29 @@ AIScoring_MirrorMove: ; 3895b jr nz, .asm_38968 call AICompareSpeed - ret nc - jp AIDiscourageMove + jp AIDiscourageMove .asm_38968 push hl ld hl, Table_0x39301 ld de, 1 call IsInArray - pop hl ret nc - call Function_0x39527 + call Function39527 ret c + dec [hl] call AICompareSpeed - ret nc - call Random + call Random cp $19 ret c + dec [hl] ret ; 38985 @@ -752,23 +741,19 @@ AIScoring_MirrorMove: ; 3895b AIScoring_AccuracyDown: ; 38985 call AICheckPlayerMaxHP - jr nc, .asm_389a0 call AICheckEnemyHalfHP - jr nc, .asm_389a0 ld a, [PlayerSubStatus5] - bit 0, a + bit SUBSTATUS_TOXIC, a jr nz, .asm_3899d call Random - cp $b2 jr nc, .asm_389bf - .asm_3899d dec [hl] dec [hl] @@ -776,42 +761,34 @@ AIScoring_AccuracyDown: ; 38985 .asm_389a0 call AICheckPlayerQuarterHP - jr nc, .asm_389bd call Random - cp $a jr c, .asm_3899d call AICheckPlayerHalfHP - jr nc, .asm_389b8 - call Function_0x39521 - + call Function39521 jr c, .asm_3899d - jr .asm_389bf - .asm_389b8 - call Function_0x39527 - + call Function39527 jr c, .asm_389bf - .asm_389bd inc [hl] inc [hl] .asm_389bf ld a, [PlayerSubStatus5] - bit 0, a + bit SUBSTATUS_TOXIC, a jr nz, .asm_389e6 ld a, [PlayerSubStatus4] - bit 7, a + bit SUBSTATUS_LEECH_SEED, a jr nz, .asm_389ef ld a, [EnemyEvaLevel] @@ -825,10 +802,9 @@ AIScoring_AccuracyDown: ; 38985 jr nz, .asm_3899d ld a, [PlayerSubStatus1] - bit 6, a + bit SUBSTATUS_ENCORED, a jr nz, .asm_3899d - .asm_389e4 inc [hl] ret @@ -842,9 +818,9 @@ AIScoring_AccuracyDown: ; 38985 ret .asm_389ef - call Function_0x39527 - + call Function39527 ret c + dec [hl] ret ; 389f5 @@ -862,7 +838,6 @@ AIScoring_Haze: ; 389f5 jr c, .asm_38a12 jr .asm_389fb - .asm_38a05 ld hl, PlayerAtkLevel ld c, $8 @@ -984,7 +959,7 @@ AIScoring_Bind: ; 38a71 jr z, .asm_38a91 .asm_38a8b - call Function_0x39527 + call Function39527 ret c inc [hl] ret @@ -992,7 +967,7 @@ AIScoring_Bind: ; 38a71 .asm_38a91 call AICheckEnemyQuarterHP ret nc - call Function_0x39527 + call Function39527 ret c dec [hl] dec [hl] @@ -1022,7 +997,7 @@ AIScoring_Unused2B: ; 38a9c call AIGetEnemyMove - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_PROTECT jr z, .asm_38ad5 dec c @@ -1081,14 +1056,14 @@ AIScoring_SpDefenseUp2: ; 38aed ret nc ld a, [BattleMonType1] - cp FIRE + cp SPECIAL jr nc, .asm_38b09 ld a, [BattleMonType2] - cp FIRE + cp SPECIAL ret c .asm_38b09 - call Function_0x39521 + call Function39521 ret c dec [hl] dec [hl] @@ -1128,14 +1103,14 @@ AIScoring_Paralyze: ; 38b26 ret c call AICheckEnemyQuarterHP ret nc - call Function_0x39521 + call Function39521 ret c dec [hl] dec [hl] ret .asm_38b3a - call Function_0x39527 + call Function39527 ret c inc [hl] ret @@ -1143,7 +1118,7 @@ AIScoring_Paralyze: ; 38b26 AIScoring_SpeedDownHit: ; 38b40 - ld a, [EnemyMoveAnimation] + ld a, [wEnemyMoveStruct + MOVE_ANIM] cp ICY_WIND ret nz call AICheckEnemyQuarterHP @@ -1174,7 +1149,7 @@ AIScoring_HyperBeam: ; 38b63 jr c, .asm_38b72 call AICheckEnemyQuarterHP ret c - call Function_0x39527 + call Function39527 ret c dec [hl] ret @@ -1184,7 +1159,7 @@ AIScoring_HyperBeam: ; 38b63 cp 40 ret c inc [hl] - call Function_0x39527 + call Function39527 ret c inc [hl] ret @@ -1196,7 +1171,7 @@ AIScoring_Rage: ; 38b7f bit 6, a jr z, .asm_38b9b - call Function_0x39527 + call Function39527 jr c, .asm_38b8c dec [hl] @@ -1216,7 +1191,7 @@ AIScoring_Rage: ; 38b7f call AICheckEnemyHalfHP jr nc, .asm_38ba6 - call Function_0x39521 + call Function39521 ret nc dec [hl] ret @@ -1249,7 +1224,7 @@ AIScoring_Mimic: ; 38ba8 jr c, .asm_38bef jr z, .asm_38bd4 - call Function_0x39527 + call Function39527 jr c, .asm_38bd4 dec [hl] @@ -1263,7 +1238,7 @@ AIScoring_Mimic: ; 38ba8 pop hl ret nc - call Function_0x39527 + call Function39527 ret c dec [hl] ret @@ -1291,12 +1266,12 @@ AIScoring_Counter: ; 38bf1 call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .asm_38c0e - ld a, [EnemyMoveType] - cp $14 + ld a, [wEnemyMoveStruct + MOVE_TYPE] + cp SPECIAL jr nc, .asm_38c0e inc b @@ -1319,12 +1294,12 @@ AIScoring_Counter: ; 38bf1 call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .asm_38c38 - ld a, [EnemyMoveType] - cp $14 + ld a, [wEnemyMoveStruct + MOVE_TYPE] + cp SPECIAL jr nc, .asm_38c38 @@ -1354,12 +1329,12 @@ AIScoring_Encore: ; 38c3b call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .asm_38c68 push hl - ld a, [EnemyMoveType] + ld a, [wEnemyMoveStruct + MOVE_TYPE] ld hl, EnemyMonType1 ld a, $41 call Predef @@ -1433,7 +1408,7 @@ AIScoring_Encore: ; 38c3b AIScoring_PainSplit: ; 38ca4 push hl - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld b, [hl] inc hl ld c, [hl] @@ -1490,7 +1465,7 @@ AIScoring_Spite: ; 38cd5 call AICompareSpeed jp c, AIDiscourageMove - call Function_0x39527 + call Function39527 ret c inc [hl] ret @@ -1596,7 +1571,7 @@ AIScoring_HealBell: ; 38d1f .asm_38d48 and $27 ret z - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -1664,7 +1639,7 @@ AIScoring_Conversion2: ; 38d98 ld a, BANK(Moves) call GetFarByte - ld [PlayerMoveType], a + ld [wPlayerMoveStruct + MOVE_TYPE], a xor a ld [hBattleTurn], a @@ -1677,7 +1652,7 @@ AIScoring_Conversion2: ; 38d98 jr c, .asm_38dc9 ret z - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -1713,7 +1688,7 @@ AIScoring_Disable: ; 38dd1 ret .asm_38dee - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a ret nz @@ -1755,7 +1730,7 @@ AIScoring_MeanLook: ; 38dfb ret .asm_38e26 - call Function_0x39521 + call Function39521 ret c dec [hl] dec [hl] @@ -1792,7 +1767,7 @@ AICheckLastPlayerMon: ; 38e2e AIScoring_Nightmare: ; 38e4a - call Function_0x39527 + call Function39527 ret c dec [hl] ret @@ -1832,12 +1807,12 @@ AIScoring_Curse: ; 38e5c ld a, [BattleMonType1] cp GHOST jr z, .asm_38e92 - cp FIRE + cp SPECIAL ret nc ld a, [BattleMonType2] - cp FIRE + cp SPECIAL ret nc - call Function_0x39521 + call Function39521 ret c dec [hl] dec [hl] @@ -1892,7 +1867,7 @@ AIScoring_Curse: ; 38e5c ret nz .asm_38ecb - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -1936,7 +1911,7 @@ AIScoring_Protect: ; 38ed2 jr c, .asm_38f14 .asm_38f0d - call Function_0x39521 + call Function39521 ret c dec [hl] ret @@ -2002,14 +1977,14 @@ AIScoring_PerishSong: ; 38f4a pop hl ret c - call Function_0x39527 + call Function39527 ret c inc [hl] ret .asm_38f6f - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -2043,7 +2018,7 @@ AIScoring_Sandstorm: ; 38f7a call AICheckPlayerHalfHP jr nc, .asm_38fa6 - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -2079,7 +2054,7 @@ AIScoring_Endure: ; 38fac call AIHasMove jr nc, .asm_38fcb - call Function_0x39521 + call Function39521 ret c dec [hl] @@ -2091,7 +2066,7 @@ AIScoring_Endure: ; 38fac ld a, [EnemySubStatus5] bit SUBSTATUS_LOCK_ON, a ret z - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -2161,7 +2136,7 @@ AIScoring_Rollout: ; 38fef ret .asm_39020 - call Function_0x39521 + call Function39521 ret c inc [hl] ret @@ -2174,7 +2149,7 @@ AIScoring_Attract: ; 39026 and a jr z, .asm_39032 - call Function_0x39521 + call Function39521 ret c inc [hl] ret @@ -2191,7 +2166,7 @@ AIScoring_Attract: ; 39026 AIScoring_Safeguard: ; 3903a call AICheckPlayerHalfHP ret c - call Function_0x39521 + call Function39521 ret c inc [hl] ret @@ -2217,7 +2192,7 @@ AIScoring_Earthquake: ; 39044 .asm_39058 call AICompareSpeed ret c - call Function_0x39527 + call Function39527 ret c dec [hl] ret @@ -2239,13 +2214,13 @@ AIScoring_BatonPass: ; 39062 AIScoring_Pursuit: ; 39072 call AICheckPlayerQuarterHP jr nc, .asm_3907d - call Function_0x39521 + call Function39521 ret c inc [hl] ret .asm_3907d - call Function_0x39527 + call Function39527 ret c dec [hl] dec [hl] @@ -2267,7 +2242,7 @@ AIScoring_RapidSpin: ; 39084 ret z .asm_39097 - call Function_0x39521 + call Function39521 ret c dec [hl] @@ -2372,7 +2347,7 @@ AIScoring_WeatherMove: ; 3910d call AICheckPlayerHalfHP jr nc, AIBadWeatherType - call Function_0x39527 + call Function39527 ret c dec [hl] @@ -2476,7 +2451,7 @@ AIScoring_PsychUp: ; 39152 ld a, [EnemyEvaLevel] cp $8 ret nc - call Function_0x39521 + call Function39521 ret c dec [hl] @@ -2502,12 +2477,12 @@ AIScoring_MirrorCoat: ; 3918b call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .asm_391a8 - ld a, [EnemyMoveType] - cp FIRE + ld a, [wEnemyMoveStruct + MOVE_TYPE] + cp SPECIAL jr c, .asm_391a8 inc b @@ -2530,12 +2505,12 @@ AIScoring_MirrorCoat: ; 3918b call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .asm_391d2 - ld a, [EnemyMoveType] - cp FIRE + ld a, [wEnemyMoveStruct + MOVE_TYPE] + cp SPECIAL jr c, .asm_391d2 @@ -2574,7 +2549,7 @@ AIScoring_Gust: ; 391d5 .asm_391e9 call AICompareSpeed ret c - call Function_0x39527 + call Function39527 ret c dec [hl] ret @@ -2600,7 +2575,7 @@ AIScoring_Stomp: ; 39200 and a ret z - call Function_0x39521 + call Function39521 ret c dec [hl] @@ -2625,7 +2600,7 @@ AIScoring_Solarbeam: ; 3920b ret .asm_3921e - call Function_0x39521 + call Function39521 ret c dec [hl] @@ -2650,13 +2625,13 @@ AIScoring_Thunder: ; 39225 AICompareSpeed: ; 39233 push bc - ld a, [EnemyMonSpd + 1] + ld a, [EnemyMonSpeed + 1] ld b, a - ld a, [BattleMonSpd + 1] + ld a, [BattleMonSpeed + 1] cp b - ld a, [EnemyMonSpd] + ld a, [EnemyMonSpeed] ld b, a - ld a, [BattleMonSpd] + ld a, [BattleMonSpeed] sbc b pop bc ret @@ -2677,8 +2652,8 @@ AICheckEnemyMaxHP: ; 39251 push hl push de push bc - ld de, EnemyMonHPHi - ld hl, EnemyMonMaxHPHi + ld de, EnemyMonHP + ld hl, EnemyMonMaxHP ; fallthrough ; 3925a @@ -2733,7 +2708,7 @@ AICheckEnemyHalfHP: ; 39281 push hl push de push bc - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld b, [hl] inc hl ld c, [hl] @@ -2756,7 +2731,7 @@ AICheckEnemyQuarterHP: ; 39298 push hl push de push bc - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld b, [hl] inc hl ld c, [hl] @@ -2811,7 +2786,7 @@ AIHasMove: ; 392ca call AIGetEnemyMove - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp b jr z, .asm_392e3 @@ -2898,7 +2873,7 @@ AIScoring_Opportunist: ; 39315 call AICheckEnemyQuarterHP jr nc, .asm_39322 - call Function_0x39527 + call Function39527 ret c .asm_39322 @@ -2992,7 +2967,7 @@ AIScoring_Aggressive: ; 39369 push de push bc call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .nodamage call AIDamageCalc @@ -3043,14 +3018,14 @@ AIScoring_Aggressive: ; 39369 call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] cp 2 jr c, .checkmove2 push hl push de push bc - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] ld hl, .aggressivemoves ld de, 1 call IsInArray @@ -3077,7 +3052,7 @@ AIScoring_Aggressive: ; 39369 AIDamageCalc: ; 393e7 ld a, 1 ld [hBattleTurn], a - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] ld de, 1 ld hl, .ConstantDamageEffects call IsInArray @@ -3175,7 +3150,7 @@ AIScoring_StatusImmunity: ; 39453 inc de call AIGetEnemyMove - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_TOXIC jr z, .poisonimmunity cp EFFECT_POISON @@ -3185,7 +3160,7 @@ AIScoring_StatusImmunity: ; 39453 cp EFFECT_PARALYZE jr z, .typeimmunity - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .checkmove @@ -3242,12 +3217,12 @@ AIScoring_Risky: ; 394a9 push hl call AIGetEnemyMove - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] and a jr z, .nextmove ; Don't use risky moves at max hp. - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] ld de, 1 ld hl, .riskymoves call IsInArray @@ -3317,7 +3292,7 @@ AIGetEnemyMove: ; 39508 ld bc, MOVE_LENGTH call AddNTimes - ld de, EnemyMoveStruct + ld de, wEnemyMoveStruct ld a, BANK(Moves) call FarCopyBytes @@ -3328,14 +3303,14 @@ AIGetEnemyMove: ; 39508 ; 39521 -Function_0x39521: ; 39521 +Function39521: ; 39521 call Random cp 50 ; 1/5 ret ; 39527 -Function_0x39527: ; 39527 +Function39527: ; 39527 call Random cp $80 ; 1/2 ret diff --git a/battle/core.asm b/battle/core.asm index 9f3dbc661..dda37000d 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -12,8 +12,8 @@ Function3c000: ; 3c000 inc a ld [$d264], a ld hl, OTPartyMon1HP - ld bc, $002f - ld d, $3 + ld bc, OTPartyMon2 - (OTPartyMon1 + 1) + ld d, NUM_MOVES - 1 .asm_3c019 inc d ld a, [hli] @@ -166,8 +166,8 @@ Function3c12f: ; 3c12f call Function3c3f5 jp c, .asm_3c1be xor a - ld [$c710], a - ld [$c711], a + ld [wPlayerIsSwitching], a + ld [wEnemyIsSwitching], a ld [$d264], a ld [$c73f], a ld [$c740], a @@ -455,7 +455,7 @@ Function3c314: ; 3c314 jr z, .asm_3c35b cp $d jr z, .asm_3c35b - sub $4 + sub NUM_MOVES jr c, .asm_3c35b ld a, [$d0ec] cp $2 @@ -537,8 +537,8 @@ Function3c314: ; 3c314 jr .asm_3c3c5 .asm_3c3c5 - ld de, BattleMonSpd - ld hl, EnemyMonSpd + ld de, BattleMonSpeed + ld hl, EnemyMonSpeed ld c, $2 call StringCmp jr z, .asm_3c3d8 @@ -653,26 +653,26 @@ Function3c434: ; 3c434 callab UpdateMoveData xor a ld [$c732], a - ld a, [PlayerMoveEffect] - cp $77 + ld a, [wPlayerMoveStruct + MOVE_EFFECT] + cp EFFECT_FURY_CUTTER jr z, .asm_3c494 xor a ld [PlayerFuryCutterCount], a .asm_3c494 - ld a, [PlayerMoveEffect] - cp $51 + ld a, [wPlayerMoveStruct + MOVE_EFFECT] + cp EFFECT_RAGE jr z, .asm_3c4a4 ld hl, PlayerSubStatus4 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] xor a ld [$c72b], a .asm_3c4a4 - ld a, [PlayerMoveEffect] - cp $6f + ld a, [wPlayerMoveStruct + MOVE_EFFECT] + cp EFFECT_PROTECT jr z, .asm_3c4c9 - cp $74 + cp EFFECT_ENDURE jr z, .asm_3c4c9 xor a ld [PlayerProtectCount], a @@ -1055,7 +1055,7 @@ Function3c706: ; 3c706 and a jr z, Function3c710 Function3c70b: ; 3c70b - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP jr Function3c713 Function3c710: ; 3c710 @@ -1176,7 +1176,7 @@ Function3c716: ; 3c716 ld a, [hBattleTurn] and a jr z, .asm_3c7f4 - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP .asm_3c7f4 ld a, [hli] @@ -1243,7 +1243,7 @@ Function3c801: ; 3c801 ret .asm_3c85c - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP xor a ld [hli], a ld [hl], a @@ -1352,7 +1352,7 @@ Function3c8eb: ; 3c8eb ld a, [hBattleTurn] and a jr z, .asm_3c922 - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP .asm_3c922 ld a, [hli] @@ -2423,7 +2423,7 @@ EnemyPartyMonEntrance: ; 3cf78 call SetEnemyTurn call SpikesDamage xor a - ld [EnemyMoveAnimation], a + ld [wEnemyMoveStruct + MOVE_ANIM], a ld [$d0ec], a inc a ret @@ -2732,7 +2732,7 @@ KantoGymLeaders: Function3d14e: ; 3d14e call Function3cef1 - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] or [hl] call z, Function3cf14 @@ -2743,7 +2743,7 @@ Function3d14e: ; 3d14e ld a, d and a jp z, LostBattle - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] or [hl] jr nz, .asm_3d185 @@ -2841,7 +2841,7 @@ Function3d1f8: ; 3d1f8 cp $1 jr z, .asm_3d20a ld hl, PartyMon1Speed - ld de, EnemyMonSpd + ld de, EnemyMonSpeed jp Function3d8b3 ; 3d227 @@ -2862,7 +2862,7 @@ Function3d227: ; 3d227 ld [$d0ec], a call Function3d2e0 jr c, .asm_3d251 - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] or [hl] jr nz, .asm_3d26c @@ -3296,7 +3296,7 @@ Function3d4e1: ; 3d4e1 ld [$c6fc], a ld [$d0ec], a inc a - ld [$c711], a + ld [wEnemyIsSwitching], a call Function309d jp Function3e3ad ; 3d517 @@ -3309,8 +3309,8 @@ Function3d517: ; 3d517 .asm_3d522 call Function3d6ca - ld a, $1 - ld [$c711], a + ld a, 1 + ld [wEnemyIsSwitching], a call Function3d7a0 call Function3d7b8 jp Function3d7c7 @@ -3321,7 +3321,7 @@ Function3d533: ; 3d533 and a jr z, .asm_3d541 ld a, [$d430] - sub $4 + sub NUM_MOVES ld b, a jr .asm_3d555 @@ -3435,10 +3435,10 @@ Function3d5d7: ; 3d5d7 push de push bc dec a - ld hl, Moves + MOVE_ANIM + ld hl, Moves ld bc, MOVE_LENGTH call AddNTimes - ld de, EnemyMoveAnimation + ld de, wEnemyMoveStruct ld a, BANK(Moves) call FarCopyBytes call SetEnemyTurn @@ -3475,14 +3475,14 @@ Function3d618: ; 3d618 ld a, BANK(BaseData) call FarCopyBytes ld a, [BattleMonType1] - ld [PlayerMoveType], a + ld [wPlayerMoveStruct + MOVE_TYPE], a call SetPlayerTurn callab Function347c8 ld a, [$d265] cp $b jr nc, .asm_3d663 ld a, [BattleMonType2] - ld [PlayerMoveType], a + ld [wPlayerMoveStruct + MOVE_TYPE], a callab Function347c8 ld a, [$d265] cp $b @@ -3592,14 +3592,14 @@ Function3d6ca: ; 3d6ca ld a, [$def4] and a jr nz, .asm_3d708 - ld hl, EnemyMonAtkDefDV - ld a, $2d + ld hl, EnemyMonDVs + ld a, PREDEF_GET_UNOWN_LETTER call Predef ld a, [UnownLetter] ld [$def4], a .asm_3d708 - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] ld [$c6ea], a ld a, [hl] @@ -3759,7 +3759,7 @@ NewEnemyMonStatus: ; 3d834 ld [hl], a ld [EnemyDisableCount], a ld [EnemyFuryCutterCount], a - ld [$c681], a + ld [EnemyProtectCount], a ld [$c72c], a ld [EnemyDisabledMove], a ld [$c6fa], a @@ -4019,21 +4019,21 @@ Function3d8b3: ; 3d8b3 Function3da0d: ; 3da0d - ld a, $0 + ld a, PartyMon1Species - PartyMon1 call GetPartyParamLocation ld de, BattleMonSpecies - ld bc, $0006 + ld bc, 1 + 1 + NUM_MOVES ; species, item, moves ; BattleMonDVs - BattleMonSpecies call CopyBytes - ld bc, $000f + ld bc, PartyMon1DVs - (PartyMon1Species + 1 + 1 + NUM_MOVES) add hl, bc - ld de, BattleMonAtkDefDV - ld bc, $0007 + ld de, BattleMonDVs + ld bc, 2 + NUM_MOVES + 1 ; DVs, PP, happiness ; BattleMonLevel - BattleMonDVs call CopyBytes inc hl inc hl inc hl ld de, BattleMonLevel - ld bc, $0011 + ld bc, 1 + 1 + 1 + 2 + 2 * 6 ; level, status, unused, stats call CopyBytes ld a, [BattleMonSpecies] ld [TempBattleMonSpecies], a @@ -4044,15 +4044,15 @@ Function3da0d: ; 3da0d ld [BattleMonType1], a ld a, [BaseType2] ld [BattleMonType2], a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [CurBattleMon] call SkipNames ld de, BattleMonNick - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes - ld hl, BattleMonAtk + ld hl, BattleMonAttack ld de, PlayerStats - ld bc, $000a + ld bc, 2 * 5 call CopyBytes call Function3ec2c call BadgeStatBoosts @@ -4074,7 +4074,7 @@ Function3da7c: ; 3da7c ; 3da85 Function3da85: ; 3da85 - ld hl, BattleMonAtkDefDV + ld hl, BattleMonDVs ld a, [PlayerSubStatus5] bit 3, a ret z @@ -4084,7 +4084,7 @@ Function3da85: ; 3da85 ; 3da97 Function3da97: ; 3da97 - ld hl, EnemyMonAtkDefDV + ld hl, EnemyMonDVs ld a, [EnemySubStatus5] bit 3, a ret z @@ -4092,7 +4092,7 @@ Function3da97: ; 3da97 ld a, [IsInBattle] dec a ret z - ld hl, OTPartyMon1AtkDefDV + ld hl, OTPartyMon1DVs ld a, [CurOTMon] jp GetPartyLocation ; 3dab1 @@ -4114,31 +4114,31 @@ Function3dabd: ; 3dabd ld hl, OTPartyMon1Species call GetPartyLocation ld de, EnemyMonSpecies - ld bc, $0006 + ld bc, 1 + 1 + NUM_MOVES call CopyBytes - ld bc, $000f + ld bc, OTPartyMon1DVs - (OTPartyMon1Species + 1 + 1 + NUM_MOVES) add hl, bc - ld de, EnemyMonAtkDefDV - ld bc, $0007 + ld de, EnemyMonDVs + ld bc, 2 + NUM_MOVES + 1 call CopyBytes inc hl inc hl inc hl ld de, EnemyMonLevel - ld bc, $0011 + ld bc, 1 + 1 + 1 + 2 + 2 * 6 call CopyBytes ld a, [EnemyMonSpecies] ld [CurSpecies], a call GetBaseData - ld hl, OTPartyMon1Nickname + ld hl, OTPartyMonNicknames ld a, [CurPartyMon] call SkipNames ld de, EnemyMonNick - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes - ld hl, EnemyMonAtk + ld hl, EnemyMonAttack ld de, EnemyStats - ld bc, $000a + ld bc, 2 * 5 call CopyBytes call Function3ec30 ld hl, BaseType1 @@ -4148,9 +4148,9 @@ Function3dabd: ; 3dabd inc de ld a, [hl] ld [de], a - ld hl, BaseHP + ld hl, BaseStats ld de, EnemyMonBaseStats - ld b, $5 + ld b, 5 .asm_3db25 ld a, [hli] ld [de], a @@ -4177,7 +4177,7 @@ Function3db32: ; 3db32 call Function3db5f call EmptyBattleTextBox call Function309d - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] or [hl] ret @@ -4185,12 +4185,12 @@ Function3db32: ; 3db32 Function3db5f: ; 3db5f - ld hl, BattleMonAtkDefDV - ld a, $2d + ld hl, BattleMonDVs + ld a, PREDEF_GET_UNOWN_LETTER call Predef hlcoord 1, 5 - ld b, $7 - ld c, $8 + ld b, 7 + ld c, 8 call ClearBox call WaitBGMap xor a @@ -4201,7 +4201,7 @@ Function3db5f: ; 3db5f ld [$d0d2], a ld [CurMoveNum], a ld [TypeModifier], a - ld [PlayerMoveAnimation], a + ld [wPlayerMoveStruct + MOVE_ANIM], a ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a ld [LastPlayerMove], a @@ -4223,7 +4223,7 @@ Function3db5f: ; 3db5f call Function3ee17 .asm_3dbbc - ld a, $0 + ld a, PartyMon1Species - PartyMon1 call GetPartyParamLocation ld b, h ld c, l @@ -4281,20 +4281,20 @@ BreakAttraction: ; 3dc18 SpikesDamage: ; 3dc23 ld hl, PlayerScreens - ld de, BattleMonType1 + ld de, BattleMonType ld bc, Function3df48 ld a, [hBattleTurn] and a jr z, .ok ld hl, EnemyScreens - ld de, EnemyMonType1 + ld de, EnemyMonType ld bc, Function3e036 .ok bit SCREENS_SPIKES, [hl] ret z -; Flying-types aren't affected by Spikes. + ; Flying-types aren't affected by Spikes. ld a, [de] cp FLYING ret z @@ -4321,15 +4321,17 @@ SpikesDamage: ; 3dc23 ; 3dc5b Function3dc5b: ; 3dc5b - ld a, $10 + ld a, BATTLE_VARS_MOVE call GetBattleVar ld b, a call GetMoveEffect ld a, b - cp $80 + cp EFFECT_PURSUIT jr nz, .asm_3dce4 + ld a, [CurBattleMon] push af + ld hl, DoPlayerTurn ld a, [hBattleTurn] and a @@ -4337,25 +4339,29 @@ Function3dc5b: ; 3dc5b ld hl, DoEnemyTurn ld a, [$c71a] ld [CurBattleMon], a - .asm_3dc7e ld a, BANK(DoPlayerTurn) rst FarCall - ld a, $10 + + ld a, BATTLE_VARS_MOVE call _GetBattleVar ld a, $ff ld [hl], a + pop af ld [CurBattleMon], a + ld a, [hBattleTurn] and a jr z, .asm_3dcc0 + ld a, [$c71a] call Function399f ld hl, BattleMonHP ld a, [hli] or [hl] jr nz, .asm_3dce4 + ld a, $f0 ld [CryTracks], a ld a, [BattleMonSpecies] @@ -4371,10 +4377,11 @@ Function3dc5b: ; 3dc5b jr .asm_3dcdf .asm_3dcc0 - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] or [hl] jr nz, .asm_3dce4 + ld de, SFX_KINESIS call PlaySFX call WaitSFX @@ -4436,8 +4443,8 @@ Function3dd2f: ; 3dd2f ld a, b cp $1 ret nz - ld de, EnemyMonHPLo - ld hl, EnemyMonMaxHPHi + ld de, EnemyMonHP + 1 + ld hl, EnemyMonMaxHP ld a, [hBattleTurn] and a jr z, .asm_3dd4a @@ -4945,7 +4952,7 @@ Function3e043: ; 3e043 ld h, b ld l, c dec hl - ld hl, EnemyMonAtkDefDV + ld hl, EnemyMonDVs ld de, TempMonDVs ld a, [EnemySubStatus5] bit 3, a @@ -4990,7 +4997,7 @@ Function3e043: ; 3e043 call PrintLevel .asm_3e0be - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] ld [$ffb5], a ld a, [hld] @@ -5008,7 +5015,7 @@ Function3e043: ; 3e043 ld a, $30 ld [hMultiplier], a call Multiply - ld hl, EnemyMonMaxHPHi + ld hl, EnemyMonMaxHP ld a, [hli] ld b, a ld a, [hl] @@ -5386,8 +5393,8 @@ Function3e358: ; 3e358 ; 3e3ad Function3e3ad: ; 3e3ad - ld a, $1 - ld [$c710], a + ld a, 1 + ld [wPlayerIsSwitching], a ld a, [InLinkBattle] and a jr z, .asm_3e3c1 @@ -5412,7 +5419,7 @@ Function3e3ad: ; 3e3ad jp z, .asm_3e3ca cp $d jp z, .asm_3e3ca - cp $4 + cp NUM_MOVES jp c, .asm_3e3ca cp $f jr nz, .asm_3e3e9 @@ -5452,9 +5459,9 @@ BattleMonEntrance: ; 3e40b call SetEnemyTurn call Function3dc5b - jr c, .asm_3e423 + jr c, .ok call Function3dce6 -.asm_3e423 +.ok hlcoord 9, 7 lb bc, 5, 11 @@ -5506,8 +5513,8 @@ Function3e489: ; 3e489 call Function30b4 ld a, $3 ld [$cfa9], a - ld hl, BattleMonSpd - ld de, EnemyMonSpd + ld hl, BattleMonSpeed + ld de, EnemyMonSpeed call Function3d8b3 ld a, $0 ld [$d266], a @@ -5906,7 +5913,7 @@ MoveInfoBox: ; 3e6c8 ld [hl], "/" callab UpdateMoveData - ld a, [PlayerMoveAnimation] + ld a, [wPlayerMoveStruct + MOVE_ANIM] ld b, a hlcoord 2, 10 ld a, PREDEF_PRINT_MOVE_TYPE @@ -5996,7 +6003,7 @@ Function3e786: ; 3e786 Function3e7c1: ; 3e7c1 - ld a, [$c711] + ld a, [wEnemyIsSwitching] and a ret nz ld a, [InLinkBattle] @@ -6013,16 +6020,17 @@ Function3e7c1: ; 3e7c1 jp z, .asm_3e8bd cp $d jp z, .asm_3e82c - cp $4 + cp NUM_MOVES jp nc, Function3e8c1 ld [CurEnemyMoveNum], a ld c, a ld a, [EnemySubStatus1] - bit 6, a + bit SUBSTATUS_ENCORED, a jp nz, .asm_3e882 ld a, [EnemySubStatus3] - and $13 + and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_ROLLOUT | 1 << SUBSTATUS_BIDE jp nz, .asm_3e882 + ld hl, EnemySubStatus5 bit 4, [hl] ld a, [LastEnemyMove] @@ -6113,14 +6121,14 @@ Function3e7c1: ; 3e7c1 ld [$c733], a .asm_3e894 - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_FURY_CUTTER jr z, .asm_3e89f xor a ld [EnemyFuryCutterCount], a .asm_3e89f - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_RAGE jr z, .asm_3e8af ld hl, EnemySubStatus4 @@ -6129,13 +6137,13 @@ Function3e7c1: ; 3e7c1 ld [$c72c], a .asm_3e8af - ld a, [EnemyMoveEffect] + ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_PROTECT ret z cp EFFECT_ENDURE ret z xor a - ld [$c681], a + ld [EnemyProtectCount], a ret .asm_3e8bd @@ -6146,7 +6154,7 @@ Function3e7c1: ; 3e7c1 Function3e8c1: ; 3e8c1 xor a ld [EnemyFuryCutterCount], a - ld [$c681], a + ld [EnemyProtectCount], a ld [$c72c], a ld hl, EnemySubStatus4 res SUBSTATUS_RAGE, [hl] @@ -6492,9 +6500,9 @@ LoadEnemyMon: ; 3e8eb ld [hli], a ; Full HP... - ld a, [EnemyMonMaxHPHi] + ld a, [EnemyMonMaxHP] ld [hli], a - ld a, [EnemyMonMaxHPLo] + ld a, [EnemyMonMaxHP + 1] ld [hl], a ; ...unless it's a RoamMon @@ -6510,13 +6518,13 @@ LoadEnemyMon: ; 3e8eb jr z, .InitRoamHP ; Update from the struct if it has ld a, [hl] - ld [EnemyMonHPLo], a + ld [EnemyMonHP + 1], a jr .Moves .InitRoamHP ; HP only uses the lo byte in the RoamMon struct since ; Raikou/Entei/Suicune will have < 256 hp at level 40 - ld a, [EnemyMonHPLo] + ld a, [EnemyMonHP + 1] ld [hl], a jr .Moves @@ -6527,9 +6535,9 @@ LoadEnemyMon: ; 3e8eb ld a, [CurPartyMon] call GetPartyLocation ld a, [hld] - ld [EnemyMonHPLo], a + ld [EnemyMonHP + 1], a ld a, [hld] - ld [EnemyMonHPHi], a + ld [EnemyMonHP], a ; Make sure everything knows which monster the opponent is using ld a, [CurPartyMon] @@ -6975,11 +6983,11 @@ Function3ecb7: ; 3ecb7 ld a, [$d265] and a ld a, c - ld hl, BattleMonAtk + ld hl, BattleMonAttack ld de, PlayerStats ld bc, PlayerAtkLevel jr z, .asm_3ecd2 - ld hl, EnemyMonAtk + ld hl, EnemyMonAttack ld de, EnemyStats ld bc, EnemyAtkLevel @@ -7113,7 +7121,7 @@ BadgeStatBoosts: ; 3ed45 or c ld b, a - ld hl, BattleMonAtk + ld hl, BattleMonAttack ld c, 4 .CheckBadge ld a, b @@ -7432,7 +7440,7 @@ Function3ee3b: ; 3ee3b ld a, [$ffb5] ld [StringBuffer2], a ld a, [CurPartyMon] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick ld hl, UnknownText_0x3f11b call BattleTextBox @@ -7960,14 +7968,14 @@ Function3f26d: ; 3f26d jr nz, .asm_3f2ce .asm_3f27c - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] or [hl] ld hl, UnknownText_0x3f2d1 jr z, .asm_3f2ce xor a ld [hMultiplicand], a - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] ld [$c6ea], a ld [$ffb5], a @@ -7977,7 +7985,7 @@ Function3f26d: ; 3f26d ld a, $19 ld [hMultiplier], a call Multiply - ld hl, EnemyMonMaxHPHi + ld hl, EnemyMonMaxHP ld a, [hli] ld b, [hl] srl a @@ -8052,7 +8060,7 @@ UnknownText_0x3f2fa: ; 3f2fa Function3f2ff: ; 3f2ff push de push bc - ld hl, EnemyMonHPLo + ld hl, EnemyMonHP + 1 ld de, $c6eb ld b, [hl] dec hl @@ -8067,7 +8075,7 @@ Function3f2ff: ; 3f2ff ld a, $19 ld [hMultiplier], a call Multiply - ld hl, EnemyMonMaxHPHi + ld hl, EnemyMonMaxHP ld a, [hli] ld b, [hl] srl a @@ -8300,8 +8308,8 @@ Function3f447: ; 3f447 push af ld a, [BattleMonSpecies] ld [CurPartySpecies], a - ld hl, BattleMonAtkDefDV - ld a, $2d + ld hl, BattleMonDVs + ld a, PREDEF_GET_UNOWN_LETTER call Predef ld de, $9310 ld a, $3d @@ -8339,8 +8347,8 @@ Function3f486: ; 3f486 ld [CurSpecies], a ld [CurPartySpecies], a call GetBaseData - ld hl, EnemyMonAtkDefDV - ld a, $2d + ld hl, EnemyMonDVs + ld a, PREDEF_GET_UNOWN_LETTER call Predef ld de, VTiles2 ld a, $3e @@ -8537,8 +8545,8 @@ Function3f607: ; 3f607 ld de, $c739 ld bc, NUM_MOVES call CopyBytes - ld hl, EnemyMonAtkDefDV - ld a, $2d + ld hl, EnemyMonDVs + ld a, PREDEF_GET_UNOWN_LETTER call Predef ld a, [CurPartySpecies] cp UNOWN @@ -8975,7 +8983,7 @@ Function3f998: ; 3f998 and $f jr z, .asm_3f9af call GetRoamMonHP - ld a, [EnemyMonHPLo] + ld a, [EnemyMonHP + 1] ld [hl], a jr .asm_3f9ca @@ -9003,74 +9011,74 @@ Function3f998: ; 3f998 GetRoamMonMapGroup: ; 3f9d1 ld a, [TempEnemyMonSpecies] ld b, a - ld a, [RoamMon1Species] + ld a, [wRoamMon1Species] cp b - ld hl, RoamMon1MapGroup + ld hl, wRoamMon1MapGroup ret z - ld a, [RoamMon2Species] + ld a, [wRoamMon2Species] cp b - ld hl, RoamMon2MapGroup + ld hl, wRoamMon2MapGroup ret z - ld hl, RoamMon3MapGroup + ld hl, wRoamMon3MapGroup ret ; 3f9e9 GetRoamMonMapNumber: ; 3f9e9 ld a, [TempEnemyMonSpecies] ld b, a - ld a, [RoamMon1Species] + ld a, [wRoamMon1Species] cp b - ld hl, RoamMon1MapNumber + ld hl, wRoamMon1MapNumber ret z - ld a, [RoamMon2Species] + ld a, [wRoamMon2Species] cp b - ld hl, RoamMon2MapNumber + ld hl, wRoamMon2MapNumber ret z - ld hl, RoamMon3MapNumber + ld hl, wRoamMon3MapNumber ret ; 3fa01 GetRoamMonHP: ; 3fa01 -; output: hl = RoamMonHP +; output: hl = wRoamMonHP ld a, [TempEnemyMonSpecies] ld b, a - ld a, [RoamMon1Species] + ld a, [wRoamMon1Species] cp b - ld hl, RoamMon1HP + ld hl, wRoamMon1HP ret z - ld a, [RoamMon2Species] + ld a, [wRoamMon2Species] cp b - ld hl, RoamMon2HP + ld hl, wRoamMon2HP ret z - ld hl, RoamMon3HP + ld hl, wRoamMon3HP ret ; 3fa19 GetRoamMonDVs: ; 3fa19 -; output: hl = RoamMonDVs +; output: hl = wRoamMonDVs ld a, [TempEnemyMonSpecies] ld b, a - ld a, [RoamMon1Species] + ld a, [wRoamMon1Species] cp b - ld hl, RoamMon1DVs + ld hl, wRoamMon1DVs ret z - ld a, [RoamMon2Species] + ld a, [wRoamMon2Species] cp b - ld hl, RoamMon2DVs + ld hl, wRoamMon2DVs ret z - ld hl, RoamMon3DVs + ld hl, wRoamMon3DVs ret ; 3fa31 GetRoamMonSpecies: ; 3fa31 ld a, [TempEnemyMonSpecies] - ld hl, RoamMon1Species + ld hl, wRoamMon1Species cp [hl] ret z - ld hl, RoamMon2Species + ld hl, wRoamMon2Species cp [hl] ret z - ld hl, RoamMon3Species + ld hl, wRoamMon3Species ret ; 3fa42 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index b7f41c04f..9e1b0d8e5 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -2395,12 +2395,12 @@ BattleCommand09: ; 34d32 call .StatModifiers - ld a, [PlayerMoveAccuracy] + ld a, [wPlayerMoveStruct + MOVE_ACC] ld b, a ld a, [hBattleTurn] and a jr z, .BrightPowder - ld a, [EnemyMoveAccuracy] + ld a, [wEnemyMoveStruct + MOVE_ACC] ld b, a .BrightPowder @@ -2592,7 +2592,7 @@ BattleCommand09: ; 34d32 ld a, [hBattleTurn] and a - ld hl, PlayerMoveAccuracy + ld hl, wPlayerMoveStruct + MOVE_ACC ld a, [PlayerAccLevel] ld b, a ld a, [EnemyEvaLevel] @@ -2600,7 +2600,7 @@ BattleCommand09: ; 34d32 jr z, .asm_34e60 - ld hl, EnemyMoveAccuracy + ld hl, wEnemyMoveStruct + MOVE_ACC ld a, [EnemyAccLevel] ld b, a ld a, [PlayerEvaLevel] @@ -2695,11 +2695,11 @@ BattleCommand90: ; 34ecc jr nz, .failed push hl - ld hl, PlayerMoveEffectChance + ld hl, wPlayerMoveStruct + MOVE_CHANCE ld a, [hBattleTurn] and a jr z, .asm_34ee1 - ld hl, EnemyMoveEffectChance + ld hl, wEnemyMoveStruct + MOVE_CHANCE .asm_34ee1 call BattleRandom @@ -3224,7 +3224,7 @@ BattleCommand11: ; 351c0 ; Faint the user if it fainted an opponent using Destiny Bond. - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hBattleTurn] and a jr z, .asm_351cb @@ -3438,7 +3438,7 @@ PlayerAttackDamage: ; 352e2 call ResetDamage - ld hl, PlayerMovePower + ld hl, wPlayerMoveStruct + MOVE_POWER ld a, [hli] and a ld d, a @@ -3450,7 +3450,7 @@ PlayerAttackDamage: ; 352e2 ; Physical - ld hl, EnemyMonDef + ld hl, EnemyMonDefense ld a, [hli] ld b, a ld c, [hl] @@ -3463,7 +3463,7 @@ PlayerAttackDamage: ; 352e2 rl b .physicalcrit - ld hl, BattleMonAtk + ld hl, BattleMonAttack call GetDamageStatsCritical jr c, .thickclub @@ -3586,7 +3586,7 @@ GetDamageStats: ; 3537e ld a, [hBattleTurn] and a jr nz, .enemy - ld a, [PlayerMoveType] + ld a, [wPlayerMoveStruct + MOVE_TYPE] cp SPECIAL ; special ld a, [PlayerSAtkLevel] @@ -3600,7 +3600,7 @@ GetDamageStats: ; 3537e jr .end .enemy - ld a, [EnemyMoveType] + ld a, [wEnemyMoveStruct + MOVE_TYPE] cp SPECIAL ; special ld a, [EnemySAtkLevel] @@ -3699,8 +3699,8 @@ EnemyAttackDamage: ; 353f6 call ResetDamage ; No damage dealt with 0 power. - ld hl, EnemyMovePower - ld a, [hli] ; hl = EnemyMoveType + ld hl, wEnemyMoveStruct + MOVE_POWER + ld a, [hli] ; hl = wEnemyMoveStruct + MOVE_TYPE ld d, a and a ret z @@ -3711,7 +3711,7 @@ EnemyAttackDamage: ; 353f6 ; Physical - ld hl, BattleMonDef + ld hl, BattleMonDefense ld a, [hli] ld b, a ld c, [hl] @@ -3724,7 +3724,7 @@ EnemyAttackDamage: ; 353f6 rl b .physicalcrit - ld hl, EnemyMonAtk + ld hl, EnemyMonAttack call GetDamageStatsCritical jr c, .thickclub @@ -3804,7 +3804,7 @@ BattleCommanda1: ; 35461 ld [DefaultFlypoint], a .asm_3548d ld a, [DefaultFlypoint] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick ld a, $22 call Function355bd @@ -3847,7 +3847,7 @@ BattleCommanda1: ; 35461 ld a, [hl] ld e, a pop bc - ld a, [PlayerMovePower] + ld a, [wPlayerMoveStruct + MOVE_POWER] ld d, a ret @@ -3893,7 +3893,7 @@ BattleCommanda1: ; 35461 .asm_35532 ld a, [DefaultFlypoint] - ld hl, OTPartyMon1Nickname + ld hl, OTPartyMonNicknames ld bc, $000b call AddNTimes ld de, StringBuffer1 @@ -3952,7 +3952,7 @@ BattleCommanda1: ; 35461 ld a, [hl] ld e, a pop bc - ld a, [EnemyMovePower] + ld a, [wEnemyMoveStruct + MOVE_POWER] ld d, a ret ; 355b0 @@ -4004,12 +4004,12 @@ Function355dd: ; 355dd call ResetDamage ld a, [hBattleTurn] and a - ld hl, BattleMonDef + ld hl, BattleMonDefense ld de, PlayerScreens ld a, [BattleMonLevel] jr z, .asm_355f7 - ld hl, EnemyMonDef + ld hl, EnemyMonDefense ld de, EnemyScreens ld a, [EnemyMonLevel] .asm_355f7 @@ -4345,7 +4345,7 @@ BattleCommand3f: ; 35726 ld a, $0 jr .asm_3578c ; 35769 $21 .asm_3576b - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hBattleTurn] and a jr z, .asm_35776 ; 35771 $3 @@ -4376,7 +4376,7 @@ BattleCommand3f: ; 35726 ld a, [hBattleTurn] and a jr z, .asm_3579d ; 35798 $3 - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP .asm_3579d xor a ld [$ffb3], a @@ -4433,14 +4433,14 @@ BattleCommand3f: ; 35726 ld a, [hl] jr nz, .asm_357f8 - ld hl, PlayerMovePower + ld hl, wPlayerMoveStruct + MOVE_POWER ld [hl], a push hl call PlayerAttackDamage jr .asm_35800 .asm_357f8 - ld hl, EnemyMovePower + ld hl, wEnemyMoveStruct + MOVE_POWER ld [hl], a push hl call EnemyAttackDamage @@ -4600,7 +4600,7 @@ BattleCommand41: ; 35864 ld a, b ld [CurPlayerMove], a dec a - ld de, PlayerMoveStruct + ld de, wPlayerMoveStruct call GetMoveData jr .asm_3591a .asm_358ef @@ -4629,7 +4629,7 @@ BattleCommand41: ; 35864 ld a, b ld [CurEnemyMove], a dec a - ld de, EnemyMoveStruct + ld de, wEnemyMoveStruct call GetMoveData .asm_3591a call AnimateCurrentMove @@ -4654,14 +4654,14 @@ BattleCommand42: ; 35926 jp nz, Function359cd call AnimateCurrentMove ld hl, $c63f - ld de, EnemyMonMaxHPLo + ld de, EnemyMonMaxHP + 1 call .asm_3597d ld a, $1 ld [$d10a], a hlcoord 10, 9 ld a, $b call Predef - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hli] ld [$d1ed], a ld a, [hli] @@ -5230,7 +5230,7 @@ BattleCommand4a: ; 35c0f BattleCommand4b: ; 35c94 ; falseswipe - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld a, [hBattleTurn] and a jr z, .asm_35c9f ; 35c9a $3 @@ -5362,7 +5362,7 @@ Function35d1c: ; 35d1c ld a, [EnemyMonHP] ld [$d1ec + 1], a sbc b - ld [EnemyMonHPHi], a + ld [EnemyMonHP], a jr nc, .asm_35d59 ld a, [$d1ed] @@ -5837,8 +5837,8 @@ Function36011: ; 36011 ld a, [hBattleTurn] and a jr z, .asm_36037 ; 0x3602f $6 - ld hl, EnemyMonHPHi - ld de, EnemyMonMaxHPHi + ld hl, EnemyMonHP + ld de, EnemyMonMaxHP .asm_36037 ld bc, $d1ed ld a, [hli] @@ -6396,12 +6396,12 @@ BattleCommand1d: ; 362e3 jr nc, .Hit push hl - ld hl, EnemyMonAtk + 1 + ld hl, EnemyMonAttack + 1 ld de, EnemyStats ld a, [hBattleTurn] and a jr z, .asm_36366 - ld hl, BattleMonAtk + 1 + ld hl, BattleMonAttack + 1 ld de, PlayerStats .asm_36366 call Function3641a @@ -6840,7 +6840,7 @@ BattleCommanda7: ; 365c3 Function365d7: ; 365d7 ld hl, PlayerAtkLevel ld de, PlayerStats - ld bc, BattleMonAtk + ld bc, BattleMonAttack ld a, $5 call Function3661d @@ -6863,7 +6863,7 @@ Function365d7: ; 365d7 Function365fd: ; 365fd ld hl, EnemyAtkLevel ld de, EnemyStats - ld bc, EnemyMonAtk + ld bc, EnemyMonAttack ld a, $5 call Function3661d @@ -7040,8 +7040,8 @@ BattleCommand22: ; 366e5 ld [de], a inc de ld [de], a - ld [PlayerMoveEffect], a - ld [EnemyMoveEffect], a + ld [wPlayerMoveStruct + MOVE_EFFECT], a + ld [wEnemyMoveStruct + MOVE_EFFECT], a call BattleRandom and $1 inc a @@ -7257,7 +7257,7 @@ BattleCommand23: ; 3680f inc a ld [$d232], a call Function36804 - ld a, [PlayerMoveAnimation] + ld a, [wPlayerMoveStruct + MOVE_ANIM] jp .asm_36975 .asm_36869 call Function349f4 @@ -7348,7 +7348,7 @@ BattleCommand23: ; 3680f inc a ld [$d232], a call Function36804 - ld a, [EnemyMoveAnimation] + ld a, [wEnemyMoveStruct + MOVE_ANIM] jr .asm_36975 .asm_36908 @@ -7687,7 +7687,7 @@ BattleCommand26: ; 36af3 jr z, .asm_36b2f ; 36afb $32 ld hl, EnemyMonLevel ld de, BattleMonLevel - ld bc, PlayerMoveAccuracy + ld bc, wPlayerMoveStruct + MOVE_ACC ld a, [hBattleTurn] and a jr z, .asm_36b12 ; 36b09 $7 @@ -7695,7 +7695,7 @@ BattleCommand26: ; 36af3 ld h, d ld l, e pop de - ld bc, EnemyMoveAccuracy + ld bc, wEnemyMoveStruct + MOVE_ACC .asm_36b12 ld a, [de] sub [hl] @@ -7990,7 +7990,7 @@ BattleCommand27: ; 36cb2 ld a, [hBattleTurn] and a jr z, .asm_36cbd ; 36cb8 $3 - ld hl, EnemyMonMaxHPHi + ld hl, EnemyMonMaxHP .asm_36cbd ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar @@ -9951,20 +9951,25 @@ CheckAnyOtherAliveMons: ; 37b01 BattleCommand68: ; 37b1d - ld hl, $c711 +; pursuit +; Double damage if the opponent is switching. + + ld hl, wEnemyIsSwitching ld a, [hBattleTurn] and a - jr z, .asm_37b28 ; 37b23 $3 - ld hl, $c710 -.asm_37b28 + jr z, .ok + ld hl, wPlayerIsSwitching +.ok ld a, [hl] and a ret z + ld hl, CurDamage + 1 sla [hl] dec hl rl [hl] ret nc + ld a, $ff ld [hli], a ld [hl], a diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 076684345..605344478 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -1,3 +1,4 @@ +PARTY_LENGTH EQU 6 ; strings PLAYER_NAME_LENGTH EQU 8 @@ -16,7 +17,8 @@ TRAINER_NAME EQU 7 ; boxes -NUM_BOXES EQU 14 +MONS_PER_BOX EQU 20 +NUM_BOXES EQU 14 ; predefs diff --git a/data/odd_eggs.asm b/data/odd_eggs.asm index 68062ec3b..95f64ded8 100644 --- a/data/odd_eggs.asm +++ b/data/odd_eggs.asm @@ -35,7 +35,7 @@ GiveOddEgg: ; 1fb4b6 ld hl, OddEggs ld a, OddEgg2 - OddEgg1 call AddNTimes - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0046 call CopyBytes ld a, EGG_TICKET diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm index 11414438e..34f26c87c 100644 --- a/engine/engine_flags.asm +++ b/engine/engine_flags.asm @@ -9,13 +9,13 @@ dwb $d957, %00001000 ; expn card dwb $d957, %10000000 ; on/off - ; DaycareMan, %10000000 ; daycare 1 on - dwb DaycareMan, %01000000 ; monster 1 and 2 are compatible - ; DaycareMan, %00100000 ; egg is ready - dwb DaycareMan, %00000001 ; monster 1 in daycare + ; wDaycareMan, %10000000 ; daycare 1 on + dwb wDaycareMan, %01000000 ; monster 1 and 2 are compatible + ; wDaycareMan, %00100000 ; egg is ready + dwb wDaycareMan, %00000001 ; monster 1 in daycare - ; DaycareLady, %10000000 = daycare 2 on - dwb DaycareLady, %00000001 ; monster 2 in daycare + ; wDaycareLady, %10000000 = daycare 2 on + dwb wDaycareLady, %00000001 ; monster 2 in daycare dwb $d854, %00000001 ; mom saving money ; $8 dwb $d854, %10000000 ; dst diff --git a/engine/scripting.asm b/engine/scripting.asm index 43af00669..63c5ca1f2 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2659,7 +2659,7 @@ Script_giveegg: ; 0x97968 ld [CurPartySpecies], a call GetScriptByte ld [CurPartyLevel], a - callba Functiondf8c + callba GiveEgg ret nc ld a, $2 ld [ScriptVar], a diff --git a/event/name_rater.asm b/event/name_rater.asm index 3f2bf3912..d22ece2b5 100644 --- a/event/name_rater.asm +++ b/event/name_rater.asm @@ -34,7 +34,7 @@ NameRater: ; fb6ed call Functionfb7d3 ld hl, UnknownText_0xfb837 jr c, .asm_fb76c - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, $000b ld a, [CurPartyMon] call AddNTimes @@ -70,12 +70,12 @@ NameRater: ; fb6ed ; fb78a Functionfb78a: ; fb78a - ld hl, PartyMon1OT - ld bc, $000b + ld hl, PartyMonOT + ld bc, NAME_LENGTH ld a, [CurPartyMon] call AddNTimes ld de, PlayerName - ld c, $b + ld c, NAME_LENGTH call .asm_fb7b1 jr c, .asm_fb7bc ld hl, PartyMon1ID @@ -122,7 +122,7 @@ Functionfb7be: ; fb7be ; fb7d3 Functionfb7d3: ; fb7d3 - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, $000b ld a, [CurPartyMon] call AddNTimes diff --git a/event/poke_seer.asm b/event/poke_seer.asm index f49e8ce07..13b2ddbeb 100644 --- a/event/poke_seer.asm +++ b/event/poke_seer.asm @@ -139,7 +139,7 @@ ReadCaughtData: ; 4f134 GetCaughtName: ; 4f176 ld a, [CurPartyMon] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, PKMN_NAME_LENGTH call AddNTimes ld de, $d003 @@ -258,8 +258,8 @@ GetCaughtLocation: ; 4f20a GetCaughtOT: ; 4f242 ld a, [CurPartyMon] - ld hl, PartyMon1OT - ld bc, $000b + ld hl, PartyMonOT + ld bc, NAME_LENGTH call AddNTimes ld de, $d02a ld bc, $000b diff --git a/home/battle.asm b/home/battle.asm index fc670d927..809b0d843 100644 --- a/home/battle.asm +++ b/home/battle.asm @@ -250,10 +250,10 @@ _GetBattleVar:: ; 39e7 dw PlayerSubStatus4, EnemySubStatus4 dw PlayerSubStatus5, EnemySubStatus5 dw BattleMonStatus, EnemyMonStatus - dw PlayerMoveAnimation, EnemyMoveAnimation - dw PlayerMoveEffect, EnemyMoveEffect - dw PlayerMovePower, EnemyMovePower - dw PlayerMoveType, EnemyMoveType + dw wPlayerMoveStruct + MOVE_ANIM, wEnemyMoveStruct + MOVE_ANIM + dw wPlayerMoveStruct + MOVE_EFFECT, wEnemyMoveStruct + MOVE_EFFECT + dw wPlayerMoveStruct + MOVE_POWER, wEnemyMoveStruct + MOVE_POWER + dw wPlayerMoveStruct + MOVE_TYPE, wEnemyMoveStruct + MOVE_TYPE dw CurPlayerMove, CurEnemyMove dw LastEnemyCounterMove, LastPlayerCounterMove dw LastPlayerMove, LastEnemyMove diff --git a/home/map.asm b/home/map.asm index 77a53b8d2..2291faa29 100644 --- a/home/map.asm +++ b/home/map.asm @@ -120,7 +120,7 @@ Function2198:: ; 2198 ld e, a ld a, [$d195] ld d, a - ld hl, EnemyMoveAnimation + ld hl, $c608 ld b, $5 .asm_21a5 diff --git a/items/item_effects.asm b/items/item_effects.asm index d294d198c..61ff2033e 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -274,7 +274,7 @@ ParkBall: ; e8a2 ld a, b ld [$ffb6], a - ld hl, EnemyMonHPHi + ld hl, EnemyMonHP ld b, [hl] inc hl ld c, [hl] @@ -449,9 +449,9 @@ ParkBall: ; e8a2 .asm_ea1a set 3, [hl] ld hl, $c6f2 - ld a, [EnemyMonAtkDefDV] + ld a, [EnemyMonDVs] ld [hli], a - ld a, [EnemyMonSpdSpclDV] + ld a, [EnemyMonDVs + 1] ld [hl], a .asm_ea27 @@ -579,7 +579,7 @@ ParkBall: ; e8a2 ld a, [PartyCount] dec a ld [CurPartyMon], a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, PKMN_NAME_LENGTH call AddNTimes @@ -1316,11 +1316,11 @@ Functioneed9: ; eed9 ; eeeb Table_eeeb: ; eeeb - db HP_UP, PartyMon1HPExp - PartyMon1StatExp - db PROTEIN, PartyMon1AtkExp - PartyMon1StatExp - db IRON, PartyMon1DefExp - PartyMon1StatExp - db CARBOS, PartyMon1SpdExp - PartyMon1StatExp - db CALCIUM, PartyMon1SpclExp - PartyMon1StatExp + db HP_UP, PartyMon1HPExp - PartyMon1StatExp + db PROTEIN, PartyMon1AtkExp - PartyMon1StatExp + db IRON, PartyMon1DefExp - PartyMon1StatExp + db CARBOS, PartyMon1SpdExp - PartyMon1StatExp + db CALCIUM, PartyMon1SpcExp - PartyMon1StatExp ; eef5 @@ -1334,7 +1334,7 @@ Functioneef5: ; eef5 ld [CurPartyLevel], a call GetBaseData ld a, [CurPartyMon] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick ret ; 0xef14 diff --git a/main.asm b/main.asm index ef9196b6a..8f297163b 100644 --- a/main.asm +++ b/main.asm @@ -3891,7 +3891,7 @@ Function5bae: ; 5bae ld a, 1 call GetSRAMBank - ld hl, BoxCount + ld hl, sBoxCount call Function5ca1 call CloseSRAM @@ -3908,16 +3908,16 @@ Function5bae: ; 5bae call Function5ca1 xor a - ld [RoamMon1Species], a - ld [RoamMon2Species], a - ld [RoamMon3Species], a + ld [wRoamMon1Species], a + ld [wRoamMon2Species], a + ld [wRoamMon3Species], a ld a, -1 - ld [RoamMon1MapGroup], a - ld [RoamMon2MapGroup], a - ld [RoamMon3MapGroup], a - ld [RoamMon1MapNumber], a - ld [RoamMon2MapNumber], a - ld [RoamMon3MapNumber], a + ld [wRoamMon1MapGroup], a + ld [wRoamMon2MapGroup], a + ld [wRoamMon3MapGroup], a + ld [wRoamMon1MapNumber], a + ld [wRoamMon2MapNumber], a + ld [wRoamMon3MapNumber], a ld a, 0 call GetSRAMBank @@ -3977,8 +3977,8 @@ Function5ca1: ; 5ca1 ; 5ca6 Function5ca6: ; 5ca6 - ld hl, Box1Name - ld c, $0 + ld hl, wBoxNames + ld c, 0 .asm_5cab push hl ld de, .Box @@ -3986,22 +3986,22 @@ Function5ca6: ; 5ca6 dec hl ld a, c inc a - cp $a + cp 10 jr c, .asm_5cbe - sub $a - ld [hl], $f7 + sub 10 + ld [hl], "1" inc hl .asm_5cbe - add $f6 + add "0" ld [hli], a - ld [hl], $50 + ld [hl], "@" pop hl - ld de, $0009 + ld de, 9 add hl, de inc c ld a, c - cp $e + cp NUM_BOXES jr c, .asm_5cab ret @@ -4041,18 +4041,14 @@ Function5ce9: ; 5ce9 ld de, GreensName .Copy - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ret -.Rival - db "???@" -.Red - db "RED@" -.Green - db "GREEN@" -.Mom - db "MOM@" +.Rival db "???@" +.Red db "RED@" +.Green db "GREEN@" +.Mom db "MOM@" ; 5d23 Function5d23: ; 5d23 @@ -5258,11 +5254,11 @@ Function64db: ; 64db Function6508: ; 6508 call Function309d ld a, [CurPartyMon] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick ld hl, StringBuffer1 ld de, $d050 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes Function6520: ; 6520 @@ -6514,7 +6510,7 @@ StepHappiness:: ; 725a DaycareStep:: ; 7282 - ld a, [DaycareMan] + ld a, [wDaycareMan] bit 0, a jr z, .asm_72a4 @@ -6536,7 +6532,7 @@ DaycareStep:: ; 7282 ld [hl], a .asm_72a4 - ld a, [DaycareLady] + ld a, [wDaycareLady] bit 0, a jr z, .asm_72c6 @@ -6558,10 +6554,10 @@ DaycareStep:: ; 7282 ld [hl], a .asm_72c6 - ld hl, DaycareMan + ld hl, wDaycareMan bit 5, [hl] ; egg ret z - ld hl, StepsToEgg + ld hl, wStepsToEgg dec [hl] ret nz @@ -6586,7 +6582,7 @@ DaycareStep:: ; 7282 call Random cp b ret nc - ld hl, DaycareMan + ld hl, wDaycareMan res 5, [hl] set 6, [hl] ret @@ -6635,7 +6631,7 @@ SpecialGiveShuckle: ; 7305 ; Nickname. ld a, [PartyCount] dec a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call SkipNames ld de, SpecialShuckleNick call CopyName2 @@ -6643,7 +6639,7 @@ SpecialGiveShuckle: ; 7305 ; OT. ld a, [PartyCount] dec a - ld hl, PartyMon1OT + ld hl, PartyMonOT call SkipNames ld de, SpecialShuckleOT call CopyName2 @@ -6691,7 +6687,7 @@ SpecialReturnShuckle: ; 737e ; OT ld a, [CurPartyMon] - ld hl, PartyMon1OT + ld hl, PartyMonOT call SkipNames ld de, SpecialShuckleOT .CheckOT @@ -7767,7 +7763,7 @@ PredefPointers: ; 856b dwb Functionda96, BANK(Functionda96) dwb Functiondb3f, BANK(Functiondb3f) ; $8 dwb Functionde6e, BANK(Functionde6e) - dwb Functiondf8c, BANK(Functiondf8c) + dwb GiveEgg, BANK(GiveEgg) dwb Functionc6e0, BANK(Functionc6e0) dwb Functione167, BANK(Functione167) dwb Functione17b, BANK(Functione17b) @@ -8939,7 +8935,7 @@ Functionc6f5: ; c6f5 GetPartyNick: ; c706 ; write CurPartyMon nickname to StringBuffer1-3 - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, BOXMON ld [MonType], a ld a, [CurPartyMon] @@ -12321,7 +12317,7 @@ Functiond88c: ; d88c .asm_d899 ld a, [de] inc a - cp $7 + cp PARTY_LENGTH + 1 ret nc ld [de], a ld a, [de] @@ -12337,11 +12333,11 @@ Functiond88c: ; d88c inc de ld a, $ff ld [de], a - ld hl, PartyMon1OT + ld hl, PartyMonOT ld a, [MonType] and $f jr z, .asm_d8bc - ld hl, OTPartyMon1OT + ld hl, OTPartyMonOT .asm_d8bc ld a, [$ffae] @@ -12350,7 +12346,7 @@ Functiond88c: ; d88c ld d, h ld e, l ld hl, PlayerName - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld a, [MonType] and a @@ -12358,14 +12354,14 @@ Functiond88c: ; d88c ld a, [CurPartySpecies] ld [$d265], a call GetPokemonName - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [$ffae] dec a call SkipNames ld d, h ld e, l ld hl, StringBuffer1 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes .asm_d8f0 @@ -12542,10 +12538,10 @@ Functiond906: ; d906 jr .asm_da29 .asm_d9f3 - ld a, [EnemyMonAtkDefDV] + ld a, [EnemyMonDVs] ld [de], a inc de - ld a, [EnemyMonSpdSpclDV] + ld a, [EnemyMonDVs + 1] ld [de], a inc de @@ -12591,7 +12587,7 @@ Functiond906: ; d906 ld a, [IsInBattle] dec a jr nz, .asm_da3b - ld hl, EnemyMonMaxHPHi + ld hl, EnemyMonMaxHP ld bc, $000c call CopyBytes pop hl @@ -12609,14 +12605,14 @@ Functiond906: ; d906 and $f jr nz, .asm_da6b ld a, [CurPartySpecies] - cp $c9 + cp UNOWN jr nz, .asm_da6b ld hl, PartyMon1DVs ld a, [PartyCount] dec a ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld a, $2d + ld a, PREDEF_GET_UNOWN_LETTER call Predef callab Functionfba18 @@ -12659,13 +12655,13 @@ FillPP: ; da6d Functionda96: ; da96 ld hl, PartyCount ld a, [hl] - cp $6 + cp PARTY_LENGTH scf ret z inc a ld [hl], a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [CurPartySpecies] ld [hli], a @@ -12679,32 +12675,33 @@ Functionda96: ; da96 ld d, h ld hl, TempMonSpecies call CopyBytes - ld hl, PartyMon1OT + ld hl, PartyMonOT ld a, [PartyCount] dec a call SkipNames ld d, h ld e, l - ld hl, OTPartyMon1OT + ld hl, OTPartyMonOT ld a, [CurPartyMon] call SkipNames - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [PartyCount] dec a call SkipNames ld d, h ld e, l - ld hl, OTPartyMon1Nickname + ld hl, OTPartyMonNicknames ld a, [CurPartyMon] call SkipNames - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes + ld a, [CurPartySpecies] ld [$d265], a - cp $fd - jr z, .asm_db12 + cp EGG + jr z, .owned dec a call SetSeenAndCaughtMon ld hl, PartyMon1Happiness @@ -12713,26 +12710,26 @@ Functionda96: ; da96 ld bc, PartyMon2 - PartyMon1 call AddNTimes ld [hl], BASE_HAPPINESS +.owned -.asm_db12 ld a, [CurPartySpecies] - cp $c9 - jr nz, .asm_db3d + cp UNOWN + jr nz, .done ld hl, PartyMon1DVs ld a, [PartyCount] dec a ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld a, $2d + ld a, PREDEF_GET_UNOWN_LETTER call Predef callab Functionfba18 ld a, [$def4] and a - jr nz, .asm_db3d + jr nz, .done ld a, [UnownLetter] ld [$def4], a +.done -.asm_db3d and a ret ; db3f @@ -12746,29 +12743,29 @@ Functiondb3f: ; db3f cp $2 jr z, .asm_db60 cp $3 - ld hl, BreedMon1Species + ld hl, wBreedMon1Species jr z, .asm_db9b - ld hl, BoxCount + ld hl, sBoxCount ld a, [hl] - cp $14 + cp MONS_PER_BOX jr nz, .asm_db69 jp Functiondcb1 .asm_db60 ld hl, PartyCount ld a, [hl] - cp $6 + cp PARTY_LENGTH jp z, Functiondcb1 .asm_db69 inc a ld [hl], a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [$d10b] cp $2 - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] jr z, .asm_db7c ld a, [CurPartySpecies] @@ -12781,9 +12778,9 @@ Functiondb3f: ; db3f ld bc, PartyMon2 - PartyMon1 ld a, [PartyCount] jr nz, .asm_db97 - ld hl, BoxMon1Species - ld bc, $0020 - ld a, [BoxCount] + ld hl, sBoxMon1Species + ld bc, sBoxMon1End - sBoxMon1 + ld a, [sBoxCount] .asm_db97 dec a @@ -12795,11 +12792,11 @@ Functiondb3f: ; db3f ld d, h ld a, [$d10b] and a - ld hl, BoxMon1Species - ld bc, $0020 + ld hl, sBoxMon1Species + ld bc, sBoxMon1End - sBoxMon1 jr z, .asm_dbb7 cp $2 - ld hl, BreedMon1Species + ld hl, wBreedMon1Species jr z, .asm_dbbd ld hl, PartyMon1Species ld bc, PartyMon2 - PartyMon1 @@ -12809,18 +12806,18 @@ Functiondb3f: ; db3f call AddNTimes .asm_dbbd - ld bc, $0020 + ld bc, sBoxMon1End - sBoxMon1 call CopyBytes ld a, [$d10b] cp $3 - ld de, BreedMon1OT + ld de, wBreedMon1OT jr z, .asm_dbe2 dec a - ld hl, PartyMon1OT + ld hl, PartyMonOT ld a, [PartyCount] jr nz, .asm_dbdc - ld hl, BoxMon1OT - ld a, [BoxCount] + ld hl, sBoxMonOT + ld a, [sBoxCount] .asm_dbdc dec a @@ -12829,32 +12826,32 @@ Functiondb3f: ; db3f ld e, l .asm_dbe2 - ld hl, BoxMon1OT + ld hl, sBoxMonOT ld a, [$d10b] and a jr z, .asm_dbf5 - ld hl, BreedMon1OT + ld hl, wBreedMon1OT cp $2 jr z, .asm_dbfb - ld hl, PartyMon1OT + ld hl, PartyMonOT .asm_dbf5 ld a, [CurPartyMon] call SkipNames .asm_dbfb - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld a, [$d10b] cp $3 - ld de, BreedMon1Nick + ld de, wBreedMon1Nick jr z, .asm_dc20 dec a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [PartyCount] jr nz, .asm_dc1a - ld hl, BoxMon1Nickname - ld a, [BoxCount] + ld hl, sBoxMonNicknames + ld a, [sBoxCount] .asm_dc1a dec a @@ -12863,21 +12860,21 @@ Functiondb3f: ; db3f ld e, l .asm_dc20 - ld hl, BoxMon1Nickname + ld hl, sBoxMonNicknames ld a, [$d10b] and a jr z, .asm_dc33 - ld hl, BreedMon1Nick + ld hl, wBreedMon1Nick cp $2 jr z, .asm_dc39 - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames .asm_dc33 ld a, [CurPartyMon] call SkipNames .asm_dc39 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes pop hl ld a, [$d10b] @@ -12922,7 +12919,7 @@ Functiondb3f: ; db3f ld d, h ld e, l ld a, [CurPartySpecies] - cp $fd + cp EGG jr z, .asm_dc9e inc hl inc hl @@ -12941,7 +12938,7 @@ Functiondb3f: ; db3f jr .asm_dcac .asm_dca4 - ld a, [BoxCount] + ld a, [sBoxCount] dec a ld b, a call Functiondcb6 @@ -12962,12 +12959,12 @@ Functiondcb1: ; dcb1 Functiondcb6: ; dcb6 ld a, b - ld hl, BoxMons - ld bc, BoxMon2 - BoxMon1 + ld hl, sBoxMons + ld bc, sBoxMon1End - sBoxMon1 call AddNTimes ld b, h ld c, l - ld hl, BoxMon1PP - BoxMon1 + ld hl, sBoxMon1PP - sBoxMon1 add hl, bc push hl push bc @@ -12975,7 +12972,7 @@ Functiondcb6: ; dcb6 ld bc, NUM_MOVES call CopyBytes pop bc - ld hl, BoxMon1Moves - BoxMon1 + ld hl, sBoxMon1Moves - sBoxMon1 add hl, bc push hl ld de, TempMonMoves @@ -13027,7 +13024,7 @@ Functiondcb6: ; dcb6 Functiondd21: ; dd21 - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] ld [CurPartySpecies], a ld de, SFX_TRANSACTION call PlaySFX @@ -13043,7 +13040,7 @@ Functiondd21: ; dd21 ; dd42 Functiondd42: ; dd42 - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] ld [CurPartySpecies], a ld de, SFX_TRANSACTION call PlaySFX @@ -13061,7 +13058,7 @@ Functiondd42: ; dd42 Functiondd64: ; dd64 ld hl, PartyCount ld a, [hl] - cp $6 + cp PARTY_LENGTH jr nz, .asm_dd6e scf ret @@ -13070,22 +13067,22 @@ Functiondd64: ; dd64 inc a ld [hl], a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [$d10b] and a - ld a, [BreedMon1Species] - ld de, BreedMon1Nick + ld a, [wBreedMon1Species] + ld de, wBreedMon1Nick jr z, .asm_dd86 - ld a, [BreedMon2Species] - ld de, BreedMon2Nick + ld a, [wBreedMon2Species] + ld de, wBreedMon2Nick .asm_dd86 ld [hli], a ld [CurSpecies], a ld a, $ff ld [hl], a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [PartyCount] dec a call SkipNames @@ -13095,7 +13092,7 @@ Functiondd64: ; dd64 pop de call CopyBytes push hl - ld hl, PartyMon1OT + ld hl, PartyMonOT ld a, [PartyCount] dec a call SkipNames @@ -13168,7 +13165,7 @@ Functionde1a: ; de1a ; de2a Functionde2a: ; de2a - ld de, BreedMon1Nick + ld de, wBreedMon1Nick call Functionde44 xor a ld [$d10b], a @@ -13176,7 +13173,7 @@ Functionde2a: ; de2a ; de37 Functionde37: ; de37 - ld de, BreedMon2Nick + ld de, wBreedMon2Nick call Functionde44 xor a ld [$d10b], a @@ -13185,28 +13182,28 @@ Functionde37: ; de37 Functionde44: ; de44 ld a, [CurPartyMon] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call SkipNames call CopyBytes ld a, [CurPartyMon] - ld hl, PartyMon1OT + ld hl, PartyMonOT call SkipNames call CopyBytes ld a, [CurPartyMon] ld hl, PartyMon1Species ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld bc, $0020 + ld bc, sBoxMon1End - sBoxMon1 jp CopyBytes ; de6e Functionde6e: ; de6e - ld a, 1 ; BANK(BoxCount) + ld a, 1 ; BANK(sBoxCount) call GetSRAMBank - ld de, BoxCount + ld de, sBoxCount ld a, [de] - cp 20 + cp MONS_PER_BOX jp nc, Functiondf42 inc a ld [de], a @@ -13225,19 +13222,19 @@ Functionde6e: ; de6e call GetBaseData call ShiftBoxMon ld hl, PlayerName - ld de, BoxMonOT - ld bc, BoxMon2OT - BoxMon1OT + ld de, sBoxMonOT + ld bc, NAME_LENGTH call CopyBytes ld a, [CurPartySpecies] ld [$d265], a call GetPokemonName - ld de, BoxMon1Nickname + ld de, sBoxMonNicknames ld hl, StringBuffer1 - ld bc, BoxMon2Nickname - BoxMon1Nickname + ld bc, PKMN_NAME_LENGTH call CopyBytes ld hl, EnemyMon - ld de, BoxMon1 - ld bc, 6 ; species + item + moves + ld de, sBoxMon1 + ld bc, 1 + 1 + NUM_MOVES ; species + item + moves call CopyBytes ld hl, PlayerID ld a, [hli] @@ -13267,15 +13264,15 @@ Functionde6e: ; de6e inc de dec b jr nz, .asm_dee5 - ld hl, EnemyMonAtkDefDV - ld b, $6 + ld hl, EnemyMonDVs + ld b, 2 + NUM_MOVES ; DVs and PP ; EnemyMonHappiness - EnemyMonDVs .asm_deef ld a, [hli] ld [de], a inc de dec b jr nz, .asm_deef - ld a, $46 + ld a, BASE_HAPPINESS ld [de], a inc de xor a @@ -13293,17 +13290,17 @@ Functionde6e: ; de6e ld a, [CurPartySpecies] cp UNOWN jr nz, .asm_df20 - ld hl, BoxMon1DVs + ld hl, sBoxMon1DVs ld a, $2d call Predef callab Functionfba18 .asm_df20 - ld hl, BoxMon1Moves + ld hl, sBoxMon1Moves ld de, TempMonMoves ld bc, NUM_MOVES call CopyBytes - ld hl, BoxMon1PP + ld hl, sBoxMon1PP ld de, TempMonPP ld bc, NUM_MOVES call CopyBytes @@ -13321,19 +13318,19 @@ Functiondf42: ; df42 ; df47 ShiftBoxMon: ; df47 - ld hl, BoxMonOT - ld bc, BoxMon2OT - BoxMon1OT + ld hl, sBoxMonOT + ld bc, NAME_LENGTH call .asm_df5f - ld hl, BoxMonNicknames - ld bc, BoxMon2Nickname - BoxMon1Nickname + ld hl, sBoxMonNicknames + ld bc, PKMN_NAME_LENGTH call .asm_df5f - ld hl, BoxMons - ld bc, BoxMon2 - BoxMon1 + ld hl, sBoxMons + ld bc, sBoxMon1End - sBoxMon1 .asm_df5f - ld a, [BoxCount] + ld a, [sBoxCount] cp 2 ret c @@ -13344,13 +13341,13 @@ ShiftBoxMon: ; df47 ld d, h pop hl - ld a, [BoxCount] + ld a, [sBoxCount] dec a call AddNTimes dec hl push hl - ld a, [BoxCount] + ld a, [sBoxCount] dec a ld hl, 0 call AddNTimes @@ -13368,7 +13365,7 @@ ShiftBoxMon: ; df47 ret ; df8c -Functiondf8c:: ; df8c +GiveEgg:: ; df8c ld a, [CurPartySpecies] push af callab GetPreEvolution @@ -13421,14 +13418,14 @@ Functiondf8c:: ; df8c ld [hl], a ld hl, PartyCount ld a, [hl] - ld b, $0 + ld b, 0 ld c, a add hl, bc - ld a, $fd + ld a, EGG ld [hl], a ld a, [PartyCount] dec a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call SkipNames ld de, Stringe035 call CopyName2 @@ -13469,9 +13466,9 @@ Functione039: ; e039 and a jr z, .asm_e04a - ld a, 1 ; BANK(BoxCount) + ld a, 1 ; BANK(sBoxCount) call GetSRAMBank - ld hl, BoxCount + ld hl, sBoxCount .asm_e04a ld a, [hl] @@ -13490,13 +13487,13 @@ Functione039: ; e039 ld [hli], a inc a jr nz, .asm_e057 - ld hl, PartyMon1OT - ld d, $5 + ld hl, PartyMonOT + ld d, PARTY_LENGTH - 1 ld a, [$d10b] and a jr z, .asm_e06d - ld hl, BoxMonOT - ld d, $13 + ld hl, sBoxMonOT + ld d, MONS_PER_BOX - 1 .asm_e06d ld a, [CurPartyMon] @@ -13510,13 +13507,13 @@ Functione039: ; e039 .asm_e07e ld d, h ld e, l - ld bc, $000b + ld bc, PKMN_NAME_LENGTH add hl, bc - ld bc, PartyMon1Nickname + ld bc, PartyMonNicknames ld a, [$d10b] and a jr z, .asm_e090 - ld bc, BoxMonNicknames + ld bc, sBoxMonNicknames .asm_e090 call CopyDataUntil @@ -13525,8 +13522,8 @@ Functione039: ; e039 ld a, [$d10b] and a jr z, .asm_e0a5 - ld hl, BoxMons - ld bc, BoxMon2 - BoxMon1 + ld hl, sBoxMons + ld bc, sBoxMon1End - sBoxMon1 .asm_e0a5 ld a, [CurPartyMon] @@ -13536,37 +13533,37 @@ Functione039: ; e039 ld a, [$d10b] and a jr z, .asm_e0bc - ld bc, BoxMon2 - BoxMon1 + ld bc, sBoxMon1End - sBoxMon1 add hl, bc - ld bc, BoxMonOT + ld bc, sBoxMonOT jr .asm_e0c3 .asm_e0bc ld bc, PartyMon2 - PartyMon1 add hl, bc - ld bc, PartyMon1OT + ld bc, PartyMonOT .asm_e0c3 call CopyDataUntil - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [$d10b] and a jr z, .asm_e0d2 - ld hl, BoxMonNicknames + ld hl, sBoxMonNicknames .asm_e0d2 - ld bc, BoxMon2Nickname - BoxMon1Nickname + ld bc, PKMN_NAME_LENGTH ld a, [CurPartyMon] call AddNTimes ld d, h ld e, l - ld bc, BoxMon2Nickname - BoxMon1Nickname + ld bc, PKMN_NAME_LENGTH add hl, bc ld bc, PartyMonNicknamesEnd ld a, [$d10b] and a jr z, .asm_e0ed - ld bc, BoxMonNicknamesEnd + ld bc, sBoxMonNicknamesEnd .asm_e0ed call CopyDataUntil @@ -13854,7 +13851,7 @@ Functione277:: ; e277 ld [MonType], a call Functiond88c jr nc, .asm_e2b0 - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [PartyCount] dec a ld [CurPartyMon], a @@ -13899,7 +13896,7 @@ Functione277:: ; e277 and a jr z, .asm_e2e1 ld a, [CurItem] - ld [BoxMon1Item], a + ld [sBoxMon1Item], a .asm_e2e1 ld a, [CurPartySpecies] @@ -13936,7 +13933,7 @@ Functione277:: ; e277 jr nz, .asm_e35e push hl ld a, [CurPartyMon] - ld hl, PartyMon1OT + ld hl, PartyMonOT call SkipNames ld d, h ld e, l @@ -13967,7 +13964,7 @@ Functione277:: ; e277 .asm_e35e ld a, $1 call GetSRAMBank - ld de, BoxMon1OT + ld de, sBoxMonOT .asm_e366 ld a, [ScriptBank] call GetFarByte @@ -13979,7 +13976,7 @@ Functione277:: ; e277 ld a, [ScriptBank] call GetFarByte ld b, a - ld hl, BoxMon1ID + ld hl, sBoxMon1ID call Random ld [hli], a call Random @@ -14019,7 +14016,7 @@ Functione277:: ; e277 ld a, $1 call GetSRAMBank ld hl, $d050 - ld de, BoxMon1Nickname + ld de, sBoxMonNicknames ld bc, $000b call CopyBytes call CloseSRAM @@ -14225,7 +14222,7 @@ Functione512: ; e512 ld a, [PartyCount] and a jr z, .asm_e51e - cp $2 + cp 2 jr c, .asm_e526 and a ret @@ -14300,7 +14297,7 @@ Functione559: ; e559 (3:6559) Functione56d: ; e56d ld a, [PartyCount] - cp $6 + cp PARTY_LENGTH jr nc, .asm_e576 and a ret @@ -14347,7 +14344,7 @@ ClearPCItemScreen: ; e58b Functione5bb: ; e5bb ld a, [CurPartyMon] - ld hl, BoxMon1Species + ld hl, sBoxMon1Species ld bc, $0020 call AddNTimes ld de, TempMonSpecies @@ -14377,7 +14374,7 @@ Functione5d9: ; e5d9 .asm_e5f1 ld a, $1 - ld hl, BoxCount + ld hl, sBoxCount .asm_e5f6 call GetSRAMBank @@ -14386,7 +14383,7 @@ Functione5d9: ; e5d9 add hl, bc ld b, a ld c, $0 - ld de, EnemyMoveAnimation + ld de, $c608 ld a, b and a jr z, .asm_e66a @@ -14479,7 +14476,7 @@ Unknown_e66e: ; e66e ; e698 Functione698: ; e698 - ld hl, BreedMon1Species + ld hl, wBreedMon1Species ld de, TempMonSpecies ld bc, $0020 call CopyBytes @@ -14494,7 +14491,7 @@ Functione698: ; e698 ; e6b3 Functione6b3: ; e6b3 - ld hl, BreedMon2Species + ld hl, wBreedMon2Species ld de, TempMonSpecies ld bc, $0020 call CopyBytes @@ -15294,7 +15291,7 @@ Function103fd: ; 103fd callba PartyMenuSelect jr c, .asm_10475 ld a, [CurPartySpecies] ; $d108 - cp $fd + cp EGG jr nz, .asm_10453 ld hl, UnknownText_0x1048d call PrintText @@ -15307,7 +15304,7 @@ Function103fd: ; 103fd call GetCurNick ld hl, StringBuffer1 ; $d073 ld de, $d050 - ld bc, $b + ld bc, PKMN_NAME_LENGTH call CopyBytes call Function12bd9 pop af @@ -20776,7 +20773,7 @@ Function13172: ; 13172 call ClearBox xor a ld [MonType], a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [CurPartyMon] call GetNick hlcoord 5, 1 @@ -22008,7 +22005,7 @@ ContestScore: ; 13900 call .AddContestStat ; DVs - ld a, [wContestMonAtkDefDV] + ld a, [wContestMonDVs + 0] ld b, a and 2 add a @@ -22022,7 +22019,7 @@ ContestScore: ; 13900 add c ld d, a - ld a, [wContestMonSpdSpcDV] + ld a, [wContestMonDVs + 1] ld b, a and 2 ld c, a @@ -22179,7 +22176,7 @@ Function13a12: ; 13a12 or [hl] jr z, .asm_13a2b ld hl, PartyCount - ld a, $1 + ld a, 1 ld [hli], a inc hl ld a, [hl] @@ -22196,7 +22193,7 @@ Function13a12: ; 13a12 ; 13a31 Function13a31: ; 13a31 - ld hl, $dcd9 + ld hl, PartySpecies + 1 ld a, [$df9b] ld [hl], a ld b, $1 @@ -22926,9 +22923,9 @@ GetMonSprite: ; 14259 cp SPRITE_POKEMON jr c, .Normal cp SPRITE_DAYCARE_MON_1 - jr z, .BreedMon1 + jr z, .wBreedMon1 cp SPRITE_DAYCARE_MON_2 - jr z, .BreedMon2 + jr z, .wBreedMon2 cp SPRITE_VARS jr nc, .Variable jr .Icon @@ -22946,12 +22943,12 @@ GetMonSprite: ; 14259 ld a, [hl] jr .Mon -.BreedMon1 - ld a, [BreedMon1Species] +.wBreedMon1 + ld a, [wBreedMon1Species] jr .Mon -.BreedMon2 - ld a, [BreedMon2Species] +.wBreedMon2 + ld a, [wBreedMon2Species] .Mon ld e, a @@ -25231,8 +25228,8 @@ Function150f9: ; 150f9 push de ld a, $1 call GetSRAMBank - ld hl, BoxCount - ld de, EnemyMoveAnimation + ld hl, sBoxCount + ld de, $c608 ld bc, $01e0 call CopyBytes call CloseSRAM @@ -25241,14 +25238,14 @@ Function150f9: ; 150f9 push af push de call GetSRAMBank - ld hl, EnemyMoveAnimation + ld hl, $c608 ld bc, $01e0 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld hl, $aef0 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $01e0 call CopyBytes call CloseSRAM @@ -25261,14 +25258,14 @@ Function150f9: ; 150f9 push af push de call GetSRAMBank - ld hl, EnemyMoveAnimation + ld hl, $c608 ld bc, $01e0 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld hl, $b0d0 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $008e call CopyBytes call CloseSRAM @@ -25279,7 +25276,7 @@ Function150f9: ; 150f9 ld e, l ld d, h call GetSRAMBank - ld hl, EnemyMoveAnimation + ld hl, $c608 ld bc, $008e call CopyBytes call CloseSRAM @@ -25296,13 +25293,13 @@ Function1517d: ; 1517d (5:517d) push af push hl call GetSRAMBank - ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld de, $c608 ld bc, $1e0 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank - ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld hl, $c608 ld de, $ad10 ld bc, $1e0 call CopyBytes @@ -25314,13 +25311,13 @@ Function1517d: ; 1517d (5:517d) push af push hl call GetSRAMBank - ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld de, $c608 ld bc, $1e0 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank - ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld hl, $c608 ld de, $aef0 ld bc, $1e0 call CopyBytes @@ -25330,13 +25327,13 @@ Function1517d: ; 1517d (5:517d) ld de, $1e0 add hl, de call GetSRAMBank - ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld de, $c608 ld bc, $8e call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank - ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld hl, $c608 ld de, $b0d0 ld bc, $8e call CopyBytes @@ -28712,17 +28709,17 @@ MenuData2_0x166bd: ; 0x166bd ; 0x166d6 Function166d6: ; 166d6 - ld hl, DaycareMan + ld hl, wDaycareMan bit 0, [hl] jr nz, .asm_166fe - ld hl, DaycareMan + ld hl, wDaycareMan ld a, $0 call Function1678f jr c, .asm_16724 call Function16798 jr c, .asm_16721 callba Functionde2a - ld hl, DaycareMan + ld hl, wDaycareMan set 0, [hl] call Function167f6 call Function16a3b @@ -28730,13 +28727,13 @@ Function166d6: ; 166d6 .asm_166fe callba Functione698 - ld hl, BreedMon1Nick + ld hl, wBreedMon1Nick call Function1686d call Function16807 jr c, .asm_16721 callba Functiondd21 call Function16850 - ld hl, DaycareMan + ld hl, wDaycareMan res 0, [hl] res 5, [hl] jr .asm_16724 @@ -28751,17 +28748,17 @@ Function166d6: ; 166d6 ; 1672a Function1672a: ; 1672a - ld hl, DaycareLady + ld hl, wDaycareLady bit 0, [hl] jr nz, .asm_16752 - ld hl, DaycareLady + ld hl, wDaycareLady ld a, $2 call Function16781 jr c, .asm_1677b call Function16798 jr c, .asm_16778 callba Functionde37 - ld hl, DaycareLady + ld hl, wDaycareLady set 0, [hl] call Function167f6 call Function16a3b @@ -28769,15 +28766,15 @@ Function1672a: ; 1672a .asm_16752 callba Functione6b3 - ld hl, BreedMon2Nick + ld hl, wBreedMon2Nick call Function1686d call Function16807 jr c, .asm_16778 callba Functiondd42 call Function16850 - ld hl, DaycareLady + ld hl, wDaycareLady res 0, [hl] - ld hl, DaycareMan + ld hl, wDaycareMan res 5, [hl] jr .asm_1677b @@ -28830,7 +28827,7 @@ Function16798: ; 16798 ld d, [hl] callba ItemIsMail jr c, .asm_167ed - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [CurPartyMon] call GetNick and a @@ -29118,7 +29115,7 @@ UnknownText_0x16931: ; 0x16931 ; 0x16936 Function16936: ; 16936 - ld hl, DaycareMan + ld hl, wDaycareMan bit 6, [hl] jr nz, Function16949 ld hl, UnknownText_0x16944 @@ -29140,7 +29137,7 @@ Function16949: ; 16949 cp $6 jr nc, .asm_16987 call Function169ac - ld hl, DaycareMan + ld hl, wDaycareMan res 6, [hl] call Function16a3b ld hl, UnknownText_0x16998 @@ -29213,26 +29210,26 @@ Function169ac: ; 169ac add hl, bc ld a, EGG ld [hli], a - ld a, [EggSpecies] + ld a, [wEggMonSpecies] ld [CurSpecies], a ld [CurPartySpecies], a ld a, $ff ld [hl], a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, $000b call Function16a31 - ld hl, EggNick + ld hl, wEggNick call CopyBytes - ld hl, PartyMon1OT + ld hl, PartyMonOT ld bc, $000b call Function16a31 - ld hl, EggOT + ld hl, wEggOT call CopyBytes ld hl, PartyMon1 ld bc, PartyMon2 - PartyMon1 call Function16a31 - ld hl, EggMon - ld bc, $0020 + ld hl, wEggMon + ld bc, wEggMonEnd - wEggMon call CopyBytes call GetBaseData ld a, [PartyCount] @@ -29278,10 +29275,10 @@ Function16a31: ; 16a31 ; 16a3b Function16a3b: ; 16a3b - ld a, [DaycareLady] + ld a, [wDaycareLady] bit 0, a ret z - ld a, [DaycareMan] + ld a, [wDaycareMan] bit 0, a ret z callab Function16e1d @@ -29290,40 +29287,40 @@ Function16a3b: ; 16a3b ret z inc a ret z - ld hl, DaycareMan + ld hl, wDaycareMan set 5, [hl] .asm_16a59 call Random cp 150 jr c, .asm_16a59 - ld [StepsToEgg], a + ld [wStepsToEgg], a jp Function16a66 ; 16a66 Function16a66: ; 16a66 xor a - ld hl, EggSpecies - ld bc, $0020 + ld hl, wEggMon + ld bc, wEggMonEnd - wEggMon call ByteFill - ld hl, EggNick - ld bc, $000b + ld hl, wEggNick + ld bc, PKMN_NAME_LENGTH call ByteFill - ld hl, EggOT - ld bc, $000b + ld hl, wEggOT + ld bc, NAME_LENGTH call ByteFill ld a, [$df21] ld [TempMonDVs], a ld a, [$df22] ld [$d124], a - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] ld [CurPartySpecies], a ld a, $3 ld [MonType], a - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] cp DITTO ld a, $1 jr z, .asm_16ab6 - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] cp DITTO ld a, $0 jr z, .asm_16ab6 @@ -29333,11 +29330,11 @@ Function16a66: ; 16a66 inc a .asm_16ab6 - ld [DittoInDaycare], a + ld [wDittoInDaycare], a and a - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] jr z, .asm_16ac2 - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] .asm_16ac2 ld [CurPartySpecies], a @@ -29357,14 +29354,14 @@ Function16a66: ; 16a66 .asm_16ae8 ld [CurPartySpecies], a ld [CurSpecies], a - ld [EggSpecies], a + ld [wEggMonSpecies], a call GetBaseData - ld hl, EggNick + ld hl, wEggNick ld de, String_16be0 call CopyName2 ld hl, PlayerName - ld de, EggOT - ld bc, $000b + ld de, wEggOT + ld bc, NAME_LENGTH call CopyBytes xor a ld [$df7c], a @@ -29404,11 +29401,11 @@ Function16a66: ; 16a66 ld [hld], a ld [$d124], a ld de, $df21 - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] cp DITTO jr z, .asm_16b98 ld de, $df5a - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] cp DITTO jr z, .asm_16b98 ld a, $3 @@ -29420,7 +29417,7 @@ Function16a66: ; 16a66 ld bc, $df5a jr c, .asm_16bab jr z, .asm_16b90 - ld a, [DittoInDaycare] + ld a, [wDittoInDaycare] and a jr z, .asm_16b98 ld d, b @@ -29428,7 +29425,7 @@ Function16a66: ; 16a66 jr .asm_16b98 .asm_16b90 - ld a, [DittoInDaycare] + ld a, [wDittoInDaycare] and a jr nz, .asm_16b98 ld d, b @@ -29784,7 +29781,7 @@ Function16e1d: ; 16e1d call Function16ed6 ld c, $0 jp nc, .asm_16eb7 - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] ld [CurPartySpecies], a ld a, [$df21] ld [TempMonDVs], a @@ -29801,7 +29798,7 @@ Function16e1d: ; 16e1d .asm_16e48 push bc - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] ld [CurPartySpecies], a ld a, [$df5a] ld [TempMonDVs], a @@ -29823,16 +29820,16 @@ Function16e1d: ; 16e1d .asm_16e70 ld c, $0 - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] cp DITTO jr z, .asm_16e82 - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] cp DITTO jr nz, .asm_16eb7 jr .asm_16e89 .asm_16e82 - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] cp DITTO jr z, .asm_16eb7 @@ -29840,9 +29837,9 @@ Function16e1d: ; 16e1d call Function16ebc ld c, $ff jp z, .asm_16eb7 - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] ld b, a - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] cp b ld c, $fe jr z, .asm_16e9f @@ -29889,19 +29886,19 @@ Function16ebc: ; 16ebc (5:6ebc) ; 16ed6 Function16ed6: ; 16ed6 - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] ld [CurSpecies], a call GetBaseData ld a, [BaseEggGroups] cp $ff jr z, .asm_16f3a - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] ld [CurSpecies], a call GetBaseData ld a, [BaseEggGroups] cp $ff jr z, .asm_16f3a - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] cp DITTO jr z, .asm_16f3c ld [CurSpecies], a @@ -29914,7 +29911,7 @@ Function16ed6: ; 16ed6 and $f0 swap a ld c, a - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] cp DITTO jr z, .asm_16f3c ld [CurSpecies], a @@ -30080,7 +30077,7 @@ Function16f7a: ; 16f7a (5:6f7a) ld a, [$d47c] ld [hl], a ld a, [CurPartyMon] ; $d109 - ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) + ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT) ld bc, $b call AddNTimes ld d, h @@ -30090,7 +30087,7 @@ Function16f7a: ; 16f7a (5:6f7a) ld hl, UnknownText_0x1708b call PrintText ld a, [CurPartyMon] ; $d109 - ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) + ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames) ld bc, $b call AddNTimes ld d, h @@ -30211,7 +30208,7 @@ Function170e4: ; 170e4 GLOBAL EggMoves push bc - ld a, [EggSpecies] + ld a, [wEggMonSpecies] dec a ld c, a ld b, 0 @@ -30245,7 +30242,7 @@ GLOBAL EggMoves jr .asm_1710c .asm_17116 - ld a, [EggSpecies] + ld a, [wEggMonSpecies] dec a ld c, a ld b, 0 @@ -30343,13 +30340,13 @@ Function17169: ; 17169 Function17197: ; 17197 ld hl, $df47 - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] cp DITTO jr z, .asm_171b1 - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] cp DITTO jr z, .asm_171d7 - ld a, [DittoInDaycare] + ld a, [wDittoInDaycare] and a ret z ld hl, $df0e @@ -30358,7 +30355,7 @@ Function17197: ; 17197 .asm_171b1 ld a, [CurPartySpecies] push af - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] ld [CurPartySpecies], a ld a, [$df5a] ld [TempMonDVs], a @@ -30375,7 +30372,7 @@ Function17197: ; 17197 .asm_171d7 ld a, [CurPartySpecies] push af - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] ld [CurPartySpecies], a ld a, [$df21] ld [TempMonDVs], a @@ -30403,13 +30400,13 @@ Function17197: ; 17197 Function1720b: ; 1720b ld hl, $df0e - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] cp DITTO ret z - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] cp DITTO jr z, .asm_17220 - ld a, [DittoInDaycare] + ld a, [wDittoInDaycare] and a ret z @@ -30425,7 +30422,7 @@ Function17224: ; 17224 (5:7224) ld [CurPartySpecies], a ; $d108 ld [CurSpecies], a ; $cf60 call GetBaseData - ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV) + ld hl, BattleMonDVs ld a, $2d call Predef pop de @@ -30438,7 +30435,7 @@ Function1723c: ; 1723c (5:723c) ld [CurPartySpecies], a ; $d108 ld [CurSpecies], a ; $cf60 call GetBaseData - ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV) + ld hl, BattleMonDVs ld a, $2d call Predef pop de @@ -30672,26 +30669,26 @@ Function17418: ; 17418 (5:7418) Function17421: ; 17421 ld hl, UnknownText_0x17467 call PrintText - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] call Function37ce - ld a, [DaycareLady] + ld a, [wDaycareLady] bit 0, a jr z, Function1745f call Functionaaf - ld hl, BreedMon2Nick + ld hl, wBreedMon2Nick call Function1746c jp PrintText Function17440: ; 17440 ld hl, UnknownText_0x17462 call PrintText - ld a, [BreedMon2Species] + ld a, [wBreedMon2Species] call Function37ce - ld a, [DaycareMan] + ld a, [wDaycareMan] bit 0, a jr z, Function1745f call Functionaaf - ld hl, BreedMon1Nick + ld hl, wBreedMon1Nick call Function1746c jp PrintText @@ -36345,7 +36342,7 @@ Function2805d: ; 2805d call Function75f ld a, $fe ld [de], a - ld hl, EnemyMoveAnimation + ld hl, $c608 ld de, PlayerSDefLevel ld bc, $00c8 call Function75f @@ -36488,7 +36485,7 @@ Function28177: ; 28177 call Function75f ld a, $fe ld [de], a - ld hl, EnemyMoveAnimation + ld hl, $c608 ld de, PlayerSDefLevel ld bc, $00c8 call Function75f @@ -36838,7 +36835,7 @@ Function28434: ; 28434 ld [hli], a dec b jr nz, .asm_28441 - ld hl, EnemyMoveAnimation + ld hl, $c608 ld a, $fd ld [hli], a ld [hli], a @@ -36850,7 +36847,7 @@ Function28434: ; 28434 dec b jr nz, .asm_28457 ld hl, $c818 - ld de, PlayerMoveType + ld de, $c612 ld bc, $0000 .asm_28464 inc c @@ -37087,10 +37084,10 @@ Function28595: ; 28595 ld hl, PartyMon1Species ld bc, $0120 call CopyBytes - ld hl, PartyMon1OT + ld hl, PartyMonOT ld bc, $0042 call CopyBytes - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, $0042 call CopyBytes ld a, [InLinkBattle] @@ -37226,10 +37223,10 @@ Function2868a: ; 2868a pop hl ld bc, $0108 add hl, bc - ld de, OTPartyMon1OT + ld de, OTPartyMonOT ld bc, $0042 call CopyBytes - ld de, OTPartyMon1Nickname + ld de, OTPartyMonNicknames ld bc, $0042 jp CopyBytes ; 286ba @@ -38059,7 +38056,7 @@ Function28b87: ; 28b87 ld [PlayerSDefLevel], a push af ld a, [DefaultFlypoint] - ld hl, PartyMon1OT + ld hl, PartyMonOT call SkipNames ld de, $c6f2 ld bc, $000b @@ -38098,7 +38095,7 @@ Function28b87: ; 28b87 ld a, [hl] ld [PlayerLightScreenCount], a ld a, [$d003] - ld hl, OTPartyMon1OT + ld hl, OTPartyMonOT call SkipNames ld de, $c724 ld bc, $000b @@ -38110,7 +38107,7 @@ Function28b87: ; 28b87 ld [$c731], a ld a, [hl] ld [$c732], a - ld hl, OTPartyMon1AtkDefDV + ld hl, OTPartyMon1DVs ld a, [$d003] call GetPartyLocation ld a, [hli] @@ -40541,14 +40538,14 @@ Function2a09c: ; 2a09c ; 2a0b7 Function2a0b7: ; 2a0b7 - ld a, [RoamMon1Species] + ld a, [wRoamMon1Species] ld b, a ld a, [$d265] cp b ret nz - ld a, [RoamMon1MapGroup] + ld a, [wRoamMon1MapGroup] ld b, a - ld a, [RoamMon1MapNumber] + ld a, [wRoamMon1MapNumber] ld c, a call Function2a09c ret nc @@ -40558,14 +40555,14 @@ Function2a0b7: ; 2a0b7 ; 2a0cf Function2a0cf: ; 2a0cf - ld a, [RoamMon2Species] + ld a, [wRoamMon2Species] ld b, a ld a, [$d265] cp b ret nz - ld a, [RoamMon2MapGroup] + ld a, [wRoamMon2MapGroup] ld b, a - ld a, [RoamMon2MapNumber] + ld a, [wRoamMon2MapNumber] ld c, a call Function2a09c ret nc @@ -40911,45 +40908,45 @@ Function2a288: ; 2a288 InitRoamMons: ; 2a2a0 -; initialize RoamMon structs +; initialize wRoamMon structs ; species ld a, RAIKOU - ld [RoamMon1Species], a + ld [wRoamMon1Species], a ld a, ENTEI - ld [RoamMon2Species], a + ld [wRoamMon2Species], a ; ld a, SUICUNE -; ld [RoamMon3Species], a +; ld [wRoamMon3Species], a ; level ld a, 40 - ld [RoamMon1Level], a - ld [RoamMon2Level], a -; ld [RoamMon3Level], a + ld [wRoamMon1Level], a + ld [wRoamMon2Level], a +; ld [wRoamMon3Level], a ; raikou starting map ld a, GROUP_ROUTE_42 - ld [RoamMon1MapGroup], a + ld [wRoamMon1MapGroup], a ld a, MAP_ROUTE_42 - ld [RoamMon1MapNumber], a + ld [wRoamMon1MapNumber], a ; entei starting map ld a, GROUP_ROUTE_37 - ld [RoamMon2MapGroup], a + ld [wRoamMon2MapGroup], a ld a, MAP_ROUTE_37 - ld [RoamMon2MapNumber], a + ld [wRoamMon2MapNumber], a ; suicune starting map ; ld a, GROUP_ROUTE_38 -; ld [RoamMon3MapGroup], a +; ld [wRoamMon3MapGroup], a ; ld a, MAP_ROUTE_38 -; ld [RoamMon3MapNumber], a +; ld [wRoamMon3MapNumber], a ; hp xor a ; generate new stats - ld [RoamMon1HP], a - ld [RoamMon2HP], a -; ld [RoamMon3HP], a + ld [wRoamMon1HP], a + ld [wRoamMon2HP], a +; ld [wRoamMon3HP], a ret ; 2a2ce @@ -40966,7 +40963,7 @@ Function2a2ce: ; 2a2ce and 3 jr z, .asm_2a30a dec a - ld hl, RoamMon1MapGroup + ld hl, wRoamMon1MapGroup ld c, a ld b, 0 ld a, 7 @@ -40999,43 +40996,43 @@ Function2a2ce: ; 2a2ce Function2a30d: ; 2a30d - ld a, [RoamMon1MapGroup] + ld a, [wRoamMon1MapGroup] cp $ff jr z, .asm_2a324 ld b, a - ld a, [RoamMon1MapNumber] + ld a, [wRoamMon1MapNumber] ld c, a call Function2a355 ld a, b - ld [RoamMon1MapGroup], a + ld [wRoamMon1MapGroup], a ld a, c - ld [RoamMon1MapNumber], a + ld [wRoamMon1MapNumber], a .asm_2a324 - ld a, [RoamMon2MapGroup] + ld a, [wRoamMon2MapGroup] cp $ff jr z, .asm_2a33b ld b, a - ld a, [RoamMon2MapNumber] + ld a, [wRoamMon2MapNumber] ld c, a call Function2a355 ld a, b - ld [RoamMon2MapGroup], a + ld [wRoamMon2MapGroup], a ld a, c - ld [RoamMon2MapNumber], a + ld [wRoamMon2MapNumber], a .asm_2a33b - ld a, [RoamMon3MapGroup] + ld a, [wRoamMon3MapGroup] cp $ff jr z, .asm_2a352 ld b, a - ld a, [RoamMon3MapNumber] + ld a, [wRoamMon3MapNumber] ld c, a call Function2a355 ld a, b - ld [RoamMon3MapGroup], a + ld [wRoamMon3MapGroup], a ld a, c - ld [RoamMon3MapNumber], a + ld [wRoamMon3MapNumber], a .asm_2a352 jp Function2a3f6 @@ -41096,34 +41093,34 @@ Function2a355: ; 2a355 ret Function2a394: ; 2a394 - ld a, [RoamMon1MapGroup] + ld a, [wRoamMon1MapGroup] cp $ff jr z, .asm_2a3a6 call Function2a3cd ld a, b - ld [RoamMon1MapGroup], a + ld [wRoamMon1MapGroup], a ld a, c - ld [RoamMon1MapNumber], a + ld [wRoamMon1MapNumber], a .asm_2a3a6 - ld a, [RoamMon2MapGroup] + ld a, [wRoamMon2MapGroup] cp $ff jr z, .asm_2a3b8 call Function2a3cd ld a, b - ld [RoamMon2MapGroup], a + ld [wRoamMon2MapGroup], a ld a, c - ld [RoamMon2MapNumber], a + ld [wRoamMon2MapNumber], a .asm_2a3b8 - ld a, [RoamMon3MapGroup] + ld a, [wRoamMon3MapGroup] cp $ff jr z, .asm_2a3ca call Function2a3cd ld a, b - ld [RoamMon3MapGroup], a + ld [wRoamMon3MapGroup], a ld a, c - ld [RoamMon3MapNumber], a + ld [wRoamMon3MapNumber], a .asm_2a3ca jp Function2a3f6 @@ -42615,7 +42612,7 @@ Function2c867: ; 2c867 call Predef push bc ld a, [CurPartyMon] ; $d109 - ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) + ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames) call GetNick pop bc ld a, c @@ -43443,8 +43440,8 @@ ClearBattleRAM: ; 2ef18 ld [hl], a ; Clear the entire BattleMons area - ld hl, EnemyMoveStruct - ld bc, $0139 + ld hl, wBattle + ld bc, wBattleEnd - wBattle xor a call ByteFill @@ -43929,8 +43926,8 @@ Function382ae: ; 382ae callab AICheckEnemyMaxHP jr c, .asm_382e4 push bc - ld de, EnemyMonMaxHPLo - ld hl, EnemyMonHPLo + ld de, EnemyMonMaxHP + 1 + ld hl, EnemyMonHP + 1 ld a, [de] sub [hl] jr z, .asm_382e7 @@ -44100,23 +44097,23 @@ Function383b5: ; 383b5 (e:43b5) ld [EnemyConfuseCount], a ; $c67b asm_383c6: ; 383c6 (e:43c6) ld de, $d1ec - ld hl, EnemyMonHPLo ; $d217 + ld hl, EnemyMonHP + 1 ; $d217 ld a, [hld] ld [de], a inc de ld a, [hl] ld [de], a inc de - ld hl, EnemyMonMaxHPLo ; $d219 + ld hl, EnemyMonMaxHP + 1 ; $d219 ld a, [hld] ld [de], a inc de ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) - ld [EnemyMonHPLo], a ; $d217 + ld [EnemyMonHP + 1], a ; $d217 ld a, [hl] ld [de], a ld [Buffer2], a ; $d1eb (aliases: MovementType) - ld [EnemyMonHPHi], a ; $d216 (aliases: EnemyMonHP) + ld [EnemyMonHP], a ; $d216 (aliases: EnemyMonHP) jr asm_38436 ; 383e8 (e:43e8) @@ -44137,7 +44134,7 @@ Function383f4: ; 383f4 (e:43f4) Function383f8: ; 383f8 ld [$d1f1], a - ld hl, EnemyMonHPLo ; $d217 + ld hl, EnemyMonHP + 1 ; $d217 ld a, [hl] ld [$d1ec], a add b @@ -44154,7 +44151,7 @@ Function383f8: ; 383f8 inc hl ld a, [hld] ld b, a - ld de, EnemyMonMaxHPLo ; $d219 + ld de, EnemyMonMaxHP + 1 ; $d219 ld a, [de] dec de ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) @@ -44304,7 +44301,7 @@ Function38511: ; 38511 Function3851e: ; 3851e ld [hMultiplier], a - ld hl, EnemyMonMaxHPHi + ld hl, EnemyMonMaxHP ld a, [hli] ld [hProduct], a ld a, [hl] @@ -44315,7 +44312,7 @@ Function3851e: ; 3851e ld c, a ld a, [$ffb5] ld b, a - ld hl, EnemyMonHPLo + ld hl, EnemyMonHP + 1 ld a, [hld] ld e, a ld a, [hl] @@ -47760,7 +47757,7 @@ Function421f5: ; 421f5 ld a, [hl] ld [Buffer2], a ld a, [CurPartyMon] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick call CopyName1 ld hl, UnknownText_0x42482 @@ -47929,7 +47926,7 @@ Function42414: ; 42414 jr nz, .asm_4242b ld a, [CurPartyMon] ld bc, $000b - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call AddNTimes push hl ld a, [CurSpecies] @@ -48948,7 +48945,7 @@ Function446cc:: ; 446cc call CopyBytes pop af push af - ld hl, PartyMon1OT + ld hl, PartyMonOT ld bc, $000b call AddNTimes ld bc, $000a @@ -51399,7 +51396,7 @@ Function492b9: ; 492b9 call Predef push bc ld a, [CurPartyMon] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick pop bc ld a, c @@ -53945,7 +53942,7 @@ CheckOwnMonAnywhere: ; 0x4a721 ld d, a ld e, 0 ld hl, PartyMon1Species - ld bc, PartyMon1OT + ld bc, PartyMonOT ; Run CheckOwnMon on each Pokémon in the party. .partymon @@ -53963,13 +53960,13 @@ CheckOwnMonAnywhere: ; 0x4a721 ; Run CheckOwnMon on each Pokémon in the PC. ld a, 1 call GetSRAMBank - ld a, [BoxCount] + ld a, [sBoxCount] and a jr z, .boxes ld d, a - ld hl, BoxMon1Species - ld bc, BoxMon1OT + ld hl, sBoxMon1Species + ld bc, sBoxMonOT .openboxmon call CheckOwnMon jr nc, .next @@ -53980,7 +53977,7 @@ CheckOwnMonAnywhere: ; 0x4a721 .next push bc - ld bc, BoxMon2 - BoxMon1 + ld bc, sBoxMon2 - sBoxMon1 add hl, bc pop bc call UpdateOTPointer @@ -54019,13 +54016,13 @@ CheckOwnMonAnywhere: ; 0x4a721 push bc push hl - ld de, BoxMons - BoxCount + ld de, sBoxMons - sBoxCount add hl, de ld d, h ld e, l pop hl push de - ld de, BoxMonOT - BoxCount + ld de, sBoxMonOT - sBoxCount add hl, de ld b, h ld c, l @@ -54044,7 +54041,7 @@ CheckOwnMonAnywhere: ; 0x4a721 .nextboxmon push bc - ld bc, BoxMon2 - BoxMon1 + ld bc, sBoxMon2 - sBoxMon1 add hl, bc pop bc call UpdateOTPointer @@ -54153,7 +54150,7 @@ Unknown_4a810: ; 4a810 UpdateOTPointer: ; 0x4a83a push hl - ld hl, PartyMon2OT - PartyMon1OT + ld hl, NAME_LENGTH add hl, bc ld b, h ld c, l @@ -54173,7 +54170,7 @@ Function4a843: ; 4a843 ld d, a ld e, 0 ld hl, PartyMon1Species - ld bc, PartyMon1OT + ld bc, PartyMonOT .asm_4a851 call Function4a8dc ret c @@ -54186,12 +54183,12 @@ Function4a843: ; 4a843 jr nz, .asm_4a851 ld a, 1 call GetSRAMBank - ld a, [BoxCount] + ld a, [sBoxCount] and a jr z, .asm_4a888 ld d, a - ld hl, BoxMon1Species - ld bc, BoxMon1OT + ld hl, sBoxMon1Species + ld bc, sBoxMonOT .asm_4a873 call Function4a8dc jr nc, .asm_4a87c @@ -54200,7 +54197,7 @@ Function4a843: ; 4a843 .asm_4a87c push bc - ld bc, BoxMon2 - BoxMon1 + ld bc, sBoxMon2 - sBoxMon1 add hl, bc pop bc call Function4a91e @@ -54230,13 +54227,13 @@ Function4a843: ; 4a843 jr z, .asm_4a8d1 push bc push hl - ld de, BoxMons - BoxCount + ld de, sBoxMons - sBoxCount add hl, de ld d, h ld e, l pop hl push de - ld de, BoxMonOT - BoxCount + ld de, sBoxMonOT - sBoxCount add hl, de ld b, h ld c, l @@ -54251,7 +54248,7 @@ Function4a843: ; 4a843 .asm_4a8c4 push bc - ld bc, BoxMon2 - BoxMon1 + ld bc, sBoxMon2 - sBoxMon1 add hl, bc pop bc call Function4a91e @@ -54316,7 +54313,7 @@ Unknown_4a8f4: ; 4a8f4 Function4a91e: ; 4a91e push hl - ld hl, PartyMon2OT - PartyMon1OT + ld hl, NAME_LENGTH add hl, bc ld b, h ld c, l @@ -54438,7 +54435,7 @@ Function4a9c3: ; 4a9c3 Function4a9d7: ; 4a9d7 ld a, [DefaultFlypoint] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick ld h, d ld l, e @@ -54446,7 +54443,7 @@ Function4a9d7: ; 4a9d7 ld bc, $0006 call CopyBytes ld a, [$d003] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick ld h, d ld l, e @@ -54454,7 +54451,7 @@ Function4a9d7: ; 4a9d7 ld bc, $0006 call CopyBytes ld a, [$d004] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick ld h, d ld l, e @@ -55593,7 +55590,7 @@ ENDM Function4d15b:: ; 4d15b - ld hl, EnemyMoveAnimation + ld hl, $c608 ld a, [$d196] and a jr z, .asm_4d168 @@ -56381,12 +56378,12 @@ Function4d87a: ; 4d87a jr nz, .asm_4d88d ld a, $1 call GetSRAMBank - ld a, [BoxCount] + ld a, [sBoxCount] and a jr z, .asm_4d8c8 ld d, a - ld hl, BoxMon1ID - ld bc, BoxSpecies + ld hl, sBoxMon1ID + ld bc, sBoxSpecies .asm_4d8af ld a, [bc] inc bc @@ -56399,7 +56396,7 @@ Function4d87a: ; 4d87a .asm_4d8bf push bc - ld bc, BoxMon2 - BoxMon1 + ld bc, sBoxMon2 - sBoxMon1 add hl, bc pop bc dec d @@ -56446,7 +56443,7 @@ Function4d87a: ; 4d87a .asm_4d901 push bc - ld bc, BoxMon2 - BoxMon1 + ld bc, sBoxMon2 - sBoxMon1 add hl, bc pop bc dec d @@ -56625,7 +56622,7 @@ Function4d9e5: ; 4d9e5 call CopyBytes ld a, [PartyCount] dec a - ld hl, PartyMon1OT + ld hl, PartyMonOT call SkipNames ld d, h ld e, l @@ -56651,7 +56648,7 @@ Function4d9e5: ; 4d9e5 .asm_4da66 ld a, [PartyCount] dec a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call SkipNames ld d, h ld e, l @@ -56683,20 +56680,20 @@ Function4d9e5: ; 4d9e5 Function4daa3: ; 4daa3 ld a, $1 call GetSRAMBank - ld hl, BoxCount + ld hl, sBoxCount ld a, [hl] - cp 20 + cp MONS_PER_BOX call CloseSRAM jr nc, .asm_4db08 xor a ld [CurPartyMon], a ld hl, $df9c ld de, $d018 - ld bc, BoxMon2 - BoxMon1 + ld bc, sBoxMon2 - sBoxMon1 call CopyBytes ld hl, PlayerName ld de, $d00d - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes callab Function51322 ld a, [CurPartySpecies] @@ -56714,21 +56711,21 @@ Function4daa3: ; 4daa3 .asm_4daf7 ld a, $1 call GetSRAMBank - ld de, BoxMon1Nickname - ld bc, $000b + ld de, sBoxMonNicknames + ld bc, PKMN_NAME_LENGTH call CopyBytes call CloseSRAM .asm_4db08 ld a, $1 call GetSRAMBank - ld a, [BoxMon1Level] + ld a, [sBoxMon1Level] ld [CurPartyLevel], a call CloseSRAM call Function4db83 ld a, $1 call GetSRAMBank - ld hl, BoxMon1CaughtLocation + ld hl, sBoxMon1CaughtLocation ld a, [hl] and $80 ld b, $13 @@ -56804,7 +56801,7 @@ Function4db53: ; 4db53 Function4db83: ; 4db83 ld a, $1 call GetSRAMBank - ld hl, BoxMon1CaughtLevel + ld hl, sBoxMon1CaughtLevel call Function4db53 call CloseSRAM ret @@ -56814,7 +56811,7 @@ Function4db92: ; 4db92 push bc ld a, $1 call GetSRAMBank - ld hl, BoxMon1CaughtLevel + ld hl, sBoxMon1CaughtLevel pop bc call Function4dbaf call CloseSRAM @@ -57800,7 +57797,7 @@ Function4e1cc: ; 4e1cc (13:61cc) Unknown_4e216: ; 4e216 dw PartyMonOT dw OTPartyMonOT - dw BoxMonOT + dw sBoxMonOT dw $d00d ; 4e21e @@ -57907,7 +57904,7 @@ Jumptable_4e2b5: ; 4e2b5 (13:62b5) Function4e2bf: ; 4e2bf (13:62bf) ld a, [CurPartyMon] ; $d109 ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, $30 + ld bc, PartyMon2 - PartyMon1 call AddNTimes ld b, h ld c, l @@ -57920,7 +57917,7 @@ Function4e2cf: ; 4e2cf (13:62cf) ; no known jump sources Function4e2d1: ; 4e2d1 (13:62d1) - ld hl, BoxMons + ld hl, sBoxMons ld bc, $30 ld a, [CurPartyMon] ; $d109 call AddNTimes @@ -59123,7 +59120,7 @@ Function5009b: ; 5009b push bc push hl push hl - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, b call GetNick pop hl @@ -59860,7 +59857,7 @@ YouHaveNoPKMNString: ; 0x50556 Function50566: ; 50566 ld a, [CurPartyMon] - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call GetNick ld a, [PartyMenuActionText] and $f @@ -60501,15 +60498,15 @@ Function508d5: ; 508d5 jr .asm_50905 .asm_508f1 - ld a, 1 ; BANK(BoxSpecies) + ld a, 1 ; BANK(sBoxSpecies) call GetSRAMBank - ld hl, BoxSpecies + ld hl, sBoxSpecies call .asm_50905 call CloseSRAM ret .asm_50900 - ld a, [BreedMon1Species] + ld a, [wBreedMon1Species] jr .asm_50909 .asm_50905 @@ -60797,11 +60794,11 @@ GetGender: ; 50bdd dec a jr z, .PartyMon -; 2: BoxMon - ld hl, BoxMon1DVs - ld bc, BoxMon2 - BoxMon1 +; 2: sBoxMon + ld hl, sBoxMon1DVs + ld bc, sBoxMon2 - sBoxMon1 dec a - jr z, .BoxMon + jr z, .sBoxMon ; 3: Unknown ld hl, TempMonDVs @@ -60816,14 +60813,14 @@ GetGender: ; 50bdd ; Get our place in the party/box. .PartyMon -.BoxMon +.sBoxMon ld a, [CurPartyMon] call AddNTimes .DVs -; BoxMon data is read directly from SRAM. +; sBoxMon data is read directly from SRAM. ld a, [MonType] cp BOXMON ld a, 1 @@ -60842,7 +60839,7 @@ GetGender: ; 50bdd or b ld b, a -; Close SRAM if we were dealing with a BoxMon. +; Close SRAM if we were dealing with a sBoxMon. ld a, [MonType] cp BOXMON call z, CloseSRAM @@ -60997,7 +60994,7 @@ Function50cd0: ; 50cd0 Function50cdb: ; 50cdb push hl push hl - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld a, [CurPartyMon] call GetNick pop hl @@ -61157,7 +61154,7 @@ Function50db9: ; 50db9 cp $1 jr nz, .asm_50dca ld hl, OTPartyCount - ld de, OTPartyMon1OT + ld de, OTPartyMonOT ld a, ENEMY_OT_NAME jr .asm_50dfc .asm_50dca @@ -61165,7 +61162,7 @@ Function50db9: ; 50db9 cp $4 jr nz, .asm_50dd8 ld hl, PartyCount - ld de, PartyMon1OT + ld de, PartyMonOT ld a, PARTY_OT_NAME jr .asm_50dfc .asm_50dd8 @@ -61477,12 +61474,12 @@ Function50f62: ; 50f62 (14:4f62) ld bc, $30 call CopyBytes ld a, [Buffer2] ; $d1eb (aliases: MovementType) - ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) + ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT) call SkipNames push hl call Function51036 ld a, [$d1ec] - ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) + ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT) call SkipNames pop de push hl @@ -61490,12 +61487,12 @@ Function50f62: ; 50f62 (14:4f62) pop de ld hl, DefaultFlypoint ; $d002 call Function51039 - ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) + ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames) ld a, [Buffer2] ; $d1eb (aliases: MovementType) call SkipNames push hl call Function51036 - ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) + ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames) ld a, [$d1ec] call SkipNames pop de @@ -61546,8 +61543,8 @@ GetUnownLetter: ; 51040 ; Return Unown letter in UnownLetter based on DVs at hl ; Take the middle 2 bits of each DV and place them in order: -; AtkDefDV | SpdSpcDV -; .ww..xx. .yy..zz. +; atk def spd spc +; .ww..xx. .yy..zz. ; atk ld a, [hl] @@ -62026,27 +62023,27 @@ Function512f2: ; 512f2 Function51322: ; 51322 ld a, $1 call GetSRAMBank - ld hl, BoxCount + ld hl, sBoxCount call Function513cb - ld a, [BoxCount] + ld a, [sBoxCount] dec a ld [$d265], a - ld hl, BoxMon1Nickname - ld bc, $000b - ld de, DefaultFlypoint + ld hl, sBoxMonNicknames + ld bc, PKMN_NAME_LENGTH + ld de, $d002 call Function513e0 - ld a, [BoxCount] + ld a, [sBoxCount] dec a ld [$d265], a - ld hl, BoxMon1OT - ld bc, $000b + ld hl, sBoxMonOT + ld bc, NAME_LENGTH ld de, $d00d call Function513e0 - ld a, [BoxCount] + ld a, [sBoxCount] dec a ld [$d265], a - ld hl, BoxMon1Species - ld bc, $0020 + ld hl, sBoxMons + ld bc, sBoxMon1End - sBoxMon1 ld de, $d018 call Function513e0 ld hl, $d01a @@ -62069,21 +62066,21 @@ Function5138b: ; 5138b ld a, [PartyCount] dec a ld [$d265], a - ld hl, PartyMon1Nickname - ld bc, $000b - ld de, DefaultFlypoint + ld hl, PartyMonNicknames + ld bc, PKMN_NAME_LENGTH + ld de, $d002 call Function513e0 ld a, [PartyCount] dec a ld [$d265], a - ld hl, PartyMon1OT - ld bc, $000b + ld hl, PartyMonOT + ld bc, NAME_LENGTH ld de, $d00d call Function513e0 ld a, [PartyCount] dec a ld [$d265], a - ld hl, PartyMon1Species + ld hl, PartyMons ld bc, PartyMon2 - PartyMon1 ld de, $d018 call Function513e0 @@ -62095,7 +62092,7 @@ Function513cb: ; 513cb inc hl ld a, [CurPartyMon] ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [CurPartySpecies] ld c, a @@ -63254,10 +63251,10 @@ Function806ff: ; 806ff Function80715: ; 80715 ; Remaining slots in the current box. - ld a, $1 + ld a, 1 ; BANK(sBoxCount) call GetSRAMBank - ld hl, BoxCount - ld a, 20 + ld hl, sBoxCount + ld a, MONS_PER_BOX sub [hl] ld b, a call CloseSRAM @@ -63458,13 +63455,13 @@ Function819a7: ; 819a7 dec c jr nz, .asm_819d6 ld a, $94 - ld [EnemyMoveAnimation], a + ld [$c608], a ld a, $52 - ld [EnemyMoveEffect], a + ld [$c609], a ld a, $4a - ld [EnemyMovePower], a + ld [$c60a], a ld a, $29 - ld [EnemyMoveType], a + ld [$c60b], a pop af ld [rSVBK], a ret @@ -63766,13 +63763,13 @@ Function81bf4: ; 81bf4 add hl, hl ld de, OverworldMap add hl, de - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0004 call CopyBytes xor a ld [$cf64], a ld [$cf65], a - ld de, EnemyMoveAnimation + ld de, $c608 call Function81ea5 ret ; 81c18 @@ -63803,14 +63800,14 @@ Function81c33: ; 81c33 ld a, $5 ld [rSVBK], a ld hl, BGPals - ld de, EnemyMoveAnimation + ld de, $c608 ld c, $1 call Function81ee3 hlcoord 10, 2 - ld de, EnemyMoveAnimation + ld de, $c608 call Function81ca7 hlcoord 15, 2 - ld de, EnemyMovePower + ld de, $c60a call Function81ca7 ld a, $1 ld [hCGBPalUpdate], a @@ -63828,13 +63825,13 @@ Function81c33: ; 81c33 ld [hli], a ld a, $7f ld [hli], a - ld a, [EnemyMoveAnimation] + ld a, [$c608] ld [hli], a - ld a, [EnemyMoveEffect] + ld a, [$c609] ld [hli], a - ld a, [EnemyMovePower] + ld a, [$c60a] ld [hli], a - ld a, [EnemyMoveType] + ld a, [$c60b] ld [hli], a xor a ld [hli], a @@ -63843,10 +63840,10 @@ Function81c33: ; 81c33 ld hl, $cda9 call Function81f0c hlcoord 10, 2 - ld de, EnemyMoveAnimation + ld de, $c608 call Function81ca7 hlcoord 15, 2 - ld de, EnemyMovePower + ld de, $c60a call Function81ca7 ld a, $3 ld [$cf63], a @@ -63939,14 +63936,14 @@ Function81d0a: ; 81d0a .asm_81d1d xor a ld [$cf65], a - ld de, EnemyMoveAnimation + ld de, $c608 call Function81ea5 ret .asm_81d28 ld a, $1 ld [$cf65], a - ld de, EnemyMovePower + ld de, $c60a call Function81ea5 ret @@ -63958,7 +63955,7 @@ Function81d34: ; 81d34 ld a, [hl] and $40 jr nz, Function81d84 - ld hl, PlayerMoveType + ld hl, $c612 jr Function81d63 Function81d46: ; 81d46 @@ -63969,7 +63966,7 @@ Function81d46: ; 81d46 ld a, [hl] and $40 jr nz, Function81d84 - ld hl, PlayerMoveAccuracy + ld hl, $c613 jr Function81d63 Function81d58: ; 81d58 @@ -63977,7 +63974,7 @@ Function81d58: ; 81d58 ld a, [hl] and $40 jr nz, Function81d84 - ld hl, PlayerMovePP + ld hl, $c614 Function81d63: ; 81d63 ld a, [$ffa9] @@ -64150,21 +64147,21 @@ Function81e5e: ; 81e5e ; 81e67 Function81e67: ; 81e67 - ld a, [PlayerMoveType] + ld a, [$c612] and $1f ld e, a - ld a, [PlayerMoveAccuracy] + ld a, [$c613] and $7 sla a swap a or e ld e, a - ld a, [PlayerMoveAccuracy] + ld a, [$c613] and $18 sla a swap a ld d, a - ld a, [PlayerMovePP] + ld a, [$c614] and $1f sla a sla a @@ -64174,23 +64171,23 @@ Function81e67: ; 81e67 and a jr z, .asm_81e9c ld a, e - ld [EnemyMovePower], a + ld [$c60a], a ld a, d - ld [EnemyMoveType], a + ld [$c60b], a ret .asm_81e9c ld a, e - ld [EnemyMoveAnimation], a + ld [$c608], a ld a, d - ld [EnemyMoveEffect], a + ld [$c609], a ret ; 81ea5 Function81ea5: ; 81ea5 ld a, [de] and $1f - ld [PlayerMoveType], a + ld [$c612], a ld a, [de] and $e0 swap a @@ -64202,12 +64199,12 @@ Function81ea5: ; 81ea5 swap a srl a or b - ld [PlayerMoveAccuracy], a + ld [$c613], a ld a, [de] and $7c srl a srl a - ld [PlayerMovePP], a + ld [$c614], a ret ; 81eca @@ -64222,7 +64219,7 @@ Function81eca: ; 81eca add hl, de ld e, l ld d, h - ld hl, EnemyMoveAnimation + ld hl, $c608 ld bc, $0004 call CopyBytes ret @@ -64371,11 +64368,11 @@ Function81f5e: ; 81f5e ld b, $70 ld c, $5 ld hl, Sprites - ld de, PlayerMoveType + ld de, $c612 call .asm_81fb7 - ld de, PlayerMoveAccuracy + ld de, $c613 call .asm_81fb7 - ld de, PlayerMovePP + ld de, $c614 call .asm_81fb7 ret @@ -64523,10 +64520,10 @@ Function8220f: ; 8220f add hl, hl ld de, Unkn1Pals add hl, de - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0008 call CopyBytes - ld de, EnemyMoveAnimation + ld de, $c608 call Function81ea5 pop af ld [rSVBK], a @@ -64572,7 +64569,7 @@ Function82236: ; 82236 ld a, [$cf64] ld bc, $0008 call AddNTimes - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0008 call CopyBytes pop af @@ -64604,20 +64601,20 @@ Function822a3: ; 822a3 call AddNTimes ld e, l ld d, h - ld hl, EnemyMoveAnimation + ld hl, $c608 ld bc, $0008 call CopyBytes hlcoord 1, 0 - ld de, EnemyMoveAnimation + ld de, $c608 call Function81ca7 hlcoord 6, 0 - ld de, EnemyMovePower + ld de, $c60a call Function81ca7 hlcoord 11, 0 - ld de, EnemyMoveAccuracy + ld de, $c60c call Function81ca7 hlcoord 16, 0 - ld de, EnemyMoveEffectChance + ld de, $c60e call Function81ca7 pop af ld [rSVBK], a @@ -64675,7 +64672,7 @@ Function82309: ; 82309 ld [$cf66], a ld e, a ld d, $0 - ld hl, EnemyMoveAnimation + ld hl, $c608 add hl, de add hl, de ld e, l @@ -64691,7 +64688,7 @@ Function82339: ; 82338 ld a, [hl] and $40 jr nz, Function82387 - ld hl, PlayerMoveType + ld hl, $c612 jr Function82368 Function8234b: ; 8234b @@ -64702,7 +64699,7 @@ Function8234b: ; 8234b ld a, [hl] and $40 jr nz, Function82387 - ld hl, PlayerMoveAccuracy + ld hl, $c613 jr Function82368 Function8235d: ; 8235d @@ -64710,7 +64707,7 @@ Function8235d: ; 8235d ld a, [hl] and $40 jr nz, Function82387 - ld hl, PlayerMovePP + ld hl, $c614 Function82368: ; 82368 ld a, [$ffa9] @@ -64751,21 +64748,21 @@ Function8238c: ; 8238c ; 82391 Function82391: ; 82391 - ld a, [PlayerMoveType] + ld a, [$c612] and $1f ld e, a - ld a, [PlayerMoveAccuracy] + ld a, [$c613] and $7 sla a swap a or e ld e, a - ld a, [PlayerMoveAccuracy] + ld a, [$c613] and $18 sla a swap a ld d, a - ld a, [PlayerMovePP] + ld a, [$c614] and $1f sla a sla a @@ -64774,7 +64771,7 @@ Function82391: ; 82391 ld a, [$cf66] ld c, a ld b, $0 - ld hl, EnemyMoveAnimation + ld hl, $c608 add hl, bc add hl, bc ld a, e @@ -66036,13 +66033,13 @@ Unknown_84807: ; 84807 ; known jump sources: 844f2 (21:44f2) Function84817: ; 84817 (21:4817) xor a - ld [DefaultFlypoint], a ; $d002 - ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) + ld [$d002], a + ld hl, TileMap ld bc, $168 ld a, $7f call ByteFill call Function84a0e - ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) + ld hl, TileMap ld bc, $b4 ld a, $7f call ByteFill @@ -66051,9 +66048,9 @@ Function84817: ; 84817 (21:4817) hlcoord 4, 3 ld de, String_84865 call PlaceString - ld a, [MovementBuffer] ; $d007 - ld bc, $9 - ld hl, Box1Name ; $db75 + ld a, [$d007] + ld bc, 9 + ld hl, wBoxNames call AddNTimes ld d, h ld e, l @@ -66440,7 +66437,7 @@ Function864c3: ; 864c3 ld a, [$cf64] cp $6 jr nc, .asm_864fb - ld hl, EnemyMoveEffect + ld hl, $c609 ld bc, $0010 call AddNTimes ld a, [hl] @@ -66545,7 +66542,7 @@ Function8653f: ; 8653f pop bc push bc ld a, c - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, $000b call AddNTimes ld bc, $000a @@ -66701,7 +66698,7 @@ Function86692: ; 86692 ld a, [$cf64] cp $6 jr nc, .asm_866a7 - ld hl, EnemyMoveEffect + ld hl, $c609 ld bc, $0010 call AddNTimes ld a, [hl] @@ -66717,7 +66714,7 @@ Function86692: ; 86692 call WhiteBGMap pop hl call Function86748 - ld a, [EnemyMoveAnimation] + ld a, [$c608] cp 200 + 1 jr c, .asm_866c6 ld de, String_866fc @@ -66731,7 +66728,7 @@ Function86692: ; 86692 hlcoord 1, 2 call PlaceString hlcoord 2, 2 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0103 call PrintNum hlcoord 11, 2 @@ -66776,7 +66773,7 @@ Function8671c: ; 8671c ld a, [hl] and a jr z, .asm_86743 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0062 call CopyBytes call CloseSRAM @@ -79595,9 +79592,9 @@ Function8e8b1: ; 8e8b1 (23:68b1) ld a, $60 ld [hl], a ld a, c - ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct) + ld [$c608], a ld a, b - ld [EnemyMoveEffect], a ; $c609 + ld [$c609], a ret ; known jump sources: 8e898 (23:6898) @@ -91310,7 +91307,7 @@ Functioncc000: ; cc000 call PrintNum hlcoord 11, 10 - ld de, EnemyMonMaxHPHi + ld de, EnemyMonMaxHP call PrintNum ld hl, SwitchMonText @@ -93252,7 +93249,7 @@ Functione1190: ; e1190 xor a ld [hBGMapMode], a call DisableLCD - ld hl, EnemyMoveAnimation + ld hl, $c608 ld bc, $01e0 xor a call ByteFill @@ -96022,7 +96019,7 @@ Functione2c6e: ; e2c6e (38:6c6e) ld a, [hl] and a jr z, .asm_e2cee - ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) + ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames) ld bc, $b ld a, e call AddNTimes @@ -96485,9 +96482,9 @@ Functione2fd6: ; e2fd6 (38:6fd6) .asm_e3020 ld hl, PartySpecies ; $dcd8 call Functione3357 - ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) + ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames) call Functione3363 - ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) + ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT) call Functione3376 ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species) ld bc, $30 @@ -96530,7 +96527,7 @@ Functione307c: ; e307c (38:707c) ld hl, $cb2a add [hl] ld [CurPartyMon], a ; $d109 - ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) + ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames) ld a, [CurPartyMon] ; $d109 call GetNick ld a, $1 @@ -96817,14 +96814,14 @@ Functione32b0: ; e32b0 ld [CurPartyMon], a ld a, $1 call GetSRAMBank - ld hl, BoxSpecies + ld hl, sBoxSpecies call Functione3357 - ld hl, BoxMon1Nickname + ld hl, sBoxMonNicknames call Functione3363 - ld hl, BoxMon1OT + ld hl, sBoxMonOT call Functione3376 - ld hl, BoxMon1Species - ld bc, $0020 + ld hl, sBoxMons + ld bc, sBoxMon1End - sBoxMon1 call Functione3389 call CloseSRAM callba Function5088b @@ -96854,9 +96851,9 @@ Functione3316: ; e3316 ld [CurPartyMon], a ld hl, PartySpecies call Functione3357 - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call Functione3363 - ld hl, PartyMon1OT + ld hl, PartyMonOT call Functione3376 ld hl, PartyMon1Species ld bc, PartyMon2 - PartyMon1 @@ -97088,8 +97085,8 @@ Functione3619: ; e3619 ; known jump sources: e36e7 (38:76e7), e375d (38:775d), e376e (38:776e) Functione3626: ; e3626 (38:7626) - ld bc, $9 - ld hl, Box1Name ; $db75 + ld bc, 9 + ld hl, wBoxNames call AddNTimes ld d, h ld e, l @@ -97122,7 +97119,10 @@ String_e3663: ; e3663 ; e3668 String_e3668: ; e3668 - db "/20@" + db "/" + db "0" + MONS_PER_BOX / 10 + db "0" + MONS_PER_BOX % 10 + db "@" ; e366c ; known jump sources: e3717 (38:7717) @@ -101180,7 +101180,7 @@ Functionfbb32: ; fbb32 ld [de], a inc de ld a, [CurPartyMon] - ld hl, PartyMon1OT + ld hl, PartyMonOT call SkipNames call CopyBytes ld a, $3 @@ -101686,7 +101686,7 @@ Functionfcc63: ; fcc63 call Functionfcde8 call Functionfcdf4 - ld hl, PartyMon1OT + ld hl, PartyMonOT ld bc, $000b call Functionfcdd7 ld de, $c6f2 @@ -101756,7 +101756,7 @@ Functionfcc63: ; fcc63 ld de, $c70e call Functionfcdf4 - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, PKMN_NAME_LENGTH call Functionfcdde ld hl, $c70e @@ -101771,7 +101771,7 @@ Functionfcc63: ; fcc63 ld de, $c719 call Functionfcdf4 - ld hl, PartyMon1OT + ld hl, PartyMonOT ld bc, $000b call Functionfcdde ld hl, $c724 @@ -104596,10 +104596,10 @@ Function1020ea: ; 1020ea bit 2, [hl] jr nz, .asm_102110 call Function10218d - ld hl, EnemyMoveAnimation + ld hl, $c608 bit 4, [hl] jr z, .asm_102110 - ld hl, EnemyMoveAnimation + ld hl, $c608 bit 2, [hl] jr nz, .asm_102110 call Function102112 @@ -104619,7 +104619,7 @@ Function102112: ; 102112 ld c, $28 .asm_10211c push hl - ld de, PlayerMoveAnimation + ld de, $c60f ld b, $1f .asm_102122 ld a, [de] @@ -104678,7 +104678,7 @@ Function102142: ; 102142 ; 102180 Function102180: ; 102180 - ld hl, EnemyMoveEffect + ld hl, $c609 ld de, StringBuffer2 ld bc, $000b call CopyBytes @@ -104687,18 +104687,18 @@ Function102180: ; 102180 Function10218d: ; 10218d ld hl, $dc00 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0026 ld a, $5 call FarCopyWRAM - ld de, EnemyMoveEffect + ld de, $c609 ret ; 10219f Function10219f: ; 10219f call FadeToMenu call Function10218d - ld de, EnemyMoveEffect + ld de, $c609 callba Function8ac4e call Functiona36 call PlayClickSFX @@ -104709,7 +104709,7 @@ Function10219f: ; 10219f Function1021b8: ; 1021b8 call FadeToMenu call Function10218d - ld de, PlayerMoveAnimation + ld de, $c60f callba Function8ac70 ld a, c ld [StringBuffer1], a @@ -107635,45 +107635,37 @@ DisplayUsedMoveText: ; 105db0 UsedMoveText: ; 105db9 - ; this is a stream of text and asm from 105db9 to 105ef6 -; print actor name text_jump _ActorNameText start_asm -; ???? ld a, [hBattleTurn] and a jr nz, .start -; append used move list - ld a, [PlayerMoveAnimation] + ld a, [wPlayerMoveStruct + MOVE_ANIM] call UpdateUsedMoves .start -; get address for last move - ld a, $13 ; last move + ld a, BATTLE_VARS_LAST_MOVE call _GetBattleVar ld d, h ld e, l -; get address for last counter move - ld a, $11 + ld a, BATTLE_VARS_LAST_COUNTER_MOVE call _GetBattleVar -; get move animation (id) - ld a, $c ; move animation + ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar ld [$d265], a -; check actor ???? push hl callba Function34548 pop hl jr nz, .grammar -; update last move + ; update last move ld a, [$d265] ld [hl], a ld [de], a @@ -107685,13 +107677,13 @@ UsedMoveText: ; 105db9 ; everything except 'instead' made redundant in localization -; check obedience + ; check obedience ld a, [AlreadyDisobeyed] and a ld hl, UsedMove2Text ret nz -; check move grammar + ; check move grammar ld a, [$d265] cp $3 ld hl, UsedMove2Text @@ -111529,33 +111521,33 @@ Function119451: ; 119451 (46:5451) Function119471: ; 119471 (46:5471) push af ld a, [hli] - ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct) + ld [$c608], a ld a, [hli] - ld [EnemyMoveType], a ; $c60b + ld [$c60b], a ld a, [hli] - ld [EnemyMoveEffect], a ; $c609 + ld [$c609], a ld a, [hli] - ld [EnemyMovePower], a ; $c60a + ld [$c60a], a ld a, [hli] - ld [EnemyMoveAccuracy], a ; $c60c + ld [$c60c], a ld a, [hli] - ld [EnemyMovePP], a ; $c60d + ld [$c60d], a ; $c60d push hl - ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct) + ld a, [$c608] cp $ff jr z, .asm_1194a7 - ld a, [EnemyMovePower] ; $c60a + ld a, [$c60a] cp $ff jr z, .asm_1194a7 - ld a, [EnemyMoveEffect] ; $c609 + ld a, [$c609] cp $ff jr nz, .asm_1194a7 call Function119584 jr c, .asm_11950c jr .asm_1194f0 .asm_1194a7 - ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) - ld de, EnemyMoveType ; $c60b + ld hl, $c608 + ld de, $c60b ld c, $3 .asm_1194af ld a, [de] @@ -111571,7 +111563,7 @@ Function119471: ; 119471 (46:5471) .asm_1194bc ld c, $3 ld hl, $cd49 - ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld de, $c608 .asm_1194c4 ld a, [de] inc de @@ -111588,7 +111580,7 @@ Function119471: ; 119471 (46:5471) .asm_1194d5 ld c, $3 ld hl, $cd49 - ld de, EnemyMoveType ; $c60b + ld de, $c60b .asm_1194dd ld a, [de] inc de @@ -111609,7 +111601,7 @@ Function119471: ; 119471 (46:5471) .asm_1194f3 ld c, $3 ld hl, $cd49 - ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld de, $c608 .asm_1194fb ld a, [de] inc de @@ -111628,9 +111620,9 @@ Function119471: ; 119471 (46:5471) ld a, $1 ld [$cd50], a ld a, l - ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct) + ld [$c608], a ld a, h - ld [EnemyMoveEffect], a ; $c609 + ld [$c609], a ld de, $cd69 ld c, $10 ld b, $0 @@ -111710,9 +111702,9 @@ Function119471: ; 119471 (46:5471) ; known jump sources: 1194a0 (46:54a0) Function119584: ; 119584 (46:5584) - ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct) + ld a, [$c608] ld b, a - ld a, [EnemyMoveType] ; $c60b + ld a, [$c60b] ld c, a cp b jr c, .asm_11959c @@ -111729,9 +111721,9 @@ Function119584: ; 119584 (46:5584) cp b jr c, .asm_119595 .asm_1195a2 - ld a, [EnemyMovePower] ; $c60a + ld a, [$c60a] ld b, a - ld a, [EnemyMovePP] ; $c60d + ld a, [$c60d] ; $c60d ld c, a cp b jr c, .asm_1195ba @@ -111776,9 +111768,9 @@ Function1195c4: ; 1195c4 (46:55c4) call CopyBytes xor a ld [de], a - ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct) + ld a, [$c608] ld l, a - ld a, [EnemyMoveEffect] ; $c609 + ld a, [$c609] ld h, a ld de, $cd69 ld bc, $10 @@ -111950,11 +111942,11 @@ Function119d93: ; 119d93 (46:5d93) ld a, $1 ld [rSVBK], a ; $ff00+$70 ld a, [$cd4f] - ld c, $a + ld c, 10 call SimpleMultiply ld hl, $cd50 ld [hl], a - ld bc, $30 + ld bc, PartyMon2 - PartyMon1 ld de, PartyMon1Level ; $dcfe ld a, [PartyCount] ; $dcd7 .asm_119daf @@ -111992,28 +111984,28 @@ Function119dd1: ; 119dd1 (46:5dd1) ld a, [rSVBK] ; $ff00+$70 push af ld a, [$cd4f] - cp $7 + cp 70 / 10 jr nc, .asm_119e08 ld a, $1 ld [rSVBK], a ; $ff00+$70 ld hl, PartyMon1Level ; $dcfe - ld bc, $30 + ld bc, PartyMon2 - PartyMon1 ld de, PartySpecies ; $dcd8 ld a, [PartyCount] ; $dcd7 .asm_119deb push af ld a, [de] - cp $96 + cp MEWTWO jr z, .asm_119dfd - cp $97 + cp MEW jr z, .asm_119dfd - cp $f9 + cp LUGIA jr c, .asm_119e02 - cp $fc + cp NUM_POKEMON + 1 jr nc, .asm_119e02 .asm_119dfd ld a, [hl] - cp $46 + cp 70 jr c, .asm_119e0d .asm_119e02 add hl, bc @@ -112033,7 +112025,7 @@ Function119dd1: ; 119dd1 (46:5dd1) call GetPokemonName ld hl, StringBuffer1 ; $d073 ld de, $cd49 - ld bc, $b + ld bc, PKMN_NAME_LENGTH call CopyBytes ld a, $a ld [$cf66], a @@ -112603,13 +112595,13 @@ Function11b5e8: ; 11b5e8 ld a, $0 call GetSRAMBank ld hl, $d4ba - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0004 call CopyBytes call CloseSRAM ld a, $5 call GetSRAMBank - ld hl, EnemyMoveAnimation + ld hl, $c608 ld de, $b08c ld bc, $0004 call CopyBytes @@ -112663,7 +112655,7 @@ Function11b65a: ; 11b65a INCBIN "baserom.gbc",$11b669,$11b7e5 - $11b669 Function11b7e5: ; 11b7e5 - ld a, [EnemyMovePP] + ld a, [$c60d] ld [PlayerLightScreenCount], a ld [CurPartySpecies], a ld a, [$cd81] @@ -112674,16 +112666,16 @@ Function11b7e5: ; 11b7e5 call CopyBytes ld a, $50 ld [de], a - ld a, [PlayerMoveAccuracy] + ld a, [$c613] ld [$c731], a - ld a, [PlayerMovePP] + ld a, [$c614] ld [$c732], a ld hl, $c622 ld a, [hli] ld [$c72f], a ld a, [hl] ld [$c730], a - ld bc, EnemyMovePP + ld bc, $c60d callba GetCaughtGender ld a, c ld [$c733], a @@ -112833,7 +112825,7 @@ Function11b93b: ; 11b93b xor a ld [$a800], a ld hl, $a823 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $008f call CopyBytes call CloseSRAM @@ -112902,7 +112894,7 @@ Function11b98f: ; 11b98f ld h, a ld bc, PartyMon2 - PartyMon1 call CopyBytes - ld hl, PartyMon1OT + ld hl, PartyMonOT ld bc, $000b ld a, [$cd2a] .asm_11b9d8 @@ -112920,7 +112912,7 @@ Function11b98f: ; 11b98f call CopyBytes ld a, $50 ld [de], a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames ld bc, $000b ld a, [$cd2a] .asm_11b9f9 @@ -113199,7 +113191,7 @@ Function11c0c6: ; 11c0c6 .asm_11c123 sub e ld [$cf64], a - ld de, EnemyMoveAnimation + ld de, $c608 .asm_11c12a ld a, [de] cp $50 @@ -113226,7 +113218,7 @@ Function11c0c6: ; 11c0c6 Function11c14a: ; 11c14a ld c, $0 - ld hl, EnemyMoveAnimation + ld hl, $c608 .asm_11c14f ld a, [hli] cp $50 @@ -113241,7 +113233,7 @@ Function11c156: ; 11c156 ld a, $1 ld [rSVBK], a ld a, $50 - ld hl, EnemyMoveAnimation + ld hl, $c608 ld bc, $000b call ByteFill ld a, d @@ -113270,9 +113262,9 @@ Function11c156: ; 11c156 add hl, bc ld bc, $0005 .asm_11c18f - ld de, EnemyMoveAnimation + ld de, $c608 call CopyBytes - ld de, EnemyMoveAnimation + ld de, $c608 pop af ld [rSVBK], a ret @@ -116110,7 +116102,7 @@ Function170121: ; 170121 ld a, $5 call GetSRAMBank ld hl, $a948 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $00f6 call CopyBytes call CloseSRAM @@ -116629,21 +116621,21 @@ Function170923: ; 170923 Function17093c: ; 17093c (5c:493c) xor a ld [ScriptVar], a ; $c2dd - ld a, $81 + ld a, EGG_TICKET ld [CurItem], a ; $d106 ld hl, NumItems ; $d892 (aliases: TMsHMsEnd) call CheckItem ret nc ld a, [PartyCount] ; $dcd7 - ld b, $0 + ld b, 0 ld c, a ld hl, PartySpecies ; $dcd8 .asm_170955 ld a, [hli] - cp $fd + cp EGG jr nz, .asm_17099f push hl - ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) + ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT) ld de, $6 ld a, b and a @@ -116653,7 +116645,7 @@ Function17093c: ; 17093c (5c:493c) dec a jr nz, .asm_170965 .asm_170969 - ld de, $49a4 + ld de, String_1709a4 ld a, $6 .asm_17096e push af @@ -116673,7 +116665,7 @@ Function17093c: ; 17093c (5c:493c) ld [hli], a ld [hli], a pop hl - ld a, $81 + ld a, EGG_TICKET ld [CurItem], a ; $d106 ld a, $1 ld [$d10c], a @@ -116684,6 +116676,7 @@ Function17093c: ; 17093c (5c:493c) ld a, $1 ld [ScriptVar], a ; $c2dd ret + .asm_17099d pop af pop hl @@ -116694,7 +116687,8 @@ Function17093c: ; 17093c (5c:493c) ret ; 1709a4 (5c:49a4) -INCBIN "baserom.gbc",$1709a4,$1709aa - $1709a4 +String_1709a4: ; 1709a4 + db "なぞナゾ@@" ; no known jump sources Function1709aa: ; 1709aa (5c:49aa) @@ -116814,7 +116808,7 @@ Function170b16: ; 170b16 (5c:4b16) call GetSRAMBank ld a, [$b2fb] call CloseSRAM - ld c, $a + ld c, 10 call SimpleDivide ld a, b ld [$cd4f], a @@ -117040,10 +117034,10 @@ Function171ac9: ; 171ac9 (5c:5ac9) ; no known jump sources Function171ad7: ; 171ad7 (5c:5ad7) xor a - ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld hl, $c608 ld bc, $66 call ByteFill - ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld de, $c608 ld a, $c call Function3e32 jp Function171c66 @@ -117073,7 +117067,7 @@ Function171aec: ; 171aec (5c:5aec) jr nz, .asm_171b01 hlcoord 2, 7 ld a, $3 - ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) + ld de, $c608 .asm_171b1b push af push hl @@ -117675,7 +117669,7 @@ Function17d1f1: ; 17d1f1 dec a ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld a, $2d + ld a, PREDEF_GET_UNOWN_LETTER call Predef callab Functionfba18 ld a, [$def4] @@ -117855,7 +117849,7 @@ Function17d370: ; 17d370 callba Function104061 call DisableLCD ld hl, $8ee0 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0010 call CopyBytes ld a, $1 @@ -117868,7 +117862,7 @@ Function17d370: ; 17d370 ld hl, $97f0 ld bc, $0010 call ByteFill - ld hl, EnemyMoveAnimation + ld hl, $c608 ld de, $8ee0 ld bc, $0010 call CopyBytes @@ -117931,7 +117925,7 @@ Function17d60b: ; 17d60b ld a, $5 call GetSRAMBank ld hl, $b1d3 - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0020 call CopyBytes ld a, [$b1b1] @@ -117966,7 +117960,7 @@ Function17d60b: ; 17d60b ld [$cd49], a push hl push de - ld hl, EnemyMoveAnimation + ld hl, $c608 ld e, b ld d, $0 add hl, de @@ -118210,7 +118204,7 @@ Function17f0f8: ; 17f0f8 ld a, [$cd55] ld d, a add hl, de - ld de, EnemyMoveAnimation + ld de, $c608 ld a, [$cd56] ld c, a ld b, $0 @@ -118218,7 +118212,7 @@ Function17f0f8: ; 17f0f8 ld a, $50 ld [de], a pop hl - ld de, EnemyMoveAnimation + ld de, $c608 call PlaceString ld a, c ld [$cd52], a @@ -118310,10 +118304,10 @@ Function17f181: ; 17f181 add hl, de ld a, [hl] ld c, a - ld de, EnemyMoveAnimation + ld de, $c608 callba Function48c63 pop hl - ld de, EnemyMoveAnimation + ld de, $c608 call PlaceString ld a, c ld [$cd52], a @@ -118545,13 +118539,13 @@ Function17f2ff: ; 17f2ff ld a, $1 ld [rSVBK], a ld hl, PlayerName - ld de, EnemyMoveAnimation + ld de, $c608 ld bc, $0006 call CopyBytes ld a, $4 ld [rSVBK], a pop hl - ld de, EnemyMoveAnimation + ld de, $c608 call PlaceString ld a, c ld [$cd52], a @@ -118592,10 +118586,10 @@ Function17f334: ; 17f334 .asm_17f35d ld c, a call CloseSRAM - ld de, EnemyMoveAnimation + ld de, $c608 callba Function48c63 pop hl - ld de, EnemyMoveAnimation + ld de, $c608 call PlaceString ld a, c ld [$cd52], a @@ -118809,7 +118803,7 @@ Function17f44f: ; 17f44f ld l, a ld a, [$cd56] ld h, a - ld de, EnemyMoveAnimation + ld de, $c608 ld a, [$cd57] ld c, a ld b, $0 @@ -118827,7 +118821,7 @@ Function17f44f: ; 17f44f call GetSRAMBank .asm_17f4b7 - ld de, EnemyMoveAnimation + ld de, $c608 pop hl push hl ld a, [$cd57] @@ -119457,7 +119451,7 @@ Function1dc381: ; 1dc381 ld a, [CurPartySpecies] ld [$d265], a ld [CurSpecies], a - ld hl, PartyMon1Nickname + ld hl, PartyMonNicknames call Function1dc50e hlcoord 8, 4 call PlaceString @@ -119477,7 +119471,7 @@ Function1dc381: ; 1dc381 hlcoord 1, 9 ld de, String1dc550 call PlaceString - ld hl, PartyMon1OT + ld hl, PartyMonOT call Function1dc50e hlcoord 4, 9 call PlaceString diff --git a/wram.asm b/wram.asm index eb572b201..77108fc6b 100644 --- a/wram.asm +++ b/wram.asm @@ -1,51 +1,72 @@ INCLUDE "includes.asm" +flag_array: MACRO + ds ((\1) + 7) / 8 +ENDM -party_struct: MACRO - -\1Species:: db -\1Item:: db - -\1Moves:: ds NUM_MOVES - -\1ID:: dw -\1Exp:: ds 3 ; Big endian +box_struct_length EQU 32 +box_struct: MACRO +\1Species:: db +\1Item:: db +\1Moves:: ds NUM_MOVES +\1ID:: dw +\1Exp:: ds 3 \1StatExp:: -\1HPExp:: dw -\1AtkExp:: dw -\1DefExp:: dw -\1SpdExp:: dw -\1SpclExp:: dw - -\1DVs:: -\1AtkDefDV:: db -\1SpdSpcDV:: db - -\1PP:: ds NUM_MOVES - -\1Happiness:: db -\1PokerusStatus:: db - +\1HPExp:: dw +\1AtkExp:: dw +\1DefExp:: dw +\1SpdExp:: dw +\1SpcExp:: dw +\1DVs:: ds 2 +\1PP:: ds NUM_MOVES +\1Happiness:: db +\1PokerusStatus:: db \1CaughtData:: \1CaughtTime:: \1CaughtLevel:: db \1CaughtGender:: \1CaughtLocation:: db +\1Level:: db +\1End:: +ENDM -\1Level:: db - -\1Status:: db -\1Unused:: db - -; Stats are big endian. -\1HP:: dw -\1MaxHP:: dw -\1Attack:: dw -\1Defense:: dw -\1Speed:: dw -\1SpclAtk:: dw -\1SpclDef:: dw +party_struct: MACRO + box_struct \1 +\1Status:: db +\1Unused:: db +\1HP:: dw +\1MaxHP:: dw +\1Stats:: ; big endian +\1Attack:: dw +\1Defense:: dw +\1Speed:: dw +\1SpclAtk:: dw +\1SpclDef:: dw +\1StatsEnd:: +ENDM +battle_struct: MACRO +\1Species:: db +\1Item:: db +\1Moves:: ds NUM_MOVES +\1MovesEnd:: +\1DVs:: ds 2 +\1PP:: ds NUM_MOVES +\1Happiness:: db +\1Level:: db +\1Status:: ds 2 +\1HP:: dw +\1MaxHP:: dw +\1Stats:: ; big endian +\1Attack:: dw +\1Defense:: dw +\1Speed:: dw +\1SpclAtk:: dw +\1SpclDef:: dw +\1StatsEnd:: +\1Type:: +\1Type1:: db +\1Type2:: db ENDM @@ -422,100 +443,24 @@ Sprites:: ; c400 ; bit 4: pal # (non-cgb) ; bit 3: vram bank (cgb only) ; bit 2-0: pal # (cgb only) - ds 160 + ds 4 * 40 SpritesEnd:: TileMap:: ; c4a0 ; 20x18 grid of 8x8 tiles - ds 360 + ds SCREEN_WIDTH * SCREEN_HEIGHT TileMapEnd:: -SECTION "BattleMons",WRAM0[$c608] -EnemyMoveStruct:: -EnemyMoveAnimation:: ; c608 - ds 1 -EnemyMoveEffect:: ; c609 - ds 1 -EnemyMovePower:: ; c60a - ds 1 -EnemyMoveType:: ; c60b - ds 1 -EnemyMoveAccuracy:: ; c60c - ds 1 -EnemyMovePP:: ; c60d - ds 1 -EnemyMoveEffectChance:: ; c60e - ds 1 +wBattle:: -PlayerMoveStruct:: -PlayerMoveAnimation:: ; c60f - ds 1 -PlayerMoveEffect:: ; c610 - ds 1 -PlayerMovePower:: ; c611 - ds 1 -PlayerMoveType:: ; c612 - ds 1 -PlayerMoveAccuracy:: ; c613 - ds 1 -PlayerMovePP:: ; c614 - ds 1 -PlayerMoveEffectChance:: ; c615 - ds 1 +wEnemyMoveStruct:: ds MOVE_LENGTH ; c608 +wPlayerMoveStruct:: ds MOVE_LENGTH ; c60f -EnemyMonNick:: ; c616 - ds 11 -BattleMonNick:: ; c621 - ds 11 - - -BattleMonSpecies:: ; c62c - ds 1 -BattleMonItem:: ; c62d - ds 1 - -BattleMonMoves:: ; c62e - ds NUM_MOVES - -BattleMonDVs:: -BattleMonAtkDefDV:: ; c632 - ds 1 -BattleMonSpdSpclDV:: ; c633 - ds 1 - -BattleMonPP:: ; c634 - ds NUM_MOVES - -BattleMonHappiness:: ; c638 - ds 1 -BattleMonLevel:: ; c639 - ds 1 - -BattleMonStatus:: ; c63a - ds 2 - -BattleMonHP:: ; c63c - ds 2 -BattleMonMaxHP:: ; c63e - ds 2 - -BattleMonAtk:: ; c640 - ds 2 -BattleMonDef:: ; c642 - ds 2 -BattleMonSpd:: ; c644 - ds 2 -BattleMonSpclAtk:: ; c646 - ds 2 -BattleMonSpclDef:: ; c648 - ds 2 - -BattleMonType1:: ; c64a - ds 1 -BattleMonType2:: ; c64b - ds 1 +EnemyMonNick:: ds 11 ; c616 +BattleMonNick:: ds 11 ; c621 +BattleMon:: battle_struct BattleMon ; c62c ds 10 OTName:: ; c656 @@ -812,7 +757,10 @@ EffectFailed:: ; c70d FailedMessage:: ; c70e ds 1 - ds 3 + ds 1 + +wPlayerIsSwitching:: ds 1 ; c710 +wEnemyIsSwitching:: ds 1 ; c711 PlayerUsedMoves:: ; c712 ; add a move that has been used once by the player @@ -826,11 +774,14 @@ LastPlayerMove:: ; c71b LastEnemyMove:: ; c71c ds 1 + ds 23 -SECTION "battle",WRAM0[$c734] BattleEnded:: ; c734 ds 1 + ds 12 +wBattleEnd:: +; c741 SECTION "overworldmap",WRAM0[$c800] OverworldMap:: ; c800 @@ -868,7 +819,7 @@ AttrMap:: ; cdd9 ; read horizontally from the top row ; bit 3: vram bank ; bit 0-2: palette id - ds 360 + ds SCREEN_WIDTH * SCREEN_HEIGHT ds 30 @@ -1071,7 +1022,6 @@ CurPartyMon:: ; d109 TempMon:: party_struct TempMon -TempMonEnd:: ; d13e ds 3 @@ -1214,7 +1164,7 @@ TilesetPalettes:: ; d1e6 ds 2 EvolvableFlags:: ; d1e8 - ds 1 + flag_array PARTY_LENGTH ds 1 @@ -1229,76 +1179,13 @@ SECTION "BattleMons2",WRAMX[$d1fa],BANK[1] LinkBattleRNs:: ; d1fa ds 10 -TempEnemyMonSpecies:: ; d204 - ds 1 -TempBattleMonSpecies:: ; d205 - ds 1 - -EnemyMon:: -EnemyMonSpecies:: ; d206 - ds 1 -EnemyMonItem:: ; d207 - ds 1 - -EnemyMonMoves:: ; d208 - ds NUM_MOVES -EnemyMonMovesEnd:: - -EnemyMonDVs:: -EnemyMonAtkDefDV:: ; d20c - ds 1 -EnemyMonSpdSpclDV:: ; d20d - ds 1 - -EnemyMonPP:: ; d20e - ds NUM_MOVES - -EnemyMonHappiness:: ; d212 - ds 1 -EnemyMonLevel:: ; d213 - ds 1 - -EnemyMonStatus:: ; d214 - ds 2 - -EnemyMonHP:: -EnemyMonHPHi:: ; d216 - ds 1 -EnemyMonHPLo:: ; d217 - ds 1 - -EnemyMonMaxHP:: -EnemyMonMaxHPHi:: ; d218 - ds 1 -EnemyMonMaxHPLo:: ; d219 - ds 1 - -EnemyMonStats:: -EnemyMonAtk:: ; d21a - ds 2 -EnemyMonDef:: ; d21c - ds 2 -EnemyMonSpd:: ; d21e - ds 2 -EnemyMonSpclAtk:: ; d220 - ds 2 -EnemyMonSpclDef:: ; d222 - ds 2 -EnemyMonStatsEnd:: - -EnemyMonType1:: ; d224 - ds 1 -EnemyMonType2:: ; d225 - ds 1 - -EnemyMonBaseStats:: ; d226 - ds 5 - -EnemyMonCatchRate:: ; d22b - ds 1 -EnemyMonBaseExp:: ; d22c - ds 1 +TempEnemyMonSpecies:: ds 1 ; d204 +TempBattleMonSpecies:: ds 1 ; d205 +EnemyMon:: battle_struct EnemyMon ; d206 +EnemyMonBaseStats:: ds 5 ; d226 +EnemyMonCatchRate:: db ; d22b +EnemyMonBaseExp:: db ; d22c EnemyMonEnd:: @@ -1402,57 +1289,23 @@ SECTION "TimeOfDay",WRAMX[$d269],BANK[1] TimeOfDay:: ; d269 ds 1 + SECTION "OTParty",WRAMX[$d280],BANK[1] -OTPartyCount:: ; d280 - ds 1 ; number of Pokémon in party -OTPartySpecies:: ; d281 - ds 6 ; species of each Pokémon in party -; d287 - ds 1 ; any empty slots including the 7th must be FF - ; or the routine will keep going +OTPartyCount:: ds 1 ; d280 +OTPartySpecies:: ds 6 ; d281 +OTPartyEnd:: ds 1 -OTPartyMon1:: ; d288 - party_struct OTPartyMon1 -OTPartyMon2:: ; d2b8 - party_struct OTPartyMon2 -OTPartyMon3:: ; d2e8 - party_struct OTPartyMon3 -OTPartyMon4:: ; d318 - party_struct OTPartyMon4 -OTPartyMon5:: ; d348 - party_struct OTPartyMon5 -OTPartyMon6:: ; d378 - party_struct OTPartyMon6 +OTPartyMon1:: party_struct OTPartyMon1 ; d288 +OTPartyMon2:: party_struct OTPartyMon2 ; d2b8 +OTPartyMon3:: party_struct OTPartyMon3 ; d2e8 +OTPartyMon4:: party_struct OTPartyMon4 ; d318 +OTPartyMon5:: party_struct OTPartyMon5 ; d348 +OTPartyMon6:: party_struct OTPartyMon6 ; d378 +OTPartyMonOT:: ds 11 * 6 ; d3a8 +OTPartyMonNicknames:: ds 11 * 6 ; d3ea -OTPartyMonOT:: -OTPartyMon1OT:: ; d3a8 - ds 11 -OTPartyMon2OT:: ; d3b3 - ds 11 -OTPartyMon3OT:: ; d3be - ds 11 -OTPartyMon4OT:: ; d3c9 - ds 11 -OTPartyMon5OT:: ; d3d4 - ds 11 -OTPartyMon6OT:: ; d3df - ds 11 - -OTPartyMonNicknames:: -OTPartyMon1Nickname:: ; d3ea - ds 11 -OTPartyMon2Nickname:: ; d3f5 - ds 11 -OTPartyMon3Nickname:: ; d400 - ds 11 -OTPartyMon4Nickname:: ; d40b - ds 11 -OTPartyMon5Nickname:: ; d416 - ds 11 -OTPartyMon6Nickname:: ; d421 - ds 11 SECTION "Map Events", WRAMX[$d432], BANK[1] MapStatus:: ; d432 @@ -1789,7 +1642,7 @@ EventFlags:: ; da72 ;PoliceAtElmsLabEvent:: ; db52 ;SalesmanMahoganyTownEvent:: ; db5c ;RedGyaradosEvent:: ; db5c - ds 250 + flag_array 2000 ; db6c SECTION "Boxes",WRAMX[$db72],BANK[1] @@ -1800,35 +1653,7 @@ wCurBox:: ; db72 ds 2 ; 8 chars + $50 -wBoxNames:: -Box1Name:: ; db75 - ds 9 -Box2Name:: ; db7e - ds 9 -Box3Name:: ; db87 - ds 9 -Box4Name:: ; db90 - ds 9 -Box5Name:: ; db99 - ds 9 -Box6Name:: ; dba2 - ds 9 -Box7Name:: ; dbab - ds 9 -Box8Name:: ; dbb4 - ds 9 -Box9Name:: ; dbbd - ds 9 -Box10Name:: ; dbc6 - ds 9 -Box11Name:: ; dbcf - ds 9 -Box12Name:: ; dbd8 - ds 9 -Box13Name:: ; dbe1 - ds 9 -Box14Name:: ; dbea - ds 9 +wBoxNames:: ds 9 * NUM_BOXES ; db75 SECTION "bike", WRAMX[$dbf5],BANK[1] BikeFlags:: ; dbf5 @@ -1867,7 +1692,7 @@ PoisonStepCount:: ; dc74 SECTION "Visited Spawn Points", WRAMX[$dca5],BANK[1] VisitedSpawns:: ; dca5 - ds 4 + flag_array 27 SECTION "BackupMapInfo", WRAMX[$dcad],BANK[1] @@ -1901,155 +1726,87 @@ PartyEnd:: ; dcde ds 1 ; legacy functions don't check PartyCount PartyMons:: -PartyMon1:: ; dcdf - party_struct PartyMon1 -PartyMon2:: ; dd0f - party_struct PartyMon2 -PartyMon3:: ; dd3f - party_struct PartyMon3 -PartyMon4:: ; dd6f - party_struct PartyMon4 -PartyMon5:: ; dd9f - party_struct PartyMon5 -PartyMon6:: ; ddcf - party_struct PartyMon6 +PartyMon1:: party_struct PartyMon1 ; dcdf +PartyMon2:: party_struct PartyMon2 ; dd0f +PartyMon3:: party_struct PartyMon3 ; dd3f +PartyMon4:: party_struct PartyMon4 ; dd6f +PartyMon5:: party_struct PartyMon5 ; dd9f +PartyMon6:: party_struct PartyMon6 ; ddcf -PartyMonOT:: -PartyMon1OT:: ; ddff - ds 11 -PartyMon2OT:: ; de0a - ds 11 -PartyMon3OT:: ; de15 - ds 11 -PartyMon4OT:: ; de20 - ds 11 -PartyMon5OT:: ; de2b - ds 11 -PartyMon6OT:: ; de36 - ds 11 +PartyMonOT:: ds 11 * 6 ; ddff -PartyMonNicknames:: -PartyMon1Nickname:: ; de41 - ds 11 -PartyMon2Nickname:: ; de4c - ds 11 -PartyMon3Nickname:: ; de57 - ds 11 -PartyMon4Nickname:: ; de62 - ds 11 -PartyMon5Nickname:: ; de6d - ds 11 -PartyMon6Nickname:: ; de78 - ds 11 +PartyMonNicknames:: ds 11 * 6 ; de41 PartyMonNicknamesEnd:: -SECTION "Pokedex",WRAMX[$de99],BANK[1] + +SECTION "Pokedex", WRAMX[$de99], BANK[1] + PokedexCaught:: ; de99 - ds 32 + flag_array 251 EndPokedexCaught:: + PokedexSeen:: ; deb9 - ds 32 + flag_array 251 EndPokedexSeen:: + UnownDex:: ; ded9 ds 26 UnlockedUnowns:: ; def3 ds 1 -SECTION "Breeding",WRAMX[$def5],BANK[1] -DaycareMan:: ; def5 + ds 1 + +wDaycareMan:: ; def5 ; bit 7: active ; bit 6: monsters are compatible ; bit 5: egg ready ; bit 0: monster 1 in daycare ds 1 -BreedMon1:: -BreedMon1Nick:: ; def6 - ds 11 -BreedMon1OT:: ; df01 - ds 11 -BreedMon1Stats:: -BreedMon1Species:: ; df0c - ds 1 - ds 31 +wBreedMon1:: +wBreedMon1Nick:: ds PKMN_NAME_LENGTH ; def6 +wBreedMon1OT:: ds NAME_LENGTH ; df01 +wBreedMon1Stats:: box_struct wBreedMon1 ; df0c -DaycareLady:: ; df2c +wDaycareLady:: ; df2c ; bit 7: active ; bit 0: monster 2 in daycare ds 1 -StepsToEgg:: ; df2d +wStepsToEgg:: ; df2d ds 1 -DittoInDaycare:: ; df2e +wDittoInDaycare:: ; df2e ; z: yes ; nz: no ds 1 -BreedMon2:: -BreedMon2Nick:: ; df2f - ds 11 -BreedMon2OT:: ; df3a - ds 11 -BreedMon2Stats:: -BreedMon2Species:: ; df45 - ds 1 - ds 31 +wBreedMon2:: +wBreedMon2Nick:: ds PKMN_NAME_LENGTH ; df2f +wBreedMon2OT:: ds NAME_LENGTH ; df3a +wBreedMon2Stats:: box_struct wBreedMon2 ; df45 -EggNick:: ; df65 -; EGG@ - ds 11 -EggOT:: ; df70 - ds 11 -EggMon:: -EggSpecies:: ; df7b - ds 1 - ds 31 +wEggNick:: ds PKMN_NAME_LENGTH ; df65 +wEggOT:: ds NAME_LENGTH ; df70 +wEggMon:: box_struct wEggMon ; df7b ds 1 -wContestMon:: ; df9c - party_struct wContestMon +wContestMon:: party_struct wContestMon ; df9c ds 3 -RoamMon1Species:: ; dfcf - ds 1 -RoamMon1Level:: ; dfd0 - ds 1 -RoamMon1MapGroup:: ; dfd1 - ds 1 -RoamMon1MapNumber:: ; dfd2 - ds 1 -RoamMon1HP:: ; dfd3 - ds 1 -RoamMon1DVs:: ; dfd4 - ds 2 +roam_struct: MACRO +\1Species:: db +\1Level:: db +\1MapGroup:: db +\1MapNumber:: db +\1HP:: ds 1 +\1DVs:: ds 2 +ENDM -RoamMon2Species:: ; dfd6 - ds 1 -RoamMon2Level:: ; dfd7 - ds 1 -RoamMon2MapGroup:: ; dfd8 - ds 1 -RoamMon2MapNumber:: ; dfd9 - ds 1 -RoamMon2HP:: ; dfda - ds 1 -RoamMon2DVs:: ; dfdb - ds 2 - -RoamMon3Species:: ; dfdd - ds 1 -RoamMon3Level:: ; dfde - ds 1 -RoamMon3MapGroup:: ; dfdf - ds 1 -RoamMon3MapNumber:: ; dfe0 - ds 1 -RoamMon3HP:: ; dfe1 - ds 1 -RoamMon3DVs:: ; dfe2 - ds 2 +wRoamMon1:: roam_struct wRoamMon1 ; dfcf +wRoamMon2:: roam_struct wRoamMon2 ; dfd6 +wRoamMon3:: roam_struct wRoamMon3 ; dfdd @@ -2107,175 +1864,24 @@ BattleAnimTemps:: ; d419 ds 8 -SECTION "SRAMBank1",SRAM,BANK[1] +SECTION "Scratch", SRAM, BANK[0] -SECTION "BoxMons",SRAM[$ad10],BANK[1] -BoxCount:: ; ad10 - ds 1 -BoxSpecies:: ; ad11 - ds 20 - ds 1 -BoxMons:: -BoxMon1:: -BoxMon1Species:: ; ad26 - ds 1 -BoxMon1Item:: ; ad27 - ds 1 -BoxMon1Moves:: ; ad28 - ds 4 -BoxMon1ID:: ; ad2c - ds 2 -BoxMon1Exp:: ; ad2e - ds 3 -BoxMon1HPExp:: ; ad31 - ds 2 -BoxMon1AtkExp:: ; ad33 - ds 2 -BoxMon1DefExp:: ; ad35 - ds 2 -BoxMon1SpdExp:: ; ad37 - ds 2 -BoxMon1SpcExp:: ; ad39 - ds 2 -BoxMon1DVs:: ; ad3b - ds 2 -BoxMon1PP:: ; ad3d - ds 4 -BoxMon1Happiness:: ; ad41 - ds 1 -BoxMon1PokerusStatus:: ; ad42 - ds 1 -BoxMon1CaughtData:: -BoxMon1CaughtTime:: -BoxMon1CaughtLevel:: ; ad43 - ds 1 -BoxMon1CaughtGender:: -BoxMon1CaughtLocation:: ; ad44 - ds 1 -BoxMon1Level:: ; ad45 + +SECTION "SRAM Bank 1", SRAM, BANK[1] + +SECTION "BoxMons", SRAM[$ad10], BANK[1] + +sBoxCount:: ds 1 ; ad10 +sBoxSpecies:: ds MONS_PER_BOX ; ad11 ds 1 -BoxMon2:: ; ad46 - ds 32 -BoxMon3:: ; ad66 - ds 32 -BoxMon4:: ; ad86 - ds 32 -BoxMon5:: ; ada6 - ds 32 -BoxMon6:: ; adc6 - ds 32 -BoxMon7:: ; ade6 - ds 32 -BoxMon8:: ; ae06 - ds 32 -BoxMon9:: ; ae26 - ds 32 -BoxMon10:: ; ae46 - ds 32 -BoxMon11:: ; ae66 - ds 32 -BoxMon12:: ; ae86 - ds 32 -BoxMon13:: ; aea6 - ds 32 -BoxMon14:: ; aec6 - ds 32 -BoxMon15:: ; aee6 - ds 32 -BoxMon16:: ; af06 - ds 32 -BoxMon17:: ; af26 - ds 32 -BoxMon18:: ; af46 - ds 32 -BoxMon19:: ; af66 - ds 32 -BoxMon20:: ; af86 - ds 32 +sBoxMons:: ; ad26 +sBoxMon1:: box_struct sBoxMon1 +sBoxMon2:: + ds box_struct_length * (MONS_PER_BOX +- 1) -BoxMonOT:: -BoxMon1OT:: ; afa6 - ds 11 -BoxMon2OT:: ; afb1 - ds 11 -BoxMon3OT:: ; afbc - ds 11 -BoxMon4OT:: ; afc7 - ds 11 -BoxMon5OT:: ; afd2 - ds 11 -BoxMon6OT:: ; afdd - ds 11 -BoxMon7OT:: ; afe8 - ds 11 -BoxMon8OT:: ; aff3 - ds 11 -BoxMon9OT:: ; affe - ds 11 -BoxMon10OT:: ; b009 - ds 11 -BoxMon11OT:: ; b014 - ds 11 -BoxMon12OT:: ; b01f - ds 11 -BoxMon13OT:: ; b02a - ds 11 -BoxMon14OT:: ; b035 - ds 11 -BoxMon15OT:: ; b040 - ds 11 -BoxMon16OT:: ; b04b - ds 11 -BoxMon17OT:: ; b056 - ds 11 -BoxMon18OT:: ; b061 - ds 11 -BoxMon19OT:: ; b06c - ds 11 -BoxMon20OT:: ; b077 - ds 11 - -BoxMonNicknames:: -BoxMon1Nickname:: ; b082 - ds 11 -BoxMon2Nickname:: ; b08d - ds 11 -BoxMon3Nickname:: ; b098 - ds 11 -BoxMon4Nickname:: ; b0a3 - ds 11 -BoxMon5Nickname:: ; b0ae - ds 11 -BoxMon6Nickname:: ; b0b9 - ds 11 -BoxMon7Nickname:: ; b0c4 - ds 11 -BoxMon8Nickname:: ; b0cf - ds 11 -BoxMon9Nickname:: ; b0da - ds 11 -BoxMon10Nickname:: ; b0e5 - ds 11 -BoxMon11Nickname:: ; b0f0 - ds 11 -BoxMon12Nickname:: ; b0fb - ds 11 -BoxMon13Nickname:: ; b106 - ds 11 -BoxMon14Nickname:: ; b111 - ds 11 -BoxMon15Nickname:: ; b11c - ds 11 -BoxMon16Nickname:: ; b127 - ds 11 -BoxMon17Nickname:: ; b132 - ds 11 -BoxMon18Nickname:: ; b13d - ds 11 -BoxMon19Nickname:: ; b148 - ds 11 -BoxMon20Nickname:: ; b153 - ds 11 -BoxMonNicknamesEnd:: +sBoxMonOT:: ds 11 * 20 ; afa6 +sBoxMonNicknames:: ds 11 * 20 ; b082 +sBoxMonNicknamesEnd:: +; b15e From 560b892b2d24dc7d8766d59eb65337a07e7b3235 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 12 Jun 2014 19:32:58 -0700 Subject: [PATCH 06/22] Reformat the channel_struct macro and use more constants in wram. --- wram.asm | 321 ++++++++++++++++--------------------------------------- 1 file changed, 91 insertions(+), 230 deletions(-) diff --git a/wram.asm b/wram.asm index 77108fc6b..829b88a5e 100644 --- a/wram.asm +++ b/wram.asm @@ -71,165 +71,50 @@ ENDM channel_struct: MACRO -; Addresses are Channel1 ($c101). - -\1MusicID:: ; c101 - ds 2 -\1MusicBank:: ; c103 - ds 1 -\1Flags:: ; c104 -; 0: on/off -; 1: subroutine -; 2: -; 3: -; 4: noise sampling on/off -; 5: -; 6: -; 7: - ds 1 -\1Flags2:: ; c105 -; 0: vibrato on/off -; 1: -; 2: duty cycle on/off -; 3: -; 4: -; 5: -; 6: -; 7: - ds 1 -\1Flags3:: ; c106 -; 0: vibrato up/down -; 1: -; 2: -; 3: -; 4: -; 5: -; 6: -; 7: - ds 1 -\1MusicAddress:: ; c107 - ds 2 -\1LastMusicAddress:: ; c109 - ds 2 -; could have been meant as a third-level address - ds 2 -\1NoteFlags:: ; c10d -; 0: -; 1: -; 2: -; 3: -; 4: -; 5: rest -; 6: -; 7: - ds 1 -\1Condition:: ; c10e -; used for conditional jumps - ds 1 -\1DutyCycle:: ; c10f -; uses top 2 bits only -; 0: 12.5% -; 1: 25% -; 2: 50% -; 3: 75% - ds 1 -\1Intensity:: ; c110 -; hi: pressure -; lo: velocity - ds 1 -\1Frequency:: -; 11 bits -\1FrequencyLo:: ; c111 - ds 1 -\1FrequencyHi:: ; c112 - ds 1 -\1Pitch:: ; c113 -; 0: rest -; 1: C -; 2: C# -; 3: D -; 4: D# -; 5: E -; 6: F -; 7: F# -; 8: G -; 9: G# -; a: A -; b: A# -; c: B - ds 1 -\1Octave:: ; c114 -; 0: highest -; 7: lowest - ds 1 -\1StartingOctave:: ; c115 -; raises existing octaves by this value -; used for repeating phrases in a higher octave to save space - ds 1 -\1NoteDuration:: ; c116 -; number of frames remaining in the current note - ds 1 -; c117 - ds 1 -; c118 - ds 1 -\1LoopCount:: ; c119 - ds 1 -\1Tempo:: ; c11a - ds 2 -\1Tracks:: ; c11c -; hi: l -; lo: r - ds 1 -; c11d - ds 1 - -\1VibratoDelayCount:: ; c11e -; initialized at the value in VibratoDelay -; decrements each frame -; at 0, vibrato starts - ds 1 -\1VibratoDelay:: ; c11f -; number of frames a note plays until vibrato starts - ds 1 -\1VibratoExtent:: ; c120 -; difference in - ds 1 -\1VibratoRate:: ; c121 -; counts down from a max of 15 frames -; over which the pitch is alternated -; hi: init frames -; lo: frame count - ds 1 - -; c122 - ds 1 -; c123 - ds 1 -; c124 - ds 1 -; c125 - ds 1 -; c126 - ds 1 -; c127 - ds 1 -\1CryPitch:: ; c128 - ds 1 -\1CryEcho:: ; c129 - ds 1 - ds 4 -\1NoteLength:: ; c12e -; # frames per 16th note - ds 1 -; c12f - ds 1 -; c130 - ds 1 -; c131 - ds 1 -; c132 - ds 1 +; Addreses are Channel1 (c101). +\1MusicID:: dw +\1MusicBank:: db +\1Flags:: db ; 0:on/off 1:subroutine 4:noise +\1Flags2:: db ; 0:vibrato on/off 2:duty +\1Flags3:: db ; 0:vibrato up/down +\1MusicAddress:: dw +\1LastMusicAddress:: dw + dw +\1NoteFlags:: db ; 5:rest +\1Condition:: db ; conditional jumps +\1DutyCycle:: db ; bits 6-7 (0:12.5% 1:25% 2:50% 3:75%) +\1Intensity:: db ; hi:pressure lo:velocity +\1Frequency:: ; 11 bits +\1FrequencyLo:: db +\1FrequencyHi:: db +\1Pitch:: db ; 0:rest 1-c:note +\1Octave:: db ; 7-0 (0 is highest) +\1StartingOctave:: db ; raises existing octaves (to repeat phrases) +\1NoteDuration:: db ; frames remaining for the current note + ds 1 ; c117 + ds 1 ; c118 +\1LoopCount:: db +\1Tempo:: dw +\1Tracks:: db ; hi:left lo:right + ds 1 ; c11d +\1VibratoDelayCount:: db ; initialized by \1VibratoDelay +\1VibratoDelay:: db ; number of frames a note plays until vibrato starts +\1VibratoExtent:: db +\1VibratoRate:: db ; hi:frames for each alt lo:frames to the next alt + ds 1 ; c122 + ds 1 ; c123 + ds 1 ; c124 + ds 1 ; c125 + ds 1 ; c126 + ds 1 ; c127 +\1CryPitch:: db +\1CryEcho:: db + ds 4 +\1NoteLength:: db ; frames per 16th note + ds 1 ; c12f + ds 1 ; c130 + ds 1 ; c131 + ds 1 ; c132 ENDM SECTION "tiles0",VRAM[$8000],BANK[0] @@ -248,8 +133,7 @@ VBGMap1:: SECTION "WRAMBank0",WRAM0[$c000] SECTION "stack",WRAM0[$c0ff] -Stack:: ; c0ff - ds -$100 +Stack:: ds -$100 ; c0ff SECTION "audio",WRAM0[$c100] @@ -258,39 +142,24 @@ MusicPlaying:: ; c100 ds 1 Channels:: -Channel1:: ; c101 - channel_struct Channel1 -Channel2:: ; c133 - channel_struct Channel2 -Channel3:: ; c165 - channel_struct Channel3 -Channel4:: ; c197 - channel_struct Channel4 +Channel1:: channel_struct Channel1 ; c101 +Channel2:: channel_struct Channel2 ; c133 +Channel3:: channel_struct Channel3 ; c165 +Channel4:: channel_struct Channel4 ; c197 SFXChannels:: -Channel5:: ; c1c9 - channel_struct Channel5 -Channel6:: ; c1fb - channel_struct Channel6 -Channel7:: ; c22d - channel_struct Channel7 -Channel8:: ; c25f - channel_struct Channel8 +Channel5:: channel_struct Channel5 ; c1c9 +Channel6:: channel_struct Channel6 ; c1fb +Channel7:: channel_struct Channel7 ; c22d +Channel8:: channel_struct Channel8 ; c25f -; c291 - ds 1 -; c292 - ds 1 -; c293 - ds 1 -; c294 - ds 1 -; c295 - ds 1 -; c296 - ds 1 -; c297 - ds 1 + ds 1 ; c291 + ds 1 ; c292 + ds 1 ; c293 + ds 1 ; c294 + ds 1 ; c295 + ds 1 ; c296 + ds 1 ; c297 CurMusicByte:: ; c298 ds 1 @@ -457,14 +326,16 @@ wBattle:: wEnemyMoveStruct:: ds MOVE_LENGTH ; c608 wPlayerMoveStruct:: ds MOVE_LENGTH ; c60f -EnemyMonNick:: ds 11 ; c616 -BattleMonNick:: ds 11 ; c621 +EnemyMonNick:: ds PKMN_NAME_LENGTH ; c616 +BattleMonNick:: ds PKMN_NAME_LENGTH ; c621 BattleMon:: battle_struct BattleMon ; c62c ds 10 OTName:: ; c656 - ds 13 + ds NAME_LENGTH + + ds 2 CurOTMon:: ; c663 ds 1 @@ -475,7 +346,6 @@ TypeModifier:: ; c665 ; >10: super-effective ; 10: normal ; <10: not very effective - ; bit 7: stab ds 1 @@ -1293,7 +1163,7 @@ TimeOfDay:: ; d269 SECTION "OTParty",WRAMX[$d280],BANK[1] OTPartyCount:: ds 1 ; d280 -OTPartySpecies:: ds 6 ; d281 +OTPartySpecies:: ds PARTY_LENGTH ; d281 OTPartyEnd:: ds 1 OTPartyMon1:: party_struct OTPartyMon1 ; d288 @@ -1303,8 +1173,8 @@ OTPartyMon4:: party_struct OTPartyMon4 ; d318 OTPartyMon5:: party_struct OTPartyMon5 ; d348 OTPartyMon6:: party_struct OTPartyMon6 ; d378 -OTPartyMonOT:: ds 11 * 6 ; d3a8 -OTPartyMonNicknames:: ds 11 * 6 ; d3ea +OTPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d3a8 +OTPartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; d3ea SECTION "Map Events", WRAMX[$d432], BANK[1] @@ -1344,16 +1214,11 @@ PlayerGender:: ; d472 PlayerID:: ; d47b ds 2 -PlayerName:: ; d47d - ds 11 -MomsName:: ; d488 - ds 11 -RivalName:: ; d493 - ds 11 -RedsName:: ; d49e - ds 11 -GreensName:: ; d4a9 - ds 11 +PlayerName:: ds NAME_LENGTH ; d47d +MomsName:: ds NAME_LENGTH ; d488 +RivalName:: ds NAME_LENGTH ; d493 +RedsName:: ds NAME_LENGTH ; d49e +GreensName:: ds NAME_LENGTH ; d4a9 ds 2 @@ -1721,7 +1586,7 @@ SECTION "PlayerParty",WRAMX[$dcd7],BANK[1] PartyCount:: ; dcd7 ds 1 ; number of Pokémon in party PartySpecies:: ; dcd8 - ds 6 ; species of each Pokémon in party + ds PARTY_LENGTH ; species of each Pokémon in party PartyEnd:: ; dcde ds 1 ; legacy functions don't check PartyCount @@ -1733,20 +1598,20 @@ PartyMon4:: party_struct PartyMon4 ; dd6f PartyMon5:: party_struct PartyMon5 ; dd9f PartyMon6:: party_struct PartyMon6 ; ddcf -PartyMonOT:: ds 11 * 6 ; ddff +PartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; ddff -PartyMonNicknames:: ds 11 * 6 ; de41 +PartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; de41 PartyMonNicknamesEnd:: SECTION "Pokedex", WRAMX[$de99], BANK[1] PokedexCaught:: ; de99 - flag_array 251 + flag_array NUM_POKEMON EndPokedexCaught:: PokedexSeen:: ; deb9 - flag_array 251 + flag_array NUM_POKEMON EndPokedexSeen:: UnownDex:: ; ded9 @@ -1764,8 +1629,8 @@ wDaycareMan:: ; def5 ds 1 wBreedMon1:: -wBreedMon1Nick:: ds PKMN_NAME_LENGTH ; def6 -wBreedMon1OT:: ds NAME_LENGTH ; df01 +wBreedMon1Nick:: ds PKMN_NAME_LENGTH ; def6 +wBreedMon1OT:: ds NAME_LENGTH ; df01 wBreedMon1Stats:: box_struct wBreedMon1 ; df0c wDaycareLady:: ; df2c @@ -1781,13 +1646,13 @@ wDittoInDaycare:: ; df2e ds 1 wBreedMon2:: -wBreedMon2Nick:: ds PKMN_NAME_LENGTH ; df2f -wBreedMon2OT:: ds NAME_LENGTH ; df3a +wBreedMon2Nick:: ds PKMN_NAME_LENGTH ; df2f +wBreedMon2OT:: ds NAME_LENGTH ; df3a wBreedMon2Stats:: box_struct wBreedMon2 ; df45 wEggNick:: ds PKMN_NAME_LENGTH ; df65 wEggOT:: ds NAME_LENGTH ; df70 -wEggMon:: box_struct wEggMon ; df7b +wEggMon:: box_struct wEggMon ; df7b ds 1 @@ -1813,23 +1678,19 @@ wRoamMon3:: roam_struct wRoamMon3 ; dfdd SECTION "WRAMBank5",WRAMX[$d000],BANK[5] ; 8 4-color palettes -Unkn1Pals:: ; d000 - ds $40 -Unkn2Pals:: ; d040 - ds $40 -BGPals:: ; d080 - ds $40 -OBPals:: ; d0c0 - ds $40 +Unkn1Pals:: ds 8 * 8 ; d000 +Unkn2Pals:: ds 8 * 8 ; d040 +BGPals:: ds 8 * 8 ; d080 +OBPals:: ds 8 * 8 ; d0c0 LYOverrides:: ; d100 - ds 144 + ds SCREEN_HEIGHT_PX LYOverridesEnd:: ds 112 LYOverridesBackup:: ; d200 - ds 144 + ds SCREEN_HEIGHT_PX LYOverridesBackupEnd:: @@ -1880,8 +1741,8 @@ sBoxMon1:: box_struct sBoxMon1 sBoxMon2:: ds box_struct_length * (MONS_PER_BOX +- 1) -sBoxMonOT:: ds 11 * 20 ; afa6 +sBoxMonOT:: ds NAME_LENGTH * MONS_PER_BOX ; afa6 -sBoxMonNicknames:: ds 11 * 20 ; b082 +sBoxMonNicknames:: ds PKMN_NAME_LENGTH * MONS_PER_BOX ; b082 sBoxMonNicknamesEnd:: ; b15e From eb9fc6676cfed0460d19ce441134dbcdfce49b0d Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 13 Jun 2014 21:18:14 -0700 Subject: [PATCH 07/22] More battle code cleanup. - Use more substatus constants. - Reformat some code to be more atomic. - Add constants for unused status prevention held item effects. - Remove pointless or redundant comments. --- battle/core.asm | 447 ++++++++-------- battle/effect_commands.asm | 953 ++++++++++++++++----------------- constants/battle_constants.asm | 4 + constants/item_constants.asm | 19 + constants/misc_constants.asm | 4 +- constants/type_constants.asm | 3 +- main.asm | 4 +- wram.asm | 12 +- 8 files changed, 721 insertions(+), 725 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index dda37000d..9df143842 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -24,7 +24,7 @@ Function3c000: ; 3c000 .asm_3c021 ld a, d - ld [$d430], a + ld [wBattleAction], a ld a, [InLinkBattle] and a jr z, .asm_3c031 @@ -421,9 +421,9 @@ Function3c27c: ; 3c27c ret nz xor a ld [$cfca], a - ld de, $0103 + ld de, ANIM_CONFUSED call Function3ee0f - call Function3c8e4 + call SwitchTurnCore ld hl, BecameConfusedText jp StdBattleTextBox ; 3c300 @@ -432,7 +432,7 @@ Function3c300: ; 3c300 ld a, [InLinkBattle] and a jr z, .asm_3c30d - ld a, [$d430] + ld a, [wBattleAction] cp $f jr z, .asm_3c30f @@ -450,7 +450,7 @@ Function3c314: ; 3c314 ld a, [InLinkBattle] and a jr z, .asm_3c35b - ld a, [$d430] + ld a, [wBattleAction] cp $e jr z, .asm_3c35b cp $d @@ -496,10 +496,10 @@ Function3c314: ; 3c314 callab GetOpponentItem pop de ld a, d - cp $4a + cp HELD_QUICK_CLAW jr nz, .asm_3c391 ld a, b - cp $4a + cp HELD_QUICK_CLAW jr z, .asm_3c39f call BattleRandom cp e @@ -508,7 +508,7 @@ Function3c314: ; 3c314 .asm_3c391 ld a, b - cp $4a + cp HELD_QUICK_CLAW jr nz, .asm_3c3c5 call BattleRandom cp c @@ -589,23 +589,22 @@ Function3c3f5: ; 3c3f5 Function3c410: ; 3c410 ld a, [PlayerSubStatus4] - and $20 - jp nz, Function3c432 + and 1 << SUBSTATUS_RECHARGE + jp nz, .quit ld hl, EnemySubStatus3 - res 3, [hl] + res SUBSTATUS_FLINCHED, [hl] ld hl, PlayerSubStatus3 - res 3, [hl] + res SUBSTATUS_FLINCHED, [hl] ld a, [hl] - and $12 - jp nz, Function3c432 + and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_ROLLOUT + jp nz, .quit ld hl, PlayerSubStatus1 - bit 6, [hl] - jp nz, Function3c432 + bit SUBSTATUS_ENCORED, [hl] + jp nz, .quit and a ret -; 3c432 -Function3c432: ; 3c432 +.quit scf ret ; 3c434 @@ -627,18 +626,18 @@ Function3c434: ; 3c434 and a jr nz, .asm_3c4b5 ld a, [PlayerSubStatus3] - and $1 + and 1 << SUBSTATUS_BIDE jr nz, .asm_3c4ba xor a ld [$d235], a - inc a + inc a ; POUND ld [FXAnimIDLo], a call Function3e4bc push af call Function30b4 call UpdateBattleHuds ld a, [CurPlayerMove] - cp $a5 + cp STRUGGLE jr z, .asm_3c476 call PlayClickSFX @@ -680,7 +679,7 @@ Function3c434: ; 3c434 .asm_3c4b5 ld hl, PlayerSubStatus3 - res 0, [hl] + res SUBSTATUS_BIDE, [hl] .asm_3c4ba xor a @@ -688,7 +687,7 @@ Function3c434: ; 3c434 ld [PlayerProtectCount], a ld [$c72b], a ld hl, PlayerSubStatus4 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] .asm_3c4c9 call Function3e7c1 @@ -701,7 +700,7 @@ Function3c434: ; 3c434 ld [PlayerProtectCount], a ld [$c72b], a ld hl, PlayerSubStatus4 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] xor a ret ; 3c4df @@ -726,7 +725,7 @@ Function3c4df: ; 3c4df ld hl, BattleMonPP ld a, [CurMoveNum] ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] and $3f @@ -750,7 +749,7 @@ Function3c4df: ; 3c4df ld hl, EnemyMonPP ld a, [CurEnemyMoveNum] ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] and $3f @@ -771,7 +770,7 @@ Function3c543: ; 3c543 jr nz, .Stay ld a, [PlayerSubStatus5] - bit 7, a + bit SUBSTATUS_CANT_RUN, a jr nz, .Stay ld a, [$c731] @@ -1033,20 +1032,20 @@ Function3c6de: ; 3c6de ; 3c6ed Function3c6ed: ; 3c6ed - ld a, $5 + ld a, BATTLE_VARS_SUBSTATUS1_OPP call _GetBattleVar - res 2, [hl] - res 5, [hl] - ld a, $9 + res SUBSTATUS_PROTECT, [hl] + res SUBSTATUS_ENDURE, [hl] + ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar - res 6, [hl] + res SUBSTATUS_DESTINY_BOND, [hl] ret ; 3c6fe Function3c6fe: ; 3c6fe - ld a, $4 + ld a, BATTLE_VARS_SUBSTATUS5 call _GetBattleVar - res 6, [hl] + res SUBSTATUS_DESTINY_BOND, [hl] ret ; 3c706 @@ -1070,18 +1069,20 @@ Function3c713: ; 3c713 Function3c716: ; 3c716 call Function3c706 ret z - ld a, $a + + ld a, BATTLE_VARS_STATUS call GetBattleVar - and $18 + and 1 << PSN | 1 << BRN jr z, .asm_3c768 + ld hl, BattleText_0x807e2 - ld de, $0106 - and $10 + ld de, ANIM_PSN + and 1 << BRN jr z, .asm_3c733 ld hl, BattleText_0x807f8 - ld de, $0105 - + ld de, ANIM_BRN .asm_3c733 + push de call StdBattleTextBox pop de @@ -1096,11 +1097,11 @@ Function3c716: ; 3c716 ld de, $c67c .asm_3c74d - ld a, $4 + ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVar - bit 0, a + bit SUBSTATUS_TOXIC, a jr z, .asm_3c765 - call Function3cc76 + call GetSixteenthMaxHP ld a, [de] inc a ld [de], a @@ -1118,19 +1119,22 @@ Function3c716: ; 3c716 .asm_3c768 call Function3c706 jp z, .asm_3c7f7 - ld a, $3 + + ld a, BATTLE_VARS_SUBSTATUS4 call _GetBattleVar - bit 7, [hl] + bit SUBSTATUS_LEECH_SEED, [hl] jr z, .asm_3c7a1 - call Function3c8e4 + + call SwitchTurnCore xor a ld [$cfca], a - ld de, $0107 - ld a, $7 + ld de, ANIM_SAP + ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar - and $60 + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND call z, Function3ee0f - call Function3c8e4 + call SwitchTurnCore + call GetEighthMaxHP call Function3cc3f ld a, $1 @@ -1142,13 +1146,15 @@ Function3c716: ; 3c716 .asm_3c7a1 call Function3c706 jr z, .asm_3c7f7 - ld a, $0 + + ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - bit 0, [hl] + bit SUBSTATUS_NIGHTMARE, [hl] jr z, .asm_3c7c5 + xor a ld [$cfca], a - ld de, $010c + ld de, ANIM_IN_NIGHTMARE call Function3ee0f call GetQuarterMaxHP call Function3cc3f @@ -1158,13 +1164,15 @@ Function3c716: ; 3c716 .asm_3c7c5 call Function3c706 jr z, .asm_3c7f7 - ld a, $0 + + ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - bit 1, [hl] + bit SUBSTATUS_CURSE, [hl] jr z, .asm_3c7e9 + xor a ld [$cfca], a - ld de, $010c + ld de, ANIM_IN_NIGHTMARE call Function3ee0f call GetQuarterMaxHP call Function3cc3f @@ -1185,7 +1193,7 @@ Function3c716: ; 3c716 .asm_3c7f7 call RefreshBattleHuds - ld c, $14 + ld c, 20 call DelayFrames xor a ret @@ -1212,9 +1220,9 @@ Function3c801: ; 3c801 ld hl, EnemyPerishCount .asm_3c827 - ld a, $0 + ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVar - bit 4, a + bit SUBSTATUS_PERISH, a ret z dec [hl] ld a, [hl] @@ -1224,9 +1232,9 @@ Function3c801: ; 3c801 call StdBattleTextBox pop af ret nz - ld a, $0 + ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - res 4, [hl] + res SUBSTATUS_PERISH, [hl] ld a, [hBattleTurn] and a jr nz, .asm_3c85c @@ -1285,9 +1293,9 @@ Function3c874: ; 3c874 ld a, [hl] and a ret z - ld a, $3 + ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVar - bit 4, a + bit SUBSTATUS_SUBSTITUTE, a ret nz ld a, [de] ld [$d265], a @@ -1295,20 +1303,20 @@ Function3c874: ; 3c874 call GetMoveName dec [hl] jr z, .asm_3c8de - ld a, $2 + ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar - and $60 + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND jr nz, .asm_3c8d3 - call Function3c8e4 + call SwitchTurnCore xor a ld [$cfca], a ld [FXAnimIDHi], a ld a, $37 call Predef - call Function3c8e4 + call SwitchTurnCore .asm_3c8d3 - call Function3cc76 + call GetSixteenthMaxHP call Function3cc3f ld hl, BattleText_0x80de2 jr .asm_3c8e1 @@ -1320,9 +1328,9 @@ Function3c874: ; 3c874 jp StdBattleTextBox ; 3c8e4 -Function3c8e4: ; 3c8e4 +SwitchTurnCore: ; 3c8e4 ld a, [hBattleTurn] - xor $1 + xor 1 ld [hBattleTurn], a ret ; 3c8eb @@ -1367,8 +1375,8 @@ Function3c8eb: ; 3c8eb ret z .asm_3c92d - call Function3cc76 - call Function3c8e4 + call GetSixteenthMaxHP + call SwitchTurnCore call Function3ccef ld hl, BattleText_0x80880 jp StdBattleTextBox @@ -1481,7 +1489,7 @@ Function3c93c: ; 3c93c ld a, [EnemySubStatus5] .asm_3c9ee - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_3c9f5 ld a, [de] add b @@ -1508,9 +1516,9 @@ Function3c93c: ; 3c93c .asm_3ca14 call GetItemName - call Function3c8e4 + call SwitchTurnCore call Function3ddc8 - call Function3c8e4 + call SwitchTurnCore ld hl, BattleText_0x80899 jp StdBattleTextBox ; 3ca26 @@ -1740,37 +1748,37 @@ FadeReflect: ; 3cb91 ; 3cb9e HandleWeather: ; 3cb9e - ld a, [Weather] - cp 0 + cp WEATHER_NONE ret z ld hl, WeatherCount dec [hl] - jr z, .asm_3cc13 + jr z, .ended ld hl, .WeatherMessages - call .asm_3cc1e + call .PrintWeatherMessage + ld a, [Weather] cp WEATHER_SANDSTORM ret nz + ld a, [$ffcb] cp 1 - jr z, .asm_3cbc7 + jr z, .enemy_first -; Player first +.player_first call SetPlayerTurn - call .asm_3cbd0 + call .SandstormDamage call SetEnemyTurn - jr .asm_3cbd0 + jr .SandstormDamage -.asm_3cbc7 -; Enemy first +.enemy_first call SetEnemyTurn - call .asm_3cbd0 + call .SandstormDamage call SetPlayerTurn -.asm_3cbd0 +.SandstormDamage ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar bit SUBSTATUS_UNDERGROUND, a @@ -1779,10 +1787,9 @@ HandleWeather: ; 3cb9e ld hl, BattleMonType1 ld a, [hBattleTurn] and a - jr z, .asm_3cbe3 + jr z, .ok ld hl, EnemyMonType1 - -.asm_3cbe3 +.ok ld a, [hli] cp ROCK ret z @@ -1799,26 +1806,26 @@ HandleWeather: ; 3cb9e cp STEEL ret z - call Function3c8e4 + call SwitchTurnCore xor a ld [$cfca], a - ld de, $010b + ld de, ANIM_IN_SANDSTORM call Function3ee17 - call Function3c8e4 + call SwitchTurnCore call GetEighthMaxHP call Function3cc3f ld hl, BattleText_0x8084d jp StdBattleTextBox -.asm_3cc13 +.ended ld hl, .WeatherEndedMessages - call .asm_3cc1e + call .PrintWeatherMessage xor a ld [Weather], a ret -.asm_3cc1e +.PrintWeatherMessage ld a, [Weather] dec a ld c, a @@ -1852,15 +1859,13 @@ Function3cc3f: ; 3cc3f ; 3cc45 - Function3cc45: ; 3cc45 ld hl, BattleMonHP ld a, [hBattleTurn] and a - jr z, .asm_3cc50 + jr z, .ok ld hl, EnemyMonHP - -.asm_3cc50 +.ok inc hl ld a, [hl] ld [$d1ec], a @@ -1885,16 +1890,17 @@ Function3cc45: ; 3cc45 ret ; 3cc76 -Function3cc76: ; 3cc76 +GetSixteenthMaxHP: ; 3cc76 call GetQuarterMaxHP + ; quarter result srl c srl c + ; round up ld a, c and a - jr nz, .asm_3cc82 + jr nz, .ok inc c - -.asm_3cc82 +.ok ret ; 3cc83 @@ -1940,7 +1946,7 @@ GetHalfMaxHP: ; 3cc9f ; output: bc call GetMaxHP -; halve reslut +; halve result srl b rr c @@ -1957,18 +1963,12 @@ GetHalfMaxHP: ; 3cc9f GetMaxHP: ; 3ccac ; output: bc, Buffer1-2 -; player ld hl, BattleMonMaxHP - -; whose turn? ld a, [hBattleTurn] and a - jr z, .gethp - -; enemy + jr z, .ok ld hl, EnemyMonMaxHP - -.gethp +.ok ld a, [hli] ld [Buffer2], a ld b, a @@ -1983,10 +1983,9 @@ Function3ccc2: ; 3ccc2 ld hl, BattleMonHP ld a, [hBattleTurn] and a - jr z, .asm_3cccd + jr z, .ok ld hl, EnemyMonHP - -.asm_3cccd +.ok ld a, [hli] ld b, a ld a, [hli] @@ -2004,10 +2003,9 @@ Function3ccde: ; 3ccde ld hl, BattleMonHP + 1 ld a, [hBattleTurn] and a - jr z, .asm_3cce9 + jr z, .ok ld hl, EnemyMonHP + 1 - -.asm_3cce9 +.ok ld a, c sub [hl] dec hl @@ -2021,10 +2019,9 @@ Function3ccef: ; 3ccef ld hl, EnemyMonMaxHP ld a, [hBattleTurn] and a - jr z, .asm_3ccfa + jr z, .ok ld hl, BattleMonMaxHP - -.asm_3ccfa +.ok ld a, [hli] ld [Buffer2], a ld a, [hld] @@ -2040,6 +2037,7 @@ Function3ccef: ; 3ccef adc b ld [hli], a ld [$d1ef], a + ld a, [Buffer1] ld c, a ld a, [hld] @@ -2055,11 +2053,11 @@ Function3ccef: ; 3ccef ld a, c ld [hl], a ld [$d1ee], a - .asm_3cd2d - call Function3c8e4 + + call SwitchTurnCore call Function3cd36 - jp Function3c8e4 + jp SwitchTurnCore ; 3cd36 Function3cd36: ; 3cd36 @@ -2072,7 +2070,7 @@ Function3cd3c: ; 3cd3c hlcoord 10, 9 ld a, [hBattleTurn] and a - ld a, $1 + ld a, 1 jr z, .asm_3cd4a hlcoord 2, 2 xor a @@ -2099,31 +2097,38 @@ Function3cd55: ; 3cd55 ld a, d and a jp z, LostBattle + ld hl, BattleMonHP ld a, [hli] or [hl] call nz, Function3df48 + ld a, $1 ld [hBGMapMode], a ld c, 60 call DelayFrames + ld a, [IsInBattle] dec a jr nz, .asm_3cd8c - ld a, $1 + + ld a, 1 ld [BattleEnded], a ret .asm_3cd8c call Function3cf35 jp z, Function3cfa4 + ld hl, BattleMonHP ld a, [hli] or [hl] jr nz, .asm_3cdba + call Function3d1f8 jr nc, .asm_3cda4 - ld a, $1 + + ld a, 1 ld [BattleEnded], a ret @@ -2131,6 +2136,7 @@ Function3cd55: ; 3cd55 call Function3d227 call Function3d2e0 jp c, Function3c0e5 + ld a, $1 ld [$d0ec], a call Function3cf4a @@ -2387,7 +2393,7 @@ Function3cf4a: ; 3cf4a and a jr z, .asm_3cf6d call Function3e8e4 - ld a, [$d430] + ld a, [wBattleAction] cp $f ret z call Function30b4 @@ -2483,7 +2489,7 @@ Function3cfa4: ; 3cfa4 ld c, $3 callba Function11c000 call Functiona80 - ld hl, $c6ec + ld hl, wPayDayMoney ld a, [hli] or [hl] inc hl @@ -2651,7 +2657,7 @@ Function3d0ea: ; 3d0ea call Function3ceaa pop de jr nz, .asm_3d11e - ld hl, $c6ec + ld hl, wPayDayMoney ld a, [hli] or [hl] jr nz, .asm_3d11e @@ -3212,7 +3218,7 @@ Function3d444: ; 3d444 Function3d490: ; 3d490 - ld [hConnectionStripLength], a + ld [$ffaf], a ld c, a .asm_3d493 push bc @@ -3222,7 +3228,7 @@ Function3d490: ; 3d490 push hl call Function3d4ae pop hl - ld de, 20 + ld de, SCREEN_WIDTH add hl, de dec b jr nz, .asm_3d497 @@ -3236,24 +3242,24 @@ Function3d490: ; 3d490 ; 3d4ae Function3d4ae: ; 3d4ae - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld c, a cp $8 - jr nz, .asm_3d4bc -.asm_3d4b5 + jr nz, .back +.forward ld a, [hli] ld [hld], a dec hl dec c - jr nz, .asm_3d4b5 + jr nz, .forward ret -.asm_3d4bc +.back ld a, [hld] ld [hli], a inc hl dec c - jr nz, .asm_3d4bc + jr nz, .back ret ; 3d4c3 @@ -3320,7 +3326,7 @@ Function3d533: ; 3d533 ld a, [InLinkBattle] and a jr z, .asm_3d541 - ld a, [$d430] + ld a, [wBattleAction] sub NUM_MOVES ld b, a jr .asm_3d555 @@ -3868,7 +3874,7 @@ Function3d8b3: ; 3d8b3 ld b, a callab GetItem ld a, b - cp $48 + cp HELD_ESCAPE pop de pop hl jr nz, .asm_3d916 @@ -3977,8 +3983,8 @@ Function3d8b3: ; 3d8b3 call Function3d2e0 jr c, .asm_3d9f5 -; Got away safely - ld a, [$d430] + ; Got away safely + ld a, [wBattleAction] cp $f ld a, $2 jr z, .asm_3d9cf @@ -4076,7 +4082,7 @@ Function3da7c: ; 3da7c Function3da85: ; 3da85 ld hl, BattleMonDVs ld a, [PlayerSubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a ret z ld hl, PartyMon1DVs ld a, [CurBattleMon] @@ -4086,7 +4092,7 @@ Function3da85: ; 3da85 Function3da97: ; 3da97 ld hl, EnemyMonDVs ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a ret z ld hl, $c6f2 ld a, [IsInBattle] @@ -4205,7 +4211,7 @@ Function3db5f: ; 3db5f ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a ld [LastPlayerMove], a - call Function3e4a8 + call CheckAmuletCoin call Function3ee27 xor a ld [$c731], a @@ -4213,13 +4219,13 @@ Function3db5f: ; 3db5f xor a ld [$cfca], a ld [$c689], a - ld de, $0101 + ld de, ANIM_SEND_OUT_MON call Function3ee17 call Function3da74 jr nc, .asm_3dbbc ld a, $1 ld [$c689], a - ld de, $0101 + ld de, ANIM_SEND_OUT_MON call Function3ee17 .asm_3dbbc @@ -4407,7 +4413,7 @@ Function3dce6: ; 3dce6 xor a ld [hBattleTurn], a ld [$cfca], a - ld de, $0102 + ld de, ANIM_RETURN_MON call Function3ee17 pop af ld [hBattleTurn], a @@ -4536,15 +4542,15 @@ Function3ddc8: ; 3ddc8 push de push bc call EmptyBattleTextBox - ld a, $69 + ld a, RECOVER ld [FXAnimIDLo], a - call Function3c8e4 + call SwitchTurnCore xor a ld [$cfca], a ld [FXAnimIDHi], a ld a, $37 call Predef - call Function3c8e4 + call SwitchTurnCore pop bc pop de pop hl @@ -4563,7 +4569,7 @@ Function3dde9: ; 3dde9 jr nz, .asm_3ddf2 dec hl ld b, [hl] - ld a, $b + ld a, BATTLE_VARS_STATUS_OPP call _GetBattleVar and b ret z @@ -4572,20 +4578,20 @@ Function3dde9: ; 3dde9 push bc call UpdateOpponentInParty pop bc - ld a, $9 + ld a, BATTLE_VARS_SUBSTATUS5_OPP call _GetBattleVar and [hl] - res 0, [hl] - ld a, $5 + res SUBSTATUS_TOXIC, [hl] + ld a, BATTLE_VARS_SUBSTATUS1_OPP call _GetBattleVar and [hl] - res 0, [hl] + res SUBSTATUS_NIGHTMARE, [hl] ld a, b cp $7f jr nz, .asm_3de26 - ld a, $7 + ld a, BATTLE_VARS_SUBSTATUS3_OPP call _GetBattleVar - res 7, [hl] + res SUBSTATUS_CONFUSED, [hl] .asm_3de26 ld hl, Function365fd @@ -4595,10 +4601,10 @@ Function3dde9: ; 3dde9 ld hl, Function365d7 .asm_3de31 - call Function3c8e4 + call SwitchTurnCore ld a, BANK(Function365fd) rst FarCall - call Function3c8e4 + call SwitchTurnCore call Function3ddc8 call Function3ddac ld a, $1 @@ -4618,23 +4624,23 @@ Function3dde9: ; 3dde9 Function3de51: ; 3de51 - ld a, $7 + ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar - bit 7, a + bit SUBSTATUS_CONFUSED, a ret z callab GetOpponentItem ld a, b - cp $10 + cp HELD_HEAL_CONFUSION jr z, .asm_3de67 - cp $f + cp HELD_HEAL_STATUS ret nz .asm_3de67 ld a, [hl] ld [$d265], a - ld a, $7 + ld a, BATTLE_VARS_SUBSTATUS3_OPP call _GetBattleVar - res 7, [hl] + res SUBSTATUS_CONFUSED, [hl] call GetItemName call Function3ddc8 ld hl, BattleText_0x80dab @@ -4730,13 +4736,13 @@ Function3deb6: ; 3deb6 ; 3defc .data_3defc - dbw $1f, BattleCommand70 - dbw $20, BattleCommand71 - dbw $21, BattleCommand72 - dbw $22, BattleCommand73 - dbw $23, BattleCommand74 - dbw $24, BattleCommand75 - dbw $25, BattleCommand76 + dbw HELD_ATTACK_UP, BattleCommand70 + dbw HELD_DEFENSE_UP, BattleCommand71 + dbw HELD_SPEED_UP, BattleCommand72 + dbw HELD_SP_ATTACK_UP, BattleCommand73 + dbw HELD_SP_DEFENSE_UP, BattleCommand74 + dbw HELD_ACCURACY_UP, BattleCommand75 + dbw HELD_EVASION_UP, BattleCommand76 db $ff ; 3df12 @@ -4793,9 +4799,9 @@ DrawPlayerHUD: ; 3df58 xor a ld [hBGMapMode], a -; Clear the area + ; Clear the area hlcoord 9, 7 - ld bc, $050b + lb bc, 5, 11 call ClearBox callba DrawPlayerExpBar @@ -4804,7 +4810,7 @@ DrawPlayerHUD: ; 3df58 ld [hl], $73 ; vertical bar call PrintPlayerHUD -; HP bar + ; HP bar hlcoord 10, 9 ld b, OTPARTYMON xor a @@ -4812,7 +4818,7 @@ DrawPlayerHUD: ; 3df58 ld a, PREDEF_DRAW_PLAYER_HP call Predef -; Exp bar + ; Exp bar push de ld a, [CurBattleMon] ld hl, PartyMon1Exp + 2 @@ -4837,24 +4843,24 @@ CheckDanger: ; 3df9e ld hl, BattleMonHP ld a, [hli] or [hl] - jr z, .asm_3dfb2 + jr z, .no_danger ld a, [$c6fd] and a - jr nz, .asm_3dfbe + jr nz, .done ld a, [PlayerHPPal] cp $2 - jr z, .asm_3dfb9 + jr z, .danger -.asm_3dfb2 +.no_danger ld hl, Danger res 7, [hl] - jr .asm_3dfbe + jr .done -.asm_3dfb9 +.danger ld hl, Danger set 7, [hl] -.asm_3dfbe +.done ret ; 3dfbf @@ -4893,11 +4899,11 @@ PrintPlayerHUD: ; 3dfbf ld a, $3 ld [MonType], a callab GetGender - ld a, $7f + ld a, " " jr c, .asm_3e013 - ld a, $ef + ld a, "♂" jr nz, .asm_3e013 - ld a, $f5 + ld a, "♀" .asm_3e013 hlcoord 17, 8 @@ -4938,7 +4944,7 @@ Function3e043: ; 3e043 xor a ld [hBGMapMode], a hlcoord 1, 0 - ld bc, $040b + lb bc, 4, 11 call ClearBox callba Function2c0c5 ld a, [TempEnemyMonSpecies] @@ -4955,10 +4961,9 @@ Function3e043: ; 3e043 ld hl, EnemyMonDVs ld de, TempMonDVs ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr z, .asm_3e080 ld hl, $c6f2 - .asm_3e080 ld a, [hli] ld [de], a @@ -4968,11 +4973,11 @@ Function3e043: ; 3e043 ld a, $3 ld [MonType], a callab GetGender - ld a, $7f + ld a, " " jr c, .asm_3e09a - ld a, $ef + ld a, "♂" jr nz, .asm_3e09a - ld a, $f5 + ld a, "♀" .asm_3e09a hlcoord 9, 1 @@ -5006,13 +5011,13 @@ Function3e043: ; 3e043 jr nz, .asm_3e0d1 ld c, a ld e, a - ld d, $6 + ld d, HP_BAR_LENGTH jp .asm_3e11a .asm_3e0d1 xor a ld [hMultiplicand], a - ld a, $30 + ld a, HP_BAR_LENGTH_PX ld [hMultiplier], a call Multiply ld hl, EnemyMonMaxHP @@ -5050,7 +5055,7 @@ Function3e043: ; 3e043 call Divide ld a, [$ffb6] ld e, a - ld a, $6 + ld a, HP_BAR_LENGTH ld d, a ld c, a .asm_3e11a @@ -5180,13 +5185,13 @@ Function3e1c7: ; 3e1c7 .asm_3e1f1 callba Function107bb - ld a, $5 + ld a, POKE_BALL ld [CurItem], a call DoItemEffect jr .asm_3e209 .asm_3e201 - ld a, $b1 + ld a, PARK_BALL ld [CurItem], a call DoItemEffect @@ -5365,7 +5370,7 @@ Function3e358: ; 3e358 and a jr nz, .asm_3e378 ld a, [EnemySubStatus5] - bit 7, a + bit SUBSTATUS_CANT_RUN, a jr z, .asm_3e381 .asm_3e378 @@ -5414,7 +5419,7 @@ Function3e3ad: ; 3e3ad ret .asm_3e3cf - ld a, [$d430] + ld a, [wBattleAction] cp $e jp z, .asm_3e3ca cp $d @@ -5527,14 +5532,14 @@ Function3e489: ; 3e489 -Function3e4a8: ; 3e4a8 +CheckAmuletCoin: ; 3e4a8 ld a, [BattleMonItem] ld b, a callab GetItem ld a, b - cp $4c + cp HELD_AMULET_COIN ret nz - ld a, $1 + ld a, 1 ld [$c73d], a ret ; 3e4bc @@ -5805,7 +5810,7 @@ Function3e643: ; 3e643 .asm_3e682 ld a, [PlayerSubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_3e69e ld hl, PartyMon1Moves ld a, [CurBattleMon] @@ -5813,7 +5818,7 @@ Function3e643: ; 3e643 push hl call .asm_3e6a5 pop hl - ld bc, $0015 + ld bc, PartyMon1PP - PartyMon1Moves add hl, bc call .asm_3e6a5 @@ -6015,7 +6020,7 @@ Function3e7c1: ; 3e7c1 and a call z, Function3e8e4 call Function30b4 - ld a, [$d430] + ld a, [wBattleAction] cp $e jp z, .asm_3e8bd cp $d @@ -6268,9 +6273,8 @@ LoadEnemyMon: ; 3e8eb and a jr z, .InitDVs -; ???? ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr z, .InitDVs ; Unknown @@ -6478,15 +6482,14 @@ LoadEnemyMon: ; 3e8eb and a jr z, .TreeMon -; ???? ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jp nz, .Moves .TreeMon ; If we're headbutting trees, some monsters enter battle asleep call CheckSleepingTreeMon - ld a, 7 ; Asleep for 7 turns + ld a, SLP ; Asleep for 7 turns jr c, .UpdateStatus ; Otherwise, no status xor a @@ -7588,7 +7591,7 @@ Function3ee3b: ; 3ee3b ld a, [hl] ld [BattleMonLevel], a ld a, [PlayerSubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_3f012 ld hl, $0026 add hl, bc @@ -8687,7 +8690,7 @@ Function3f6d0: ; 3f6d0 ; 3f71d Function3f71d: ; 3f71d - ld hl, $c6ec + ld hl, wPayDayMoney ld a, [hli] or [hl] inc hl @@ -8696,7 +8699,7 @@ Function3f71d: ; 3f71d ld a, [$c73d] and a jr z, .asm_3f73d - ld hl, $c6ee + ld hl, wPayDayMoney + 2 sla [hl] dec hl rl [hl] @@ -8709,7 +8712,7 @@ Function3f71d: ; 3f71d ld [hl], a .asm_3f73d - ld hl, $c6ee + ld hl, wPayDayMoney + 2 ld de, Money + 2 call Function3d0be ld hl, BattleText_0x80730 @@ -9426,7 +9429,7 @@ Function3fc30: ; 3fc30 Function3fc5b: ; 3fc5b ld hl, Sprites xor a - ld [hConnectionStripLength], a + ld [$ffaf], a ld b, $6 ld e, $a8 .asm_3fc65 @@ -9437,10 +9440,10 @@ Function3fc5b: ; 3fc5b inc hl ld [hl], e inc hl - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld [hli], a inc a - ld [hConnectionStripLength], a + ld [$ffaf], a ld a, $1 ld [hli], a ld a, d @@ -9448,9 +9451,9 @@ Function3fc5b: ; 3fc5b ld d, a dec c jr nz, .asm_3fc69 - ld a, [hConnectionStripLength] + ld a, [$ffaf] add $3 - ld [hConnectionStripLength], a + ld [$ffaf], a ld a, e add $8 ld e, a @@ -9487,7 +9490,7 @@ BattleStartMessage: ; 3fc8b ld [hBattleTurn], a ld a, 1 ld [$c689], a - ld de, $0101 + ld de, ANIM_SEND_OUT_MON call Function3ee17 .asm_3fcc2 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 9e1b0d8e5..a2332d2bf 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -16,10 +16,10 @@ DoEnemyTurn: ; 3400a and a jr z, DoTurn - ld a, [$d430] + ld a, [wBattleAction] cp $e jr z, DoTurn - cp $4 + cp NUM_MOVES ret nc ; fallthrough @@ -32,7 +32,7 @@ DoTurn: ; 3401d xor a ld [$c6b4], a -; Effect command checkturn is called for every move. + ; Effect command checkturn is called for every move. call CheckTurn ld a, [$c6b4] @@ -146,41 +146,38 @@ BattleCommand01: ; 34084 CheckPlayerTurn: -; check recharge ld hl, PlayerSubStatus4 - bit 5, [hl] - jr z, .CheckSleep - res 5, [hl] + bit SUBSTATUS_RECHARGE, [hl] + jr z, .no_recharge -; 'must recharge!' + res SUBSTATUS_RECHARGE, [hl] ld hl, MustRechargeText call StdBattleTextBox - call CantMove jp Function34385 +.no_recharge + -.CheckSleep ld hl, BattleMonStatus ld a, [hl] - and $7 - jr z, .CheckFrozen + and SLP + jr z, .not_asleep + dec a ld [BattleMonStatus], a - and $7 - jr z, .WokeUp + and SLP + jr z, .woke_up + xor a ld [$cfca], a ld de, ANIM_SLP call FarPlayBattleAnimation - jr .FastAsleep + jr .fast_asleep - -.WokeUp -; 'woke up!' +.woke_up ld hl, WokeUpText call StdBattleTextBox - call CantMove call UpdateBattleMonInParty ld hl, Function3df48 @@ -188,176 +185,167 @@ CheckPlayerTurn: ld a, $1 ld [$ffd4], a ld hl, PlayerSubStatus1 - res 0, [hl] - jr .CheckFrozen + res SUBSTATUS_NIGHTMARE, [hl] + jr .not_asleep - -.FastAsleep -; 'fast asleep!' +.fast_asleep ld hl, FastAsleepText call StdBattleTextBox -; Snore and Sleep Talk bypass sleep. + ; Snore and Sleep Talk bypass sleep. ld a, [CurPlayerMove] cp SNORE - jr z, .CheckFrozen + jr z, .not_asleep cp SLEEP_TALK - jr z, .CheckFrozen + jr z, .not_asleep + call CantMove jp Function34385 +.not_asleep + -.CheckFrozen ld hl, BattleMonStatus - bit 5, [hl] - jr z, .CheckFlinch + bit FRZ, [hl] + jr z, .not_frozen -; Flame Wheel and Sacred Fire thaw the user. + ; Flame Wheel and Sacred Fire thaw the user. ld a, [CurPlayerMove] cp FLAME_WHEEL - jr z, .CheckFlinch + jr z, .not_frozen cp SACRED_FIRE - jr z, .CheckFlinch + jr z, .not_frozen -; 'frozen solid!' ld hl, FrozenSolidText call StdBattleTextBox call CantMove jp Function34385 +.not_frozen + -.CheckFlinch ld hl, PlayerSubStatus3 - bit 3, [hl] ; flinch - jr z, .CheckDisabled + bit SUBSTATUS_FLINCHED, [hl] + jr z, .not_flinched - res 3, [hl] - -; 'flinched!' + res SUBSTATUS_FLINCHED, [hl] ld hl, FlinchedText call StdBattleTextBox call CantMove jp Function34385 +.not_flinched + -.CheckDisabled ld hl, PlayerDisableCount ld a, [hl] and a - jr z, .CheckConfused + jr z, .not_disabled + dec a ld [hl], a and $f - jr nz, .CheckConfused + jr nz, .not_disabled + ld [hl], a ld [DisabledMove], a - -; 'disabled no more!' ld hl, DisabledNoMoreText call StdBattleTextBox +.not_disabled + -.CheckConfused ld a, [PlayerSubStatus3] add a - jr nc, .CheckAttract + jr nc, .not_confused ld hl, PlayerConfuseCount dec [hl] - jr nz, .Confused + jr nz, .confused ld hl, PlayerSubStatus3 - res 7, [hl] - -; 'confused no more!' + res SUBSTATUS_CONFUSED, [hl] ld hl, ConfusedNoMoreText call StdBattleTextBox + jr .not_confused - jr .CheckAttract - - -.Confused -; 'confused!' +.confused ld hl, IsConfusedText call StdBattleTextBox - xor a ld [$cfca], a ld de, ANIM_CONFUSED call FarPlayBattleAnimation -; 50% chance of hitting itself + ; 50% chance of hitting itself call BattleRandom cp $80 - jr nc, .CheckAttract + jr nc, .not_confused + ; clear confussion-dependent substatus ld hl, PlayerSubStatus3 ld a, [hl] - and $80 + and 1 << SUBSTATUS_CONFUSED ld [hl], a call HitConfusion - call CantMove jp Function34385 +.not_confused + -.CheckAttract ld a, [PlayerSubStatus1] - add a ; check bit 7 - jr nc, .CheckDisabledMove + add a ; bit SUBSTATUS_ATTRACT + jr nc, .not_infatuated -; 'in love with' ld hl, InLoveWithText call StdBattleTextBox - xor a ld [$cfca], a - ld de, ANIM_IN_LOVE call FarPlayBattleAnimation -; 50% chance of infatuation + ; 50% chance of infatuation call BattleRandom cp $80 - jr c, .CheckDisabledMove + jr c, .not_infatuated -; 'infatuation kept it from attacking!' ld hl, InfatuationText call StdBattleTextBox - call CantMove jp Function34385 +.not_infatuated -.CheckDisabledMove -; We can't disable a move that doesn't exist. + + ; We can't disable a move that doesn't exist. ld a, [DisabledMove] and a - jr z, .CheckParalyzed + jr z, .no_disabled_move -; Are we using the disabled move? + ; Are we using the disabled move? ld hl, CurPlayerMove cp [hl] - jr nz, .CheckParalyzed + jr nz, .no_disabled_move call MoveDisabled call CantMove jp Function34385 +.no_disabled_move + -.CheckParalyzed ld hl, BattleMonStatus - bit 6, [hl] + bit PAR, [hl] ret z -; 25% chance to be fully paralyzed + ; 25% chance to be fully paralyzed call BattleRandom cp $3f ret nc -; 'fully paralyzed!' ld hl, FullyParalyzedText call StdBattleTextBox call CantMove @@ -368,12 +356,12 @@ CheckPlayerTurn: CantMove: ; 341f0 ld a, BATTLE_VARS_SUBSTATUS1 call _GetBattleVar - res 6, [hl] + res SUBSTATUS_ENCORED, [hl] ld a, BATTLE_VARS_SUBSTATUS3 call _GetBattleVar ld a, [hl] - and $ec + and $ff ^ (1< ReflectCount + ; LightScreenCount -> ReflectCount inc bc ld a, 5 @@ -9431,10 +9393,9 @@ Function377f5: ; 377f5 ld [CurPartySpecies], a ld hl, EnemyMonDVs ld a, [EnemySubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr z, .asm_37829 ld hl, $c6f2 - .asm_37829 ld a, [hli] ld [$d123], a @@ -9828,18 +9789,18 @@ BatonPass_LinkEnemySwitch: ; 37a82 call CallBattleCore ld a, [OTPartyCount] - add 4 + add NUM_MOVES ld b, a - ld a, [$d430] - cp 4 + ld a, [wBattleAction] + cp NUM_MOVES jr c, .asm_37aa0 cp b jr c, .asm_37aa8 .asm_37aa0 ld a, [CurOTMon] - add 4 - ld [$d430], a + add NUM_MOVES + ld [wBattleAction], a .asm_37aa8 jp Function1c17 ; 37aab @@ -9877,7 +9838,7 @@ ResetBatonPassStatus: ; 37ab1 ld a, BATTLE_VARS_SUBSTATUS5 call _GetBattleVar - res 3, [hl] + res SUBSTATUS_TRANSFORMED, [hl] res 4, [hl] ; New mon hasn't used a move yet. diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index d4a5abb14..88a2fd27d 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -1,6 +1,8 @@ MAX_LEVEL EQU 100 NUM_MOVES EQU 4 +REST_TURNS EQU 2 + ATTACK EQU 0 DEFENSE EQU 1 SPEED EQU 2 @@ -110,6 +112,7 @@ SUBSTATUS_UNLEASH EQU 0 SUBSTATUS_CANT_RUN EQU 7 SUBSTATUS_DESTINY_BOND EQU 6 SUBSTATUS_LOCK_ON EQU 5 +SUBSTATUS_TRANSFORMED EQU 3 SUBSTATUS_TOXIC EQU 0 ; environmental @@ -119,6 +122,7 @@ SCREENS_SAFEGUARD EQU 2 SCREENS_SPIKES EQU 0 ; weather +WEATHER_NONE EQU 0 WEATHER_RAIN EQU 1 WEATHER_SUN EQU 2 WEATHER_SANDSTORM EQU 3 diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 06e15fa34..e790d1650 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -267,6 +267,7 @@ HELD_BERRY EQU $01 HELD_LEFTOVERS EQU $03 HELD_RESTORE_PP EQU $06 HELD_CLEANSE_TAG EQU $08 + HELD_HEAL_POISON EQU $0a HELD_HEAL_FREEZE EQU $0b HELD_HEAL_BURN EQU $0c @@ -274,7 +275,24 @@ HELD_HEAL_SLEEP EQU $0d HELD_HEAL_PARALYZE EQU $0e HELD_HEAL_STATUS EQU $0f HELD_HEAL_CONFUSION EQU $10 + +HELD_PREVENT_POISON EQU $14 +HELD_PREVENT_BURN EQU $15 +HELD_PREVENT_FREEZE EQU $16 +HELD_PREVENT_SLEEP EQU $17 +HELD_PREVENT_PARALYZE EQU $18 +HELD_PREVENT_CONFUSE EQU $19 + +HELD_ATTACK_UP EQU $1f +HELD_DEFENSE_UP EQU $20 +HELD_SPEED_UP EQU $21 +HELD_SP_ATTACK_UP EQU $22 +HELD_SP_DEFENSE_UP EQU $23 +HELD_ACCURACY_UP EQU $24 +HELD_EVASION_UP EQU $25 + HELD_METAL_POWDER EQU $2a + HELD_NORMAL_BOOST EQU $32 HELD_FIGHTING_BOOST EQU $33 HELD_FLYING_BOOST EQU $34 @@ -292,6 +310,7 @@ HELD_ICE_BOOST EQU $3f HELD_DRAGON_BOOST EQU $40 HELD_DARK_BOOST EQU $41 HELD_STEEL_BOOST EQU $42 + HELD_ESCAPE EQU $48 HELD_CRITICAL_UP EQU $49 HELD_QUICK_CLAW EQU $4a diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 605344478..bf56c15a1 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -72,9 +72,9 @@ D_DOWN EQU %10000000 ; screen HP_BAR_LENGTH EQU 6 -HP_BAR_LENGTH_PX EQU 48 +HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * 8 EXP_BAR_LENGTH EQU 8 -EXP_BAR_LENGTH_PX EQU 64 +EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * 8 SCREEN_WIDTH EQU 20 SCREEN_HEIGHT EQU 18 diff --git a/constants/type_constants.asm b/constants/type_constants.asm index 764f41453..87b1e316a 100644 --- a/constants/type_constants.asm +++ b/constants/type_constants.asm @@ -25,7 +25,7 @@ UNUSED_TYPES EQU const_value const TYPE_17 const TYPE_18 const CURSE_T - +UNUSED_TYPES_END EQU const_value SPECIAL EQU const_value const FIRE @@ -37,3 +37,4 @@ SPECIAL EQU const_value const DRAGON const DARK +TYPES_END EQU const_value diff --git a/main.asm b/main.asm index 8f297163b..93d1efd30 100644 --- a/main.asm +++ b/main.asm @@ -57004,7 +57004,7 @@ StatsScreenInit: ; 4dc8a jr StatsScreenInit_gotaddress Function4dc8f: ; 4dc8f - ld hl, Function4dcf7 + ld hl, StatsScreenBattle jr StatsScreenInit_gotaddress StatsScreenInit_gotaddress: ; 4dc94 @@ -57063,7 +57063,7 @@ StatsScreenMain: ; 0x4dcd2 ret ; 0x4dcf7 -Function4dcf7: ; 4dcf7 +StatsScreenBattle: ; 4dcf7 xor a ld [$cf63], a ld [$cf64], a diff --git a/wram.asm b/wram.asm index 829b88a5e..3c7520fce 100644 --- a/wram.asm +++ b/wram.asm @@ -552,7 +552,11 @@ LinkBattleRNCount:: ; c6e5 CurEnemyMoveNum:: ; c6e9 ds 1 - ds 10 + ds 2 + +wPayDayMoney:: ds 3 ; c6ec + + ds 5 AlreadyDisobeyed:: ; c6f4 ds 1 @@ -1176,8 +1180,12 @@ OTPartyMon6:: party_struct OTPartyMon6 ; d378 OTPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d3a8 OTPartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; d3ea + ds 4 + +wBattleAction:: ds 1 ; d430 + + ds 1 -SECTION "Map Events", WRAMX[$d432], BANK[1] MapStatus:: ; d432 ds 1 MapEventStatus:: ; d433 From e23f34125879e680e1a6ee263cb3dbb579cc5135 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 13 Jun 2014 22:53:20 -0700 Subject: [PATCH 08/22] Battle type constants in the wild. Also add constants for trap and Celebi event battles. --- battle/core.asm | 32 +++++++++++++-------------- battle/effect_commands.asm | 4 ++-- constants/battle_constants.asm | 2 ++ home.asm | 2 +- items/item_effects.asm | 4 ++-- main.asm | 38 +++++++++++++++++--------------- maps/CherrygroveCity.asm | 6 ++--- maps/LakeofRage.asm | 2 +- maps/TeamRocketBaseB1F.asm | 6 ++--- maps/TinTower1F.asm | 2 +- maps/TinTowerRoof.asm | 2 +- maps/VermilionCity.asm | 2 +- maps/WhirlIslandLugiaChamber.asm | 2 +- predef/cgb.asm | 4 +++- text/battle.asm | 2 +- wram.asm | 4 ++-- 16 files changed, 60 insertions(+), 54 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index 9df143842..d7341fb8c 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -58,7 +58,7 @@ Function3c000: ; 3c000 ld a, [BattleType] cp $2 jp z, Function3c0e2 - cp $3 + cp BATTLETYPE_TUTORIAL jp z, Function3c0e2 xor a ld [CurPartyMon], a @@ -2459,7 +2459,7 @@ Function3cfa4: ; 3cfa4 ld c, $28 call DelayFrames ld a, [BattleType] - cp $1 + cp BATTLETYPE_CANLOSE jr nz, .asm_3cfe8 ld a, $2 call Predef @@ -3717,13 +3717,13 @@ Function3d7c7: ; 3d7c7 ld [$cfca], a ld [$c689], a call SetEnemyTurn - ld de, $0101 + ld de, ANIM_SEND_OUT_MON call Function3ee17 call Function3da79 jr nc, .asm_3d800 ld a, $1 ld [$c689], a - ld de, $0101 + ld de, ANIM_SEND_OUT_MON call Function3ee17 .asm_3d800 @@ -3773,7 +3773,7 @@ NewEnemyMonStatus: ; 3d834 ld [$c731], a ld [EnemyTurnsTaken], a ld hl, PlayerSubStatus5 - res 7, [hl] + res SUBSTATUS_CANT_RUN, [hl] ret ; 3d867 @@ -3793,7 +3793,7 @@ Function3d873: ; 3d873 ld e, a xor a ld hl, PartyMon1HP - ld bc, $002f + ld bc, PartyMon2 - (PartyMon1 + 1) .asm_3d87e or [hl] inc hl @@ -3842,13 +3842,13 @@ Function3d8b3: ; 3d8b3 jp z, .asm_3d9a2 cp $6 jp z, .asm_3d9a2 - cp $9 + cp BATTLETYPE_TRAP jp z, .asm_3d98d - cp $b + cp BATTLETYPE_CELEBI jp z, .asm_3d98d - cp $7 + cp BATTLETYPE_SHINY jp z, .asm_3d98d - cp $c + cp BATTLETYPE_SUICUNE jp z, .asm_3d98d ld a, [InLinkBattle] @@ -3860,7 +3860,7 @@ Function3d8b3: ; 3d8b3 jp nz, .asm_3d992 ld a, [EnemySubStatus5] - bit 7, a + bit SUBSTATUS_CANT_RUN, a jp nz, .asm_3d98d ld a, [$c730] @@ -5093,7 +5093,7 @@ Function3e139: ; 3e139 ld a, [BattleType] cp $2 jr z, .asm_3e156 - cp $3 + cp BATTLETYPE_TUTORIAL jr z, .asm_3e156 call EmptyBattleTextBox call UpdateBattleHuds @@ -5173,7 +5173,7 @@ Function3e1c7: ; 3e1c7 jp nz, Function3e22b call Function1d6e ld a, [BattleType] - cp $3 + cp BATTLETYPE_TUTORIAL jr z, .asm_3e1f1 cp $6 jr z, .asm_3e201 @@ -5234,7 +5234,7 @@ Function3e234: ; 3e234 call Function3ed9f call ClearSprites ld a, [BattleType] - cp $3 + cp BATTLETYPE_TUTORIAL jr z, .asm_3e25d call Function3f43d @@ -9527,8 +9527,8 @@ BattleStartMessage: ; 3fc8b ld hl, PokemonFellFromTreeText cp BATTLETYPE_TREE jr z, .asm_3fd0e - ld hl, WildPokemonAppearedText2 - cp $b + ld hl, WildCelebiAppearedText + cp BATTLETYPE_CELEBI jr z, .asm_3fd0e ld hl, WildPokemonAppearedText diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index a2332d2bf..25e2e8da4 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -7083,7 +7083,7 @@ BattleCommanda0: ; 36778 jr z, .asm_367b9 cp $9 jr z, .asm_367b9 - cp $b + cp BATTLETYPE_CELEBI jr z, .asm_367b9 cp BATTLETYPE_SUICUNE jr z, .asm_367b9 @@ -7175,7 +7175,7 @@ BattleCommand23: ; 3680f jp z, .asm_36969 cp $9 jp z, .asm_36969 - cp $b + cp BATTLETYPE_CELEBI jp z, .asm_36969 cp BATTLETYPE_SUICUNE jp z, .asm_36969 diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index 88a2fd27d..289731c1b 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -48,7 +48,9 @@ BATTLETYPE_FISH EQU $04 BATTLETYPE_ROAMING EQU $05 BATTLETYPE_SHINY EQU $07 BATTLETYPE_TREE EQU $08 +BATTLETYPE_TRAP EQU $09 BATTLETYPE_FORCEITEM EQU $0a +BATTLETYPE_CELEBI EQU $0b BATTLETYPE_SUICUNE EQU $0c ; battle variables diff --git a/home.asm b/home.asm index 5132351e1..ec106886c 100644 --- a/home.asm +++ b/home.asm @@ -1583,7 +1583,7 @@ Function36f5:: ; 36f5 Function3718:: ; 3718 ld a, [BattleType] - cp $1 + cp BATTLETYPE_CANLOSE jr .asm_3724 ld hl, WalkingTile diff --git a/items/item_effects.asm b/items/item_effects.asm index 61ff2033e..820d18399 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -238,10 +238,10 @@ ParkBall: ; e8a2 ld a, [EnemyMonCatchRate] ld b, a ld a, [BattleType] - cp $3 + cp BATTLETYPE_TUTORIAL jp z, .asm_e99c ld a, [CurItem] - cp $1 + cp MASTER_BALL jp z, .asm_e99c ld a, [CurItem] ld c, a diff --git a/main.asm b/main.asm index 93d1efd30..967147833 100644 --- a/main.asm +++ b/main.asm @@ -10585,7 +10585,7 @@ Functioncfaf: ; cfaf ld [$d22e], a ld a, e ld [CurPartyLevel], a - ld a, $4 + ld a, BATTLETYPE_FISH ld [BattleType], a ld a, $2 ret @@ -16003,7 +16003,7 @@ Function1089d: ; 1089d ld e, a ld d, $0 ld a, [BattleType] - cp $3 + cp BATTLETYPE_TUTORIAL jr z, .asm_108b3 ld a, [PlayerGender] bit 0, a @@ -16127,7 +16127,7 @@ Function10955: ; 10955 ld a, $24 call ByteFill hlcoord 5, 1 - ld bc, $0b0f + lb bc, 11, 15 call ClearBox ld hl, TileMap ld a, $28 @@ -16140,7 +16140,7 @@ Function10955: ; 10955 call Function109bb call Function109a5 hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, 18 call TextBox call EnableLCD call Function1089d @@ -36142,7 +36142,7 @@ Function2715c: ; 2715c call WhiteBGMap call ClearTileMap ld a, [BattleType] - cp $3 + cp BATTLETYPE_TUTORIAL jr z, .asm_27171 callba Function3f43d jr .asm_27177 @@ -40583,7 +40583,7 @@ Function2a0e7:: ; 2a0e7 ret .asm_2a0f8 - xor a + xor a ; BATTLETYPE_NORMAL ld [$d22e], a ld [BattleType], a ld a, 1 @@ -40984,6 +40984,7 @@ Function2a2ce: ; 2a2ce ld [CurPartyLevel], a ld a, BATTLETYPE_ROAMING ld [BattleType], a + pop hl scf ret @@ -42840,9 +42841,10 @@ Function2c9b1: ; 2c9b1 (b:49b1) ; known jump sources: 2c8d6 (b:48d6), 2c915 (b:4915), 2c9bf (b:49bf), 2c9dc (b:49dc) Function2c9e2: ; 2c9e2 (b:49e2) - ld a, [BattleType] ; $d230 - cp $3 + ld a, [BattleType] + cp BATTLETYPE_TUTORIAL jp z, Function2caca + hlcoord 5, 2 ld bc, $a0f ld a, $7f @@ -52591,7 +52593,7 @@ Function49bed: ; 49bed ; 49bf3 Function49bf3: ; 49bf3 - ld a, $b + ld a, BATTLETYPE_CELEBI ld [BattleType], a ret ; 49bf9 @@ -58218,11 +58220,11 @@ Jumptable_4e564: ; 4e564 (13:6564) Function4e56a: ; 4e56a (13:656a) ld hl, PlayerName ; $d47d ld de, MomsName ; $d488 - ld bc, $b + ld bc, NAME_LENGTH call CopyBytes ld hl, String_4e5da ld de, PlayerName ; $d47d - ld bc, $b + ld bc, NAME_LENGTH call CopyBytes call Function4e5b7 xor a @@ -58242,7 +58244,7 @@ Function4e56a: ; 4e56a (13:656a) ld [Options], a ; $cfcc ld hl, MomsName ; $d488 ld de, PlayerName ; $d47d - ld bc, $b + ld bc, NAME_LENGTH call CopyBytes ret @@ -63190,7 +63192,7 @@ Unknown_80671: ; 80671 Function806c5: ; 806c5 ; Caught mons. ld hl, PokedexCaught - ld b, $20 + ld b, EndPokedexCaught - PokedexCaught call CountSetBits ld a, [$d265] jp Function8066c @@ -63199,7 +63201,7 @@ Function806c5: ; 806c5 Function806d3: ; 806d3 ; Seen mons. ld hl, PokedexSeen - ld b, $20 + ld b, EndPokedexSeen - PokedexSeen call CountSetBits ld a, [$d265] jp Function8066c @@ -63207,7 +63209,7 @@ Function806d3: ; 806d3 Function806e1: ; 806e1 ; Number of owned badges. - ld hl, JohtoBadges ; $d857 + ld hl, Badges ; $d857 ld b, 2 call CountSetBits ld a, [$d265] @@ -87330,7 +87332,7 @@ Functionb81ea: ; b81ea jr nc, .asm_b8214 call Functionb83e5 jr nc, .asm_b8214 - ld a, $8 + ld a, BATTLETYPE_TREE ld [BattleType], a ld a, $1 ld [ScriptVar], a @@ -108250,7 +108252,7 @@ Function106050: ; 106050 Function106051: ; 106051 ld a, [BattleType] - cp $3 + cp BATTLETYPE_TUTORIAL ret z ld hl, $a01b jp Function10611d @@ -108263,7 +108265,7 @@ Function10605d: ; 10605d Function10605e: ; 10605e ld a, [BattleType] - cp $3 + cp BATTLETYPE_TUTORIAL ret z ld hl, $a01e jp Function10611d diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index f2573913b..cdcacbd1b 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -130,7 +130,7 @@ UnknownScript_0x19c0ae: ; 0x19c0ae winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6 setlasttalked $3 loadtrainer RIVAL1, RIVAL1_3 - writecode $3, $1 + writecode $3, BATTLETYPE_CANLOSE startbattle reloadmapmusic reloadmap @@ -142,7 +142,7 @@ UnknownScript_0x19c0ee: ; 0x19c0ee winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6 setlasttalked $3 loadtrainer RIVAL1, RIVAL1_1 - writecode $3, $1 + writecode $3, BATTLETYPE_CANLOSE startbattle reloadmapmusic reloadmap @@ -154,7 +154,7 @@ UnknownScript_0x19c104: ; 0x19c104 winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6 setlasttalked $3 loadtrainer RIVAL1, RIVAL1_2 - writecode $3, $1 + writecode $3, BATTLETYPE_CANLOSE startbattle reloadmapmusic reloadmap diff --git a/maps/LakeofRage.asm b/maps/LakeofRage.asm index 46cdf948f..fcd052968 100644 --- a/maps/LakeofRage.asm +++ b/maps/LakeofRage.asm @@ -88,7 +88,7 @@ GyaradosScript_0x70063: ; 0x70063 cry GYARADOS loadmovesprites loadpokedata GYARADOS, 30 - writecode $3, $7 + writecode $3, BATTLETYPE_SHINY startbattle if_equal $1, UnknownScript_0x7007a disappear $a diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm index 7c8b2f50b..d0aa17c29 100644 --- a/maps/TeamRocketBaseB1F.asm +++ b/maps/TeamRocketBaseB1F.asm @@ -464,7 +464,7 @@ VoltorbExplodingTrap: ; 0x6ca34 cry VOLTORB special $0031 setlasttalked $ff - writecode $3, $9 + writecode $3, BATTLETYPE_TRAP loadpokedata VOLTORB, 23 startbattle end @@ -474,7 +474,7 @@ GeodudeExplodingTrap: ; 0x6ca47 cry GEODUDE special $0031 setlasttalked $ff - writecode $3, $9 + writecode $3, BATTLETYPE_TRAP loadpokedata GEODUDE, 21 startbattle end @@ -484,7 +484,7 @@ KoffingExplodingTrap: ; 0x6ca5a cry KOFFING special $0031 setlasttalked $ff - writecode $3, $9 + writecode $3, BATTLETYPE_TRAP loadpokedata KOFFING, 21 startbattle end diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm index 4e4d93d04..d9a1fe044 100644 --- a/maps/TinTower1F.asm +++ b/maps/TinTower1F.asm @@ -122,7 +122,7 @@ UnknownScript_0x1850d7: ; 0x1850d7 cry SUICUNE pause 20 loadpokedata SUICUNE, 40 - writecode $3, $c + writecode $3, BATTLETYPE_SUICUNE startbattle reloadmapmusic disappear $2 diff --git a/maps/TinTowerRoof.asm b/maps/TinTowerRoof.asm index 27ed801c5..5e3aa8bea 100644 --- a/maps/TinTowerRoof.asm +++ b/maps/TinTowerRoof.asm @@ -36,7 +36,7 @@ HoOhScript_0x77244: ; 0x77244 pause 15 loadmovesprites setevent EVENT_FOUGHT_HO_OH - writecode $3, $a + writecode $3, BATTLETYPE_FORCEITEM loadpokedata HO_OH, 60 startbattle disappear $2 diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm index a1e1123db..d69a9546f 100644 --- a/maps/VermilionCity.asm +++ b/maps/VermilionCity.asm @@ -56,7 +56,7 @@ UnknownScript_0x1aa9ab: ; 0x1aa9ab pause 15 cry SNORLAX loadmovesprites - writecode $3, $a + writecode $3, BATTLETYPE_FORCEITEM loadpokedata SNORLAX, 50 startbattle disappear $6 diff --git a/maps/WhirlIslandLugiaChamber.asm b/maps/WhirlIslandLugiaChamber.asm index 05adf2ced..ff95c239d 100644 --- a/maps/WhirlIslandLugiaChamber.asm +++ b/maps/WhirlIslandLugiaChamber.asm @@ -36,7 +36,7 @@ LugiaScript_0x18c518: ; 0x18c518 pause 15 loadmovesprites setevent EVENT_FOUGHT_LUGIA - writecode $3, $a + writecode $3, BATTLETYPE_FORCEITEM loadpokedata LUGIA, 60 startbattle disappear $2 diff --git a/predef/cgb.asm b/predef/cgb.asm index 8d59b2326..38f4e146d 100644 --- a/predef/cgb.asm +++ b/predef/cgb.asm @@ -840,11 +840,13 @@ Function93ba: ; 93ba Function93d3: ; 93d3 ld a, [BattleType] - cp $3 + cp BATTLETYPE_TUTORIAL jr z, .asm_93e6 + ld a, [PlayerGender] bit 0, a jr z, .asm_93e6 + ld hl, Palettes_9469 jr .asm_93e9 diff --git a/text/battle.asm b/text/battle.asm index b850c9661..834ec3c71 100644 --- a/text/battle.asm +++ b/text/battle.asm @@ -30,7 +30,7 @@ PokemonFellFromTreeText: ; 0x80778 prompt ; 0x80793 -WildPokemonAppearedText2: ; 0x80793 +WildCelebiAppearedText: ; 0x80793 text "Wild @" text_from_ram $c616 db $0 diff --git a/wram.asm b/wram.asm index 3c7520fce..49746cff6 100644 --- a/wram.asm +++ b/wram.asm @@ -1375,9 +1375,9 @@ Coins:: ; d855 Badges:: JohtoBadges:: ; d857 - ds 1 + flag_array 8 KantoBadges:: ; d858 - ds 1 + flag_array 8 SECTION "Items",WRAMX[$d859],BANK[1] TMsHMs:: ; d859 From b83f23725452fed945f8047711f94ba07952f870 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 14 Jun 2014 00:34:57 -0700 Subject: [PATCH 09/22] Rename _GetBattleVar -> GetBattleVarAddr. Functions prefixed with _ imply they're private. The real purpose of this function is to use an address, rather than saving a few cycles on push/pop. --- battle/core.asm | 34 +++---- battle/effect_commands.asm | 162 ++++++++++++++++----------------- battle/effects/curse.asm | 2 +- battle/effects/endure.asm | 2 +- battle/effects/foresight.asm | 2 +- battle/effects/metronome.asm | 2 +- battle/effects/mirror_move.asm | 4 +- battle/effects/nightmare.asm | 4 +- battle/effects/protect.asm | 2 +- battle/effects/rollout.asm | 6 +- battle/hidden_power.asm | 2 +- home/battle.asm | 4 +- main.asm | 4 +- 13 files changed, 115 insertions(+), 115 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index d7341fb8c..8543f6e4c 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -397,11 +397,11 @@ Function3c27c: ; 3c27c xor a ld [hl], a ld a, BATTLE_VARS_SUBSTATUS3 - call _GetBattleVar + call GetBattleVarAddr push af set SUBSTATUS_CONFUSED, [hl] ld a, BATTLE_VARS_MOVE_ANIM - call _GetBattleVar + call GetBattleVarAddr push hl push af xor a @@ -1033,18 +1033,18 @@ Function3c6de: ; 3c6de Function3c6ed: ; 3c6ed ld a, BATTLE_VARS_SUBSTATUS1_OPP - call _GetBattleVar + call GetBattleVarAddr res SUBSTATUS_PROTECT, [hl] res SUBSTATUS_ENDURE, [hl] ld a, BATTLE_VARS_SUBSTATUS5_OPP - call _GetBattleVar + call GetBattleVarAddr res SUBSTATUS_DESTINY_BOND, [hl] ret ; 3c6fe Function3c6fe: ; 3c6fe ld a, BATTLE_VARS_SUBSTATUS5 - call _GetBattleVar + call GetBattleVarAddr res SUBSTATUS_DESTINY_BOND, [hl] ret ; 3c706 @@ -1121,7 +1121,7 @@ Function3c716: ; 3c716 jp z, .asm_3c7f7 ld a, BATTLE_VARS_SUBSTATUS4 - call _GetBattleVar + call GetBattleVarAddr bit SUBSTATUS_LEECH_SEED, [hl] jr z, .asm_3c7a1 @@ -1148,7 +1148,7 @@ Function3c716: ; 3c716 jr z, .asm_3c7f7 ld a, BATTLE_VARS_SUBSTATUS1 - call _GetBattleVar + call GetBattleVarAddr bit SUBSTATUS_NIGHTMARE, [hl] jr z, .asm_3c7c5 @@ -1166,7 +1166,7 @@ Function3c716: ; 3c716 jr z, .asm_3c7f7 ld a, BATTLE_VARS_SUBSTATUS1 - call _GetBattleVar + call GetBattleVarAddr bit SUBSTATUS_CURSE, [hl] jr z, .asm_3c7e9 @@ -1233,7 +1233,7 @@ Function3c801: ; 3c801 pop af ret nz ld a, BATTLE_VARS_SUBSTATUS1 - call _GetBattleVar + call GetBattleVarAddr res SUBSTATUS_PERISH, [hl] ld a, [hBattleTurn] and a @@ -1556,7 +1556,7 @@ Function3ca26: ; 3ca26 call StdBattleTextBox ld a, BATTLE_VARS_MOVE - call _GetBattleVar + call GetBattleVarAddr push af ld a, FUTURE_SIGHT ld [hl], a @@ -1573,7 +1573,7 @@ Function3ca26: ; 3ca26 ld [CurDamage + 1], a ld a, BATTLE_VARS_MOVE - call _GetBattleVar + call GetBattleVarAddr pop af ld [hl], a @@ -4350,7 +4350,7 @@ Function3dc5b: ; 3dc5b rst FarCall ld a, BATTLE_VARS_MOVE - call _GetBattleVar + call GetBattleVarAddr ld a, $ff ld [hl], a @@ -4570,7 +4570,7 @@ Function3dde9: ; 3dde9 dec hl ld b, [hl] ld a, BATTLE_VARS_STATUS_OPP - call _GetBattleVar + call GetBattleVarAddr and b ret z xor a @@ -4579,18 +4579,18 @@ Function3dde9: ; 3dde9 call UpdateOpponentInParty pop bc ld a, BATTLE_VARS_SUBSTATUS5_OPP - call _GetBattleVar + call GetBattleVarAddr and [hl] res SUBSTATUS_TOXIC, [hl] ld a, BATTLE_VARS_SUBSTATUS1_OPP - call _GetBattleVar + call GetBattleVarAddr and [hl] res SUBSTATUS_NIGHTMARE, [hl] ld a, b cp $7f jr nz, .asm_3de26 ld a, BATTLE_VARS_SUBSTATUS3_OPP - call _GetBattleVar + call GetBattleVarAddr res SUBSTATUS_CONFUSED, [hl] .asm_3de26 @@ -4639,7 +4639,7 @@ Function3de51: ; 3de51 ld a, [hl] ld [$d265], a ld a, BATTLE_VARS_SUBSTATUS3_OPP - call _GetBattleVar + call GetBattleVarAddr res SUBSTATUS_CONFUSED, [hl] call GetItemName call Function3ddc8 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 25e2e8da4..4bbd0ba6b 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -355,11 +355,11 @@ CheckPlayerTurn: CantMove: ; 341f0 ld a, BATTLE_VARS_SUBSTATUS1 - call _GetBattleVar + call GetBattleVarAddr res SUBSTATUS_ENCORED, [hl] ld a, BATTLE_VARS_SUBSTATUS3 - call _GetBattleVar + call GetBattleVarAddr ld a, [hl] and $ff ^ (1< Date: Sat, 14 Jun 2014 15:00:03 -0700 Subject: [PATCH 10/22] Item constants in trainer ai. --- main.asm | 65 +++++++++++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/main.asm b/main.asm index a8b58fcec..6596d302c 100644 --- a/main.asm +++ b/main.asm @@ -43541,7 +43541,7 @@ Function38000: ; 38000 callba Function3e8d1 ret nz ld a, [PlayerSubStatus5] - bit 7, a + bit SUBSTATUS_CANT_RUN, a jr nz, Function38041 ld a, [$c731] and a @@ -43672,7 +43672,7 @@ Function380c1: ; 380c1 Function380ff: ; 380ff ld a, [EnemySubStatus5] - bit 7, a + bit SUBSTATUS_CANT_RUN, a ret ; 38105 @@ -43737,13 +43737,13 @@ Function38105: ; 38105 inc a ld [$c70f], a ld hl, EnemySubStatus3 ; $c66f - res 0, [hl] + res SUBSTATUS_BIDE, [hl] xor a ld [EnemyFuryCutterCount], a ; $c680 ld [$c681], a ld [$c72c], a ld hl, EnemySubStatus4 ; $c670 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] xor a ld [LastPlayerCounterMove], a ; $c6f9 scf @@ -43753,9 +43753,9 @@ Function38105: ; 38105 Function38170: ; 38170 ld a, [OTPartyCount] ld d, a - ld e, $0 + ld e, 0 ld hl, OTPartyMon1Level - ld bc, PartyMon2 - PartyMon1 + ld bc, OTPartyMon2 - OTPartyMon1 .asm_3817c ld a, [hl] cp e @@ -43809,6 +43809,7 @@ Function381ca: ; 381ca (e:41ca) ld a, [EnemyMonStatus] ; $d214 and a jp z, Function38383 + ld a, [bc] bit 6, a jr nz, .asm_381e7 @@ -43821,8 +43822,8 @@ Function381ca: ; 381ca (e:41ca) jp Function38383 .asm_381e7 - ld a, [EnemySubStatus5] ; $c671 - bit 0, a + ld a, [EnemySubStatus5] + bit SUBSTATUS_TOXIC, a jr z, .asm_381fd ld a, [$c67c] cp $4 @@ -43831,8 +43832,8 @@ Function381ca: ; 381ca (e:41ca) cp $80 jp c, Function38385 .asm_381fd - ld a, [EnemyMonStatus] ; $d214 - and $27 + ld a, [EnemyMonStatus] + and 1 << FRZ | SLP jp z, Function38383 jp Function38385 ; 38208 @@ -43875,7 +43876,6 @@ Function3822c: ; 3822c (e:422c) jp c, Function38281 jp Function38383 -; known jump sources: 3823d (e:423d) Function38254: ; 38254 (e:4254) callab AICheckEnemyQuarterHP jp c, Function38383 @@ -43893,7 +43893,6 @@ Function38267: ; 38267 (e:4267) cp $32 jp nc, Function38383 -; known jump sources: 38246 (e:4246), 3824e (e:424e), 38265 (e:4265), 38276 (e:4276) Function38281: ; 38281 (e:4281) jp Function38385 ; 38284 @@ -44044,12 +44043,10 @@ Function3834d: ; 3834d (e:434d) jp nc, Function38383 jp Function38385 -; known jump sources: 381c1 (e:41c1), 381ce (e:41ce), 381e4 (e:41e4), 38202 (e:4202), 38211 (e:4211), 38217 (e:4217), 38223 (e:4223), 38237 (e:4237), 38251 (e:4251), 3825a (e:425a), 38262 (e:4262), 3826d (e:426d), 3827e (e:427e), 38287 (e:4287), 38314 (e:4314), 3835e (e:435e), 3836c (e:436c), 38375 (e:4375), 3837d (e:437d) Function38383: ; 38383 (e:4383) scf ret -; known jump sources: 381c7 (e:41c7), 381d9 (e:41d9), 381e1 (e:41e1), 381fa (e:41fa), 38205 (e:4205), 3821d (e:421d), 38229 (e:4229), 38281 (e:4281), 3828f (e:428f), 3831a (e:431a), 38356 (e:4356), 38364 (e:4364), 3836f (e:436f), 38380 (e:4380) Function38385: ; 38385 (e:4385) and a ret @@ -44079,7 +44076,7 @@ Function3839a: ; 3839a Function383a3: ; 383a3 (e:43a3) call Function3839a call Function384e0 - ld a, $26 + ld a, FULL_HEAL jp Function38568 ; known jump sources: 38226 (e:4226) @@ -44094,7 +44091,7 @@ Function383b5: ; 383b5 (e:43b5) ld a, $e ld [$d1f1], a ld hl, EnemySubStatus3 ; $c66f - res 7, [hl] + res SUBSTATUS_CONFUSED, [hl] xor a ld [EnemyConfuseCount], a ; $c67b asm_383c6: ; 383c6 (e:43c6) @@ -44215,7 +44212,7 @@ Function3846c: ; 3846c ld [$c711], a ld [$c70f], a ld hl, EnemySubStatus4 - res 6, [hl] + res SUBSTATUS_RAGE, [hl] xor a ld [hBattleTurn], a callab Function3dc5b @@ -44240,7 +44237,7 @@ Function3846c: ; 3846c callab NewEnemyMonStatus callab ResetEnemyStatLevels ld hl, PlayerSubStatus1 - res 7, [hl] + res SUBSTATUS_IN_LOVE, [hl] callba Function3d4e1 callba Function3d57a xor a @@ -44260,7 +44257,7 @@ UnknownText_0x384d0: ; 384d0 Function384d5: ; 384d5 call Function3839a call Function384e0 - ld a, $34 + ld a, X_SPEED jp Function38568 ; 384e0 @@ -44273,31 +44270,31 @@ Function384e0: ; 384e0 ld [hl], a ld [EnemyMonStatus], a ld hl, EnemySubStatus5 - res 0, [hl] + res SUBSTATUS_TOXIC, [hl] ret ; 384f7 Function384f7: ; 384f7 call Function3839a ld hl, EnemySubStatus4 - set 0, [hl] - ld a, $21 + set SUBSTATUS_UNLEASH, [hl] + ld a, X_ACCURACY jp Function38568 ; 38504 Function38504: ; 38504 call Function3839a ld hl, EnemySubStatus4 - set 1, [hl] - ld a, $29 + set SUBSTATUS_MIST, [hl] + ld a, GUARD_SPEC jp Function38568 ; 38511 Function38511: ; 38511 call Function3839a ld hl, EnemySubStatus4 - set 2, [hl] - ld a, $2c + set SUBSTATUS_FOCUS_ENERGY, [hl] + ld a, DIRE_HIT jp Function38568 ; 3851e @@ -44328,26 +44325,26 @@ Function3851e: ; 3851e ; 38541 Function38541: ; 38541 - ld b, $0 - ld a, $31 + ld b, ATTACK + ld a, X_ATTACK jr Function38557 ; 38547 Function38547: ; 38547 - ld b, $1 - ld a, $33 + ld b, DEFENSE + ld a, X_DEFEND jr Function38557 ; 3854d Function3854d: ; 3854d - ld b, $2 - ld a, $34 + ld b, SPEED + ld a, X_SPEED jr Function38557 ; 38553 Function38553: ; 38553 - ld b, $3 - ld a, $35 + ld b, SP_ATTACK + ld a, X_SPECIAL Function38557 ld [$d1f1], a From e6271ca450ea051de57a666868061f94a0a679ed Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 14 Jun 2014 15:03:23 -0700 Subject: [PATCH 11/22] Move trainer item AI into battle/ai/items.asm. --- battle/ai/items.asm | 848 +++++++++++++++++++++++++++++++++++++++++++ main.asm | 850 +------------------------------------------- 2 files changed, 849 insertions(+), 849 deletions(-) create mode 100644 battle/ai/items.asm diff --git a/battle/ai/items.asm b/battle/ai/items.asm new file mode 100644 index 000000000..dcdf39feb --- /dev/null +++ b/battle/ai/items.asm @@ -0,0 +1,848 @@ +Function38000: ; 38000 + and a + ld a, [IsInBattle] + dec a + ret z + ld a, [InLinkBattle] + and a + ret nz + callba Function3e8d1 + ret nz + ld a, [PlayerSubStatus5] + bit SUBSTATUS_CANT_RUN, a + jr nz, Function38041 + ld a, [$c731] + and a + jr nz, Function38041 + ld hl, TrainerClassAttributes + 5 + ld a, [$cfc0] + and a + jr nz, .asm_38032 + ld a, [TrainerClass] + dec a + ld bc, 7 + call AddNTimes + +.asm_38032 + bit 0, [hl] + jp nz, Function38045 + bit 1, [hl] + jp nz, Function38083 + bit 2, [hl] + jp nz, Function380c1 + ; fallthrough +; 38041 + +Function38041: ; 38041 + call Function38105 + ret +; 38045 + +Function38045: ; 38045 + callab Function34941 + ld a, [$c717] + and $f0 + jp z, Function38041 + cp $10 + jr nz, .asm_38061 + call Random + cp $80 + jr c, .asm_38077 + jp Function38041 + +.asm_38061 + cp $20 + jr nz, .asm_3806f + call Random + cp $c8 + jr c, .asm_38077 + jp Function38041 + +.asm_3806f + call Random + cp $a + jp c, Function38041 + +.asm_38077 + ld a, [$c717] + and $f + inc a + ld [$c718], a + jp Function3844b +; 38083 + +Function38083: ; 38083 + callab Function34941 + ld a, [$c717] + and $f0 + jp z, Function38041 + cp $10 + jr nz, .asm_3809f + call Random + cp $14 + jr c, .asm_380b5 + jp Function38041 + +.asm_3809f + cp $20 + jr nz, .asm_380ad + call Random + cp $1e + jr c, .asm_380b5 + jp Function38041 + +.asm_380ad + call Random + cp $c8 + jp c, Function38041 + +.asm_380b5 + ld a, [$c717] + and $f + inc a + ld [$c718], a + jp Function3844b +; 380c1 + +Function380c1: ; 380c1 + callab Function34941 + ld a, [$c717] + and $f0 + jp z, Function38041 + cp $10 + jr nz, .asm_380dd + call Random + cp $32 + jr c, .asm_380f3 + jp Function38041 + +.asm_380dd + cp $20 + jr nz, .asm_380eb + call Random + cp $80 + jr c, .asm_380f3 + jp Function38041 + +.asm_380eb + call Random + cp $32 + jp c, Function38041 + +.asm_380f3 + ld a, [$c717] + and $f + inc a + ld [$c718], a + jp Function3844b +; 380ff + + +Function380ff: ; 380ff + ld a, [EnemySubStatus5] + bit SUBSTATUS_CANT_RUN, a + ret +; 38105 + + +Function38105: ; 38105 + ld a, [$cfc0] + and a + ret nz + ld a, [$c650] + ld b, a + ld a, [$c651] + or b + ret z + call Function38170 + ret nc + ld a, [TrainerClass] + dec a + ld hl, TrainerClassAttributes + 5 + ld bc, 7 + call AddNTimes + ld b, h + ld c, l + ld hl, Unknown_38196 + ld de, $c650 +.asm_3812c + ld a, [hl] + and a + inc a + ret z + ld a, [de] + cp [hl] + jr z, .asm_3813f + inc de + ld a, [de] + cp [hl] + jr z, .asm_3813f + dec de + inc hl + inc hl + inc hl + jr .asm_3812c + +.asm_3813f + inc hl + push hl + push de + ld de, .asm_3814a + push de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.asm_3814a + pop de + pop hl + inc hl + inc hl + jr c, .asm_3812c + xor a + ld [de], a + inc a + ld [$c70f], a + ld hl, EnemySubStatus3 ; $c66f + res SUBSTATUS_BIDE, [hl] + xor a + ld [EnemyFuryCutterCount], a ; $c680 + ld [$c681], a + ld [$c72c], a + ld hl, EnemySubStatus4 ; $c670 + res SUBSTATUS_RAGE, [hl] + xor a + ld [LastPlayerCounterMove], a ; $c6f9 + scf + ret + + +Function38170: ; 38170 + ld a, [OTPartyCount] + ld d, a + ld e, 0 + ld hl, OTPartyMon1Level + ld bc, OTPartyMon2 - OTPartyMon1 +.asm_3817c + ld a, [hl] + cp e + jr c, .asm_38181 + ld e, a +.asm_38181 + add hl, bc + dec d + jr nz, .asm_3817c + + ld a, [CurOTMon] + ld hl, OTPartyMon1Level + call AddNTimes + ld a, [hl] + cp e + jr nc, .asm_38194 + and a + ret + +.asm_38194 + scf + ret +; 38196 + +Unknown_38196: ; 39196 + dbw FULL_RESTORE, Function38208 + dbw MAX_POTION, Function38220 + dbw HYPER_POTION, Function38284 + dbw SUPER_POTION, Function38292 + dbw POTION, Function382a0 + dbw X_ACCURACY, Function382f9 + dbw FULL_HEAL, Function381be + dbw GUARD_SPEC, Function38305 + dbw DIRE_HIT, Function38311 + dbw X_ATTACK, Function3831d + dbw X_DEFEND, Function38329 + dbw X_SPEED, Function38335 + dbw X_SPECIAL, Function38341 + db $ff +; 381be + +Function381be: ; 381be + call Function381ca + jp c, Function38383 + call Function383a3 + jp Function38385 +; 381ca + +; known jump sources: 381be (e:41be), 38214 (e:4214) +Function381ca: ; 381ca (e:41ca) + ld a, [EnemyMonStatus] ; $d214 + and a + jp z, Function38383 + + ld a, [bc] + bit 6, a + jr nz, .asm_381e7 + ld a, [bc] + bit 4, a + jp nz, Function38385 + call Random + cp $32 + jp c, Function38385 + jp Function38383 + +.asm_381e7 + ld a, [EnemySubStatus5] + bit SUBSTATUS_TOXIC, a + jr z, .asm_381fd + ld a, [$c67c] + cp $4 + jr c, .asm_381fd + call Random + cp $80 + jp c, Function38385 +.asm_381fd + ld a, [EnemyMonStatus] + and 1 << FRZ | SLP + jp z, Function38383 + jp Function38385 +; 38208 + +Function38208: ; 38208 + call Function3822c + jp nc, Function3821a + ld a, [bc] + bit 6, a + jp z, Function38383 + call Function381ca + jp c, Function38383 + +; known jump sources: 3820b (e:420b) +Function3821a: ; 3821a (e:421a) + call Function383b5 + jp Function38385 +; 38220 + +Function38220: ; 38220 + call Function3822c + jp c, Function38383 + call Function383ae + jp Function38385 + +; known jump sources: 38208 (e:4208), 38220 (e:4220), 38284 (e:4284) +Function3822c: ; 3822c (e:422c) + ld a, [bc] + bit 6, a + jr nz, Function38267 + callab AICheckEnemyHalfHP + jp c, Function38383 + ld a, [bc] + bit 5, a + jp nz, Function38254 + callab AICheckEnemyQuarterHP + jp nc, Function38281 + call Random + cp $80 + jp c, Function38281 + jp Function38383 + +Function38254: ; 38254 (e:4254) + callab AICheckEnemyQuarterHP + jp c, Function38383 + call Random + cp $32 + jp c, Function38383 + jr Function38281 + +Function38267: ; 38267 (e:4267) + callab AICheckEnemyHalfHP + jp c, Function38383 + callab AICheckEnemyQuarterHP + jp nc, Function38281 + call Random + cp $32 + jp nc, Function38383 + +Function38281: ; 38281 (e:4281) + jp Function38385 +; 38284 + +Function38284: ; 38284 + call Function3822c + jp c, Function38383 + ld b, 200 + call Function383f4 + jp Function38385 +; 38292 (e:4292) + +Function38292: ; 38292 + call Function3822c + jp c, Function38383 + +Function38298: ; 38298 + ld b, 50 + call Function383ee + jp Function38385 +; 382a0 + +Function382a0: ; 382a0 + call Function3822c + jp c, Function38383 + ld b, 20 + call Function383e8 + jp Function38385 +; 382ae + +Function382ae: ; 382ae + callab AICheckEnemyMaxHP + jr c, .asm_382e4 + push bc + ld de, EnemyMonMaxHP + 1 + ld hl, EnemyMonHP + 1 + ld a, [de] + sub [hl] + jr z, .asm_382e7 + dec hl + dec de + ld c, a + sbc [hl] + and a + jr nz, .asm_382e7 + ld a, c + cp b + jp c, .asm_382d5 + callab AICheckEnemyQuarterHP + jr c, .asm_382e7 + +.asm_382d5 + pop bc + ld a, [bc] + bit 5, a + jp z, Function38385 + call Random + cp $80 + jp c, Function38385 + +.asm_382e4 + jp Function38383 + +.asm_382e7 + pop bc + ld a, [bc] + bit 5, a + jp z, Function38383 + call Random + cp $64 + jp c, Function38385 + jp Function38383 +; 382f9 + +Function382f9: ; 382f9 + call Function3834d + jp c, Function38383 + call Function384f7 + jp Function38385 +; 38305 + +Function38305: ; 38305 + call Function3834d + jp c, Function38383 + call Function38504 + jp Function38385 +; 38311 + +Function38311: ; 38311 + call Function3834d + jp c, Function38383 + call Function38511 + jp Function38385 +; 3831d (e:431d) + +Function3831d: ; 3831d + call Function3834d + jp c, Function38383 + call Function38541 + jp Function38385 +; 38329 + +Function38329: ; 38329 + call Function3834d + jp c, Function38383 + call Function38547 + jp Function38385 +; 38335 + +Function38335: ; 38335 + call Function3834d + jp c, Function38383 + call Function3854d + jp Function38385 +; 38341 + +Function38341: ; 38341 + call Function3834d + jp c, Function38383 + call Function38553 + jp Function38385 +; 3834d + +; known jump sources: 38311 (e:4311) +Function3834d: ; 3834d (e:434d) + ld a, [EnemyTurnsTaken] ; $c6dc + and a + jr nz, .asm_38372 + ld a, [bc] + bit 4, a + jp nz, Function38385 + call Random + cp $80 + jp c, Function38383 + ld a, [bc] + bit 6, a + jp nz, Function38385 + call Random + cp $80 + jp c, Function38383 + jp Function38385 +.asm_38372 + ld a, [bc] + bit 4, a + jp z, Function38383 + call Random + cp $32 + jp nc, Function38383 + jp Function38385 + +Function38383: ; 38383 (e:4383) + scf + ret + +Function38385: ; 38385 (e:4385) + and a + ret + + +Function38387: ; 38387 + call UpdateEnemyMonInParty + callba Function3e036 + ld a, $1 + ld [hBGMapMode], a + ld hl, $c6e6 + dec [hl] + scf + ret +; 3839a + +Function3839a: ; 3839a + push de + ld de, SFX_FULL_HEAL + call PlaySFX + pop de + ret +; 383a3 + + +; known jump sources: 381c4 (e:41c4) +Function383a3: ; 383a3 (e:43a3) + call Function3839a + call Function384e0 + ld a, FULL_HEAL + jp Function38568 + +; known jump sources: 38226 (e:4226) +Function383ae: ; 383ae (e:43ae) + ld a, $f + ld [$d1f1], a + jr asm_383c6 + +; known jump sources: 3821a (e:421a) +Function383b5: ; 383b5 (e:43b5) + call Function384e0 + ld a, $e + ld [$d1f1], a + ld hl, EnemySubStatus3 ; $c66f + res SUBSTATUS_CONFUSED, [hl] + xor a + ld [EnemyConfuseCount], a ; $c67b +asm_383c6: ; 383c6 (e:43c6) + ld de, $d1ec + ld hl, EnemyMonHP + 1 ; $d217 + ld a, [hld] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld hl, EnemyMonMaxHP + 1 ; $d219 + ld a, [hld] + ld [de], a + inc de + ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) + ld [EnemyMonHP + 1], a ; $d217 + ld a, [hl] + ld [de], a + ld [Buffer2], a ; $d1eb (aliases: MovementType) + ld [EnemyMonHP], a ; $d216 (aliases: EnemyMonHP) + jr asm_38436 +; 383e8 (e:43e8) + +Function383e8: ; 383e8 + ld a, POTION + ld b, 20 + jr Function383f8 + +Function383ee: ; 383ee + ld a, SUPER_POTION + ld b, 50 + jr Function383f8 + +; known jump sources: 3828c (e:428c) +Function383f4: ; 383f4 (e:43f4) + ld a, HYPER_POTION + ld b, 200 + +Function383f8: ; 383f8 + ld [$d1f1], a + ld hl, EnemyMonHP + 1 ; $d217 + ld a, [hl] + ld [$d1ec], a + add b + ld [hld], a + ld [$d1ee], a + ld a, [hl] + ld [$d1ed], a + ld [$d1ef], a + jr nc, .asm_38415 + inc a + ld [hl], a + ld [$d1ef], a +.asm_38415 + inc hl + ld a, [hld] + ld b, a + ld de, EnemyMonMaxHP + 1 ; $d219 + ld a, [de] + dec de + ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) + sub b + ld a, [hli] + ld b, a + ld a, [de] + ld [Buffer2], a ; $d1eb (aliases: MovementType) + sbc b + jr nc, asm_38436 + inc de + ld a, [de] + dec de + ld [hld], a + ld [$d1ee], a + ld a, [de] + ld [hl], a + ld [$d1ef], a +asm_38436: ; 38436 (e:4436) + call Function38571 + hlcoord 2, 2 + xor a + ld [$d10a], a + call Function3839a + ld a, $b + call Predef + jp Function38387 + + +Function3844b: ; 3844b + ld a, [OTPartyCount] + ld c, a + ld hl, OTPartyMon1HP + ld d, 0 +.asm_38454 + ld a, [hli] + ld b, a + ld a, [hld] + or b + jr z, .asm_3845b + inc d + +.asm_3845b + push bc + ld bc, PartyMon2 - PartyMon1 + add hl, bc + pop bc + dec c + jr nz, .asm_38454 + ld a, d + cp $2 + jp nc, Function3846c + and a + ret +; 3846c + +Function3846c: ; 3846c + ld a, $1 + ld [$c711], a + ld [$c70f], a + ld hl, EnemySubStatus4 + res SUBSTATUS_RAGE, [hl] + xor a + ld [hBattleTurn], a + callab Function3dc5b + push af + ld a, [CurOTMon] + ld hl, OTPartyMon1Status + ld bc, PartyMon2 - PartyMon1 + call AddNTimes + ld d, h + ld e, l + ld hl, EnemyMonStatus + ld bc, $0004 + call CopyBytes + pop af + jr c, .asm_384a3 + ld hl, UnknownText_0x384d0 + call PrintText + +.asm_384a3 + ld a, $1 + ld [$d264], a + callab NewEnemyMonStatus + callab ResetEnemyStatLevels + ld hl, PlayerSubStatus1 + res SUBSTATUS_IN_LOVE, [hl] + callba Function3d4e1 + callba Function3d57a + xor a + ld [$d264], a + ld a, [InLinkBattle] + and a + ret nz + scf + ret +; 384d0 + +UnknownText_0x384d0: ; 384d0 + text_jump UnknownText_0x1bcf9c + db "@" +; 384d5 + +Function384d5: ; 384d5 + call Function3839a + call Function384e0 + ld a, X_SPEED + jp Function38568 +; 384e0 + +Function384e0: ; 384e0 + ld a, [CurOTMon] + ld hl, OTPartyMon1Status + ld bc, PartyMon2 - PartyMon1 + call AddNTimes + xor a + ld [hl], a + ld [EnemyMonStatus], a + ld hl, EnemySubStatus5 + res SUBSTATUS_TOXIC, [hl] + ret +; 384f7 + +Function384f7: ; 384f7 + call Function3839a + ld hl, EnemySubStatus4 + set SUBSTATUS_UNLEASH, [hl] + ld a, X_ACCURACY + jp Function38568 +; 38504 + +Function38504: ; 38504 + call Function3839a + ld hl, EnemySubStatus4 + set SUBSTATUS_MIST, [hl] + ld a, GUARD_SPEC + jp Function38568 +; 38511 + +Function38511: ; 38511 + call Function3839a + ld hl, EnemySubStatus4 + set SUBSTATUS_FOCUS_ENERGY, [hl] + ld a, DIRE_HIT + jp Function38568 +; 3851e + +Function3851e: ; 3851e + ld [hMultiplier], a + ld hl, EnemyMonMaxHP + ld a, [hli] + ld [hProduct], a + ld a, [hl] + ld [hMultiplicand], a + ld b, $2 + call Divide + ld a, [$ffb6] + ld c, a + ld a, [$ffb5] + ld b, a + ld hl, EnemyMonHP + 1 + ld a, [hld] + ld e, a + ld a, [hl] + ld d, a + ld a, d + sub b + ret nz + ld a, e + sub c + ret +; 38541 + +Function38541: ; 38541 + ld b, ATTACK + ld a, X_ATTACK + jr Function38557 +; 38547 + +Function38547: ; 38547 + ld b, DEFENSE + ld a, X_DEFEND + jr Function38557 +; 3854d + +Function3854d: ; 3854d + ld b, SPEED + ld a, X_SPEED + jr Function38557 +; 38553 + +Function38553: ; 38553 + ld b, SP_ATTACK + ld a, X_SPECIAL + +Function38557 + ld [$d1f1], a + push bc + call Function38571 + pop bc + callba Function361ef + jp Function38387 +; 38568 + + +Function38568: ; 38568 + ld [$d1f1], a + call Function38571 + jp Function38387 +; 38571 + +Function38571: ; 38571 + ld a, [$d1f1] + ld [$d265], a + call GetItemName + ld hl, StringBuffer1 + ld de, $d050 + ld bc, $000d + call CopyBytes + ld hl, UnknownText_0x3858c + jp PrintText +; 3858c + +UnknownText_0x3858c: ; 3858c + text_jump UnknownText_0x1bcfaf + db "@" +; 38591 diff --git a/main.asm b/main.asm index 6596d302c..94796849c 100644 --- a/main.asm +++ b/main.asm @@ -43530,855 +43530,7 @@ INCLUDE "battle/effect_commands.asm" SECTION "bankE", ROMX, BANK[$E] -Function38000: ; 38000 - and a - ld a, [IsInBattle] - dec a - ret z - ld a, [InLinkBattle] - and a - ret nz - callba Function3e8d1 - ret nz - ld a, [PlayerSubStatus5] - bit SUBSTATUS_CANT_RUN, a - jr nz, Function38041 - ld a, [$c731] - and a - jr nz, Function38041 - ld hl, TrainerClassAttributes + 5 - ld a, [$cfc0] - and a - jr nz, .asm_38032 - ld a, [TrainerClass] - dec a - ld bc, 7 - call AddNTimes - -.asm_38032 - bit 0, [hl] - jp nz, Function38045 - bit 1, [hl] - jp nz, Function38083 - bit 2, [hl] - jp nz, Function380c1 - ; fallthrough -; 38041 - -Function38041: ; 38041 - call Function38105 - ret -; 38045 - -Function38045: ; 38045 - callab Function34941 - ld a, [$c717] - and $f0 - jp z, Function38041 - cp $10 - jr nz, .asm_38061 - call Random - cp $80 - jr c, .asm_38077 - jp Function38041 - -.asm_38061 - cp $20 - jr nz, .asm_3806f - call Random - cp $c8 - jr c, .asm_38077 - jp Function38041 - -.asm_3806f - call Random - cp $a - jp c, Function38041 - -.asm_38077 - ld a, [$c717] - and $f - inc a - ld [$c718], a - jp Function3844b -; 38083 - -Function38083: ; 38083 - callab Function34941 - ld a, [$c717] - and $f0 - jp z, Function38041 - cp $10 - jr nz, .asm_3809f - call Random - cp $14 - jr c, .asm_380b5 - jp Function38041 - -.asm_3809f - cp $20 - jr nz, .asm_380ad - call Random - cp $1e - jr c, .asm_380b5 - jp Function38041 - -.asm_380ad - call Random - cp $c8 - jp c, Function38041 - -.asm_380b5 - ld a, [$c717] - and $f - inc a - ld [$c718], a - jp Function3844b -; 380c1 - -Function380c1: ; 380c1 - callab Function34941 - ld a, [$c717] - and $f0 - jp z, Function38041 - cp $10 - jr nz, .asm_380dd - call Random - cp $32 - jr c, .asm_380f3 - jp Function38041 - -.asm_380dd - cp $20 - jr nz, .asm_380eb - call Random - cp $80 - jr c, .asm_380f3 - jp Function38041 - -.asm_380eb - call Random - cp $32 - jp c, Function38041 - -.asm_380f3 - ld a, [$c717] - and $f - inc a - ld [$c718], a - jp Function3844b -; 380ff - - -Function380ff: ; 380ff - ld a, [EnemySubStatus5] - bit SUBSTATUS_CANT_RUN, a - ret -; 38105 - - -Function38105: ; 38105 - ld a, [$cfc0] - and a - ret nz - ld a, [$c650] - ld b, a - ld a, [$c651] - or b - ret z - call Function38170 - ret nc - ld a, [TrainerClass] - dec a - ld hl, TrainerClassAttributes + 5 - ld bc, 7 - call AddNTimes - ld b, h - ld c, l - ld hl, Unknown_38196 - ld de, $c650 -.asm_3812c - ld a, [hl] - and a - inc a - ret z - ld a, [de] - cp [hl] - jr z, .asm_3813f - inc de - ld a, [de] - cp [hl] - jr z, .asm_3813f - dec de - inc hl - inc hl - inc hl - jr .asm_3812c - -.asm_3813f - inc hl - push hl - push de - ld de, .asm_3814a - push de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.asm_3814a - pop de - pop hl - inc hl - inc hl - jr c, .asm_3812c - xor a - ld [de], a - inc a - ld [$c70f], a - ld hl, EnemySubStatus3 ; $c66f - res SUBSTATUS_BIDE, [hl] - xor a - ld [EnemyFuryCutterCount], a ; $c680 - ld [$c681], a - ld [$c72c], a - ld hl, EnemySubStatus4 ; $c670 - res SUBSTATUS_RAGE, [hl] - xor a - ld [LastPlayerCounterMove], a ; $c6f9 - scf - ret - - -Function38170: ; 38170 - ld a, [OTPartyCount] - ld d, a - ld e, 0 - ld hl, OTPartyMon1Level - ld bc, OTPartyMon2 - OTPartyMon1 -.asm_3817c - ld a, [hl] - cp e - jr c, .asm_38181 - ld e, a -.asm_38181 - add hl, bc - dec d - jr nz, .asm_3817c - - ld a, [CurOTMon] - ld hl, OTPartyMon1Level - call AddNTimes - ld a, [hl] - cp e - jr nc, .asm_38194 - and a - ret - -.asm_38194 - scf - ret -; 38196 - -Unknown_38196: ; 39196 - dbw FULL_RESTORE, Function38208 - dbw MAX_POTION, Function38220 - dbw HYPER_POTION, Function38284 - dbw SUPER_POTION, Function38292 - dbw POTION, Function382a0 - dbw X_ACCURACY, Function382f9 - dbw FULL_HEAL, Function381be - dbw GUARD_SPEC, Function38305 - dbw DIRE_HIT, Function38311 - dbw X_ATTACK, Function3831d - dbw X_DEFEND, Function38329 - dbw X_SPEED, Function38335 - dbw X_SPECIAL, Function38341 - db $ff -; 381be - -Function381be: ; 381be - call Function381ca - jp c, Function38383 - call Function383a3 - jp Function38385 -; 381ca - -; known jump sources: 381be (e:41be), 38214 (e:4214) -Function381ca: ; 381ca (e:41ca) - ld a, [EnemyMonStatus] ; $d214 - and a - jp z, Function38383 - - ld a, [bc] - bit 6, a - jr nz, .asm_381e7 - ld a, [bc] - bit 4, a - jp nz, Function38385 - call Random - cp $32 - jp c, Function38385 - jp Function38383 - -.asm_381e7 - ld a, [EnemySubStatus5] - bit SUBSTATUS_TOXIC, a - jr z, .asm_381fd - ld a, [$c67c] - cp $4 - jr c, .asm_381fd - call Random - cp $80 - jp c, Function38385 -.asm_381fd - ld a, [EnemyMonStatus] - and 1 << FRZ | SLP - jp z, Function38383 - jp Function38385 -; 38208 - -Function38208: ; 38208 - call Function3822c - jp nc, Function3821a - ld a, [bc] - bit 6, a - jp z, Function38383 - call Function381ca - jp c, Function38383 - -; known jump sources: 3820b (e:420b) -Function3821a: ; 3821a (e:421a) - call Function383b5 - jp Function38385 -; 38220 - -Function38220: ; 38220 - call Function3822c - jp c, Function38383 - call Function383ae - jp Function38385 - -; known jump sources: 38208 (e:4208), 38220 (e:4220), 38284 (e:4284) -Function3822c: ; 3822c (e:422c) - ld a, [bc] - bit 6, a - jr nz, Function38267 - callab AICheckEnemyHalfHP - jp c, Function38383 - ld a, [bc] - bit 5, a - jp nz, Function38254 - callab AICheckEnemyQuarterHP - jp nc, Function38281 - call Random - cp $80 - jp c, Function38281 - jp Function38383 - -Function38254: ; 38254 (e:4254) - callab AICheckEnemyQuarterHP - jp c, Function38383 - call Random - cp $32 - jp c, Function38383 - jr Function38281 - -Function38267: ; 38267 (e:4267) - callab AICheckEnemyHalfHP - jp c, Function38383 - callab AICheckEnemyQuarterHP - jp nc, Function38281 - call Random - cp $32 - jp nc, Function38383 - -Function38281: ; 38281 (e:4281) - jp Function38385 -; 38284 - -Function38284: ; 38284 - call Function3822c - jp c, Function38383 - ld b, 200 - call Function383f4 - jp Function38385 -; 38292 (e:4292) - -Function38292: ; 38292 - call Function3822c - jp c, Function38383 - -Function38298: ; 38298 - ld b, 50 - call Function383ee - jp Function38385 -; 382a0 - -Function382a0: ; 382a0 - call Function3822c - jp c, Function38383 - ld b, 20 - call Function383e8 - jp Function38385 -; 382ae - -Function382ae: ; 382ae - callab AICheckEnemyMaxHP - jr c, .asm_382e4 - push bc - ld de, EnemyMonMaxHP + 1 - ld hl, EnemyMonHP + 1 - ld a, [de] - sub [hl] - jr z, .asm_382e7 - dec hl - dec de - ld c, a - sbc [hl] - and a - jr nz, .asm_382e7 - ld a, c - cp b - jp c, .asm_382d5 - callab AICheckEnemyQuarterHP - jr c, .asm_382e7 - -.asm_382d5 - pop bc - ld a, [bc] - bit 5, a - jp z, Function38385 - call Random - cp $80 - jp c, Function38385 - -.asm_382e4 - jp Function38383 - -.asm_382e7 - pop bc - ld a, [bc] - bit 5, a - jp z, Function38383 - call Random - cp $64 - jp c, Function38385 - jp Function38383 -; 382f9 - -Function382f9: ; 382f9 - call Function3834d - jp c, Function38383 - call Function384f7 - jp Function38385 -; 38305 - -Function38305: ; 38305 - call Function3834d - jp c, Function38383 - call Function38504 - jp Function38385 -; 38311 - -Function38311: ; 38311 - call Function3834d - jp c, Function38383 - call Function38511 - jp Function38385 -; 3831d (e:431d) - -Function3831d: ; 3831d - call Function3834d - jp c, Function38383 - call Function38541 - jp Function38385 -; 38329 - -Function38329: ; 38329 - call Function3834d - jp c, Function38383 - call Function38547 - jp Function38385 -; 38335 - -Function38335: ; 38335 - call Function3834d - jp c, Function38383 - call Function3854d - jp Function38385 -; 38341 - -Function38341: ; 38341 - call Function3834d - jp c, Function38383 - call Function38553 - jp Function38385 -; 3834d - -; known jump sources: 38311 (e:4311) -Function3834d: ; 3834d (e:434d) - ld a, [EnemyTurnsTaken] ; $c6dc - and a - jr nz, .asm_38372 - ld a, [bc] - bit 4, a - jp nz, Function38385 - call Random - cp $80 - jp c, Function38383 - ld a, [bc] - bit 6, a - jp nz, Function38385 - call Random - cp $80 - jp c, Function38383 - jp Function38385 -.asm_38372 - ld a, [bc] - bit 4, a - jp z, Function38383 - call Random - cp $32 - jp nc, Function38383 - jp Function38385 - -Function38383: ; 38383 (e:4383) - scf - ret - -Function38385: ; 38385 (e:4385) - and a - ret - - -Function38387: ; 38387 - call UpdateEnemyMonInParty - callba Function3e036 - ld a, $1 - ld [hBGMapMode], a - ld hl, $c6e6 - dec [hl] - scf - ret -; 3839a - -Function3839a: ; 3839a - push de - ld de, SFX_FULL_HEAL - call PlaySFX - pop de - ret -; 383a3 - - -; known jump sources: 381c4 (e:41c4) -Function383a3: ; 383a3 (e:43a3) - call Function3839a - call Function384e0 - ld a, FULL_HEAL - jp Function38568 - -; known jump sources: 38226 (e:4226) -Function383ae: ; 383ae (e:43ae) - ld a, $f - ld [$d1f1], a - jr asm_383c6 - -; known jump sources: 3821a (e:421a) -Function383b5: ; 383b5 (e:43b5) - call Function384e0 - ld a, $e - ld [$d1f1], a - ld hl, EnemySubStatus3 ; $c66f - res SUBSTATUS_CONFUSED, [hl] - xor a - ld [EnemyConfuseCount], a ; $c67b -asm_383c6: ; 383c6 (e:43c6) - ld de, $d1ec - ld hl, EnemyMonHP + 1 ; $d217 - ld a, [hld] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - ld hl, EnemyMonMaxHP + 1 ; $d219 - ld a, [hld] - ld [de], a - inc de - ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) - ld [EnemyMonHP + 1], a ; $d217 - ld a, [hl] - ld [de], a - ld [Buffer2], a ; $d1eb (aliases: MovementType) - ld [EnemyMonHP], a ; $d216 (aliases: EnemyMonHP) - jr asm_38436 -; 383e8 (e:43e8) - -Function383e8: ; 383e8 - ld a, POTION - ld b, 20 - jr Function383f8 - -Function383ee: ; 383ee - ld a, SUPER_POTION - ld b, 50 - jr Function383f8 - -; known jump sources: 3828c (e:428c) -Function383f4: ; 383f4 (e:43f4) - ld a, HYPER_POTION - ld b, 200 - -Function383f8: ; 383f8 - ld [$d1f1], a - ld hl, EnemyMonHP + 1 ; $d217 - ld a, [hl] - ld [$d1ec], a - add b - ld [hld], a - ld [$d1ee], a - ld a, [hl] - ld [$d1ed], a - ld [$d1ef], a - jr nc, .asm_38415 - inc a - ld [hl], a - ld [$d1ef], a -.asm_38415 - inc hl - ld a, [hld] - ld b, a - ld de, EnemyMonMaxHP + 1 ; $d219 - ld a, [de] - dec de - ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) - sub b - ld a, [hli] - ld b, a - ld a, [de] - ld [Buffer2], a ; $d1eb (aliases: MovementType) - sbc b - jr nc, asm_38436 - inc de - ld a, [de] - dec de - ld [hld], a - ld [$d1ee], a - ld a, [de] - ld [hl], a - ld [$d1ef], a -asm_38436: ; 38436 (e:4436) - call Function38571 - hlcoord 2, 2 - xor a - ld [$d10a], a - call Function3839a - ld a, $b - call Predef - jp Function38387 - - -Function3844b: ; 3844b - ld a, [OTPartyCount] - ld c, a - ld hl, OTPartyMon1HP - ld d, 0 -.asm_38454 - ld a, [hli] - ld b, a - ld a, [hld] - or b - jr z, .asm_3845b - inc d - -.asm_3845b - push bc - ld bc, PartyMon2 - PartyMon1 - add hl, bc - pop bc - dec c - jr nz, .asm_38454 - ld a, d - cp $2 - jp nc, Function3846c - and a - ret -; 3846c - -Function3846c: ; 3846c - ld a, $1 - ld [$c711], a - ld [$c70f], a - ld hl, EnemySubStatus4 - res SUBSTATUS_RAGE, [hl] - xor a - ld [hBattleTurn], a - callab Function3dc5b - push af - ld a, [CurOTMon] - ld hl, OTPartyMon1Status - ld bc, PartyMon2 - PartyMon1 - call AddNTimes - ld d, h - ld e, l - ld hl, EnemyMonStatus - ld bc, $0004 - call CopyBytes - pop af - jr c, .asm_384a3 - ld hl, UnknownText_0x384d0 - call PrintText - -.asm_384a3 - ld a, $1 - ld [$d264], a - callab NewEnemyMonStatus - callab ResetEnemyStatLevels - ld hl, PlayerSubStatus1 - res SUBSTATUS_IN_LOVE, [hl] - callba Function3d4e1 - callba Function3d57a - xor a - ld [$d264], a - ld a, [InLinkBattle] - and a - ret nz - scf - ret -; 384d0 - -UnknownText_0x384d0: ; 384d0 - text_jump UnknownText_0x1bcf9c - db "@" -; 384d5 - -Function384d5: ; 384d5 - call Function3839a - call Function384e0 - ld a, X_SPEED - jp Function38568 -; 384e0 - -Function384e0: ; 384e0 - ld a, [CurOTMon] - ld hl, OTPartyMon1Status - ld bc, PartyMon2 - PartyMon1 - call AddNTimes - xor a - ld [hl], a - ld [EnemyMonStatus], a - ld hl, EnemySubStatus5 - res SUBSTATUS_TOXIC, [hl] - ret -; 384f7 - -Function384f7: ; 384f7 - call Function3839a - ld hl, EnemySubStatus4 - set SUBSTATUS_UNLEASH, [hl] - ld a, X_ACCURACY - jp Function38568 -; 38504 - -Function38504: ; 38504 - call Function3839a - ld hl, EnemySubStatus4 - set SUBSTATUS_MIST, [hl] - ld a, GUARD_SPEC - jp Function38568 -; 38511 - -Function38511: ; 38511 - call Function3839a - ld hl, EnemySubStatus4 - set SUBSTATUS_FOCUS_ENERGY, [hl] - ld a, DIRE_HIT - jp Function38568 -; 3851e - -Function3851e: ; 3851e - ld [hMultiplier], a - ld hl, EnemyMonMaxHP - ld a, [hli] - ld [hProduct], a - ld a, [hl] - ld [hMultiplicand], a - ld b, $2 - call Divide - ld a, [$ffb6] - ld c, a - ld a, [$ffb5] - ld b, a - ld hl, EnemyMonHP + 1 - ld a, [hld] - ld e, a - ld a, [hl] - ld d, a - ld a, d - sub b - ret nz - ld a, e - sub c - ret -; 38541 - -Function38541: ; 38541 - ld b, ATTACK - ld a, X_ATTACK - jr Function38557 -; 38547 - -Function38547: ; 38547 - ld b, DEFENSE - ld a, X_DEFEND - jr Function38557 -; 3854d - -Function3854d: ; 3854d - ld b, SPEED - ld a, X_SPEED - jr Function38557 -; 38553 - -Function38553: ; 38553 - ld b, SP_ATTACK - ld a, X_SPECIAL - -Function38557 - ld [$d1f1], a - push bc - call Function38571 - pop bc - callba Function361ef - jp Function38387 -; 38568 - - -Function38568: ; 38568 - ld [$d1f1], a - call Function38571 - jp Function38387 -; 38571 - -Function38571: ; 38571 - ld a, [$d1f1] - ld [$d265], a - call GetItemName - ld hl, StringBuffer1 - ld de, $d050 - ld bc, $000d - call CopyBytes - ld hl, UnknownText_0x3858c - jp PrintText -; 3858c - -UnknownText_0x3858c: ; 3858c - text_jump UnknownText_0x1bcfaf - db "@" -; 38591 - +INCLUDE "battle/ai/items.asm" AIScoring: ; 38591 INCLUDE "battle/ai/scoring.asm" From db2760267983aa680d58762b6acdd39a53f7f948 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 14 Jun 2014 22:33:23 -0700 Subject: [PATCH 12/22] Name and comment the trainer party reader. Reads the contents of trainers/trainers.asm. --- battle/core.asm | 24 ++-- main.asm | 294 ++++++++++++++++++++++++------------------ trainers/trainers.asm | 2 +- wram.asm | 2 + 4 files changed, 181 insertions(+), 141 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index 8543f6e4c..dd05adf54 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -8485,14 +8485,15 @@ Function3f594: ; 3f594 xor a ld [TempEnemyMonSpecies], a callab Function3957b - callab Function39771 + callab ReadTrainerParty + ld a, [TrainerClass] - cp $9 - jr nz, .asm_3f5b8 + cp RIVAL1 + jr nz, .ok xor a ld [OTPartyMon1Item], a +.ok -.asm_3f5b8 ld de, VTiles2 callab Function5120d xor a @@ -8500,13 +8501,14 @@ Function3f594: ; 3f594 dec a ld [$c6e6], a hlcoord 12, 0 - ld bc, $0707 - ld a, $13 + lb bc, 7, 7 + ld a, PREDEF_FILL_BOX call Predef ld a, $ff ld [CurOTMon], a - ld a, $2 + ld a, TRAINER_BATTLE ld [IsInBattle], a + call IsJohtoGymLeader jr nc, .asm_3f606 xor a @@ -8515,14 +8517,13 @@ Function3f594: ; 3f594 ld b, a .asm_3f5ea push bc - ld a, $22 + ld a, PartyMon1HP - PartyMon1 call GetPartyParamLocation ld a, [hli] or [hl] jr z, .asm_3f5fc ld c, $4 callab ChangeHappiness - .asm_3f5fc pop bc dec b @@ -8530,7 +8531,6 @@ Function3f594: ; 3f594 ld hl, CurPartyMon inc [hl] jr .asm_3f5ea - .asm_3f606 ret ; 3f607 @@ -8568,8 +8568,8 @@ Function3f607: ; 3f607 ld [TrainerClass], a ld [$ffad], a hlcoord 12, 0 - ld bc, $0707 - ld a, $13 + lb bc, 7, 7 + ld a, PREDEF_FILL_BOX call Predef ret ; 3f662 diff --git a/main.asm b/main.asm index 94796849c..b2b1c81b6 100644 --- a/main.asm +++ b/main.asm @@ -36688,7 +36688,7 @@ Function28177: ; 28177 or $3 ld [hl], a ld hl, $d26b - ld de, $c656 + ld de, OTName ld bc, $000b call CopyBytes call Function222a @@ -43539,19 +43539,20 @@ INCLUDE "battle/ai/scoring.asm" Function3952d: ; 3952d ld hl, RivalName ld a, c - cp $9 - jr z, .asm_39544 + cp RIVAL1 + jr z, .rival + ld [CurSpecies], a - ld a, $7 + ld a, TRAINER_NAME ld [$cf61], a call GetName ld de, StringBuffer1 ret -.asm_39544 +.rival ld de, StringBuffer1 push de - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes pop de ret @@ -43561,20 +43562,22 @@ Function39550: ; 39550 ld hl, $d26b ld a, [InLinkBattle] and a - jr nz, .asm_3956f + jr nz, .ok + ld hl, RivalName ld a, c - cp $9 - jr z, .asm_3956f + cp RIVAL1 + jr z, .ok + ld [CurSpecies], a - ld a, $7 + ld a, TRAINER_NAME ld [$cf61], a call GetName ld hl, StringBuffer1 -.asm_3956f +.ok ld bc, $000d - ld de, $c656 + ld de, OTName push de call CopyBytes pop de @@ -43604,122 +43607,134 @@ Function3957b: ; 3957b INCLUDE "trainers/attributes.asm" -Function39771: ; 39771 +ReadTrainerParty: ; 39771 ld a, [$cfc0] bit 0, a ret nz + ld a, [InLinkBattle] and a ret nz + ld hl, OTPartyCount xor a ld [hli], a dec a ld [hl], a - ld hl, OTPartyMon1Species - ld bc, $0120 + + ld hl, OTPartyMons + ld bc, OTPartyMonsEnd - OTPartyMons xor a call ByteFill - ld a, [OtherTrainerClass] - cp $c - jr nz, .asm_3979e - ld a, [OtherTrainerID] - cp $2 - jr z, .asm_397d3 - ld a, [OtherTrainerClass] -.asm_3979e + ld a, [OtherTrainerClass] + cp CAL + jr nz, .not_cal2 + ld a, [OtherTrainerID] + cp CAL2 + jr z, .cal2 + ld a, [OtherTrainerClass] +.not_cal2 + dec a ld c, a - ld b, $0 + ld b, 0 ld hl, TrainerGroups add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a + ld a, [OtherTrainerID] ld b, a -.asm_397ae +.skip_trainer dec b - jr z, .asm_397b8 -.asm_397b1 + jr z, .got_trainer +.next ld a, [hli] cp $ff - jr nz, .asm_397b1 - jr .asm_397ae + jr nz, .next + jr .skip_trainer +.got_trainer -.asm_397b8 +.skip_name ld a, [hli] - cp $50 - jr nz, .asm_397b8 + cp "@" + jr nz, .skip_name + ld a, [hli] ld c, a - ld b, $0 + ld b, 0 ld d, h ld e, l - ld hl, Jumptable_397e3 + ld hl, TrainerTypes add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a - ld bc, .asm_397d0 + ld bc, .done push bc jp [hl] -.asm_397d0 +.done jp Function3991b -.asm_397d3 +.cal2 ld a, $0 call GetSRAMBank ld de, $ac0a - call Function39806 + call TrainerType2 call CloseSRAM - jr .asm_397d0 + jr .done ; 397e3 -Jumptable_397e3: ; 397e3 - dw Function397eb - dw Function39806 - dw Function39871 - dw Function3989d +TrainerTypes: ; 397e3 + dw TrainerType1 ; level, species + dw TrainerType2 ; level, species, moves + dw TrainerType3 ; level, species, item + dw TrainerType4 ; level, species, item, moves ; 397eb -Function397eb: ; 397eb +TrainerType1: ; 397eb +; normal (level, species) ld h, d ld l, e -.asm_397ed +.loop ld a, [hli] cp $ff ret z - ld [CurPartyLevel], a ; $d143 - ld a, [hli] - ld [CurPartySpecies], a ; $d108 - ld a, $1 - ld [MonType], a ; $cf5f - push hl - ld a, $6 - call Predef - pop hl - jr .asm_397ed -; 39806 -Function39806: ; 39806 - ld h, d - ld l, e -.asm_39808 - ld a, [hli] - cp $ff - ret z ld [CurPartyLevel], a ld a, [hli] ld [CurPartySpecies], a ld a, OTPARTYMON ld [MonType], a push hl - ld a, $6 + ld a, PREDEF_ADDPARTYMON + call Predef + pop hl + jr .loop +; 39806 + +TrainerType2: ; 39806 +; moves + ld h, d + ld l, e +.loop + ld a, [hli] + cp $ff + ret z + + ld [CurPartyLevel], a + ld a, [hli] + ld [CurPartySpecies], a + ld a, OTPARTYMON + ld [MonType], a + + push hl + ld a, PREDEF_ADDPARTYMON call Predef ld a, [OTPartyCount] dec a @@ -43729,14 +43744,17 @@ Function39806: ; 39806 ld d, h ld e, l pop hl + ld b, NUM_MOVES -.asm_39830 +.copy_moves ld a, [hli] ld [de], a inc de dec b - jr nz, .asm_39830 + jr nz, .copy_moves + push hl + ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Species @@ -43744,17 +43762,19 @@ Function39806: ; 39806 call AddNTimes ld d, h ld e, l - ld hl, $0017 + ld hl, OTPartyMon1PP - OTPartyMon1 add hl, de push hl - ld hl, $0002 + ld hl, OTPartyMon1Moves - OTPartyMon1 add hl, de pop de - ld b, $4 -.asm_39852 + + ld b, NUM_MOVES +.copy_pp ld a, [hli] and a - jr z, .asm_3986e + jr z, .copied_pp + push hl push bc dec a @@ -43765,104 +43785,119 @@ Function39806: ; 39806 call GetFarByte pop bc pop hl + ld [de], a inc de dec b - jr nz, .asm_39852 + jr nz, .copy_pp +.copied_pp -.asm_3986e pop hl - jr .asm_39808 + jr .loop ; 39871 -Function39871: ; 39871 +TrainerType3: ; 39871 +; item ld h, d ld l, e -.asm_39873 +.loop ld a, [hli] cp $ff ret z - ld [CurPartyLevel], a ; $d143 - ld a, [hli] - ld [CurPartySpecies], a ; $d108 - ld a, $1 - ld [MonType], a ; $cf5f - push hl - ld a, $6 - call Predef - ld a, [OTPartyCount] ; $d280 - dec a - ld hl, OTPartyMon1Item ; $d289 - ld bc, $30 - call AddNTimes - ld d, h - ld e, l - pop hl - ld a, [hli] - ld [de], a - jr .asm_39873 -; 3989d (e:589d) -Function3989d: ; 3989d - ld h, d - ld l, e -.asm_3989f - ld a, [hli] - cp $ff - ret z ld [CurPartyLevel], a ld a, [hli] ld [CurPartySpecies], a - ld a, $1 + ld a, OTPARTYMON ld [MonType], a push hl - ld a, $6 + ld a, PREDEF_ADDPARTYMON call Predef ld a, [OTPartyCount] dec a - ld hl, $d289 - ld bc, PartyMon2 - PartyMon1 + ld hl, OTPartyMon1Item + ld bc, OTPartyMon2 - OTPartyMon1 call AddNTimes ld d, h ld e, l pop hl ld a, [hli] ld [de], a + jr .loop +; 3989d (e:589d) + +TrainerType4: ; 3989d +; item + moves + ld h, d + ld l, e +.loop + ld a, [hli] + cp $ff + ret z + + ld [CurPartyLevel], a + ld a, [hli] + ld [CurPartySpecies], a + + ld a, OTPARTYMON + ld [MonType], a + push hl + ld a, PREDEF_ADDPARTYMON + call Predef ld a, [OTPartyCount] dec a - ld hl, $d28a - ld bc, PartyMon2 - PartyMon1 + ld hl, OTPartyMon1Item + ld bc, OTPartyMon2 - OTPartyMon1 call AddNTimes ld d, h ld e, l pop hl - ld b, $4 -.asm_398da + + ld a, [hli] + ld [de], a + + push hl + ld a, [OTPartyCount] + dec a + ld hl, OTPartyMon1Moves + ld bc, OTPartyMon2 - OTPartyMon1 + call AddNTimes + ld d, h + ld e, l + pop hl + + ld b, NUM_MOVES +.copy_moves ld a, [hli] ld [de], a inc de dec b - jr nz, .asm_398da + jr nz, .copy_moves + push hl + ld a, [OTPartyCount] dec a ld hl, OTPartyMon1 - ld bc, PartyMon2 - PartyMon1 + ld bc, OTPartyMon2 - OTPartyMon1 call AddNTimes ld d, h ld e, l - ld hl, $0017 + ld hl, OTPartyMon1PP - OTPartyMon1 add hl, de + push hl - ld hl, $0002 + ld hl, OTPartyMon1Moves - OTPartyMon1 add hl, de pop de - ld b, $4 -.asm_398fc + + ld b, NUM_MOVES +.copy_pp ld a, [hli] and a - jr z, .asm_39918 + jr z, .copied_pp + push hl push bc dec a @@ -43873,34 +43908,34 @@ Function3989d: ; 3989d call GetFarByte pop bc pop hl + ld [de], a inc de dec b - jr nz, .asm_398fc + jr nz, .copy_pp +.copied_pp -.asm_39918 pop hl - jr .asm_3989f + jr .loop ; 3991b -; known jump sources: 397d0 (e:57d0) Function3991b: ; 3991b (e:591b) ld hl, $ffb3 xor a ld [hli], a ld [hli], a ld [hli], a - ld a, [$c652] + ld a, [$c652] ; base reward ld [hli], a - ld a, [CurPartyLevel] ; $d143 + ld a, [CurPartyLevel] ld [hl], a call Multiply ld hl, $c686 xor a ld [hli], a - ld a, [$FF00+$b5] + ld a, [$ffb5] ld [hli], a - ld a, [$FF00+$b6] + ld a, [$ffb6] ld [hl], a ret @@ -43918,14 +43953,16 @@ Function39939:: ; 39939 Function3994c:: ; 3994c ld a, c - cp $c + cp CAL jr nz, .asm_3996d + ld a, $0 call GetSRAMBank ld a, [$abfd] and a call CloseSRAM jr z, .asm_3996d + ld a, $0 call GetSRAMBank ld hl, $abfe @@ -43947,6 +43984,7 @@ Function3994c:: ; 3994c .asm_3997a dec b jr z, Function39984 + .asm_3997d ld a, [hli] cp $ff diff --git a/trainers/trainers.asm b/trainers/trainers.asm index 85b0a9ac6..f1d1b75eb 100644 --- a/trainers/trainers.asm +++ b/trainers/trainers.asm @@ -5,7 +5,7 @@ ; Type ; 0: Level, species ; 1: Level, species, moves - ; 2: Level, sepcies, item + ; 2: Level, species, item ; 3: Level, species, item, moves ; Party ; Up to six monsters following the data type diff --git a/wram.asm b/wram.asm index 49746cff6..1d535d851 100644 --- a/wram.asm +++ b/wram.asm @@ -1170,12 +1170,14 @@ OTPartyCount:: ds 1 ; d280 OTPartySpecies:: ds PARTY_LENGTH ; d281 OTPartyEnd:: ds 1 +OTPartyMons:: OTPartyMon1:: party_struct OTPartyMon1 ; d288 OTPartyMon2:: party_struct OTPartyMon2 ; d2b8 OTPartyMon3:: party_struct OTPartyMon3 ; d2e8 OTPartyMon4:: party_struct OTPartyMon4 ; d318 OTPartyMon5:: party_struct OTPartyMon5 ; d348 OTPartyMon6:: party_struct OTPartyMon6 ; d378 +OTPartyMonsEnd:: OTPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d3a8 OTPartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; d3ea From f244e4483e1b47fcf62cede08acf829aca5b5750 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 15 Jun 2014 16:20:40 -0700 Subject: [PATCH 13/22] Makefile: Use lower-case variables and graphics conversion queues. This is mostly to make it more like pokered. Queues are an order of magnitude faster than invoking a new python instance for each file. --- Makefile | 53 +++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index ad91ec693..150e9bb80 100644 --- a/Makefile +++ b/Makefile @@ -5,14 +5,13 @@ PYTHON := python .PHONY: all clean crystal pngs .SECONDEXPANSION: -POKEMONTOOLS := extras/pokemontools -GFX := $(PYTHON) $(POKEMONTOOLS)/gfx.py -INCLUDES := $(PYTHON) $(POKEMONTOOLS)/scan_includes.py -PREPROCESS := $(PYTHON) prequeue.py +poketools := extras/pokemontools +gfx := $(PYTHON) $(poketools)/gfx.py +includes := $(PYTHON) $(poketools)/scan_includes.py +pre := $(PYTHON) prequeue.py -TEXTQUEUE := -CRYSTAL_OBJS := \ +crystal_obj := \ wram.o \ main.o \ lib/mobile/main.o \ @@ -29,20 +28,21 @@ data/pokedex/entries_crystal.o \ misc/crystal_misc.o \ gfx/pics.o -OBJS := $(CRYSTAL_OBJS) - -ROMS := pokecrystal.gbc +all_obj := $(crystal_obj) # object dependencies -$(shell $(foreach obj, $(OBJS), $(eval $(obj:.o=)_DEPENDENCIES := $(shell $(INCLUDES) $(obj:.o=.asm))))) +$(foreach obj, $(all_obj), \ + $(eval $(obj:.o=)_dep := $(shell $(includes) $(obj:.o=.asm))) \ +) -all: $(ROMS) +roms := pokecrystal.gbc + +all: $(roms) crystal: pokecrystal.gbc clean: - rm -f $(ROMS) - rm -f $(OBJS) + rm -f $(roms) $(all_obj) find -iname '*.tx' -exec rm {} + baserom.gbc: ; @@ -50,30 +50,31 @@ baserom.gbc: ; %.asm: ; -.asm.tx: - $(eval TEXTQUEUE += $<) - @rm -f $@ +%.tx: %.asm ; $(eval txq += $<) @rm -f $@ -$(OBJS): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_DEPENDENCIES)) - @$(PREPROCESS) $(TEXTQUEUE) - $(eval TEXTQUEUE :=) +$(all_obj): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_dep)) + @$(pre) $(txq); $(eval txq :=) + @$(gfx) 2bpp $(2bppq); $(eval 2bppq :=) + @$(gfx) 1bpp $(1bppq); $(eval 1bppq :=) + @$(gfx) lz $(lzq); $(eval lzq :=) rgbasm -o $@ $*.tx -pokecrystal.gbc: $(CRYSTAL_OBJS) +pokecrystal.gbc: $(crystal_obj) rgblink -n $*.sym -m $*.map -o $@ $^ rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@ cmp baserom.gbc $@ pngs: - find . -iname "*.lz" -exec $(GFX) unlz {} + - find . -iname "*.[12]bpp" -exec $(GFX) png {} + - find . -iname "*.[12]bpp" -exec touch {} + + find . -iname "*.lz" -exec $(gfx) unlz {} + + find . -iname "*.[12]bpp" -exec $(gfx) png {} + find . -iname "*.lz" -exec touch {} + + find . -iname "*.[12]bpp" -exec touch {} + + +%.2bpp: %.png ; $(eval 2bppq += $<) @rm -f $@ +%.1bpp: %.png ; $(eval 1bppq += $<) @rm -f $@ +%.lz: % ; $(eval lzq += $<) @rm -f $@ -%.2bpp: %.png ; $(GFX) 2bpp $< -%.1bpp: %.png ; $(GFX) 1bpp $< -%.lz: % ; $(GFX) lz $< %.pal: ; %.bin: ; From 0b7dfeb9b208a16682e92de9cf15e19fb8cf8a94 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 16 Jun 2014 10:32:39 -0700 Subject: [PATCH 14/22] Name and comment some move learning functions. --- constants/misc_constants.asm | 1 + main.asm | 170 ++++++++++++++++++++--------------- 2 files changed, 98 insertions(+), 73 deletions(-) diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index bf56c15a1..f2e5f2100 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -22,6 +22,7 @@ NUM_BOXES EQU 14 ; predefs +PREDEF_LEARN_MOVE EQU $00 PREDEF_FLAG EQU $03 PREDEF_FILLPP EQU $05 PREDEF_ADDPARTYMON EQU $06 diff --git a/main.asm b/main.asm index b2b1c81b6..683225879 100644 --- a/main.asm +++ b/main.asm @@ -5251,7 +5251,7 @@ Function64db: ; 64db ret ; 6508 -Function6508: ; 6508 +LearnMove: ; 6508 call Function309d ld a, [CurPartyMon] ld hl, PartyMonNicknames @@ -5261,7 +5261,7 @@ Function6508: ; 6508 ld bc, PKMN_NAME_LENGTH call CopyBytes -Function6520: ; 6520 +.loop ld hl, PartyMon1Moves ld bc, PartyMon2 - PartyMon1 ld a, [CurPartyMon] @@ -5269,17 +5269,18 @@ Function6520: ; 6520 ld d, h ld e, l ld b, NUM_MOVES -.asm_6530 +.next ld a, [hl] and a - jr z, .asm_6564 + jr z, .learn inc hl dec b - jr nz, .asm_6530 + jr nz, .next + push de call Function65d3 pop de - jp c, Function65b5 + jp c, .cancel push hl push de @@ -5288,14 +5289,14 @@ Function6520: ; 6520 ld b, a ld a, [IsInBattle] and a - jr z, .asm_6559 + jr z, .not_disabled ld a, [DisabledMove] cp b - jr nz, .asm_6559 + jr nz, .not_disabled xor a ld [DisabledMove], a ld [PlayerDisableCount], a -.asm_6559 +.not_disabled call GetMoveName ld hl, UnknownText_0x6684 @@ -5303,11 +5304,12 @@ Function6520: ; 6520 pop de pop hl -.asm_6564 +.learn ld a, [$d262] ld [hl], a - ld bc, $0015 + ld bc, PartyMon1PP - PartyMon1Moves add hl, bc + push hl push de dec a @@ -5318,18 +5320,23 @@ Function6520: ; 6520 call GetFarByte pop de pop hl + ld [hl], a + ld a, [IsInBattle] and a - jp z, Function65ca + jp z, .learned + ld a, [CurPartyMon] ld b, a ld a, [CurBattleMon] cp b - jp nz, Function65ca + jp nz, .learned + ld a, [PlayerSubStatus5] - bit 3, a - jp nz, Function65ca + bit SUBSTATUS_TRANSFORMED, a + jp nz, .learned + ld h, d ld l, e ld de, BattleMonMoves @@ -5340,24 +5347,23 @@ Function6520: ; 6520 ld de, BattleMonPP ld bc, NUM_MOVES call CopyBytes - jp Function65ca -; 65b5 + jp .learned -Function65b5: ; 65b5 +.cancel ld hl, UnknownText_0x6675 call PrintText call YesNoBox - jp c, Function6520 + jp c, .loop + ld hl, UnknownText_0x667a call PrintText - ld b, $0 + ld b, 0 ret -; 65ca -Function65ca: ; 65ca +.learned ld hl, UnknownText_0x666b call PrintText - ld b, $1 + ld b, 1 ret ; 65d3 @@ -6452,8 +6458,8 @@ ChangeHappiness: ; 71c2 db +5, +3, +2 db +5, +3, +2 db +1, +1, +0 - db +3, +2, +1 - db +1, +1, +0 + db +3, +2, +1 ; Battled a Gym Leader + db +1, +1, +0 ; Learned a move db -1, -1, -1 db -5, -5, -10 db -5, -5, -10 @@ -7753,7 +7759,7 @@ PredefPointers: ; 856b ; $4b Predef pointers ; address, bank - dwb Function6508, BANK(Function6508) ; $0 + dwb LearnMove, BANK(LearnMove) ; $0 dwb Function747a, BANK(Function747a) dwb Functionc658, BANK(Functionc658) dwb FlagPredef, BANK(FlagPredef) @@ -7779,7 +7785,7 @@ PredefPointers: ; 856b dwb FillInExpBar, BANK(FillInExpBar) dwb Function3f43d, BANK(Function3f43d) ; $18 dwb Function3f47c, BANK(Function3f47c) - dwb Function42487, BANK(Function42487) + dwb LearnLevelMoves, BANK(LearnLevelMoves) dwb FillMoves, BANK(FillMoves) dwb Function421e6, BANK(Function421e6) dwb Function28f63, BANK(Function28f63) @@ -14644,12 +14650,12 @@ WobbleChances: ; f9ba ; f9ea -Functionf9ea: ; f9ea - ld a, $2 +KnowsMove: ; f9ea + ld a, PartyMon1Moves - PartyMon1 call GetPartyParamLocation ld a, [$d262] ld b, a - ld c, $4 + ld c, NUM_MOVES .asm_f9f5 ld a, [hli] cp b @@ -38251,7 +38257,8 @@ Function28ea3: ; 28ea3 ; 28eab String28eab: ; 28eab - db "TRADE", $4e, "CANCEL@" + db "TRADE" + next "CANCEL@" UnknownText_0x28eb8: ; 0x28eb8 ; Trade @ for @ ? @@ -38260,10 +38267,11 @@ UnknownText_0x28eb8: ; 0x28eb8 ; 0x28ebd String28ebd: ; 28ebd - db "Trade completed!@" + db "Trade completed!@" String28ece: ; 28ece - db "Too bad! The trade", $4e, "was canceled!@" + db "Too bad! The trade" + next "was canceled!@" Function28eef: ; 28eef @@ -42611,11 +42619,13 @@ Function2c80a: ; 2c80a Function2c867: ; 2c867 ld a, $e call Predef + push bc ld a, [CurPartyMon] ; $d109 ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames) call GetNick pop bc + ld a, c and a jr nz, .asm_2c88b @@ -42627,31 +42637,35 @@ Function2c867: ; 2c867 call PrintText jr .asm_2c8b6 .asm_2c88b - callab Functionf9ea + + callab KnowsMove jr c, .asm_2c8b6 - ld a, $0 + + ld a, PREDEF_LEARN_MOVE call Predef ld a, b and a jr z, .asm_2c8b6 + callba Function106049 - ld a, [CurItem] ; $d106 + ld a, [CurItem] call IsHM ret c + ld c, $5 callab ChangeHappiness call Function2cb0c - jr Function2c8bd + jr .asm_2c8bd + .asm_2c8b6 and a ret -; 2c8b8 (b:48b8) -Function2c8b8: ; 2c8b8 +.asm_2c8b8 ld a, $2 ld [$d0ec], a -Function2c8bd: ; 2c8bd +.asm_2c8bd scf ret ; 2c8bf (b:48bf) @@ -47042,7 +47056,7 @@ Function421f5: ; 421f5 ld [$d265], a xor a ld [MonType], a - call Function42487 + call LearnLevelMoves ld a, [$d265] dec a call SetSeenAndCaughtMon @@ -47172,7 +47186,7 @@ UnknownText_0x42482: ; 0x42482 ; 0x42487 -Function42487: ; 42487 +LearnLevelMoves: ; 42487 ld a, [$d265] ld [CurPartySpecies], a dec a @@ -47184,50 +47198,55 @@ Function42487: ; 42487 ld a, [hli] ld h, [hl] ld l, a -.asm_42499 + +.skip_evos ld a, [hli] and a - jr nz, .asm_42499 -.asm_4249d + jr nz, .skip_evos + +.find_move ld a, [hli] and a - jr z, .asm_424da + jr z, .done + ld b, a ld a, [CurPartyLevel] cp b ld a, [hli] - jr nz, .asm_4249d + jr nz, .find_move + push hl ld d, a ld hl, PartyMon1Moves ld a, [CurPartyMon] ld bc, PartyMon2 - PartyMon1 call AddNTimes + ld b, NUM_MOVES -.asm_424b9 +.check_move ld a, [hli] cp d - jr z, .asm_424c2 + jr z, .has_move dec b - jr nz, .asm_424b9 - jr .asm_424c5 + jr nz, .check_move + jr .learn +.has_move -.asm_424c2 pop hl - jr .asm_4249d + jr .find_move -.asm_424c5 +.learn ld a, d ld [$d262], a ld [$d265], a call GetMoveName call CopyName1 - ld a, $0 + ld a, PREDEF_LEARN_MOVE call Predef pop hl - jr .asm_4249d + jr .find_move -.asm_424da +.done ld a, [CurPartySpecies] ld [$d265], a ret @@ -47235,7 +47254,7 @@ Function42487: ; 42487 FillMoves: ; 424e1 -; Fill in moves at de for CurPartySpecies at CurPartyLevle +; Fill in moves at de for CurPartySpecies at CurPartyLevel push hl push de @@ -50581,16 +50600,19 @@ Function492a5: ; 492a5 Function492b9: ; 492b9 ld hl, MenuDataHeader_0x4930a call LoadMenuDataHeader + ld a, $e call Predef + push bc ld a, [CurPartyMon] ld hl, PartyMonNicknames call GetNick pop bc + ld a, c and a - jr nz, .asm_492e5 + jr nz, .can_learn push de ld de, SFX_WRONG call PlaySFX @@ -50598,26 +50620,28 @@ Function492b9: ; 492b9 ld a, BANK(UnknownText_0x2c8ce) ld hl, UnknownText_0x2c8ce call FarPrintText - jr .asm_49300 + jr .didnt_learn +.can_learn -.asm_492e5 - callab Functionf9ea - jr c, .asm_49300 - ld a, $0 + callab KnowsMove + jr c, .didnt_learn + + ld a, PREDEF_LEARN_MOVE call Predef ld a, b and a - jr z, .asm_49300 + jr z, .didnt_learn + ld c, $5 callab ChangeHappiness - jr .asm_49305 + jr .learned -.asm_49300 +.didnt_learn call Function1c07 and a ret -.asm_49305 +.learned call Function1c07 scf ret @@ -67785,12 +67809,12 @@ Function8963d: ; 8963d ; 89655 Function89655: ; 89655 - ld hl, $ceca - ld de, $0014 - ld a, $5 - ld b, $4 + ld hl, AttrMap + SCREEN_WIDTH * 12 + 1 + ld de, SCREEN_WIDTH + ld a, 5 + ld b, 4 .asm_8965f - ld c, $12 + ld c, 18 push hl .asm_89662 ld [hli], a From 8639fcd29b0e929ec6cc236a209d0e07a495db14 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 16 Jun 2014 11:20:01 -0700 Subject: [PATCH 15/22] Use a predef macro that takes labels instead of juggling constants. Besides making predefs convenient, naming a predef no longer requires adding or renaming a predef constant. This also lets predefs be rearranged at will. --- battle/ai/items.asm | 3 +- battle/ai/scoring.asm | 3 +- battle/anim_commands.asm | 24 +- battle/core.asm | 135 +++------ battle/effect_commands.asm | 24 +- constants/misc_constants.asm | 29 -- engine/scripting.asm | 3 +- gfx/pics/animation.asm | 3 +- home.asm | 13 +- home/init.asm | 3 +- home/pokedex_flags.asm | 3 +- items/item_descriptions.asm | 3 +- items/item_effects.asm | 39 +-- macros.asm | 22 ++ main.asm | 573 +++++++++++++---------------------- 15 files changed, 325 insertions(+), 555 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index dcdf39feb..a70e84faa 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -643,8 +643,7 @@ asm_38436: ; 38436 (e:4436) xor a ld [$d10a], a call Function3839a - ld a, $b - call Predef + predef Functionc6e0 jp Function38387 diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index ab4aca83f..7ca08d333 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -1336,8 +1336,7 @@ AIScoring_Encore: ; 38c3b push hl ld a, [wEnemyMoveStruct + MOVE_TYPE] ld hl, EnemyMonType1 - ld a, $41 - call Predef + predef Function347d3 pop hl ld a, [$d265] diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index 9f26e8f94..7c43ed38f 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -954,22 +954,18 @@ BattleAnimCmd_DC: ; cc5dc (33:45dc) ld a, [TempBattleMonSpecies] ; $d205 ld [CurPartySpecies], a ; $d108 ld hl, BattleMonDVs ; $c632 - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ld de, $8000 - ld a, $3c - call Predef + predef Function51077 jr .done .player ld a, [TempEnemyMonSpecies] ; $d204 ld [CurPartySpecies], a ; $d108 ld hl, EnemyMonDVs ; $d20c - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ld de, $8000 - ld a, $3d - call Predef + predef Function5116c .done pop af @@ -1194,20 +1190,16 @@ BattleAnimCmd_E6: ; cc776 (33:4776) jr z, .player ld hl, BattleMonDVs ; $c632 - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ld de, $9000 - ld a, $3c - call Predef + predef Function51077 jr .done .player ld hl, EnemyMonDVs ; $d20c - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ld de, $9310 - ld a, $3d - call Predef + predef Function5116c .done pop af diff --git a/battle/core.asm b/battle/core.asm index dd05adf54..32e213ba0 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -1311,8 +1311,7 @@ Function3c874: ; 3c874 xor a ld [$cfca], a ld [FXAnimIDHi], a - ld a, $37 - call Predef + predef PlayBattleAnim call SwitchTurnCore .asm_3c8d3 @@ -2078,8 +2077,7 @@ Function3cd3c: ; 3cd3c .asm_3cd4a push bc ld [$d10a], a - ld a, $b - call Predef + predef Functionc6e0 pop bc ret ; 3cd55 @@ -2461,8 +2459,7 @@ Function3cfa4: ; 3cfa4 ld a, [BattleType] cp BATTLETYPE_CANLOSE jr nz, .asm_3cfe8 - ld a, $2 - call Predef + predef Functionc658 .asm_3cfe8 ld a, [$c2cc] @@ -2791,8 +2788,7 @@ Function3d1aa: ; 3d1aa ld c, a ld hl, $c664 ld b, $0 - ld a, $3 - call Predef + predef FlagPredef ld hl, EnemySubStatus3 res 2, [hl] xor a @@ -3379,12 +3375,10 @@ Function3d581: ; 3d581 ld hl, $c664 ld b, $1 push bc - ld a, $3 - call Predef + predef FlagPredef pop bc ld hl, $c6fc - ld a, $3 - jp Predef + predef_jump FlagPredef ; 3d599 Function3d599: ; 3d599 @@ -3599,8 +3593,7 @@ Function3d6ca: ; 3d6ca and a jr nz, .asm_3d708 ld hl, EnemyMonDVs - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ld a, [UnownLetter] ld [$def4], a @@ -3710,8 +3703,7 @@ Function3d7c7: ; 3d7c7 call GetBaseData ld a, $1 ld [MonType], a - ld a, $1f - call Predef + predef Function5084a call Function3f47c xor a ld [$cfca], a @@ -3735,8 +3727,7 @@ Function3d7c7: ; 3d7c7 hlcoord 12, 0 ld d, $0 ld e, $0 - ld a, $47 - call Predef + predef Functiond008e jr .asm_3d82c .asm_3d821 @@ -4192,8 +4183,7 @@ Function3db32: ; 3db32 Function3db5f: ; 3db5f ld hl, BattleMonDVs - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter hlcoord 1, 5 ld b, 7 ld c, 8 @@ -4376,8 +4366,7 @@ Function3dc5b: ; 3dc5b ld c, a ld hl, $c664 ld b, $0 - ld a, $3 - call Predef + predef FlagPredef call Function3d43b ld hl, BattleText_0x80a75 jr .asm_3dcdf @@ -4523,8 +4512,7 @@ Function3dd2f: ; 3dd2f .asm_3dda4 ld [$d10a], a - ld a, $b - call Predef + predef Functionc6e0 Function3ddac: call RefreshBattleHuds callab GetOpponentItem @@ -4548,8 +4536,7 @@ Function3ddc8: ; 3ddc8 xor a ld [$cfca], a ld [FXAnimIDHi], a - ld a, $37 - call Predef + predef PlayBattleAnim call SwitchTurnCore pop bc pop de @@ -4815,8 +4802,7 @@ DrawPlayerHUD: ; 3df58 ld b, OTPARTYMON xor a ld [MonType], a - ld a, PREDEF_DRAW_PLAYER_HP - call Predef + predef DrawPlayerHP ; Exp bar push de @@ -4912,8 +4898,7 @@ PrintPlayerHUD: ; 3dfbf push af push hl ld de, BattleMonStatus - ld a, $21 - call Predef + predef Function50d2e pop hl pop bc ret nz @@ -4986,8 +4971,7 @@ Function3e043: ; 3e043 push af push hl ld de, EnemyMonStatus - ld a, $21 - call Predef + predef Function50d2e pop hl pop bc jr nz, .asm_3e0be @@ -5593,8 +5577,7 @@ Function3e4bc: ; 3e4bc .asm_3e513 ld a, SCREEN_WIDTH ld [Buffer1], a - ld a, PREDEF_LIST_MOVES - call Predef + predef ListMoves ld b, 5 ld a, [$d235] @@ -5921,8 +5904,7 @@ MoveInfoBox: ; 3e6c8 ld a, [wPlayerMoveStruct + MOVE_ANIM] ld b, a hlcoord 2, 10 - ld a, PREDEF_PRINT_MOVE_TYPE - call Predef + predef PrintMoveType .done ret @@ -6387,8 +6369,7 @@ LoadEnemyMon: ; 3e8eb ; Get letter based on DVs ld hl, EnemyMonDVs - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ; Can't use any letters that haven't been unlocked ; If combined with forced shiny battletype, causes an infinite loop call CheckUnownLetter @@ -6469,8 +6450,7 @@ LoadEnemyMon: ; 3e8eb ld de, EnemyMonMaxHP ld b, $00 ld hl, $d201 ; ? - ld a, PREDEF_FILLSTATS - call Predef + predef Functione167 ; If we're in a trainer battle, ; get the rest of the parameters from the party struct @@ -6588,8 +6568,7 @@ LoadEnemyMon: ; 3e8eb ; Make sure the predef knows this isn't a partymon ld [MagikarpLength], a ; Fill moves based on level - ld a, PREDEF_FILLMOVES - call Predef + predef FillMoves .PP ; Trainer battle? @@ -6600,8 +6579,7 @@ LoadEnemyMon: ; 3e8eb ; Fill wild PP ld hl, EnemyMonMoves ld de, EnemyMonPP - ld a, PREDEF_FILLPP - call Predef + predef FillPP jr .Finish .TrainerPP @@ -6654,8 +6632,7 @@ LoadEnemyMon: ; 3e8eb ld c, a ld b, 1 ; set ld hl, PokedexSeen - ld a, PREDEF_FLAG - call Predef + predef FlagPredef ld hl, EnemyMonStats ld de, EnemyStats @@ -7294,8 +7271,7 @@ Function3ee17: ; 3ee17 ld a, d ld [FXAnimIDHi], a call WaitBGMap - ld a, $37 - jp Predef + predef_jump PlayBattleAnim ; 3ee27 Function3ee27: ; 3ee27 @@ -7340,8 +7316,7 @@ Function3ee3b: ; 3ee3b ld c, a ld b, $2 ld d, $0 - ld a, $3 - call Predef + predef FlagPredef ld a, c and a pop bc @@ -7514,8 +7489,7 @@ Function3ee3b: ; 3ee3b .asm_3ef74 xor a ld [MonType], a - ld a, $1f - call Predef + predef Function5084a callab Function50e1b pop bc ld hl, PartyMon1Level - PartyMon1 @@ -7551,8 +7525,7 @@ Function3ee3b: ; 3ee3b add hl, bc push bc ld b, $1 - ld a, $c - call Predef + predef Functione167 pop bc pop de ld hl, $0025 @@ -7628,16 +7601,14 @@ Function3ee3b: ; 3ee3b .asm_3f057 xor a ld [MonType], a - ld a, $1f - call Predef + predef Function5084a hlcoord 9, 0 ld b, $a ld c, $9 call TextBox hlcoord 11, 1 ld bc, $0004 - ld a, $28 - call Predef + predef Function50b7b ld c, $1e call DelayFrames call Functiona80 @@ -7657,8 +7628,7 @@ Function3ee3b: ; 3ee3b ld a, b ld [CurPartyLevel], a push bc - ld a, $1a - call Predef + predef LearnLevelMoves pop bc ld a, b cp c @@ -7669,8 +7639,7 @@ Function3ee3b: ; 3ee3b ld a, [CurPartyMon] ld c, a ld b, $1 - ld a, $3 - call Predef + predef FlagPredef pop af ld [CurPartyLevel], a @@ -7787,8 +7756,7 @@ Function3f136: ; 3f136 ld [DefaultFlypoint], a xor a ld [MonType], a - ld a, $1f - call Predef + predef Function5084a ld a, [TempMonLevel] ld b, a ld e, a @@ -8312,11 +8280,9 @@ Function3f447: ; 3f447 ld a, [BattleMonSpecies] ld [CurPartySpecies], a ld hl, BattleMonDVs - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ld de, $9310 - ld a, $3d - call Predef + predef Function5116c pop af ld [CurPartySpecies], a ret @@ -8351,11 +8317,9 @@ Function3f486: ; 3f486 ld [CurPartySpecies], a call GetBaseData ld hl, EnemyMonDVs - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ld de, VTiles2 - ld a, $3e - call Predef + predef Function5108b pop af ld [CurPartySpecies], a ret @@ -8502,8 +8466,7 @@ Function3f594: ; 3f594 ld [$c6e6], a hlcoord 12, 0 lb bc, 7, 7 - ld a, PREDEF_FILL_BOX - call Predef + predef FillBox ld a, $ff ld [CurOTMon], a ld a, TRAINER_BATTLE @@ -8549,8 +8512,7 @@ Function3f607: ; 3f607 ld bc, NUM_MOVES call CopyBytes ld hl, EnemyMonDVs - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter ld a, [CurPartySpecies] cp UNOWN jr nz, .asm_3f648 @@ -8562,15 +8524,13 @@ Function3f607: ; 3f607 .asm_3f648 ld de, VTiles2 - ld a, $3e - call Predef + predef Function5108b xor a ld [TrainerClass], a ld [$ffad], a hlcoord 12, 0 lb bc, 7, 7 - ld a, PREDEF_FILL_BOX - call Predef + predef FillBox ret ; 3f662 @@ -8650,8 +8610,7 @@ Function3f6a5: ; 3f6a5 call Function3f71d xor a ld [$d1e9], a - ld a, $1c - call Predef + predef Function421e6 callba Function2ed44 ret ; 3f6d0 @@ -9325,8 +9284,7 @@ Function3fb6c: ; 3fb6c ld [$ffad], a hlcoord 2, 6 ld bc, $0606 - ld a, $13 - call Predef + predef FillBox xor a ld [hWY], a ld [rWY], a @@ -9397,8 +9355,7 @@ GetBattleBackpic: ; 3fbff .Decompress ld de, $9310 ld c, $31 - ld a, PREDEF_DECOMPRESS - call Predef + predef DecompressPredef ret ; 3fc30 @@ -9421,8 +9378,7 @@ Function3fc30: ; 3fc30 ld [$ffad], a hlcoord 2, 6 ld bc, $0606 - ld a, $13 - call Predef + predef FillBox ret ; 3fc5b @@ -9503,8 +9459,7 @@ BattleStartMessage: ; 3fc8b hlcoord 12, 0 ld d, $0 ld e, $1 - ld a, $47 - call Predef + predef Functiond008e jr .asm_3fceb .asm_3fce0 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 4bbd0ba6b..d9cbc1fb5 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -3227,8 +3227,7 @@ BattleCommand11: ; 351c0 ld [$d1ef], a ld h, b ld l, c - ld a, $b - call Predef + predef Functionc6e0 call RefreshBattleHuds call SwitchTurn @@ -4607,8 +4606,7 @@ BattleCommand42: ; 35926 ld a, $1 ld [$d10a], a hlcoord 10, 9 - ld a, $b - call Predef + predef Functionc6e0 ld hl, EnemyMonHP ld a, [hli] ld [$d1ed], a @@ -4623,8 +4621,7 @@ BattleCommand42: ; 35926 ld [$d10a], a call ResetDamage hlcoord 2, 2 - ld a, $b - call Predef + predef Functionc6e0 callba Function178000 ld hl, SharedPainText @@ -4767,8 +4764,7 @@ BattleCommand44: ; 359e6 ld a, [hl] ld [$d265], a - ld a, $29 - call Predef + predef GetTypeName ld hl, TransformedTypeText jp StdBattleTextBox @@ -5341,8 +5337,7 @@ Function35d1c: ; 35d1c hlcoord 2, 2 xor a ld [$d10a], a - ld a, $b - call Predef + predef Functionc6e0 .asm_35d7b jp RefreshBattleHuds ; 35d7e @@ -5401,8 +5396,7 @@ Function35d7e: ; 35d7e hlcoord 10, 9 ld a, $1 ld [$d10a], a - ld a, $b - call Predef + predef Functionc6e0 .asm_35ddd jp RefreshBattleHuds ; 35de0 @@ -5850,8 +5844,7 @@ Function36011: ; 36011 xor a .asm_3607e ld [$d10a], a - ld a, $b - call Predef + predef Functionc6e0 call RefreshBattleHuds jp UpdateBattleMonInParty ; 3608c @@ -8001,8 +7994,7 @@ BattleCommand27: ; 36cb2 xor a .asm_36d0c ld [$d10a], a - ld a, $b - call Predef + predef Functionc6e0 call RefreshBattleHuds ld hl, RecoilText jp StdBattleTextBox diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index f2e5f2100..2e5c5573a 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -21,35 +21,6 @@ MONS_PER_BOX EQU 20 NUM_BOXES EQU 14 -; predefs -PREDEF_LEARN_MOVE EQU $00 -PREDEF_FLAG EQU $03 -PREDEF_FILLPP EQU $05 -PREDEF_ADDPARTYMON EQU $06 -PREDEF_FILLSTATS EQU $0C -PREDEF_PRINT_MOVE_DESCRIPTION EQU $11 -PREDEF_UPDATE_PLAYER_HUD EQU $12 -PREDEF_FILL_BOX EQU $13 -PREDEF_UPDATE_ENEMY_HUD EQU $15 -PREDEF_START_BATTLE EQU $16 -PREDEF_FILL_IN_EXP_BAR EQU $17 -PREDEF_FILLMOVES EQU $1B -PREDEF_LIST_MOVES EQU $20 -PREDEF_GET_GENDER EQU $24 -PREDEF_STATS_SCREEN EQU $25 -PREDEF_DRAW_PLAYER_HP EQU $26 -PREDEF_DRAW_ENEMY_HP EQU $27 -PREDEF_GET_TYPE_NAME EQU $29 -PREDEF_PRINT_MOVE_TYPE EQU $2A -PREDEF_PRINT_TYPE EQU $2B -PREDEF_GET_UNOWN_LETTER EQU $2D -PREDEF_LOAD_SGB_LAYOUT EQU $31 -PREDEF_CHECK_CONTEST_MON EQU $33 -PREDEF_BATTLE_TRANSITION EQU $34 -PREDEF_PARTYMON_ITEM_NAME EQU $3B -PREDEF_DECOMPRESS EQU $40 - - ; flag manipulation RESET_FLAG EQU 0 SET_FLAG EQU 1 diff --git a/engine/scripting.asm b/engine/scripting.asm index 63c5ca1f2..2a978e0ea 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1531,8 +1531,7 @@ Script_startbattle: ; 0x97436 ; script command 0x5f call Function2879 - ld a, PREDEF_START_BATTLE - call Predef + predef StartBattle ld a, [$d0ee] and $3f ld [ScriptVar], a diff --git a/gfx/pics/animation.asm b/gfx/pics/animation.asm index 6d79ff433..aefff149b 100644 --- a/gfx/pics/animation.asm +++ b/gfx/pics/animation.asm @@ -1007,8 +1007,7 @@ Functiond066e: ; d066e push bc push hl ld de, VTiles2 - ld a, $3e - call Predef + predef Function5108b pop hl pop bc ld d, $0 diff --git a/home.asm b/home.asm index ec106886c..09231346e 100644 --- a/home.asm +++ b/home.asm @@ -753,15 +753,14 @@ GetSGBLayout:: ; 3340 ld a, [hCGB] and a - jr nz, .dosgb + jr nz, .sgb ld a, [hSGB] and a ret z -.dosgb - ld a, $31 ; LoadSGBLayout - jp Predef +.sgb + predef_jump Function864c ; LoadSGBLayout ; 334e @@ -1700,14 +1699,12 @@ Function378b:: ; 378b jr c, .asm_37ad push hl ld de, VTiles2 - ld a, $3c - call Predef + predef Function51077 pop hl xor a ld [$ffad], a ld bc, $0707 - ld a, $13 - call Predef + predef FillBox xor a ld [$c2c6], a ret diff --git a/home/init.asm b/home/init.asm index 3d83a03cf..20e043180 100644 --- a/home/init.asm +++ b/home/init.asm @@ -167,8 +167,7 @@ Init:: ; 17d call DelayFrame - ld a, $30 - call Predef + predef Function9853 call SoundRestart xor a diff --git a/home/pokedex_flags.asm b/home/pokedex_flags.asm index 0ad13b497..ac59ffeb8 100644 --- a/home/pokedex_flags.asm +++ b/home/pokedex_flags.asm @@ -31,8 +31,7 @@ CheckSeenMon:: ; 339b PokedexFlagAction:: ; 33a1 ld d, 0 - ld a, PREDEF_FLAG - call Predef + predef FlagPredef ld a, c and a ret diff --git a/items/item_descriptions.asm b/items/item_descriptions.asm index a3c39a1e6..ee54c526d 100644 --- a/items/item_descriptions.asm +++ b/items/item_descriptions.asm @@ -8,8 +8,7 @@ GetItemDescription: ; 0x1c8955 pop hl ld a, [$d265] ld [$cf60], a - ld a, $11 - call Predef + predef PrintMoveDesc ret .nomovedesc diff --git a/items/item_effects.asm b/items/item_effects.asm index 820d18399..d3ab93151 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -399,8 +399,7 @@ ParkBall: ; e8a2 ld [hBattleTurn], a ld [Buffer2], a ld [$cfca], a - ld a, $37 - call Predef + predef PlayBattleAnim ld a, [$c64e] and a @@ -525,8 +524,7 @@ ParkBall: ; e8a2 ld a, [EnemyMonSpecies] ld [$d265], a - ld a, $43 - call Predef + predef Functionfb877 .asm_eab7 ld a, [BattleType] @@ -546,8 +544,7 @@ ParkBall: ; e8a2 ld [MonType], a call ClearSprites - ld a, $6 - call Predef + predef Functiond88c callba Function4db49 @@ -604,8 +601,7 @@ ParkBall: ; e8a2 .asm_eb3c call ClearSprites - ld a, $9 - call Predef + predef Functionde6e callba Function4db83 @@ -1265,8 +1261,7 @@ Functionee8c: ; ee8c ld a, PartyMon1HPExp - 1 - PartyMon1 call GetPartyParamLocation ld b, $1 - ld a, $c - jp Predef + predef_jump Functione167 ; ee9f Functionee9f: ; ee9f @@ -1405,8 +1400,7 @@ RareCandy: ; ef14 xor a ld [MonType], a - ld a, $1f - call Predef + predef Function5084a hlcoord 9, 0 ld b, 10 @@ -1415,8 +1409,7 @@ RareCandy: ; ef14 hlcoord 11, 1 ld bc, $0004 - ld a, $28 - call Predef + predef Function50b7b call Functiona80 @@ -1424,8 +1417,7 @@ RareCandy: ; ef14 ld [MonType], a ld a, [CurPartySpecies] ld [$d265], a - ld a, $1a - call Predef + predef LearnLevelMoves xor a ld [$d1e9], a @@ -1654,8 +1646,7 @@ Functionf0d6: ; f0d6 ld d, 0 ld hl, $c6fc ld b, CHECK_FLAG - ld a, PREDEF_FLAG - call Predef + predef FlagPredef ld a, c and a jr z, .asm_f104 @@ -1664,8 +1655,7 @@ Functionf0d6: ; f0d6 ld c, a ld hl, $c664 ld b, SET_FLAG - ld a, PREDEF_FLAG - call Predef + predef FlagPredef .asm_f104 xor a @@ -1834,8 +1824,7 @@ Functionf1db: ; f1db (3:71db) call AddNTimes ld a, $2 ld [$d10a], a - ld a, $b - jp Predef + predef_jump Functionc6e0 ; known jump sources: ee11 (3:6e11), ee3f (3:6e3f), ef16 (3:6f16), efaf (3:6faf), efce (3:6fce), f0ab (3:70ab), f0ca (3:70ca), f12a (3:712a), f1ab (3:71ab), f5c7 (3:75c7) Functionf1f9: ; f1f9 (3:71f9) @@ -2971,8 +2960,7 @@ Functionf7a0: ; f7a0 ld [$c689], a ld [hBattleTurn], a ld [$cfca], a - ld a, $37 - call Predef + predef PlayBattleAnim ld hl, BlockedTheBallText call PrintText ld hl, DontBeAThiefText @@ -3119,8 +3107,7 @@ Functionf84c: ; f84c call GetPartyParamLocation push hl ld de, Buffer1 - ld a, PREDEF_FILLPP - call Predef + predef FillPP pop hl ld bc, PartyMon1PP - PartyMon1Moves add hl, bc diff --git a/macros.asm b/macros.asm index efd43318a..5973de043 100644 --- a/macros.asm +++ b/macros.asm @@ -196,3 +196,25 @@ x = x + \1 * $40000 endr ENDM + +add_predef: MACRO +\1Predef:: + dw \1 + db BANK(\1) +ENDM + +predef_id: MACRO +; Some functions load the predef id +; without immediately calling Predef. + ld a, (\1Predef - PredefPointers) / 3 +ENDM + +predef: MACRO + predef_id \1 + call Predef +ENDM + +predef_jump: MACRO + predef_id \1 + jp Predef +ENDM diff --git a/main.asm b/main.asm index 683225879..d4b622790 100644 --- a/main.asm +++ b/main.asm @@ -17,8 +17,7 @@ Function4000:: ; 4000 jr .asm_4017 .asm_4012 - ld a, $10 - call Predef + predef Function28eef .asm_4017 hlcoord 4, 11 @@ -4678,22 +4677,19 @@ Function619c: ; 619c ld [$ffad], a hlcoord 6, 4 ld bc, $0707 - ld a, $13 - call Predef + predef FillBox ret ; 61b4 Function61b4: ; 61b4 ld de, VTiles2 ld c, $31 - ld a, $40 - call Predef + predef DecompressPredef xor a ld [$ffad], a hlcoord 6, 4 ld bc, $0707 - ld a, $13 - call Predef + predef FillBox ret ; 61cd @@ -5392,8 +5388,7 @@ Function65d3: ; 65d3 hlcoord 5 + 2, 2 + 2 ld a, SCREEN_WIDTH * 2 ld [Buffer1], a - ld a, PREDEF_LIST_MOVES - call Predef + predef ListMoves ld a, $4 ld [$cfa1], a ld a, $6 @@ -6607,8 +6602,7 @@ SpecialGiveShuckle: ; 7305 ld a, 15 ld [CurPartyLevel], a - ld a, PREDEF_ADDPARTYMON - call Predef + predef Functiond88c jr nc, .NotGiven ; Caught data. @@ -7755,84 +7749,84 @@ GetPredefPointer:: ; 854b ret ; 856b -PredefPointers: ; 856b +PredefPointers:: ; 856b ; $4b Predef pointers ; address, bank - dwb LearnMove, BANK(LearnMove) ; $0 - dwb Function747a, BANK(Function747a) - dwb Functionc658, BANK(Functionc658) - dwb FlagPredef, BANK(FlagPredef) - dwb Functionc699, BANK(Functionc699) - dwb FillPP, BANK(FillPP) - dwb Functiond88c, BANK(Functiond88c) - dwb Functionda96, BANK(Functionda96) - dwb Functiondb3f, BANK(Functiondb3f) ; $8 - dwb Functionde6e, BANK(Functionde6e) - dwb GiveEgg, BANK(GiveEgg) - dwb Functionc6e0, BANK(Functionc6e0) - dwb Functione167, BANK(Functione167) - dwb Functione17b, BANK(Functione17b) - dwb CanLearnTMHMMove, BANK(CanLearnTMHMMove) - dwb GetTMHMMove, BANK(GetTMHMMove) - dwb Function28eef, BANK(Function28eef) ; $ 10 - dwb PrintMoveDesc, BANK(PrintMoveDesc) - dwb Function3df48, BANK(Function3df48) ; UpdatePlayerHUD - dwb FillBox, BANK(FillBox) - dwb Function3d873, BANK(Function3d873) - dwb Function3e036, BANK(Function3e036) ; UpdateEnemyHUD - dwb StartBattle, BANK(StartBattle) - dwb FillInExpBar, BANK(FillInExpBar) - dwb Function3f43d, BANK(Function3f43d) ; $18 - dwb Function3f47c, BANK(Function3f47c) - dwb LearnLevelMoves, BANK(LearnLevelMoves) - dwb FillMoves, BANK(FillMoves) - dwb Function421e6, BANK(Function421e6) - dwb Function28f63, BANK(Function28f63) - dwb Function28f24, BANK(Function28f24) - dwb Function5084a, BANK(Function5084a) - dwb ListMoves, BANK(ListMoves) ; $20 - dwb Function50d2e, BANK(Function50d2e) - dwb Function50cdb, BANK(Function50cdb) - dwb Function50c50, BANK(Function50c50) - dwb GetGender, BANK(GetGender) - dwb StatsScreenInit, BANK(StatsScreenInit) - dwb DrawPlayerHP, BANK(DrawPlayerHP) - dwb DrawEnemyHP, BANK(DrawEnemyHP) - dwb Function50b7b, BANK(Function50b7b) ; $28 - dwb GetTypeName, BANK(GetTypeName) - dwb PrintMoveType, BANK(PrintMoveType) - dwb PrintType, BANK(PrintType) - dwb PrintMonTypes, BANK(PrintMonTypes) - dwb GetUnownLetter, BANK(GetUnownLetter) - dwb Functioncbcdd, BANK(Functioncbcdd) - dwb Predef2F, BANK(Predef2F) - dwb Function9853, BANK(Function9853) ; $30 - dwb Function864c, BANK(Function864c) - dwb Function91d11, BANK(Function91d11) - dwb CheckContestMon, BANK(CheckContestMon) - dwb Function8c20f, BANK(Function8c20f) - dwb Function8c000, BANK(Function8c000) - dwb Function8c000, BANK(Function8c000) - dwb PlayBattleAnim, BANK(PlayBattleAnim) - dwb Predef38, BANK(Predef38) ; $38 - dwb Predef39, BANK(Predef39) - dwb Functionfd1d0, BANK(Functionfd1d0) - dwb PartyMonItemName, BANK(PartyMonItemName) - dwb Function51077, BANK(Function51077) - dwb Function5116c, BANK(Function5116c) - dwb Function5108b, BANK(Function5108b) - dwb Function5120d, BANK(Function5120d) - dwb DecompressPredef, BANK(DecompressPredef) ; $40 - dwb Function347d3, BANK(Function347d3) - dwb Functionfb908, BANK(Functionfb908) - dwb Functionfb877, BANK(Functionfb877) - dwb Functiond0000, BANK(Functiond0000) - dwb Function50d0a, BANK(Function50d0a) - dwb Functiond00a3, BANK(Functiond00a3) - dwb Functiond008e, BANK(Functiond008e) - dwb Functiond0669, BANK(Functiond0669) ; $48 - dwb Functiond066e, BANK(Functiond066e) + add_predef LearnMove ; $0 + add_predef Function747a + add_predef Functionc658 + add_predef FlagPredef + add_predef Functionc699 + add_predef FillPP + add_predef Functiond88c + add_predef Functionda96 + add_predef Functiondb3f ; $8 + add_predef Functionde6e + add_predef GiveEgg + add_predef Functionc6e0 + add_predef Functione167 + add_predef Functione17b + add_predef CanLearnTMHMMove + add_predef GetTMHMMove + add_predef Function28eef ; $ 10 + add_predef PrintMoveDesc + add_predef Function3df48 ; UpdatePlayerHUD + add_predef FillBox + add_predef Function3d873 + add_predef Function3e036 ; UpdateEnemyHUD + add_predef StartBattle + add_predef FillInExpBar + add_predef Function3f43d ; $18 + add_predef Function3f47c + add_predef LearnLevelMoves + add_predef FillMoves + add_predef Function421e6 + add_predef Function28f63 + add_predef Function28f24 + add_predef Function5084a + add_predef ListMoves ; $20 + add_predef Function50d2e + add_predef Function50cdb + add_predef Function50c50 + add_predef GetGender + add_predef StatsScreenInit + add_predef DrawPlayerHP + add_predef DrawEnemyHP + add_predef Function50b7b ; $28 + add_predef GetTypeName + add_predef PrintMoveType + add_predef PrintType + add_predef PrintMonTypes + add_predef GetUnownLetter + add_predef Functioncbcdd + add_predef Predef2F + add_predef Function9853 ; $30 + add_predef Function864c + add_predef Function91d11 + add_predef CheckContestMon + add_predef Function8c20f + add_predef Function8c000 + add_predef Function8c000_2 + add_predef PlayBattleAnim + add_predef Predef38 ; $38 + add_predef Predef39 + add_predef Functionfd1d0 + add_predef PartyMonItemName + add_predef Function51077 + add_predef Function5116c + add_predef Function5108b + add_predef Function5120d + add_predef DecompressPredef ; $40 + add_predef Function347d3 + add_predef Functionfb908 + add_predef Functionfb877 + add_predef Functiond0000 + add_predef Function50d0a + add_predef Functiond00a3 + add_predef Functiond008e + add_predef Functiond0669 ; $48 + add_predef Functiond066e dbw $ff, Function2d43 ; ???? ; 864c @@ -12427,8 +12421,7 @@ Functiond906: ; d906 endr ld [hl], a ld [Buffer1], a - ld a, $1b - call Predef + predef FillMoves .asm_d950 pop de @@ -12618,8 +12611,7 @@ Functiond906: ; d906 dec a ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter callab Functionfba18 .asm_da6b @@ -12726,8 +12718,7 @@ Functionda96: ; da96 dec a ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter callab Functionfba18 ld a, [$def4] and a @@ -12892,8 +12883,7 @@ Functiondb3f: ; db3f srl a add $2 ld [MonType], a - ld a, $1f - call Predef + predef Function5084a callab Function50e1b ld a, d ld [CurPartyLevel], a @@ -13137,8 +13127,7 @@ Functiondd64: ; dd64 ld e, l ld a, $1 ld [Buffer1], a - ld a, $1b - call Predef + predef FillMoves ld a, [PartyCount] dec a ld [CurPartyMon], a @@ -13297,8 +13286,7 @@ Functionde6e: ; de6e cp UNOWN jr nz, .asm_df20 ld hl, sBoxMon1DVs - ld a, $2d - call Predef + predef GetUnownLetter callab Functionfba18 .asm_df20 @@ -13395,8 +13383,7 @@ GiveEgg:: ; df8c ld d, $0 ld hl, PokedexCaught ld b, $0 - ld a, $3 - call Predef + predef FlagPredef .asm_dfc3 pop bc @@ -13409,8 +13396,7 @@ GiveEgg:: ; df8c ld d, $0 ld hl, PokedexSeen ld b, $0 - ld a, $3 - call Predef + predef FlagPredef .asm_dfd9 pop af @@ -16917,8 +16903,7 @@ CanLearnTMHMMove: ; 11639 ld b, CHECK_FLAG push de ld d, 0 - ld a, PREDEF_FLAG - call Predef + predef FlagPredef pop de ret @@ -20228,8 +20213,7 @@ OpenPartyStats: ; 12e00 xor a ld [MonType], a call LowVolume - ld a, $25 - call Predef + predef StatsScreenInit call MaxVolume call Function1d7d ld a, 0 @@ -20802,8 +20786,7 @@ Function131ef: ; 131ef ld [hBGMapMode], a ld [$d0e3], a ld [MonType], a - ld a, $1f - call Predef + predef Function5084a ld hl, TempMonMoves ld de, $d25e ld bc, NUM_MOVES @@ -20811,11 +20794,9 @@ Function131ef: ; 131ef ld a, SCREEN_WIDTH * 2 ld [Buffer1], a hlcoord 2, 3 - ld a, PREDEF_LIST_MOVES - call Predef + predef ListMoves hlcoord 10, 4 - ld a, $23 - call Predef + predef Function50c50 call WaitBGMap call Function32f9 ld a, [$d0eb] @@ -20859,8 +20840,7 @@ Function13256: ; 13256 ld a, [CurSpecies] ld b, a hlcoord 2, 12 - ld a, PREDEF_PRINT_MOVE_TYPE - call Predef + predef PrintMoveType ld a, [CurSpecies] dec a ld hl, Moves + MOVE_POWER @@ -20883,8 +20863,7 @@ Function13256: ; 13256 .asm_132ad hlcoord 1, 14 - ld a, $11 - call Predef + predef PrintMoveDesc ld a, $1 ld [hBGMapMode], a ret @@ -22306,8 +22285,7 @@ Function13a47: ; 13a47 ld hl, $000a add hl, bc ld b, $1 - ld a, $c - call Predef + predef Functione167 pop hl ld bc, PartyMon2 - PartyMon1 add hl, bc @@ -26447,8 +26425,7 @@ Function157e9: ; 0x157e9 ld [$d107], a ld hl, PCItems call TossItem - ld a, $3b - call Predef + predef PartyMonItemName ld hl, .WithdrewText call Function1d4f xor a @@ -26622,8 +26599,7 @@ Function1590a: ; 0x1590a ld [$d107], a ld hl, NumItems call TossItem - ld a, $3b - call Predef + predef PartyMonItemName ld hl, .DepositText call PrintText ret @@ -27306,8 +27282,7 @@ Function15d83: ; 15d83 ; 15d97 Function15d97: ; 15d97 - ld a, $3b - call Predef + predef PartyMonItemName ld a, $1 call Function15c7d call YesNoBox @@ -27647,8 +27622,7 @@ Function15efd: ; 15efd ld a, [$d107] ld hl, NumItems call TossItem - ld a, $3b - call Predef + predef PartyMonItemName hlcoord 1, 14 ld bc, $0312 call ClearBox @@ -29255,8 +29229,7 @@ Function169ac: ; 169ac pop hl push bc ld b, $0 - ld a, $c - call Predef + predef Functione167 pop bc ld hl, $0022 add hl, bc @@ -29374,8 +29347,7 @@ Function16a66: ; 16a66 ld de, $df7d xor a ld [Buffer1], a - ld a, $1b - call Predef + predef FillMoves callba Function170bf ld hl, $df81 ld a, [PlayerID] @@ -29461,8 +29433,7 @@ Function16a66: ; 16a66 call CopyBytes ld hl, $df7d ld de, $df92 - ld a, $5 - call Predef + predef FillPP ld hl, $d050 ld de, StringBuffer1 ld bc, $000b @@ -29627,15 +29598,13 @@ Function16cc8: ; 16cc8 xor a ld [$c2c6], a ld de, VTiles2 - ld a, $3c - call Predef + predef Function51077 call Function16cff hlcoord 1, 6 xor a ld [$ffad], a ld bc, $0707 - ld a, $13 - call Predef + predef FillBox ld de, $9310 callba Functione0000 ret @@ -29716,8 +29685,7 @@ Function16dac: ; 16dac ld a, $31 ld [$ffad], a ld bc, $0707 - ld a, $13 - call Predef + predef FillBox ret ; 16dc7 @@ -29795,8 +29763,7 @@ Function16e1d: ; 16e1d ld [$d124], a ld a, $3 ld [MonType], a - ld a, $24 - call Predef + predef GetGender jr c, .asm_16e70 ld b, $1 jr nz, .asm_16e48 @@ -29812,8 +29779,7 @@ Function16e1d: ; 16e1d ld [$d124], a ld a, $3 ld [MonType], a - ld a, $24 - call Predef + predef GetGender pop bc jr c, .asm_16e70 ld a, $1 @@ -30062,8 +30028,7 @@ Function16f7a: ; 16f7a (5:6f7a) ld bc, $a add hl, bc ld b, $0 - ld a, $c - call Predef + predef Functione167 pop bc ld hl, $24 add hl, bc @@ -30291,8 +30256,7 @@ GLOBAL EggMoves cp b jr nz, .asm_17149 ld [$d262], a - ld a, $e - call Predef + predef CanLearnTMHMMove ld a, c and a jr z, .asm_17166 @@ -30337,8 +30301,7 @@ Function17169: ; 17169 ld [hl], b ld hl, $df7d ld de, $df92 - ld a, $5 - call Predef + predef FillPP pop bc pop de ret @@ -30369,8 +30332,7 @@ Function17197: ; 17197 ld [$d124], a ld a, $3 ld [MonType], a - ld a, $24 - call Predef + predef GetGender jr c, .asm_171fb jr nz, .asm_171fb jr .asm_17203 @@ -30386,8 +30348,7 @@ Function17197: ; 17197 ld [$d124], a ld a, $3 ld [MonType], a - ld a, $24 - call Predef + predef GetGender jr c, .asm_17203 jr nz, .asm_17203 @@ -30429,11 +30390,9 @@ Function17224: ; 17224 (5:7224) ld [CurSpecies], a ; $cf60 call GetBaseData ld hl, BattleMonDVs - ld a, $2d - call Predef + predef GetUnownLetter pop de - ld a, $3c - jp Predef + predef_jump Function51077 ; known jump sources: 172c2 (5:72c2) Function1723c: ; 1723c (5:723c) @@ -30442,11 +30401,9 @@ Function1723c: ; 1723c (5:723c) ld [CurSpecies], a ; $cf60 call GetBaseData ld hl, BattleMonDVs - ld a, $2d - call Predef + predef GetUnownLetter pop de - ld a, $3e - jp Predef + predef_jump Function5108b ; known jump sources: 172df (5:72df), 17343 (5:7343) Function17254: ; 17254 (5:7254) @@ -30465,8 +30422,7 @@ Function17254: ; 17254 (5:7254) ld a, c ld [$ffad], a ld bc, $707 - ld a, $13 - call Predef + predef FillBox pop af call Function17363 call Function32f9 @@ -30568,8 +30524,7 @@ Function1728f: ; 1728f (5:728f) hlcoord 6, 3 ld d, $0 ld e, $5 - ld a, $47 - call Predef + predef Functiond008e pop af ld [CurSpecies], a ; $cf60 ret @@ -31925,8 +31880,7 @@ Function244e3:: ; 244e3 ld [CurSpecies], a call GetBaseData ld de, VTiles1 - ld a, $3c - call Predef + predef Function51077 ld a, [$cf82] inc a ld b, a @@ -31937,8 +31891,7 @@ Function244e3:: ; 244e3 ld a, $80 ld [$ffad], a ld bc, $0707 - ld a, $13 - call Predef + predef FillBox call WaitBGMap ret ; 24528 @@ -34111,8 +34064,7 @@ Function25299: ; 25299 (9:5299) ld bc, $507 xor a ld [$FF00+$ad], a - ld a, $13 - call Predef + predef FillBox ret ; 252ec (9:52ec) @@ -36713,8 +36665,7 @@ Function28177: ; 28177 ld [rIE], a pop af ld [rIF], a - ld a, $16 - call Predef + predef StartBattle ld a, [rIF] ld h, a xor a @@ -37052,8 +37003,7 @@ Function284f6: ; 284f6 add hl, bc ld c, $5 ld b, $1 - ld a, $d - call Predef + predef Functione17b pop bc pop de @@ -37324,8 +37274,7 @@ Function286ba: ; 286ba add hl, bc ld c, $5 ld b, $1 - ld a, $d - call Predef + predef Functione17b pop bc pop hl ld a, [$ffb5] @@ -37338,8 +37287,7 @@ Function286ba: ; 286ba add hl, bc ld c, $6 ld b, $1 - ld a, $d - call Predef + predef Functione17b pop bc pop hl ld a, [$ffb5] @@ -38161,13 +38109,11 @@ Function28b87: ; 28b87 ld a, [$ffcb] cp $1 jr z, .asm_28de4 - ld a, $1e - call Predef + predef Function28f24 jr .asm_28de9 .asm_28de4 - ld a, $1d - call Predef + predef Function28f63 .asm_28de9 pop af @@ -38185,8 +38131,7 @@ Function28b87: ; 28b87 ld de, TempMonSpecies ld bc, PartyMon2 - PartyMon1 call CopyBytes - ld a, $7 - call Predef + predef Functionda96 ld a, [PartyCount] dec a ld [CurPartyMon], a @@ -39123,15 +39068,13 @@ Function29487: ; 29487 Function29491: ; 29491 push de push af - ld a, $2d - call Predef + predef GetUnownLetter pop af ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData pop de - ld a, $3c - call Predef + predef Function51077 ret ; 294a9 @@ -39164,8 +39107,7 @@ Function294c3: ; 294c3 xor a ld [$ffad], a ld bc, $0707 - ld a, $13 - call Predef + predef FillBox call WaitBGMap ret ; 294e7 @@ -40391,8 +40333,7 @@ Function29fe4: ; 29fe4 call GetSRAMBank ld d, $0 ld b, $2 - ld a, $3 - call Predef + predef FlagPredef call CloseSRAM ld a, c and a @@ -42534,8 +42475,7 @@ Function2c7a7: ; 2c7a7 (b:47a7) ; known jump sources: 2c7cd (b:47cd) Function2c7b6: ; 2c7b6 (b:47b6) call Function2c7a7 - ld a, $f - call Predef + predef GetTMHMMove ret Function2c7bf: ; 2c7bf (b:47bf) @@ -42617,8 +42557,7 @@ Function2c80a: ; 2c80a ; 2c867 Function2c867: ; 2c867 - ld a, $e - call Predef + predef CanLearnTMHMMove push bc ld a, [CurPartyMon] ; $d109 @@ -42641,8 +42580,7 @@ Function2c867: ; 2c867 callab KnowsMove jr c, .asm_2c8b6 - ld a, PREDEF_LEARN_MOVE - call Predef + predef LearnMove ld a, b and a jr z, .asm_2c8b6 @@ -42764,8 +42702,7 @@ Function2c946: ; 2c946 (b:4946) cp $3a jr nc, Function2c915 ld [$d265], a - ld a, $f - call Predef + predef GetTMHMMove ld a, [$d265] ld [CurSpecies], a ; $cf60 hlcoord 1, 14 @@ -42900,8 +42837,7 @@ Function2c9e2: ; 2c9e2 (b:49e2) pop af ld [$d265], a .asm_2ca38 - ld a, $f - call Predef + predef GetTMHMMove ld a, [$d265] ld [$d262], a call GetMoveName @@ -42965,8 +42901,7 @@ Function2ca95: ; 2ca95 pop hl ld bc, $0003 add hl, bc - ld a, $f - call Predef + predef GetTMHMMove ld a, [$d265] ld [$d262], a call GetMoveName @@ -43302,8 +43237,7 @@ Function2ee2f: ; 2ee2f add hl, de ld a, [hl] ld [BattleMonLevel], a - ld a, PREDEF_BATTLE_TRANSITION - call Predef + predef Function8c20f callba Function3ed9f ld a, 1 ld [hBGMapMode], a @@ -43726,8 +43660,7 @@ TrainerType1: ; 397eb ld a, OTPARTYMON ld [MonType], a push hl - ld a, PREDEF_ADDPARTYMON - call Predef + predef Functiond88c pop hl jr .loop ; 39806 @@ -43748,8 +43681,7 @@ TrainerType2: ; 39806 ld [MonType], a push hl - ld a, PREDEF_ADDPARTYMON - call Predef + predef Functiond88c ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Moves @@ -43825,8 +43757,7 @@ TrainerType3: ; 39871 ld a, OTPARTYMON ld [MonType], a push hl - ld a, PREDEF_ADDPARTYMON - call Predef + predef Functiond88c ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Item @@ -43857,8 +43788,7 @@ TrainerType4: ; 3989d ld [MonType], a push hl - ld a, PREDEF_ADDPARTYMON - call Predef + predef Functiond88c ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Item @@ -44481,8 +44411,7 @@ Function402fa: ; 402fa call Function40bb1 ld a, [$c7e4] ld e, a - ld a, $32 - call Predef + predef Function91d11 call Function41401 call DelayFrame xor a @@ -46510,8 +46439,7 @@ Function4143b: ; 4143b ld [CurPartySpecies], a call GetBaseData ld de, VTiles2 - ld a, $3c - call Predef + predef Function51077 ret .asm_4145b @@ -46672,8 +46600,7 @@ Function41a58: ; 41a58 (10:5a58) ld [CurPartySpecies], a ; $d108 call GetBaseData ld de, $9000 - ld a, $3c - call Predef + predef Function51077 pop af ld [UnownLetter], a ; $d234 ret @@ -46703,8 +46630,7 @@ Function41a7f: ; 41a7f call WaitBGMap call GetBaseData ld de, VTiles2 - ld a, $3c - call Predef + predef Function51077 ld a, $4 call Function41423 ld a, [CurPartySpecies] @@ -46808,8 +46734,7 @@ Function421f5: ; 421f5 push hl xor a ld [MonType], a - ld a, $1f - call Predef + predef Function5084a pop hl .asm_42230 @@ -47019,8 +46944,7 @@ Function421f5: ; 421f5 ld hl, $d118 ld de, TempMonMaxHP ld b, $1 - ld a, PREDEF_FILLSTATS - call Predef + predef Functione167 ld a, [CurPartyMon] ld hl, PartyMons @@ -47066,8 +46990,7 @@ Function421f5: ; 421f5 jr nz, .asm_423ec ld hl, TempMonDVs - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter callab Functionfba18 .asm_423ec @@ -47241,8 +47164,7 @@ LearnLevelMoves: ; 42487 ld [$d265], a call GetMoveName call CopyName1 - ld a, PREDEF_LEARN_MOVE - call Predef + predef LearnMove pop hl jr .find_move @@ -47379,8 +47301,7 @@ ShiftMoves: ; 4256e Function42577: ; 42577 push de ld d, $0 - ld a, $3 - call Predef + predef FlagPredef pop de ret ; 42581 @@ -47533,8 +47454,7 @@ AIChooseMove: ; 440ce push bc ld d, $e ; BANK(TrainerAI) - ld a, PREDEF_FLAG - call Predef + predef FlagPredef ld d, c pop bc @@ -50601,8 +50521,7 @@ Function492b9: ; 492b9 ld hl, MenuDataHeader_0x4930a call LoadMenuDataHeader - ld a, $e - call Predef + predef CanLearnTMHMMove push bc ld a, [CurPartyMon] @@ -50626,8 +50545,7 @@ Function492b9: ; 492b9 callab KnowsMove jr c, .didnt_learn - ld a, PREDEF_LEARN_MOVE - call Predef + predef LearnMove ld a, b and a jr z, .didnt_learn @@ -55007,8 +54925,7 @@ Function4d319: ; 4d319 dec a ld [CurPartyMon], a call LowVolume - ld a, PREDEF_STATS_SCREEN - call Predef + predef StatsScreenInit ld a, [CurPartyMon] inc a ld [$cfa9], a @@ -55503,15 +55420,13 @@ Function4d7fd: ; 4d7fd ld de, VTiles2 push de push af - ld a, $2d - call Predef + predef GetUnownLetter pop af ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData pop de - ld a, $3e - call Predef + predef Function5108b ret ; 4d81e @@ -55536,8 +55451,7 @@ Function4d81e: ; 4d81e hlcoord 7, 2 ld d, $0 ld e, $3 - ld a, $47 - call Predef + predef Functiond008e ret ; 4d860 @@ -56751,8 +56665,7 @@ Jumptable_4e00d: ; 4e00d (13:600d) Function4e013: ; 4e013 (13:6013) hlcoord 0, 9 ld b, $0 - ld a, $26 - call Predef + predef DrawPlayerHP hlcoord 8, 9 ld [hl], $41 ld de, String_4e119 @@ -56774,8 +56687,7 @@ Function4e013: ; 4e013 (13:6013) hlcoord 6, 13 push hl ld de, TempMonStatus ; $d12e - ld a, $45 - call Predef + predef Function50d0a pop hl jr nz, .asm_4e066 jr .asm_4e060 @@ -56789,8 +56701,7 @@ Function4e013: ; 4e013 (13:6013) call PlaceString .asm_4e066 hlcoord 1, 15 - ld a, $2c - call Predef + predef PrintMonTypes hlcoord 9, 8 ld de, $14 ld b, $a @@ -56824,8 +56735,7 @@ Function4e013: ; 4e013 (13:6013) ld a, [TempMonLevel] ; $d12d ld b, a ld de, $d118 - ld a, $17 - call Predef + predef FillInExpBar hlcoord 10, 16 ld [hl], $40 hlcoord 19, 16 @@ -56920,13 +56830,11 @@ Function4e147: ; 4e147 (13:6147) hlcoord 8, 10 ld a, SCREEN_WIDTH * 2 ld [Buffer1], a - ld a, PREDEF_LIST_MOVES - call Predef + predef ListMoves hlcoord 12, 11 ld a, $28 ld [Buffer1], a - ld a, $23 - call Predef + predef Function50c50 ret ; known jump sources: 4e150 (13:6150) @@ -56969,8 +56877,7 @@ Function4e1ae: ; 4e1ae (13:61ae) jr nz, .asm_4e1bb hlcoord 11, 8 ld bc, $6 - ld a, $28 - call Predef + predef Function50b7b ret ; known jump sources: 4e1ae (13:61ae) @@ -57025,8 +56932,7 @@ OTString: ; 4e222 ; known jump sources: 4dfd6 (13:5fd6) Function4e226: ; 4e226 (13:6226) ld hl, TempMonDVs ; $d123 - ld a, $2d - call Predef + predef GetUnownLetter call Function4e2ad jr c, .asm_4e238 and a @@ -57086,13 +56992,11 @@ Function4e289: ; 4e289 (13:6289) ret c call Function4e307 ld de, $9000 - ld a, $3e - call Predef + predef Function5108b ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld d, $0 ld e, $2 - ld a, $46 - call Predef + predef Functiond00a3 ld hl, $cf64 set 6, [hl] ret @@ -57301,13 +57205,11 @@ Function4e497: ; 4e497 (13:6497) ld [$c2c6], a call Function4e307 ld de, $9000 - ld a, $3e - call Predef + predef Function5108b pop de ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld d, $0 - ld a, $46 - call Predef + predef Functiond00a3 ld hl, $cf64 set 6, [hl] ret @@ -57617,8 +57519,7 @@ _EvolutionAnimation: ; 4e607 hlcoord 7, 2 ld d, $0 ld e, $4 - ld a, $47 - call Predef + predef Functiond008e pop af ld [CurPartySpecies], a @@ -57664,8 +57565,7 @@ Function4e711: ; 4e711 ld a, $1 ld [$c2c6], a ld de, VTiles2 - ld a, $3e - call Predef + predef Function5108b xor a ld [$c2c6], a ret @@ -58426,8 +58326,7 @@ Function50117: ; 50117 ld d, a ld a, [hli] ld e, a - ld a, $4 - call Predef + predef Functionc699 ret ; 50138 @@ -58566,8 +58465,7 @@ Function501e0: ; 501e0 add hl, de ld a, [hl] ld [CurPartySpecies], a - ld a, $e - call Predef + predef CanLearnTMHMMove pop hl call Function50215 call PlaceString @@ -59262,8 +59160,7 @@ Function50658: ; 50658 ld de, SFX_POISON call PlaySFX ld b, $2 - ld a, $2e - call Predef + predef Functioncbcdd call DelayFrame ret ; 50669 @@ -59304,8 +59201,7 @@ Function5067b: ; 5067b ld a, [PartyCount] cp [hl] jr nz, .asm_50682 - ld a, $14 - call Predef + predef Function3d873 ld a, d ld [ScriptVar], a ret @@ -59657,8 +59553,7 @@ Function50893: ; 50893 add hl, bc push bc ld b, $1 - ld a, $c - call Predef + predef Functione167 pop bc ld hl, TempMonHP - TempMon add hl, bc @@ -59897,8 +59792,7 @@ DrawHP: ; 50b10 ld c, e .asm_50b41 - ld a, $4 - call Predef + predef Functionc699 ld a, 6 ld d, a ld c, a @@ -62886,14 +62780,12 @@ Function81adb: ; 81adb hlcoord 12, 3 call Function378b ld de, $9310 - ld a, $3d - call Predef + predef Function5116c ld a, $31 ld [$ffad], a hlcoord 2, 4 ld bc, $0606 - ld a, $13 - call Predef + predef FillBox ld a, [$d003] and a jr z, .asm_81b66 @@ -62925,8 +62817,7 @@ Function81adb: ; 81adb ld [$ffad], a hlcoord 2, 3 ld bc, $0707 - ld a, $13 - call Predef + predef FillBox .asm_81ba9 ld a, $1 @@ -63313,8 +63204,7 @@ Function81df4: ; 81df4 ld a, [$d004] inc a ld [$d265], a - ld a, $f - call Predef + predef GetTMHMMove ld a, [$d265] ld [$d262], a call GetMoveName @@ -63323,8 +63213,7 @@ Function81df4: ; 81df4 ld a, [$d004] call Function81e55 ld [CurItem], a - ld a, $e - call Predef + predef CanLearnTMHMMove ld a, c and a ld de, String_81e46 @@ -65683,8 +65572,7 @@ Function8650c: ; 8650c call WaitBGMap decoord 6, 5 ld c, $6 - ld a, $49 - call Predef + predef Functiond066e ld c, $3c call DelayFrames and a @@ -65791,21 +65679,18 @@ Function865b5: ; 865b5 ld a, [hli] ld [$d124], a ld hl, TempMonDVs - ld a, $2d - call Predef + predef GetUnownLetter ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill ld de, $9310 - ld a, $3d - call Predef + predef Function5116c ld a, $31 ld [$ffad], a hlcoord 6, 6 ld bc, $0606 - ld a, $13 - call Predef + predef FillBox ld a, $d0 ld [hSCY], a ld a, $90 @@ -65955,8 +65840,7 @@ Function86692: ; 86692 call Function32f9 decoord 6, 5 ld c, $6 - ld a, $49 - call Predef + predef Functiond066e and a ret ; 866fb @@ -66035,8 +65919,7 @@ Function86748: ; 86748 ld [CurPartySpecies], a ld [$d265], a ld hl, TempMonDVs - ld a, $2d - call Predef + predef GetUnownLetter xor a ld [$c2c6], a hlcoord 6, 5 @@ -66104,8 +65987,7 @@ Function86810: ; 86810 ld [$ffad], a hlcoord 6, 6 ld bc, $0606 - ld a, $13 - call Predef + predef FillBox ld a, $d0 ld [hSCY], a ld a, $90 @@ -66129,8 +66011,7 @@ Function86810: ; 86810 ld [$ffad], a hlcoord 12, 5 ld bc, $0707 - ld a, $13 - call Predef + predef FillBox ld a, $c0 ld [hSCX], a call WaitBGMap @@ -66617,8 +66498,7 @@ MovePlayerPic: ; 88266 xor a ld [hBGMapMode], a ld bc, $0707 - ld a, $13 - call Predef + predef FillBox xor a ld [hBGMapThird], a call WaitBGMap @@ -66780,8 +66660,7 @@ GetChrisBackpic: ; 88830 ld b, BANK(ChrisBackpic) ld de, $9310 ld c, $31 - ld a, $40 - call Predef + predef DecompressPredef ret ; 88840 @@ -66847,8 +66726,7 @@ DrawIntroPlayerPic: ; 88874 ld [$ffad], a hlcoord 6, 4 ld bc, $0707 - ld a, $13 - call Predef + predef FillBox ret ; 888a9 @@ -68148,8 +68026,7 @@ Function897d5: ; 897d5 ld [$ffad], a hlcoord 12, 3 ld bc, $0707 - ld a, $13 - call Predef + predef FillBox call Function8963d pop bc ret @@ -73593,6 +73470,7 @@ Unknown_8ba1f: ; 8ba1f SECTION "bank23", ROMX, BANK[$23] Function8c000: ; 8c000 +Function8c000_2: ret ; 8c001 @@ -83176,8 +83054,7 @@ HasVisitedSpawn: ; 91c50 ld hl, VisitedSpawns ld b, CHECK_FLAG ld d, 0 - ld a, PREDEF_FLAG - call Predef + predef FlagPredef ld a, c ret ; 91c5e @@ -94973,12 +94850,10 @@ PCMonInfo: ; e2ac6 (38:6ac6) ld [CurPartySpecies], a ld [CurSpecies], a ld hl, TempMonDVs - ld a, $2d - call Predef + predef GetUnownLetter call GetBaseData ld de, $9000 - ld a, $3c - call Predef + predef Function51077 xor a ld [$cb32], a ld a, [CurPartySpecies] @@ -95623,8 +95498,7 @@ Functione2f7e: ; e2f7e (38:6f7e) call Functione2fd6 ld a, $3 ld [MonType], a ; $cf5f - ld a, $25 - call Predef + predef StatsScreenInit call Functione33e8 call MaxVolume ret @@ -95652,8 +95526,7 @@ Functione2f95: ; e2f95 (38:6f95) ld [CurPartySpecies], a ; $d108 ld [CurSpecies], a ; $cf60 ld hl, TempMonDVs ; $d123 - ld a, $2d - call Predef + predef GetUnownLetter call GetBaseData call Functione2fd6 .asm_e2fd0 @@ -95745,8 +95618,7 @@ Functione307c: ; e307c (38:707c) call GetNick ld a, $1 ld [$d10b], a - ld a, $8 - call Predef + predef Functiondb3f jr c, .asm_e30e4 xor a ld [$d10b], a @@ -95801,8 +95673,7 @@ Functione30fa: ; e30fa (38:70fa) call CloseSRAM xor a ld [$d10b], a - ld a, $8 - call Predef + predef Functiondb3f jr c, .asm_e316a ld a, $1 ld [$d10b], a @@ -100508,8 +100379,7 @@ Functionfbd77: ; fbd77 (3e:7d77) ld a, $31 .asm_fbd8a ld [$FF00+$ad], a - ld a, $13 - call Predef + predef FillBox Functionfbd91: ; fbd91 (3e:7d91) ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 @@ -100820,8 +100690,7 @@ Functionfcc07: ; fcc07 push af ld a, [$cf64] push af - ld a, $1e - call Predef + predef Function28f24 pop af ld [$cf64], a pop af @@ -100863,8 +100732,7 @@ TradeFlagAction: ; fcc4a ld hl, $d960 ld a, [$cf63] ld c, a - ld a, PREDEF_FLAG - call Predef + predef FlagPredef ld a, c and a ret @@ -100951,8 +100819,7 @@ Functionfcc63: ; fcc63 ld [MonType], a ld [$d10b], a callab Functione039 - ld a, PREDEF_ADDPARTYMON - call Predef + predef Functiond88c ld e, TRADE_DIALOG call GetTradeAttribute @@ -103261,8 +103128,7 @@ Function100c74: ; 100c74 ld a, SCREEN_WIDTH * 2 ld [Buffer1], a hlcoord 2, 10 - ld a, PREDEF_LIST_MOVES - call Predef + predef ListMoves ret ; 100c98 @@ -106238,7 +106104,7 @@ Function105069: ; 105069 (41:5069) ld d, $0 ld b, $2 ld hl, $abf0 - ld a, $3 + predef_id FlagPredef push hl push bc call Predef @@ -106250,8 +106116,7 @@ Function105069: ; 105069 (41:5069) ret nz call Function105106 ld b, $1 - ld a, $3 - call Predef + predef FlagPredef call CloseSRAM xor a ret @@ -106265,8 +106130,7 @@ Function105091: ; 105091 (41:5091) ld d, $0 ld b, $2 ld hl, $abf0 - ld a, $3 - call Predef + predef FlagPredef ld a, c and a pop bc @@ -115099,8 +114963,7 @@ Function16d6e1: ; 16d6e1 hlcoord 4, 10 ld b, $1 ld c, $a - ld a, $10 - call Predef + predef Function28eef hlcoord 5, 11 ld de, $5701 call PlaceString @@ -116882,8 +116745,7 @@ Function17d1f1: ; 17d1f1 dec a ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld a, PREDEF_GET_UNOWN_LETTER - call Predef + predef GetUnownLetter callab Functionfba18 ld a, [$def4] and a @@ -118703,8 +118565,7 @@ Function1dc381: ; 1dc381 call Function1dc51a call Function1dc52c ld hl, TempMonDVs - ld a, $2d - call Predef + predef GetUnownLetter ld hl, $c2c6 xor a ld [hl], a From 541a9c73472db20472db5531cba196a0dcd148ea Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 16 Jun 2014 22:52:59 -0700 Subject: [PATCH 16/22] Name the UpdateEnemyHUD predef. Also start using hp palette constants. --- battle/ai/items.asm | 2 +- battle/core.asm | 65 +++++++++++++++------------ battle/effect_commands.asm | 8 ++-- constants/misc_constants.asm | 4 ++ home.asm | 2 +- home/battle.asm | 4 +- items/item_effects.asm | 23 +++++++--- main.asm | 85 ++++++++++++++---------------------- wram.asm | 1 + 9 files changed, 99 insertions(+), 95 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index a70e84faa..6cd1cad2d 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -522,7 +522,7 @@ Function38385: ; 38385 (e:4385) Function38387: ; 38387 call UpdateEnemyMonInParty - callba Function3e036 + callba UpdateEnemyHUD ld a, $1 ld [hBGMapMode], a ld hl, $c6e6 diff --git a/battle/core.asm b/battle/core.asm index 32e213ba0..1801434db 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2099,7 +2099,7 @@ Function3cd55: ; 3cd55 ld hl, BattleMonHP ld a, [hli] or [hl] - call nz, Function3df48 + call nz, UpdatePlayerHUD ld a, $1 ld [hBGMapMode], a @@ -2460,7 +2460,6 @@ Function3cfa4: ; 3cfa4 cp BATTLETYPE_CANLOSE jr nz, .asm_3cfe8 predef Functionc658 - .asm_3cfe8 ld a, [$c2cc] bit 0, a @@ -3737,7 +3736,7 @@ Function3d7c7: ; 3d7c7 call Function37b6 .asm_3d82c - call Function3e036 + call UpdateEnemyHUD ld a, $1 ld [hBGMapMode], a ret @@ -4231,7 +4230,7 @@ Function3db5f: ; 3db5f call Function37b6 .asm_3dbd6 - call Function3df48 + call UpdatePlayerHUD ld a, $1 ld [hBGMapMode], a ret @@ -4278,13 +4277,13 @@ BreakAttraction: ; 3dc18 SpikesDamage: ; 3dc23 ld hl, PlayerScreens ld de, BattleMonType - ld bc, Function3df48 + ld bc, UpdatePlayerHUD ld a, [hBattleTurn] and a jr z, .ok ld hl, EnemyScreens ld de, EnemyMonType - ld bc, Function3e036 + ld bc, UpdateEnemyHUD .ok bit SCREENS_SPIKES, [hl] @@ -4758,7 +4757,7 @@ Function3df2c: ; 3df2c ld hl, PlayerHPPal call SetHPPal call CheckDanger - call Function3e043 + call DrawEnemyHUD ld hl, EnemyHPPal call SetHPPal pop bc @@ -4769,7 +4768,7 @@ Function3df2c: ; 3df2c -Function3df48:: ; 3df48 +UpdatePlayerHUD:: ; 3df48 push hl push de push bc @@ -4799,7 +4798,7 @@ DrawPlayerHUD: ; 3df58 ; HP bar hlcoord 10, 9 - ld b, OTPARTYMON + ld b, 1 xor a ld [MonType], a predef DrawPlayerHP @@ -4834,7 +4833,7 @@ CheckDanger: ; 3df9e and a jr nz, .done ld a, [PlayerHPPal] - cp $2 + cp HP_RED jr z, .danger .no_danger @@ -4913,25 +4912,28 @@ PrintPlayerHUD: ; 3dfbf jp PrintLevel ; 3e036 -Function3e036:: ; 3e036 +UpdateEnemyHUD:: ; 3e036 push hl push de push bc - call Function3e043 - call Function3e127 + call DrawEnemyHUD + call UpdateEnemyHPPal pop bc pop de pop hl ret ; 3e043 -Function3e043: ; 3e043 +DrawEnemyHUD: ; 3e043 xor a ld [hBGMapMode], a + hlcoord 1, 0 lb bc, 4, 11 call ClearBox + callba Function2c0c5 + ld a, [TempEnemyMonSpecies] ld [CurSpecies], a ld [CurPartySpecies], a @@ -4943,18 +4945,20 @@ Function3e043: ; 3e043 ld h, b ld l, c dec hl + ld hl, EnemyMonDVs ld de, TempMonDVs ld a, [EnemySubStatus5] bit SUBSTATUS_TRANSFORMED, a - jr z, .asm_3e080 + jr z, .ok ld hl, $c6f2 -.asm_3e080 +.ok ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a + ld a, $3 ld [MonType], a callab GetGender @@ -4967,6 +4971,7 @@ Function3e043: ; 3e043 .asm_3e09a hlcoord 9, 1 ld [hl], a + hlcoord 6, 1 push af push hl @@ -4976,16 +4981,15 @@ Function3e043: ; 3e043 pop bc jr nz, .asm_3e0be ld a, b - cp $7f + cp " " jr nz, .asm_3e0b5 dec hl - .asm_3e0b5 ld a, [EnemyMonLevel] ld [TempMonLevel], a call PrintLevel - .asm_3e0be + ld hl, EnemyMonHP ld a, [hli] ld [$ffb5], a @@ -4997,8 +5001,8 @@ Function3e043: ; 3e043 ld e, a ld d, HP_BAR_LENGTH jp .asm_3e11a - .asm_3e0d1 + xor a ld [hMultiplicand], a ld a, HP_BAR_LENGTH_PX @@ -5042,16 +5046,17 @@ Function3e043: ; 3e043 ld a, HP_BAR_LENGTH ld d, a ld c, a + .asm_3e11a xor a ld [$d10a], a hlcoord 2, 2 - ld b, $0 + ld b, 0 call DrawHPBar ret ; 3e127 -Function3e127: ; 3e127 +UpdateEnemyHPPal: ; 3e127 ld hl, EnemyHPPal call Function3e12e ret @@ -5074,6 +5079,7 @@ Function3e139: ; 3e139 xor a ld [hBGMapMode], a call Function30bf + ld a, [BattleType] cp $2 jr z, .asm_3e156 @@ -5083,20 +5089,21 @@ Function3e139: ; 3e139 call UpdateBattleHuds call EmptyBattleTextBox call Function309d - .asm_3e156 + ld a, [BattleType] cp $6 jr nz, .asm_3e165 callba Function24f13 jr .asm_3e175 - .asm_3e165 + ld a, [InputType] or a jr z, .asm_3e171 callba Function1de294 .asm_3e171 + call Function3e19b ret c @@ -5126,6 +5133,7 @@ Function3e192: ; 3e192 Function3e19b: ; 3e19b call Function3d2f1 jr z, .asm_3e1a8 + callba LoadBattleMenuDataHeader and a ret @@ -5135,15 +5143,16 @@ Function3e19b: ; 3e19b ld a, [$cd2b] and a ret z + ld hl, $cd2a bit 4, [hl] jr nz, .asm_3e1c5 ld hl, BattleText_0x81863 call StdBattleTextBox - ld c, $3c + ld c, 60 call DelayFrames - .asm_3e1c5 + scf ret ; 3e1c7 @@ -7578,7 +7587,7 @@ Function3ee3b: ; 3ee3b call Function3ecab callab Function3ec2c callab BadgeStatBoosts - callab Function3df48 + callab UpdatePlayerHUD call EmptyBattleTextBox call Function309d ld a, $1 @@ -8394,7 +8403,7 @@ Function3f4dd: ; 3f4dd call ClearSprites ld a, [IsInBattle] cp $1 - call z, Function3e036 + call z, UpdateEnemyHUD ld a, $1 ld [hBGMapMode], a ret diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index d9cbc1fb5..616c22a42 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -180,7 +180,7 @@ CheckPlayerTurn: call StdBattleTextBox call CantMove call UpdateBattleMonInParty - ld hl, Function3df48 + ld hl, UpdatePlayerHUD call CallBattleCore ld a, $1 ld [$ffd4], a @@ -428,7 +428,7 @@ CheckEnemyTurn: ; 3421f call StdBattleTextBox call CantMove call UpdateEnemyMonInParty - ld hl, Function3e036 + ld hl, UpdateEnemyHUD call CallBattleCore ld a, $1 ld [$ffd4], a @@ -663,7 +663,7 @@ HitConfusion: ; 343a5 and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND call z, PlayFXAnimID - ld hl, Function3df48 + ld hl, UpdatePlayerHUD call CallBattleCore ld a, $1 ld [$ffd4], a @@ -9131,7 +9131,7 @@ BattleCommand1a: ; 37380 call Function37ed5 ret nc callba DrawPlayerHUD - callba Function3e043 + callba DrawEnemyHUD call WaitBGMap jp RefreshBattleHuds ; 373c9 diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 2e5c5573a..5b291f6e8 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -15,6 +15,10 @@ PARTY_OT_NAME EQU 5 ENEMY_OT_NAME EQU 6 TRAINER_NAME EQU 7 +; hp +HP_GREEN EQU 0 +HP_YELLOW EQU 1 +HP_RED EQU 2 ; boxes MONS_PER_BOX EQU 20 diff --git a/home.asm b/home.asm index 09231346e..0393c5083 100644 --- a/home.asm +++ b/home.asm @@ -775,7 +775,7 @@ SetHPPal:: ; 334e GetHPPal:: ; 3353 ; Get palette for hp bar pixel length e in d. - ld d, 0 ; green + ld d, HP_GREEN ld a, e cp 24 ret nc diff --git a/home/battle.asm b/home/battle.asm index 5c7487ff5..d1f59ad81 100644 --- a/home/battle.asm +++ b/home/battle.asm @@ -130,8 +130,8 @@ RefreshBattleHuds:: ; 39c9 ; 39d4 UpdateBattleHuds:: ; 39d4 - callba Function3df48 - callba Function3e036 + callba UpdatePlayerHUD + callba UpdateEnemyHUD ret ; 39e1 diff --git a/items/item_effects.asm b/items/item_effects.asm index d3ab93151..617fc1618 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -3193,7 +3193,7 @@ Functionf8b9: ; f8b9 ld [$cfa9], a ld [MonType], a ld c, NUM_MOVES -.asm_f8ce +.loop ld a, [hli] and a ret z @@ -3214,30 +3214,36 @@ Functionf8b9: ; f8b9 inc [hl] pop hl dec c - jr nz, .asm_f8ce + jr nz, .loop ret ; f8ec Functionf8ec: ; f8ec - ld a, [StringBuffer1] + ld a, [StringBuffer1 + 0] push af - ld a, [$d074] + ld a, [StringBuffer1 + 1] push af + ld a, [MonType] and a + ld hl, PartyMon1Moves ld bc, PartyMon2 - PartyMon1 jr z, .asm_f91a + ld hl, OTPartyMon1Moves dec a jr z, .asm_f91a + ld hl, TempMonMoves dec a jr z, .asm_f915 + ld hl, TempMonMoves dec a jr z, .asm_f915 + ld hl, BattleMonMoves .asm_f915 @@ -3250,6 +3256,7 @@ Functionf8ec: ; f8ec .asm_f91d ld a, [hl] dec a + push hl ld hl, Moves + MOVE_PP ld bc, MOVE_LENGTH @@ -3260,18 +3267,19 @@ Functionf8ec: ; f8ec ld de, StringBuffer1 ld [de], a pop hl + push bc ld bc, PartyMon1PP - PartyMon1Moves ld a, [MonType] cp WILDMON jr nz, .asm_f942 ld bc, EnemyMonPP - EnemyMonMoves - .asm_f942 add hl, bc ld a, [hl] and $c0 pop bc + or b ld hl, $d074 ld [hl], a @@ -3282,10 +3290,11 @@ Functionf8ec: ; f8ec ld a, [hl] and $3f ld [$d265], a + pop af - ld [$d074], a + ld [StringBuffer1 + 1], a pop af - ld [StringBuffer1], a + ld [StringBuffer1 + 0], a ret ; f963 diff --git a/main.asm b/main.asm index d4b622790..f942e0315 100644 --- a/main.asm +++ b/main.asm @@ -6823,7 +6823,8 @@ Function746e: ; 746e jp CopyBytes ; 747a -Function747a: ; 747a +Predef1: ; 747a +; not used ret ; 747b @@ -6837,11 +6838,11 @@ Function8000: ; 8000 call WhiteBGMap call ClearSprites ld hl, TileMap - ld bc, $0168 + ld bc, TileMapEnd - TileMap ld a, " " call ByteFill ld hl, AttrMap - ld bc, $0168 + ld bc, AttrMapEnd - AttrMap ld a, $7 call ByteFill call Function3200 @@ -7754,7 +7755,7 @@ PredefPointers:: ; 856b ; address, bank add_predef LearnMove ; $0 - add_predef Function747a + add_predef Predef1 add_predef Functionc658 add_predef FlagPredef add_predef Functionc699 @@ -7771,10 +7772,10 @@ PredefPointers:: ; 856b add_predef GetTMHMMove add_predef Function28eef ; $ 10 add_predef PrintMoveDesc - add_predef Function3df48 ; UpdatePlayerHUD + add_predef UpdatePlayerHUD add_predef FillBox add_predef Function3d873 - add_predef Function3e036 ; UpdateEnemyHUD + add_predef UpdateEnemyHUD add_predef StartBattle add_predef FillInExpBar add_predef Function3f43d ; $18 @@ -8827,17 +8828,18 @@ Functionc658: ; c658 ; c677 Functionc677: ; c677 - ld a, $0 + ld a, PartyMon1Species - PartyMon1 call GetPartyParamLocation ld d, h ld e, l - ld hl, $0020 + ld hl, PartyMon1Status - PartyMon1Species add hl, de xor a ld [hli], a ld [hl], a - ld hl, $0024 + ld hl, PartyMon1MaxHP - PartyMon1Species add hl, de + ; bc = PartyMon1HP - PartyMon1Species ld b, h ld c, l dec bc @@ -59703,48 +59705,27 @@ Strings50a42: ; 50a42 dw OTName dw OTName -.Youngster - db "たんパン@" -.BugCatcher - db "むしとり@" -.Lass - db "ミニスカ@" -.JrTrainerM - db "ボーイ@" -.JrTrainerF - db "ガール@" -.Pokemaniac - db "マニア@" -.SuperNerd - db "りかけい@" -.Burglar - db "どろぼう@" -.Engineer - db "ォヤジ@" -.Jack - db "ジャック@" -.Swimmer - db "かいパン@" -.Beauty - db "おねえさん@" -.Rocker - db "グループ@" -.Juggler - db "ジャグラー@" -.Blackbelt - db "からて@" -.ProfOak - db "ォーキド@" -.Chief - db "チーフ@" -.Scientist - db "けんきゅういん@" -.Rocket - db "だんいん@" -.CooltrainerM - db "エりート♂@" -.CooltrainerF - db "エりート♀@" +.Youngster db "たんパン@" +.BugCatcher db "むしとり@" +.Lass db "ミニスカ@" +.JrTrainerM db "ボーイ@" +.JrTrainerF db "ガール@" +.Pokemaniac db "マニア@" +.SuperNerd db "りかけい@" +.Burglar db "どろぼう@" +.Engineer db "ォヤジ@" +.Jack db "ジャック@" +.Swimmer db "かいパン@" +.Beauty db "おねえさん@" +.Rocker db "グループ@" +.Juggler db "ジャグラー@" +.Blackbelt db "からて@" +.ProfOak db "ォーキド@" +.Chief db "チーフ@" +.Scientist db "けんきゅういん@" +.Rocket db "だんいん@" +.CooltrainerM db "エりート♂@" +.CooltrainerF db "エりート♀@" ; 50b0a @@ -116510,7 +116491,7 @@ Function178000: callba DrawPlayerHUD ld hl, PlayerHPPal ; $cd99 call SetHPPal - callba Function3e043 + callba DrawEnemyHUD ld hl, EnemyHPPal ; $cd9a call SetHPPal callba Function3ee27 diff --git a/wram.asm b/wram.asm index 1d535d851..844f90c97 100644 --- a/wram.asm +++ b/wram.asm @@ -694,6 +694,7 @@ AttrMap:: ; cdd9 ; bit 3: vram bank ; bit 0-2: palette id ds SCREEN_WIDTH * SCREEN_HEIGHT +AttrMapEnd:: ds 30 From c2dba431884fdd9d61a90f6c3efd1876aa1cfa14 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 17 Jun 2014 11:58:11 -0700 Subject: [PATCH 17/22] Contest battle type and comment the battle menu. --- battle/core.asm | 172 ++++++++++++++++++--------------- battle/effect_commands.asm | 30 +++--- battle/effects/curse.asm | 4 +- battle/effects/rollout.asm | 13 ++- constants/battle_constants.asm | 1 + engine/scripting.asm | 6 +- main.asm | 46 ++++----- maps/Route29.asm | 6 +- 8 files changed, 147 insertions(+), 131 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index 1801434db..0c3cb5594 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -57,9 +57,9 @@ Function3c000: ; 3c000 call Function30b4 ld a, [BattleType] cp $2 - jp z, Function3c0e2 + jp z, .asm_3c0e2 cp BATTLETYPE_TUTORIAL - jp z, Function3c0e2 + jp z, .asm_3c0e2 xor a ld [CurPartyMon], a .asm_3c06b @@ -114,10 +114,9 @@ Function3c000: ; 3c000 .asm_3c0df jp Function3c12f -; 3c0e2 -Function3c0e2: ; 3c0e2 - jp Function3e139 +.asm_3c0e2 + jp BattleMenu ; 3c0e5 @@ -162,9 +161,11 @@ Function3c0e5: ; 3c0e5 ; 3c12f Function3c12f: ; 3c12f +.loop call Function3c1bf call Function3c3f5 - jp c, .asm_3c1be + jp c, .quit + xor a ld [wPlayerIsSwitching], a ld [wEnemyIsSwitching], a @@ -173,58 +174,62 @@ Function3c12f: ; 3c12f ld [$c740], a ld [CurDamage], a ld [CurDamage + 1], a + call Function3c27c call UpdateBattleMonInParty callba AIChooseMove - call Function3d2f1 - jr nz, .asm_3c174 + + call IsMobileBattle + jr nz, .not_disconnected callba Function100da5 callba Function100641 callba Function100dd8 - jp c, .asm_3c1be + jp c, .quit +.not_disconnected -.asm_3c174 call Function3c410 jr c, .asm_3c18a .asm_3c179 - call Function3e139 - jr c, .asm_3c1be + call BattleMenu + jr c, .quit ld a, [BattleEnded] and a - jr nz, .asm_3c1be - ld a, [$d232] + jr nz, .quit + ld a, [$d232] ; roared/whirlwinded/teleported and a - jr nz, .asm_3c1be - + jr nz, .quit .asm_3c18a call Function3c434 jr nz, .asm_3c179 + call Function3c300 - jr c, .asm_3c1be + jr c, .quit + call Function3c314 jr c, .asm_3c19e call Function3c5fe jr .asm_3c1a1 - .asm_3c19e call Function3c664 - .asm_3c1a1 call Function3d2e0 - jr c, .asm_3c1be + jr c, .quit + ld a, [$d232] and a - jr nz, .asm_3c1be + jr nz, .quit + ld a, [BattleEnded] and a - jr nz, .asm_3c1be + jr nz, .quit + call Function3c1d6 ld a, [BattleEnded] and a - jr nz, .asm_3c1be - jp Function3c12f + jr nz, .quit + jp .loop -.asm_3c1be +.quit ret ; 3c1bf @@ -570,7 +575,7 @@ Function3c3f3: ; 3c3f3 Function3c3f5: ; 3c3f5 ld a, [BattleType] - cp $6 + cp BATTLETYPE_CONTEST jr nz, .asm_3c40e ld a, [$dc79] and a @@ -591,16 +596,20 @@ Function3c410: ; 3c410 ld a, [PlayerSubStatus4] and 1 << SUBSTATUS_RECHARGE jp nz, .quit + ld hl, EnemySubStatus3 res SUBSTATUS_FLINCHED, [hl] ld hl, PlayerSubStatus3 res SUBSTATUS_FLINCHED, [hl] + ld a, [hl] and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_ROLLOUT jp nz, .quit + ld hl, PlayerSubStatus1 bit SUBSTATUS_ENCORED, [hl] jp nz, .quit + and a ret @@ -2445,7 +2454,7 @@ Function3cfa4: ; 3cfa4 callab Function39939 ld hl, BattleText_0x809da call StdBattleTextBox - call Function3d2f1 + call IsMobileBattle jr z, .asm_3cff5 ld a, [InLinkBattle] and a @@ -2945,7 +2954,7 @@ Function3d2e0: ; 3d2e0 ret ; 3d2f1 -Function3d2f1: ; 3d2f1 +IsMobileBattle: ; 3d2f1 ld a, [InLinkBattle] cp $4 ret @@ -2971,25 +2980,25 @@ Function3d313: ; 3d313 ; 3d329 Function3d329: ; 3d329 - call Function3d2f1 - jr z, .asm_3d335 + call IsMobileBattle + jr z, .mobile callba PartyMenuSelect ret -.asm_3d335 +.mobile callba Function100cb5 ret ; 3d33c PickPartyMonInBattle: ; 3d33c -.asm_3d33c +.loop ld a, $2 ; Which PKMN? ld [PartyMenuActionText], a call Function3d313 call Function3d329 ret c call Function3d887 - jr z, .asm_3d33c + jr z, .loop xor a ret ; 3d34f @@ -3121,7 +3130,7 @@ LostBattle: ; 3d38e .asm_3d40a ld hl, LostAgainstText - call Function3d2f1 + call IsMobileBattle jr z, .asm_3d417 .asm_3d412 @@ -3830,7 +3839,7 @@ Function3d8b3: ; 3d8b3 ld a, [BattleType] cp $2 jp z, .asm_3d9a2 - cp $6 + cp BATTLETYPE_CONTEST jp z, .asm_3d9a2 cp BATTLETYPE_TRAP jp z, .asm_3d98d @@ -5075,54 +5084,56 @@ Function3e138: ; 3e138 ret ; 3e139 -Function3e139: ; 3e139 +BattleMenu: ; 3e139 xor a ld [hBGMapMode], a call Function30bf ld a, [BattleType] cp $2 - jr z, .asm_3e156 + jr z, .ok cp BATTLETYPE_TUTORIAL - jr z, .asm_3e156 + jr z, .ok call EmptyBattleTextBox call UpdateBattleHuds call EmptyBattleTextBox call Function309d -.asm_3e156 +.ok +.loop ld a, [BattleType] - cp $6 - jr nz, .asm_3e165 - callba Function24f13 - jr .asm_3e175 -.asm_3e165 + cp BATTLETYPE_CONTEST + jr nz, .not_contest + callba ContestBattleMenu + jr .next +.not_contest + ; Auto input: choose "ITEM" ld a, [InputType] or a jr z, .asm_3e171 callba Function1de294 .asm_3e171 - call Function3e19b + call LoadBattleMenu2 ret c -.asm_3e175 +.next ld a, $1 ld [hBGMapMode], a ld a, [$d0d2] cp $1 - jp z, Function3e192 + jp z, BattleMenu_Fight cp $3 - jp z, Function3e1c7 + jp z, BattleMenu_Pack cp $2 - jp z, Function3e28d + jp z, BattleMenu_PKMN cp $4 - jp z, Function3e489 - jr .asm_3e156 + jp z, BattleMenu_Run + jr .loop ; 3e192 -Function3e192: ; 3e192 +BattleMenu_Fight: ; 3e192 xor a ld [$d267], a call Function30b4 @@ -5130,15 +5141,15 @@ Function3e192: ; 3e192 ret ; 3e19b -Function3e19b: ; 3e19b - call Function3d2f1 - jr z, .asm_3e1a8 +LoadBattleMenu2: ; 3e19b + call IsMobileBattle + jr z, .mobile - callba LoadBattleMenuDataHeader + callba LoadBattleMenu and a ret -.asm_3e1a8 +.mobile callba Function100b12 ld a, [$cd2b] and a @@ -5146,44 +5157,47 @@ Function3e19b: ; 3e19b ld hl, $cd2a bit 4, [hl] - jr nz, .asm_3e1c5 + jr nz, .error ld hl, BattleText_0x81863 call StdBattleTextBox ld c, 60 call DelayFrames -.asm_3e1c5 - +.error scf ret ; 3e1c7 -Function3e1c7: ; 3e1c7 +BattleMenu_Pack: ; 3e1c7 ld a, [InLinkBattle] and a - jp nz, Function3e22b + jp nz, ItemsCantBeUsed + ld a, [$cfc0] and a - jp nz, Function3e22b + jp nz, ItemsCantBeUsed + call Function1d6e + ld a, [BattleType] cp BATTLETYPE_TUTORIAL - jr z, .asm_3e1f1 - cp $6 - jr z, .asm_3e201 - callba Function10493 + jr z, .tutorial + cp BATTLETYPE_CONTEST + jr z, .contest + + callba BattlePack ld a, [$d0ec] and a jr z, .asm_3e20d jr .asm_3e209 -.asm_3e1f1 +.tutorial callba Function107bb ld a, POKE_BALL ld [CurItem], a call DoItemEffect jr .asm_3e209 -.asm_3e201 +.contest ld a, PARK_BALL ld [CurItem], a call DoItemEffect @@ -5202,13 +5216,13 @@ Function3e1c7: ; 3e1c7 call WaitBGMap call Function3ee27 call Function309d - jp Function3e139 + jp BattleMenu ; 3e22b -Function3e22b: ; 3e22b +ItemsCantBeUsed: ; 3e22b ld hl, BattleText_0x80bf3 call StdBattleTextBox - jp Function3e139 + jp BattleMenu ; 3e234 Function3e234: ; 3e234 @@ -5256,7 +5270,7 @@ Function3e234: ; 3e234 ret ; 3e28d -Function3e28d: ; 3e28d +BattleMenu_PKMN: ; 3e28d call Function1d6e Function3e290: call Function1c07 @@ -5303,11 +5317,11 @@ Function3e299: call Function309d call ClearSGB call Function32f9 - jp Function3e139 + jp BattleMenu ; 3e2f5 Function3e2f5: ; 3e2f5 - call Function3d2f1 + call IsMobileBattle jr z, .asm_3e301 callba Function24e99 ret @@ -5506,8 +5520,7 @@ PassedBattleMonEntrance: ; 3e459 ; 3e489 - -Function3e489: ; 3e489 +BattleMenu_Run: ; 3e489 call Function30b4 ld a, $3 ld [$cfa9], a @@ -5520,11 +5533,10 @@ Function3e489: ; 3e489 ld a, [$d0ec] and a ret nz - jp Function3e139 + jp BattleMenu ; 3e4a8 - CheckAmuletCoin: ; 3e4a8 ld a, [BattleMonItem] ld b, a @@ -5538,7 +5550,7 @@ CheckAmuletCoin: ; 3e4a8 ; 3e4bc Function3e4bc: ; 3e4bc - call Function3d2f1 + call IsMobileBattle jr nz, .asm_3e4c8 callba Function100b9f ret diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 616c22a42..aae82eb96 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -6753,7 +6753,7 @@ BattleCommandaf: ; 365a7 ; curl ld a, BATTLE_VARS_SUBSTATUS2 call GetBattleVarAddr - set 0, [hl] + set SUBSTATUS_CURLED, [hl] ret ; 365af @@ -7046,20 +7046,20 @@ BattleCommand3d: ; 36751 ; No rampage during Sleep Talk. ld a, BATTLE_VARS_STATUS call GetBattleVar - and 7 + and SLP ret nz ld de, PlayerRolloutCount ld a, [hBattleTurn] and a - jr z, .asm_36764 ; 3675f $3 + jr z, .ok ld de, EnemyRolloutCount -.asm_36764 +.ok ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr - set 1, [hl] + set SUBSTATUS_ROLLOUT, [hl] call BattleRandom - and $1 + and 1 inc a ld [de], a ld a, 1 @@ -7073,24 +7073,24 @@ BattleCommanda0: ; 36778 ld a, [BattleType] cp BATTLETYPE_SHINY - jr z, .asm_367b9 - cp $9 - jr z, .asm_367b9 + jr z, .failed + cp BATTLETYPE_TRAP + jr z, .failed cp BATTLETYPE_CELEBI - jr z, .asm_367b9 + jr z, .failed cp BATTLETYPE_SUICUNE - jr z, .asm_367b9 + jr z, .failed ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVar bit SUBSTATUS_CANT_RUN, a - jr nz, .asm_367b9 + jr nz, .failed ld a, [hBattleTurn] and a jr nz, .asm_367bf ld a, [IsInBattle] dec a - jr nz, .asm_367b9 + jr nz, .failed ld a, [$d143] ld b, a ld a, [BattleMonLevel] @@ -7108,14 +7108,14 @@ BattleCommanda0: ; 36778 cp b jr nc, .asm_367df ; 367b7 $26 -.asm_367b9 +.failed call AnimateFailedMove jp PrintButItFailed .asm_367bf ld a, [IsInBattle] dec a - jr nz, .asm_367b9 ; 367c3 $f4 + jr nz, .failed ld a, [BattleMonLevel] ld b, a ld a, [$d143] diff --git a/battle/effects/curse.asm b/battle/effects/curse.asm index f82ed97c5..27f821ffc 100644 --- a/battle/effects/curse.asm +++ b/battle/effects/curse.asm @@ -67,10 +67,10 @@ BattleCommand54: ; 37588 ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVarAddr - bit 1, [hl] + bit SUBSTATUS_CURSE, [hl] jr nz, .failed - set 1, [hl] + set SUBSTATUS_CURSE, [hl] call AnimateCurrentMove ld hl, GetHalfMaxHP call CallBattleCore diff --git a/battle/effects/rollout.asm b/battle/effects/rollout.asm index 748736fef..f108a9062 100644 --- a/battle/effects/rollout.asm +++ b/battle/effects/rollout.asm @@ -1,3 +1,6 @@ +MAX_ROLLOUT_COUNT EQU 5 + + BattleCommand5b: ; 37718 ; checkcurl @@ -28,7 +31,7 @@ BattleCommand5c: ; 37734 ld a, BATTLE_VARS_STATUS call GetBattleVar - and 7 + and SLP ret nz ld hl, PlayerRolloutCount @@ -58,23 +61,23 @@ BattleCommand5c: ; 37734 inc [hl] ld a, [hl] ld b, a - cp $5 + cp MAX_ROLLOUT_COUNT jr c, .asm_3776e ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr - res 6, [hl] + res SUBSTATUS_ENCORED, [hl] jr .asm_37775 .asm_3776e ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr - set 6, [hl] + set SUBSTATUS_ENCORED, [hl] .asm_37775 ld a, BATTLE_VARS_SUBSTATUS2 call GetBattleVar - bit 0, a + bit SUBSTATUS_CURLED, a jr z, .asm_3777f inc b .asm_3777f diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index 289731c1b..373277dcf 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -46,6 +46,7 @@ BATTLETYPE_CANLOSE EQU $01 BATTLETYPE_TUTORIAL EQU $03 BATTLETYPE_FISH EQU $04 BATTLETYPE_ROAMING EQU $05 +BATTLETYPE_CONTEST EQU $06 BATTLETYPE_SHINY EQU $07 BATTLETYPE_TREE EQU $08 BATTLETYPE_TRAP EQU $09 diff --git a/engine/scripting.asm b/engine/scripting.asm index 2a978e0ea..756192a0d 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1544,7 +1544,7 @@ Script_catchtutorial: ; 0x97447 ; byte (SingleByteParam) call GetScriptByte - ld [$d230], a + ld [BattleType], a call Function2879 callba Function4e554 jp Script_reloadmap @@ -1572,8 +1572,8 @@ Script_returnafterbattle: ; 0x97459 ld a, [$d0ee] bit 7, a jr z, .asm_9748e ; 0x97481 $b - ld b, $24 - ld de, $4255 + ld b, BANK(UnknownScript_0x90255) + ld de, UnknownScript_0x90255 callba Function97c4f .asm_9748e jp Script_reloadmap diff --git a/main.asm b/main.asm index f942e0315..e03d4f335 100644 --- a/main.asm +++ b/main.asm @@ -14669,7 +14669,7 @@ UnknownText_0xfa06: ; 0xfa06 SECTION "bank4", ROMX, BANK[$4] -Function10000: ; 10000 +Pack: ; 10000 ld hl, Options set 4, [hl] call Function1068a @@ -15333,7 +15333,7 @@ Function10492: ; 10492 ; 10493 -Function10493: ; 10493 +BattlePack: ; 10493 ld hl, Options set 4, [hl] call Function1068a @@ -19499,7 +19499,7 @@ StartMenu_Pokegear: ; 1294c StartMenu_Pack: ; 1295b call FadeToMenu - callba Function10000 + callba Pack ld a, [$cf66] and a jr nz, .asm_12970 @@ -21441,7 +21441,7 @@ Function135db: ; 135db ; 135eb UnknownScript_0x135eb:: ; 0x135eb - writecode $3, $6 + writecode $3, BATTLETYPE_CONTEST battlecheck startbattle returnafterbattle @@ -33442,7 +33442,7 @@ MenuData2_0x24edc: ; 24edc ; 24ef2 -LoadBattleMenuDataHeader: ; 24ef2 +LoadBattleMenu: ; 24ef2 ld hl, BattleMenuDataHeader call LoadMenuDataHeader ld a, [$d0d2] @@ -33455,15 +33455,14 @@ LoadBattleMenuDataHeader: ; 24ef2 ; 24f0b -Function24f0b: ; 24f0b -; Safari battle menu (untranslated). +SafariBattleMenu: ; 24f0b +; untranslated ld hl, MenuDataHeader_0x24f4e call LoadMenuDataHeader jr Function24f19 ; 24f13 -Function24f13: ; 24f13 -; Park battle menu. +ContestBattleMenu: ; 24f13 ld hl, MenuDataHeader_0x24f89 call LoadMenuDataHeader ; 24f19 @@ -57309,6 +57308,7 @@ Function4e53f: ; 4e53f ret ; 4e554 + Function4e554:: ; 4e554 ld a, [BattleType] dec a @@ -57323,39 +57323,39 @@ Function4e554:: ; 4e554 jp [hl] ; 4e564 - -; no known jump sources Jumptable_4e564: ; 4e564 (13:6564) dw Function4e56a dw Function4e56a dw Function4e56a - -; no known jump sources Function4e56a: ; 4e56a (13:656a) ld hl, PlayerName ; $d47d ld de, MomsName ; $d488 ld bc, NAME_LENGTH call CopyBytes - ld hl, String_4e5da + + ld hl, DudeString ld de, PlayerName ; $d47d ld bc, NAME_LENGTH call CopyBytes + call Function4e5b7 + xor a - ld [hJoyDown], a ; $ff00+$a8 - ld [hJoyPressed], a ; $ff00+$a7 - ld a, [Options] ; $cfcc + ld [hJoyDown], a + ld [hJoyPressed], a + ld a, [Options] push af and $f8 add $3 - ld [Options], a ; $cfcc + ld [Options], a ld hl, AutoInput_4e5df ld a, BANK(AutoInput_4e5df) call StartAutoInput callab StartBattle call StopAutoInput pop af + ld [Options], a ; $cfcc ld hl, MomsName ; $d488 ld de, PlayerName ; $d47d @@ -57387,7 +57387,7 @@ Function4e5b7: ; 4e5b7 (13:65b7) ret ; 4e5da (13:65da) -String_4e5da: ; 4e5da +DudeString: ; 4e5da db "DUDE@" ; 4e5df @@ -79440,7 +79440,7 @@ UnknownScript_0x90241: ; 0x90241 end ; 0x90255 -UnknownScript_0x90255: ; 0x90255 +UnknownScript_0x90255:: ; 0x90255 3callasm Function9025c 2jump UnknownScript_0x90241 ; 0x9025c @@ -102924,11 +102924,11 @@ INCBIN "baserom.gbc",$100b0a,$100b12 - $100b0a Function100b12: ; 100b12 call Function100dd8 ret c - ld hl, $4f2c - ld a, $9 + ld hl, BattleMenuDataHeader + ld a, BANK(BattleMenuDataHeader) ld de, LoadMenuDataHeader call FarCall_de - ld a, $9 + ld a, BANK(BattleMenuDataHeader) ld [$cf94], a ld a, [$d0d2] ld [$cf88], a diff --git a/maps/Route29.asm b/maps/Route29.asm index 2dbe28d1c..f3b95ae7c 100644 --- a/maps/Route29.asm +++ b/maps/Route29.asm @@ -52,7 +52,7 @@ UnknownScript_0x1a0f6d: ; 0x1a0f6d applymovement $2, MovementData_0x1a109a stopfollow loadpokedata RATTATA, 5 - catchtutorial $3 + catchtutorial BATTLETYPE_TUTORIAL spriteface $2, $1 loadfont 2writetext UnknownText_0x1a114d @@ -78,7 +78,7 @@ UnknownScript_0x1a0fa3: ; 0x1a0fa3 applymovement $2, MovementData_0x1a10a1 stopfollow loadpokedata RATTATA, 5 - catchtutorial $3 + catchtutorial BATTLETYPE_TUTORIAL spriteface $2, $1 loadfont 2writetext UnknownText_0x1a114d @@ -121,7 +121,7 @@ CooltrainerMScript_0x1a0ff1: ; 0x1a0ff1 iffalse UnknownScript_0x1a1022 loadmovesprites loadpokedata RATTATA, 5 - catchtutorial $3 + catchtutorial BATTLETYPE_TUTORIAL loadfont 2writetext UnknownText_0x1a114d closetext From dbe4c7ab67cb88ef4ce725598b2082b13a566776 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 17 Jun 2014 12:52:32 -0700 Subject: [PATCH 18/22] Fix some misnamed substatus constants. SUBSTATUS_ROLLOUT was actually SUBSTATUS_RAMPAGE. SUBSTATUS_ENCORED was actually SUBSTATUS_ROLLOUT. Substatus 5 bit 4 was actually SUBSTATUS_ENCORED. Also use some more (sub)status constants where needed. --- battle/ai/scoring.asm | 50 +++++++----------- battle/core.asm | 95 ++++++++++++++++++---------------- battle/effect_commands.asm | 74 +++++++++++++------------- battle/effects/rollout.asm | 15 +++--- constants/battle_constants.asm | 5 +- wram.asm | 2 + 6 files changed, 118 insertions(+), 123 deletions(-) diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 7ca08d333..7ea1ec8fe 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -439,41 +439,34 @@ AIScoring_LeechHit: ; 387f7 AIScoring_LockOn: ; 3881d ld a, [PlayerSubStatus5] - bit 5, a + bit SUBSTATUS_LOCK_ON, a jr nz, .asm_38882 push hl call AICheckEnemyQuarterHP - jr nc, .asm_38877 call AICheckEnemyHalfHP - jr c, .asm_38834 call AICompareSpeed - jr nc, .asm_38877 - .asm_38834 ld a, [PlayerEvaLevel] cp $a jr nc, .asm_3887a - cp $8 jr nc, .asm_38875 ld a, [EnemyAccLevel] cp $5 jr c, .asm_3887a - cp $7 jr c, .asm_38875 ld hl, EnemyMonMoves ld c, EnemyMonMovesEnd - EnemyMonMoves + 1 - .asm_3884f dec c jr z, .asm_38877 @@ -490,18 +483,16 @@ AIScoring_LockOn: ; 3881d ld a, $1 ld [hBattleTurn], a + push hl push bc - callba Function347c8 - ld a, [$d265] cp $a pop bc pop hl jr c, .asm_3884f - .asm_38875 pop hl ret @@ -514,8 +505,8 @@ AIScoring_LockOn: ; 3881d .asm_3887a pop hl call Function39527 - ret c + dec [hl] dec [hl] ret @@ -546,11 +537,9 @@ AIScoring_LockOn: ; 3881d dec [hl] jr .asm_3888b - .asm_388a2 pop hl jp AIDiscourageMove - ; 388a6 @@ -632,7 +621,6 @@ AIScoring_EvasionUp: ; 388d4 jr c, .asm_388ef jr .asm_38911 - .asm_3890a call Function39527 jr c, .asm_38911 @@ -661,7 +649,7 @@ AIScoring_EvasionUp: ; 388d4 jr nz, .asm_388ef ld a, [PlayerSubStatus1] - bit SUBSTATUS_ENCORED, a + bit SUBSTATUS_ROLLOUT, a jr nz, .asm_388ef @@ -679,8 +667,8 @@ AIScoring_EvasionUp: ; 388d4 .asm_38941 call Function39527 - ret c + dec [hl] ret ; 38947 @@ -802,7 +790,7 @@ AIScoring_AccuracyDown: ; 38985 jr nz, .asm_3899d ld a, [PlayerSubStatus1] - bit SUBSTATUS_ENCORED, a + bit SUBSTATUS_ROLLOUT, a jr nz, .asm_3899d .asm_389e4 @@ -951,7 +939,7 @@ AIScoring_Bind: ; 38a71 jr nz, .asm_38a91 ld a, [PlayerSubStatus1] - and 1< Date: Wed, 18 Jun 2014 00:55:44 -0700 Subject: [PATCH 19/22] Residual damage, battle text labels, pic predefs. --- battle/anim_commands.asm | 8 +- battle/core.asm | 170 ++++++++++++++-------------- battle/effect_commands.asm | 2 +- home.asm | 2 +- main.asm | 223 +++++++++++++++++++++---------------- text/battle.asm | 14 +-- 6 files changed, 225 insertions(+), 194 deletions(-) diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index 7c43ed38f..f8f4a26ce 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -956,7 +956,7 @@ BattleAnimCmd_DC: ; cc5dc (33:45dc) ld hl, BattleMonDVs ; $c632 predef GetUnownLetter ld de, $8000 - predef Function51077 + predef GetFrontpic jr .done .player @@ -965,7 +965,7 @@ BattleAnimCmd_DC: ; cc5dc (33:45dc) ld hl, EnemyMonDVs ; $d20c predef GetUnownLetter ld de, $8000 - predef Function5116c + predef GetBackpic .done pop af @@ -1192,14 +1192,14 @@ BattleAnimCmd_E6: ; cc776 (33:4776) ld hl, BattleMonDVs ; $c632 predef GetUnownLetter ld de, $9000 - predef Function51077 + predef GetFrontpic jr .done .player ld hl, EnemyMonDVs ; $d20c predef GetUnownLetter ld de, $9310 - predef Function5116c + predef GetBackpic .done pop af diff --git a/battle/core.asm b/battle/core.asm index 2239f411a..5503d307d 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -307,7 +307,7 @@ Function3c1d6: ; 3c1d6 ; 3c23c Function3c23c: ; 3c23c - call Function3c710 + call HasPlayerFainted jr nz, .asm_3c24a call Function3d14e ld a, [BattleEnded] @@ -315,7 +315,7 @@ Function3c23c: ; 3c23c jr nz, .asm_3c25a .asm_3c24a - call Function3c70b + call HasEnemyFainted jr nz, .asm_3c258 call Function3cd55 ld a, [BattleEnded] @@ -332,7 +332,7 @@ Function3c23c: ; 3c23c ; 3c25c Function3c25c: ; 3c25c - call Function3c70b + call HasEnemyFainted jr nz, .asm_3c26a call Function3cd55 ld a, [BattleEnded] @@ -340,7 +340,7 @@ Function3c25c: ; 3c25c jr nz, .asm_3c27a .asm_3c26a - call Function3c710 + call HasPlayerFainted jr nz, .asm_3c278 call Function3d14e ld a, [BattleEnded] @@ -947,14 +947,14 @@ Function3c5fe: ; 3c5fe ld a, [$d232] and a ret nz - call Function3c710 + call HasPlayerFainted jp z, Function3d14e - call Function3c70b + call HasEnemyFainted jp z, Function3cd55 .asm_3c62f call SetEnemyTurn - call Function3c716 + call ResidualDamage jp z, Function3cd55 call RefreshBattleHuds call Function3c6cf @@ -963,12 +963,12 @@ Function3c5fe: ; 3c5fe ld a, [$d232] and a ret nz - call Function3c70b + call HasEnemyFainted jp z, Function3cd55 - call Function3c710 + call HasPlayerFainted jp z, Function3d14e call SetPlayerTurn - call Function3c716 + call ResidualDamage jp z, Function3d14e call RefreshBattleHuds xor a @@ -989,13 +989,13 @@ Function3c664: ; 3c664 ret nz call Function3d2e0 ret c - call Function3c70b + call HasEnemyFainted jp z, Function3cd55 - call Function3c710 + call HasPlayerFainted jp z, Function3d14e push bc call SetPlayerTurn - call Function3c716 + call ResidualDamage pop bc jp z, Function3d14e push bc @@ -1011,14 +1011,14 @@ Function3c664: ; 3c664 ld a, [$d232] and a ret nz - call Function3c710 + call HasPlayerFainted jp z, Function3d14e - call Function3c70b + call HasEnemyFainted jp z, Function3cd55 .asm_3c6be call SetEnemyTurn - call Function3c716 + call ResidualDamage jp z, Function3cd55 call RefreshBattleHuds xor a @@ -1058,15 +1058,15 @@ Function3c6fe: ; 3c6fe ret ; 3c706 -Function3c706: ; 3c706 +HasUserFainted: ; 3c706 ld a, [hBattleTurn] and a - jr z, Function3c710 -Function3c70b: ; 3c70b + jr z, HasPlayerFainted +HasEnemyFainted: ; 3c70b ld hl, EnemyMonHP jr Function3c713 -Function3c710: ; 3c710 +HasPlayerFainted: ; 3c710 ld hl, BattleMonHP Function3c713: ; 3c713 @@ -1075,22 +1075,26 @@ Function3c713: ; 3c713 ret ; 3c716 -Function3c716: ; 3c716 - call Function3c706 +ResidualDamage: ; 3c716 +; Return z if the user fainted before +; or as a result of residual damage. +; For Sandstorm damage, see HandleWeather. + + call HasUserFainted ret z ld a, BATTLE_VARS_STATUS call GetBattleVar and 1 << PSN | 1 << BRN - jr z, .asm_3c768 + jr z, .did_psn_brn - ld hl, BattleText_0x807e2 + ld hl, HurtByPoisonText ld de, ANIM_PSN and 1 << BRN - jr z, .asm_3c733 - ld hl, BattleText_0x807f8 + jr z, .got_anim + ld hl, HurtByBurnText ld de, ANIM_BRN -.asm_3c733 +.got_anim push de call StdBattleTextBox @@ -1110,26 +1114,25 @@ Function3c716: ; 3c716 ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVar bit SUBSTATUS_TOXIC, a - jr z, .asm_3c765 - + jr z, .did_toxic call GetSixteenthMaxHP ld a, [de] inc a ld [de], a ld hl, 0 -.asm_3c75f +.add add hl, bc dec a - jr nz, .asm_3c75f + jr nz, .add ld b, h ld c, l +.did_toxic -.asm_3c765 call Function3cc3f +.did_psn_brn -.asm_3c768 - call Function3c706 - jp z, .asm_3c7f7 + call HasUserFainted + jp z, .fainted ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr @@ -1151,30 +1154,29 @@ Function3c716: ; 3c716 ld a, $1 ld [hBGMapMode], a call Function3ccef - ld hl, BattleText_0x8080e + ld hl, LeechSeedSapsText call StdBattleTextBox - .asm_3c7a1 - call Function3c706 - jr z, .asm_3c7f7 + + call HasUserFainted + jr z, .fainted ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr bit SUBSTATUS_NIGHTMARE, [hl] jr z, .asm_3c7c5 - xor a ld [$cfca], a ld de, ANIM_IN_NIGHTMARE call Function3ee0f call GetQuarterMaxHP call Function3cc3f - ld hl, BattleText_0x80822 + ld hl, HasANightmareText call StdBattleTextBox - .asm_3c7c5 - call Function3c706 - jr z, .asm_3c7f7 + + call HasUserFainted + jr z, .fainted ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr @@ -1187,7 +1189,7 @@ Function3c716: ; 3c716 call Function3ee0f call GetQuarterMaxHP call Function3cc3f - ld hl, BattleText_0x80836 + ld hl, HurtByCurseText call StdBattleTextBox .asm_3c7e9 @@ -1202,7 +1204,7 @@ Function3c716: ; 3c716 or [hl] ret nz -.asm_3c7f7 +.fainted call RefreshBattleHuds ld c, 20 call DelayFrames @@ -1239,7 +1241,7 @@ Function3c801: ; 3c801 ld a, [hl] ld [$d265], a push af - ld hl, BattleText_0x80864 + ld hl, PerishCountText call StdBattleTextBox pop af ret nz @@ -1826,7 +1828,7 @@ HandleWeather: ; 3cb9e call GetEighthMaxHP call Function3cc3f - ld hl, BattleText_0x8084d + ld hl, SandstormHitsText jp StdBattleTextBox .ended @@ -2034,20 +2036,20 @@ Function3ccef: ; 3ccef ld hl, BattleMonMaxHP .ok ld a, [hli] - ld [Buffer2], a + ld [Buffer1 + 1], a ld a, [hld] - ld [Buffer1], a + ld [Buffer1 + 0], a dec hl ld a, [hl] - ld [$d1ec], a + ld [Buffer1 + 2], a add c ld [hld], a - ld [$d1ee], a + ld [Buffer1 + 4], a ld a, [hl] - ld [$d1ed], a + ld [Buffer1 + 3], a adc b ld [hli], a - ld [$d1ef], a + ld [Buffer1 + 5], a ld a, [Buffer1] ld c, a @@ -2060,10 +2062,10 @@ Function3ccef: ; 3ccef jr c, .asm_3cd2d ld a, b ld [hli], a - ld [$d1ef], a + ld [Buffer1 + 5], a ld a, c ld [hl], a - ld [$d1ee], a + ld [Buffer1 + 4], a .asm_3cd2d call SwitchTurnCore @@ -2076,17 +2078,15 @@ Function3cd36: ; 3cd36 jp UpdateBattleHuds ; 3cd3c - Function3cd3c: ; 3cd3c hlcoord 10, 9 ld a, [hBattleTurn] and a ld a, 1 - jr z, .asm_3cd4a + jr z, .ok hlcoord 2, 2 xor a - -.asm_3cd4a +.ok push bc ld [$d10a], a predef Functionc6e0 @@ -3128,14 +3128,14 @@ LostBattle: ; 3d38e and $c0 add 2 ld [$d0ee], a - jr .asm_3d412 + jr .text .asm_3d40a ld hl, LostAgainstText call IsMobileBattle jr z, .asm_3d417 -.asm_3d412 +.text call StdBattleTextBox .end @@ -3293,7 +3293,6 @@ Function3d4e1: ; 3d4e1 call Function3d533 jr c, .asm_3d4f1 call Function3d599 - .asm_3d4f1 call Function3d6ca call Function3d74b @@ -3318,7 +3317,6 @@ Function3d517: ; 3d517 call Function3d533 jr c, .asm_3d522 call Function3d599 - .asm_3d522 call Function3d6ca ld a, 1 @@ -3332,6 +3330,7 @@ Function3d533: ; 3d533 ld a, [InLinkBattle] and a jr z, .asm_3d541 + ld a, [wBattleAction] sub NUM_MOVES ld b, a @@ -3383,7 +3382,7 @@ Function3d581: ; 3d581 ld a, [CurBattleMon] ld c, a ld hl, $c664 - ld b, $1 + ld b, SET_FLAG push bc predef FlagPredef pop bc @@ -3434,13 +3433,13 @@ Function3d5d7: ; 3d5d7 ld a, b call GetPartyLocation pop bc - ld e, $5 -.asm_3d5e2 + ld e, NUM_MOVES + 1 +.loop dec e - jr z, .asm_3d617 + jr z, .done ld a, [hli] and a - jr z, .asm_3d617 + jr z, .done push hl push de push bc @@ -3457,13 +3456,12 @@ Function3d5d7: ; 3d5d7 pop de pop hl ld a, [$d265] - cp $b - jr c, .asm_3d5e2 + cp 10 + 1 ; 1.0 + 0.1 + jr c, .loop ld hl, Buffer1 set 0, [hl] ret - -.asm_3d617 +.done ret ; 3d618 @@ -3590,7 +3588,7 @@ Function3d6ca: ; 3d6ca inc a ld hl, OTPartyCount ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] ld [TempEnemyMonSpecies], a @@ -3606,7 +3604,6 @@ Function3d6ca: ; 3d6ca predef GetUnownLetter ld a, [UnownLetter] ld [$def4], a - .asm_3d708 ld hl, EnemyMonHP ld a, [hli] @@ -3693,7 +3690,7 @@ Function3d7a0: ; 3d7a0 call Function1c07 call ClearSprites hlcoord 1, 0 - ld bc, $040a + lb bc, 4, 10 call ClearBox call WaitBGMap jp Function3ee27 @@ -3711,24 +3708,26 @@ Function3d7c7: ; 3d7c7 ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData - ld a, $1 + ld a, OTPARTYMON ld [MonType], a predef Function5084a call Function3f47c + xor a ld [$cfca], a ld [$c689], a call SetEnemyTurn ld de, ANIM_SEND_OUT_MON call Function3ee17 + call Function3da79 jr nc, .asm_3d800 - ld a, $1 + ld a, 1 ; shiny anim ld [$c689], a ld de, ANIM_SEND_OUT_MON call Function3ee17 - .asm_3d800 + ld bc, TempMonSpecies callba Function4e53f jr c, .asm_3d82c @@ -6817,7 +6816,7 @@ Function3ebd8: ; 3ebd8 ld a, [OtherTrainerClass] ld [TrainerClass], a ld de, VTiles2 - callab Function5120d + callab GetTrainerPic hlcoord 19, 0 ld c, $0 .asm_3ebf3 @@ -8308,7 +8307,7 @@ Function3f447: ; 3f447 ld hl, BattleMonDVs predef GetUnownLetter ld de, $9310 - predef Function5116c + predef GetBackpic pop af ld [CurPartySpecies], a ret @@ -8331,11 +8330,13 @@ Function3f47c: ; 3f47c bit SUBSTATUS_SUBSTITUTE, a ld hl, BattleAnimCmd_DD jr nz, Function3f4b4 + Function3f486: ; 3f486 ld a, [$c6fa] and a ld hl, BattleAnimCmd_E2 jr nz, Function3f4b4 + ld a, [CurPartySpecies] push af ld a, [EnemyMonSpecies] @@ -8451,7 +8452,7 @@ Function3f568: ; 3f568 ld a, $6 ld [rSVBK], a ld hl, $d000 - ld bc, VBlank5 + ld bc, $400 ld a, $2 call ByteFill ld a, [rVBK] @@ -8485,7 +8486,7 @@ Function3f594: ; 3f594 .ok ld de, VTiles2 - callab Function5120d + callab GetTrainerPic xor a ld [$ffad], a dec a @@ -8547,7 +8548,6 @@ Function3f607: ; 3f607 jr nz, .asm_3f648 ld a, [UnownLetter] ld [$def4], a - .asm_3f648 ld de, VTiles2 predef Function5108b @@ -9332,7 +9332,7 @@ Function3fbd6: ; 3fbd6 ld a, $6 ld [rSVBK], a ld hl, $d000 - ld bc, VBlank5 + ld bc, $400 ld a, $7f call ByteFill ld de, $d000 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 692c03100..dc82b4500 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -1536,7 +1536,7 @@ Function347d3: ; 347d3 ld b, [hl] inc hl ld c, [hl] - ld a, $a + ld a, 10 ; 1.0 ld [$d265], a ld hl, TypeMatchup .asm_347e7 diff --git a/home.asm b/home.asm index 0393c5083..42ba751ac 100644 --- a/home.asm +++ b/home.asm @@ -1699,7 +1699,7 @@ Function378b:: ; 378b jr c, .asm_37ad push hl ld de, VTiles2 - predef Function51077 + predef GetFrontpic pop hl xor a ld [$ffad], a diff --git a/main.asm b/main.asm index e03d4f335..7a5160206 100644 --- a/main.asm +++ b/main.asm @@ -4672,7 +4672,7 @@ Function6182: ; 6182 Function619c: ; 619c ld de, VTiles2 - callba Function5120d + callba GetTrainerPic xor a ld [$ffad], a hlcoord 6, 4 @@ -7814,10 +7814,10 @@ PredefPointers:: ; 856b add_predef Predef39 add_predef Functionfd1d0 add_predef PartyMonItemName - add_predef Function51077 - add_predef Function5116c + add_predef GetFrontpic + add_predef GetBackpic add_predef Function5108b - add_predef Function5120d + add_predef GetTrainerPic add_predef DecompressPredef ; $40 add_predef Function347d3 add_predef Functionfb908 @@ -29600,7 +29600,7 @@ Function16cc8: ; 16cc8 xor a ld [$c2c6], a ld de, VTiles2 - predef Function51077 + predef GetFrontpic call Function16cff hlcoord 1, 6 xor a @@ -30394,7 +30394,7 @@ Function17224: ; 17224 (5:7224) ld hl, BattleMonDVs predef GetUnownLetter pop de - predef_jump Function51077 + predef_jump GetFrontpic ; known jump sources: 172c2 (5:72c2) Function1723c: ; 1723c (5:723c) @@ -31882,7 +31882,7 @@ Function244e3:: ; 244e3 ld [CurSpecies], a call GetBaseData ld de, VTiles1 - predef Function51077 + predef GetFrontpic ld a, [$cf82] inc a ld b, a @@ -39075,7 +39075,7 @@ Function29491: ; 29491 ld [CurSpecies], a call GetBaseData pop de - predef Function51077 + predef GetFrontpic ret ; 294a9 @@ -46440,7 +46440,7 @@ Function4143b: ; 4143b ld [CurPartySpecies], a call GetBaseData ld de, VTiles2 - predef Function51077 + predef GetFrontpic ret .asm_4145b @@ -46601,7 +46601,7 @@ Function41a58: ; 41a58 (10:5a58) ld [CurPartySpecies], a ; $d108 call GetBaseData ld de, $9000 - predef Function51077 + predef GetFrontpic pop af ld [UnownLetter], a ; $d234 ret @@ -46631,7 +46631,7 @@ Function41a7f: ; 41a7f call WaitBGMap call GetBaseData ld de, VTiles2 - predef Function51077 + predef GetFrontpic ld a, $4 call Function41423 ld a, [CurPartySpecies] @@ -60679,14 +60679,14 @@ GetUnownLetter: ; 51040 ; 51077 -Function51077: ; 51077 +GetFrontpic: ; 51077 ld a, [CurPartySpecies] ld [CurSpecies], a call IsAPokemon ret c ld a, [rSVBK] push af - call Function510a5 + call _GetFrontpic pop af ld [rSVBK], a ret @@ -60701,33 +60701,33 @@ Function5108b: ; 5108b push af xor a ld [hBGMapMode], a - call Function510a5 + call _GetFrontpic call Function51103 pop af ld [rSVBK], a ret ; 510a5 -Function510a5: ; 510a5 +_GetFrontpic: ; 510a5 push de call GetBaseData ld a, [BasePicSize] and $f ld b, a push bc - call Function510d7 + call GetFrontpicPointer ld a, $6 ld [rSVBK], a ld a, b ld de, $d800 call FarDecompress pop bc - ld hl, Unkn1Pals + ld hl, $d000 ld de, $d800 call Function512ab pop hl push hl - ld de, Unkn1Pals + ld de, $d000 ld c, 7 * 7 ld a, [hROMBank] ld b, a @@ -60736,28 +60736,28 @@ Function510a5: ; 510a5 ret ; 510d7 -Function510d7: ; 510d7 +GetFrontpicPointer: ; 510d7 GLOBAL PicPointers, UnownPicPointers ld a, [CurPartySpecies] cp UNOWN - jr z, .asm_510e5 + jr z, .unown ld a, [CurPartySpecies] ld d, BANK(PicPointers) - jr .asm_510ea + jr .ok -.asm_510e5 +.unown ld a, [UnownLetter] ld d, BANK(UnownPicPointers) -.asm_510ea - ld hl, Function50000 +.ok + ld hl, PicPointers ; UnownPicPointers dec a - ld bc, $0006 + ld bc, 6 call AddNTimes ld a, d call GetFarByte - call Function511c5 + call FixPicBank push af inc hl ld a, d @@ -60770,13 +60770,13 @@ Function51103: ; 51103 ld a, $1 ld [rVBK], a push hl - ld de, Unkn1Pals - ld c, $31 + ld de, $d000 + ld c, 7 * 7 ld a, [hROMBank] ld b, a call Get2bpp pop hl - ld de, $0310 + ld de, 7 * 7 * $10 add hl, de push hl ld a, $1 @@ -60784,24 +60784,24 @@ Function51103: ; 51103 call GetFarWRAMByte pop hl and $f - ld de, $d990 + ld de, $d800 + 5 * 5 * $10 ld c, 5 * 5 cp 5 jr z, .asm_5113b - ld de, $da40 + ld de, $d800 + 6 * 6 * $10 ld c, 6 * 6 cp 6 jr z, .asm_5113b - ld de, $db10 + ld de, $d800 + 7 * 7 * $10 ld c, 7 * 7 - .asm_5113b + push hl push bc call Function5114f pop bc pop hl - ld de, Unkn1Pals + ld de, $d000 ld a, [hROMBank] ld b, a call Get2bpp @@ -60832,10 +60832,11 @@ Function5114f: ; 5114f ret ; 5116c -Function5116c: ; 5116c +GetBackpic: ; 5116c ld a, [CurPartySpecies] call IsAPokemon ret c + ld a, [CurPartySpecies] ld b, a ld a, [UnownLetter] @@ -60853,31 +60854,30 @@ Function5116c: ; 5116c ld a, b ld d, BANK(PicPointers) cp UNOWN - jr nz, .asm_51190 + jr nz, .ok ld a, c ld d, BANK(UnownPicPointers) - -.asm_51190 +.ok dec a - ld bc, $0006 + ld bc, 6 call AddNTimes - ld bc, $0003 + ld bc, 3 add hl, bc ld a, d call GetFarByte - call Function511c5 + call FixPicBank push af inc hl ld a, d call GetFarHalfword - ld de, Unkn1Pals + ld de, $d000 pop af call FarDecompress - ld hl, Unkn1Pals - ld c, $24 + ld hl, $d000 + ld c, 6 * 6 call Function5127c pop hl - ld de, Unkn1Pals + ld de, $d000 ld a, [hROMBank] ld b, a call Get2bpp @@ -60887,10 +60887,11 @@ Function5116c: ; 5116c ; 511c5 -Function511c5: ; 511c5 +FixPicBank: ; 511c5 +; This is a thing for some reason. push hl push bc - sub $12 + sub PICS_1 - $36 ld c, a ld b, 0 ld hl, Unknown_511d4 @@ -60902,10 +60903,53 @@ Function511c5: ; 511c5 ; 511d4 Unknown_511d4: ; 511d4 -INCBIN "baserom.gbc",$511d4,$5120d - $511d4 + db PICS_1 + db PICS_2 + db PICS_3 + db PICS_4 + db PICS_5 + db PICS_6 + db PICS_7 + db PICS_8 + db PICS_9 + db PICS_10 + db PICS_11 + db PICS_12 + db PICS_13 + db PICS_14 + db PICS_15 + db PICS_16 + db PICS_17 + db PICS_18 + db PICS_19 + db PICS_19 + 1 + db PICS_19 + 2 + db PICS_19 + 3 + db PICS_19 + 4 + db PICS_19 + 5 + +Function511ec: ; 511ec + ld a, c + push de + ld hl, PicPointers + dec a + ld bc, 6 + call AddNTimes + ld a, BANK(PicPointers) + call GetFarByte + call FixPicBank + push af + inc hl + ld a, BANK(PicPointers) + call GetFarHalfword + pop af + pop de + call FarDecompress + ret +; 0x5120d -Function5120d: ; 5120d +GetTrainerPic: ; 5120d ld a, [TrainerClass] and a ret z @@ -60914,29 +60958,29 @@ Function5120d: ; 5120d call WaitBGMap xor a ld [hBGMapMode], a - ld hl, Function50000 + ld hl, TrainerPicPointers ld a, [TrainerClass] dec a - ld bc, $0003 + ld bc, 3 call AddNTimes ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a push de - ld a, $4a + ld a, BANK(TrainerPicPointers) call GetFarByte - call Function511c5 + call FixPicBank push af inc hl - ld a, $4a + ld a, BANK(TrainerPicPointers) call GetFarHalfword pop af ld de, $d000 call FarDecompress pop hl ld de, $d000 - ld c, $31 + ld c, 7 * 7 ld a, [hROMBank] ld b, a call Get2bpp @@ -60983,13 +61027,13 @@ Function5127c: ; 5127c and a jr z, .asm_512a8 ld a, c - cp $31 - ld de, $0310 + cp 7 * 7 + ld de, 7 * 7 * $10 jr z, .asm_51296 - cp $24 - ld de, $0240 + cp 6 * 6 + ld de, 6 * 6 * $10 jr z, .asm_51296 - ld de, $0190 + ld de, 5 * 5 * $10 .asm_51296 ld a, [hl] @@ -61015,54 +61059,53 @@ Function5127c: ; 5127c Function512ab: ; 512ab ld a, b - cp $6 - jr z, .asm_512bd - cp $5 - jr z, .asm_512d2 -.asm_512b4 + cp 6 + jr z, .six + cp 5 + jr z, .five + +.seven ld c, $70 call Function512f2 dec b - jr nz, .asm_512b4 + jr nz, .seven ret -.asm_512bd +.six ld c, $70 xor a - call Function512ed + call .Fill .asm_512c3 ld c, $10 xor a - call Function512ed + call .Fill ld c, $60 call Function512f2 dec b jr nz, .asm_512c3 ret -.asm_512d2 +.five ld c, $70 xor a - call Function512ed + call .Fill .asm_512d8 ld c, $20 xor a - call Function512ed + call .Fill ld c, $50 call Function512f2 dec b jr nz, .asm_512d8 ld c, $70 xor a - call Function512ed + call .Fill ret -; 512ed -Function512ed: ; 512ed -.asm_512ed +.Fill ld [hli], a dec c - jr nz, .asm_512ed + jr nz, .Fill ret ; 512f2 @@ -61085,22 +61128,10 @@ Function512f2: ; 512f2 inc de ld b, a xor a + rept 8 rr b rla - rr b - rla - rr b - rla - rr b - rla - rr b - rla - rr b - rla - rr b - rla - rr b - rla + endr ld [hli], a dec c jr nz, .asm_51300 @@ -62761,7 +62792,7 @@ Function81adb: ; 81adb hlcoord 12, 3 call Function378b ld de, $9310 - predef Function5116c + predef GetBackpic ld a, $31 ld [$ffad], a hlcoord 2, 4 @@ -62792,7 +62823,7 @@ Function81adb: ; 81adb hlcoord 4, 1 call PlaceString ld de, VTiles2 - callab Function5120d + callab GetTrainerPic xor a ld [TempEnemyMonSpecies], a ld [$ffad], a @@ -65666,7 +65697,7 @@ Function865b5: ; 865b5 ld a, $7f call ByteFill ld de, $9310 - predef Function5116c + predef GetBackpic ld a, $31 ld [$ffad], a hlcoord 6, 6 @@ -67975,7 +68006,7 @@ Function897af: ; 897af xor a ld [CurPartySpecies], a ld de, $9370 - callba Function5120d + callba GetTrainerPic pop bc ret ; 897d5 @@ -94834,7 +94865,7 @@ PCMonInfo: ; e2ac6 (38:6ac6) predef GetUnownLetter call GetBaseData ld de, $9000 - predef Function51077 + predef GetFrontpic xor a ld [$cb32], a ld a, [CurPartySpecies] diff --git a/text/battle.asm b/text/battle.asm index 834ec3c71..5cd41bcca 100644 --- a/text/battle.asm +++ b/text/battle.asm @@ -60,43 +60,43 @@ BattleText_0x807cf: ; 0x807cf prompt ; 0x807e2 -BattleText_0x807e2: ; 0x807e2 +HurtByPoisonText: ; 0x807e2 text $5a line "is hurt by poison!" prompt ; 0x807f8 -BattleText_0x807f8: ; 0x807f8 +HurtByBurnText: ; 0x807f8 text $5a, "'s" line "hurt by its burn!" prompt ; 0x8080e -BattleText_0x8080e: ; 0x8080e +LeechSeedSapsText: ; 0x8080e text "LEECH SEED saps" line $5a, "!" prompt ; 0x80822 -BattleText_0x80822: ; 0x80822 +HasANightmareText: ; 0x80822 text $5a line "has a NIGHTMARE!" prompt ; 0x80836 -BattleText_0x80836: ; 0x80836 +HurtByCurseText: ; 0x80836 text $5a, "'s" line "hurt by the CURSE!" prompt ; 0x8084d -BattleText_0x8084d: ; 0x8084d +SandstormHitsText: ; 0x8084d text "The SANDSTORM hits" line $5a, "!" prompt ; 0x80864 -BattleText_0x80864: ; 0x80864 +PerishCountText: ; 0x80864 text $5a, "'s" line "PERISH count is @" deciram $d265, $11 From 6fee80528af6be1c22fee42e2560023823f7da8f Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 19 Jun 2014 17:23:53 -0700 Subject: [PATCH 20/22] More object struct labels and constants. --- home/map_objects.asm | 4 +- main.asm | 242 +++++++++++++++++++++---------------------- 2 files changed, 123 insertions(+), 123 deletions(-) diff --git a/home/map_objects.asm b/home/map_objects.asm index 5f3514bd0..a20a06779 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -454,7 +454,7 @@ Function19e9:: ; 19e9 Function1a13:: ; 1a13 push bc push de - ld hl, $d4d6 + ld hl, ObjectStructs ld de, $0028 ld c, $d .asm_1a1d @@ -641,7 +641,7 @@ Function1ad2:: ; 1ad2 Function1ae5:: ; 1ae5 ld bc, $0028 - ld hl, $d4d6 + ld hl, ObjectStructs call AddNTimes ld b, h ld c, l diff --git a/main.asm b/main.asm index 1ce0c2fac..914aeb626 100644 --- a/main.asm +++ b/main.asm @@ -109,7 +109,7 @@ Function4357:: ; 4357 push af ld h, b ld l, c - ld bc, $0028 + ld bc, ObjectStruct2 - ObjectStruct1 xor a call ByteFill pop af @@ -136,12 +136,12 @@ Function437b: ; 437b ; 4386 Function4386: ; 4386 - ld hl, $0005 + ld hl, OBJECT_FLAGS add hl, bc res 6, [hl] ld a, [XCoord] ld e, a - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] add $1 @@ -151,7 +151,7 @@ Function4386: ; 4386 jr nc, .asm_43b2 ld a, [YCoord] ld e, a - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] add $1 @@ -162,7 +162,7 @@ Function4386: ; 4386 jr .asm_43dc .asm_43b2 - ld hl, $0005 + ld hl, OBJECT_FLAGS add hl, bc set 6, [hl] ld a, [XCoord] @@ -200,7 +200,7 @@ Function4386: ; 4386 ret .asm_43eb - ld hl, $0005 + ld hl, OBJECT_FLAGS add hl, bc set 6, [hl] and a @@ -213,7 +213,7 @@ Function43f3: ; 43f3 ld a, [hl] and a jr z, .asm_4409 - ld hl, $0005 + ld hl, OBJECT_FLAGS add hl, bc bit 5, [hl] jr nz, .asm_4426 @@ -223,7 +223,7 @@ Function43f3: ; 43f3 .asm_4409 call Function47bc - ld hl, $0005 + ld hl, OBJECT_FLAGS add hl, bc bit 5, [hl] jr nz, .asm_4426 @@ -253,7 +253,7 @@ Function4427: ; 4427 bit 0, [hl] jr nz, Function44a3 - ld hl, $0005 + ld hl, OBJECT_FLAGS add hl, bc bit 6, [hl] jr nz, Function44a3 @@ -969,16 +969,16 @@ Function47b6: ; 47b6 ; 47bc Function47bc: ; 47bc - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld e, [hl] push bc call Function2a3c pop bc - ld hl, $000e + ld hl, OBJECT_STANDING_TILE add hl, bc ld [hl], a call Function4600 @@ -1553,7 +1553,7 @@ Function4af0: ; 4af0 add hl, bc ld [hl], $2 ld hl, $d4cf - ld a, [hConnectionStripLength] + ld a, [$ffaf] cp [hl] jr z, .asm_4b10 ld hl, $0009 @@ -2240,10 +2240,10 @@ Function4ecd: ; 4ecd dec [hl] ret nz push bc - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld e, [hl] ld hl, $0001 @@ -2252,7 +2252,7 @@ Function4ecd: ; 4ecd ld b, a callba Function807e pop bc - ld hl, $0005 + ld hl, OBJECT_FLAGS add hl, bc res 2, [hl] call Function4600 @@ -2562,7 +2562,7 @@ Function54b8: ; 54b8 ret z ld a, [$d4cd] ld d, a - ld a, [hConnectionStripLength] + ld a, [$ffaf] cp d ret nz ld a, e @@ -2705,7 +2705,7 @@ Function5565: ; 5565 Function5579: ; 5579 push bc - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld c, a call Function5582 pop bc @@ -2713,7 +2713,7 @@ Function5579: ; 5579 ; 5582 Function5582: ; 5582 - ld de, $d4d6 + ld de, ObjectStructs ld a, $d .asm_5587 push af @@ -2728,12 +2728,12 @@ Function5582: ; 5582 jr z, .asm_55a1 push bc xor a - ld bc, $0028 + ld bc, ObjectStruct2 - ObjectStruct1 call ByteFill pop bc .asm_55a1 - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, de ld d, h ld e, l @@ -2766,7 +2766,7 @@ Function55b9: ; 55b9 ld [hli], a ld a, [de] ld [hli], a - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld [hli], a push hl ld hl, $0010 @@ -2788,20 +2788,20 @@ Function55e0:: ; 55e0 ld a, [VramState] bit 0, a ret z - ld bc, $d4d6 + ld bc, ObjectStructs xor a .asm_55ea - ld [hConnectionStripLength], a + ld [$ffaf], a call Function1af1 jr z, .asm_55f4 call Function565c .asm_55f4 - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l - ld a, [hConnectionStripLength] + ld a, [$ffaf] inc a cp $d jr nz, .asm_55ea @@ -2853,15 +2853,15 @@ Function5629: ; 5629 Function5645: ; 5645 xor a - ld bc, $d4d6 + ld bc, ObjectStructs .asm_5649 - ld [hConnectionStripLength], a + ld [$ffaf], a call Function5680 - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l - ld a, [hConnectionStripLength] + ld a, [$ffaf] inc a cp $d jr nz, .asm_5649 @@ -3083,20 +3083,20 @@ Function5771: ; 5771 ; 5781 Function5781: ; 5781 - ld bc, $d4d6 + ld bc, ObjectStructs xor a .asm_5785 - ld [hConnectionStripLength], a + ld [$ffaf], a call Function1af1 jr z, .asm_578f call Function437b .asm_578f - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l - ld a, [hConnectionStripLength] + ld a, [$ffaf] inc a cp $d jr nz, .asm_5785 @@ -3146,7 +3146,7 @@ Function57d9: ; 57d9 ; 57db Function57db: ; 57db - ld bc, $d4d6 + ld bc, PlayerStruct call Function1af8 ret ; 57e2 @@ -3165,7 +3165,7 @@ Function57e2: ; 57e2 swap a and $7 ld d, a - ld bc, $d4d6 + ld bc, PlayerStruct ld hl, $0006 add hl, bc ld a, [hl] @@ -3190,7 +3190,7 @@ Function5803:: ; 5803 Function5815: ; 5815 call Function18de ret c - ld a, [hConnectedMapWidth] + ld a, [$ffb0] ld [$d4cd], a ret ; 581f @@ -3219,7 +3219,7 @@ Function582c: ; 582c ld hl, $0009 add hl, bc ld [hl], $0 - ld a, [hConnectedMapWidth] + ld a, [$ffb0] ld [$d4ce], a ret ; 5847 @@ -3260,7 +3260,7 @@ Function586e: ; 586e ; 587a Function587a: ; 587a - ld bc, $d4d6 + ld bc, ObjectStructs xor a .asm_587e push af @@ -3271,7 +3271,7 @@ Function587a: ; 587a set 5, [hl] .asm_588a - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l @@ -3306,7 +3306,7 @@ Function5897:: ; 5897 Function58b9:: ; 58b9 push bc - ld bc, $d4d6 + ld bc, ObjectStructs xor a .asm_58be push af @@ -3317,7 +3317,7 @@ Function58b9:: ; 58b9 res 5, [hl] .asm_58ca - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l @@ -3429,7 +3429,7 @@ Function5958: ; 5958 ld d, a ld a, [$d14d] ld e, a - ld bc, $d4d6 + ld bc, ObjectStructs ld a, $d .asm_5968 @@ -3450,7 +3450,7 @@ Function5958: ; 5958 ld [hl], a .asm_597c - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l @@ -6022,9 +6022,9 @@ CheckFacingObject:: ; 6fd9 ld e, a .asm_6ff1 - ld bc, $d4d6 + ld bc, ObjectStructs ; redundant ld a, 0 - ld [hConnectionStripLength], a + ld [$ffaf], a call Function7041 ret nc ld hl, $0007 @@ -6052,7 +6052,7 @@ Function7009: ; 7009 ; 7015 Function7015: ; 7015 - ld a, [hConnectionStripLength] + ld a, [$ffaf] call Function1ae5 call Function7021 call Function7041 @@ -6089,10 +6089,10 @@ Function7021: ; 7021 ; 7041 Function7041: ; 7041 - ld bc, $d4d6 + ld bc, ObjectStructs xor a .asm_7045 - ld [hConnectedMapWidth], a + ld [$ffb0], a call Function1af1 jr z, .asm_7093 ld hl, $0004 @@ -6108,47 +6108,47 @@ Function7041: ; 7041 jr .asm_7073 .asm_7063 - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] cp d jr nz, .asm_707b - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] cp e jr nz, .asm_707b .asm_7073 - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld l, a - ld a, [hConnectedMapWidth] + ld a, [$ffb0] cp l jr nz, .asm_70a2 .asm_707b - ld hl, $0012 + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] cp d jr nz, .asm_7093 - ld hl, $0013 + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] cp e jr nz, .asm_7093 - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld l, a - ld a, [hConnectedMapWidth] + ld a, [$ffb0] cp l jr nz, .asm_70a2 .asm_7093 - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l - ld a, [hConnectedMapWidth] + ld a, [$ffb0] inc a cp $d jr nz, .asm_7045 @@ -6256,10 +6256,10 @@ Function7113: ; 7113 ld d, a ld a, [MapY] ld e, a - ld bc, $d4d6 + ld bc, ObjectStructs xor a .asm_711f - ld [hConnectedMapWidth], a + ld [$ffb0], a call Function1af1 jr z, .asm_7160 ld hl, $0003 @@ -6272,28 +6272,28 @@ Function7113: ; 7113 jr .asm_7160 .asm_7136 - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] cp e jr nz, .asm_714e - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] cp d jr nz, .asm_714e - ld a, [hConnectedMapWidth] + ld a, [$ffb0] cp $0 jr z, .asm_7160 jr .asm_716f .asm_714e - ld hl, $0013 + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] cp e jr nz, .asm_7160 - ld hl, $0012 + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] cp d @@ -6301,11 +6301,11 @@ Function7113: ; 7113 jr .asm_716f .asm_7160 - ld hl, $0028 + ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l - ld a, [hConnectedMapWidth] + ld a, [$ffb0] inc a cp $d jr nz, .asm_711f @@ -6855,7 +6855,7 @@ Function8029: ; 8029 ld [$d4cd], a ld [$d4ce], a ld a, $0 - ld hl, Data8071 + ld hl, PlayerObjectTemplate call Function19a6 ld b, $0 call Function808f @@ -6875,18 +6875,18 @@ Function8029: ; 8029 .asm_8059 ld [hl], e ld a, $0 - ld [hConnectionStripLength], a + ld [$ffaf], a ld bc, MapObjects ld a, $0 - ld [hConnectedMapWidth], a - ld de, $d4d6 + ld [$ffb0], a + ld de, ObjectStructs call Function8116 ld a, $0 ld [$d4cf], a ret ; 8071 -Data8071: ; 8071 +PlayerObjectTemplate: ; 8071 ; A dummy map object used to initialize the player object. ; Shorter than the actual amount copied by two bytes. ; Said bytes seem to be unused. @@ -6931,7 +6931,7 @@ Function80a1:: ; 80a1 ld hl, $0011 add hl, bc ld e, [hl] - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld b, a call Function807e and a @@ -6972,16 +6972,16 @@ Function80e7:: ; 80e7 call Function2707 and a ret nz - ld hl, $d4fe - ld a, $1 - ld de, $0028 + ld hl, ObjectStructs + (ObjectStruct2 - ObjectStruct1) * 1 + ld a, 1 + ld de, ObjectStruct2 - ObjectStruct1 .asm_80f4 - ld [hConnectedMapWidth], a + ld [$ffb0], a ld a, [hl] and a jr z, .asm_8104 add hl, de - ld a, [hConnectedMapWidth] + ld a, [$ffb0] inc a cp $d jr nz, .asm_80f4 @@ -7008,11 +7008,11 @@ Function8116: ; 8116 ; 811d Function811d: ; 811d - ld a, [hConnectedMapWidth] + ld a, [$ffb0] ld hl, $0000 add hl, bc ld [hl], a - ld a, [hConnectionStripLength] + ld a, [$ffaf] ld [$c2f0], a ld hl, $0001 add hl, bc @@ -7060,7 +7060,7 @@ Function8177: ; 8177 ld bc, $d72e ld a, $1 .asm_817c - ld [hConnectionStripLength], a + ld [$ffaf], a ld hl, $0001 add hl, bc ld a, [hl] @@ -7101,7 +7101,7 @@ Function8177: ; 8177 add hl, bc ld b, h ld c, l - ld a, [hConnectionStripLength] + ld a, [$ffaf] inc a cp $10 jr nz, .asm_817c @@ -7145,7 +7145,7 @@ Function81ea: ; 81ea ld bc, $d72e ld a, $1 .asm_81f4 - ld [hConnectionStripLength], a + ld [$ffaf], a ld hl, $0001 add hl, bc ld a, [hl] @@ -7180,7 +7180,7 @@ Function81ea: ; 81ea add hl, bc ld b, h ld c, l - ld a, [hConnectionStripLength] + ld a, [$ffaf] inc a cp $10 jr nz, .asm_81f4 @@ -7203,7 +7203,7 @@ Function823e: ; 823e ld bc, $d72e ld a, $1 .asm_8248 - ld [hConnectionStripLength], a + ld [$ffaf], a ld hl, $0001 add hl, bc ld a, [hl] @@ -7238,7 +7238,7 @@ Function823e: ; 823e add hl, bc ld b, h ld c, l - ld a, [hConnectionStripLength] + ld a, [$ffaf] inc a cp $10 jr nz, .asm_8248 @@ -7495,7 +7495,7 @@ Function839e:: ; 839e ld hl, $0018 add hl, de ld [hl], a - ld a, [hConnectedMapWidth] + ld a, [$ffb0] ld hl, $0020 add hl, de ld [hl], a @@ -10439,7 +10439,7 @@ Functioncef4: ; cef4 Functioncf0d: ; cf0d callba CheckFacingObject jr nc, .asm_cf2c - ld a, [hConnectedMapWidth] + ld a, [$ffb0] call Function1ae5 ld hl, $0001 add hl, bc @@ -22772,21 +22772,21 @@ GetPlayerSprite: ; 14183 .asm_141ad ld [UsedSprites + 0], a - ld [$d4d6], a - ld [$d71f], a + ld [PlayerStruct + 0], a + ld [MapObjects + OBJECT_LENGTH * 0 + 1], a ret .Chris - db PLAYER_NORMAL, SPRITE_CHRIS - db PLAYER_BIKE, SPRITE_CHRIS_BIKE - db PLAYER_SURF, SPRITE_SURF + db PLAYER_NORMAL, SPRITE_CHRIS + db PLAYER_BIKE, SPRITE_CHRIS_BIKE + db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU db $ff .Kris - db PLAYER_NORMAL, SPRITE_KRIS - db PLAYER_BIKE, SPRITE_KRIS_BIKE - db PLAYER_SURF, SPRITE_SURF + db PLAYER_NORMAL, SPRITE_KRIS + db PLAYER_BIKE, SPRITE_KRIS_BIKE + db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU db $ff ; 141c9 @@ -36846,7 +36846,7 @@ Function28434: ; 28434 ld a, $ff ld [de], a inc de - ld bc, Start + ld bc, $100 jr .asm_28464 .asm_28495 @@ -45625,7 +45625,7 @@ Function40bd0: ; 40bd0 Function40bdc: ; 40bdc ld hl, PlayerSDefLevel - ld bc, Start + ld bc, $100 xor a call ByteFill ld a, [$c7d4] @@ -53736,15 +53736,15 @@ Function4aad3: ; 4aad3 ld c, a xor a - ld [hConnectedMapWidth], a + ld [$ffb0], a .asm_4aadd push bc push hl ld e, 0 callba Function8e83f - ld a, [hConnectedMapWidth] + ld a, [$ffb0] inc a - ld [hConnectedMapWidth], a + ld [$ffb0], a pop hl pop bc dec c @@ -58788,7 +58788,7 @@ Function503e0: ; 503e0 ret z ld c, a xor a - ld [hConnectedMapWidth], a + ld [$ffb0], a .asm_503ea push bc push hl @@ -58796,9 +58796,9 @@ Function503e0: ; 503e0 ld a, BANK(Function8e83f) ld e, $0 rst FarCall - ld a, [hConnectedMapWidth] + ld a, [$ffb0] inc a - ld [hConnectedMapWidth], a + ld [$ffb0], a pop hl pop bc dec c @@ -61927,7 +61927,7 @@ GetMovementAction: ; 802ec IsNPCInFront: ; 80341 ld a, 0 - ld [hConnectionStripLength], a + ld [$ffaf], a ld a, [MapX] ld d, a ld a, [WalkingX] @@ -61938,7 +61938,7 @@ IsNPCInFront: ; 80341 ld a, [WalkingY] add e ld e, a - ld bc, $d4d6 + ld bc, ObjectStructs ; redundant callba Function7041 jr nc, .asm_80369 call Function8036f @@ -78637,9 +78637,9 @@ Function8e862: ; 8e862 (23:6862) ; known jump sources: 8e865 (23:6865) Function8e86c: ; 8e86c (23:686c) push bc - ld a, [hConnectedMapWidth] ; $ff00+$b0 + ld a, [$ffb0] ld hl, PartyMon1Item ; $dce0 - ld bc, $30 + ld bc, PartyMon2 - PartyMon1 call AddNTimes pop bc ld a, [hl] @@ -78713,7 +78713,7 @@ Function8e8d5: ; 8e8d5 (23:68d5) ; known jump sources: 8e8d8 (23:68d8) Function8e8df: ; 8e8df (23:68df) push bc - ld a, [hConnectedMapWidth] ; $ff00+$b0 + ld a, [$ffb0] ld hl, PartyMon1Item ; $dce0 ld bc, $30 call AddNTimes @@ -78742,7 +78742,7 @@ Function8e8df: ; 8e8df (23:68df) Function8e908: ; 8e908 (23:6908) ld a, [$c3b7] push af - ld a, [hConnectedMapWidth] ; $ff00+$b0 + ld a, [$ffb0] ld hl, PartySpecies ; $dcd8 ld e, a ld d, $0 @@ -78751,7 +78751,7 @@ Function8e908: ; 8e908 (23:6908) call ReadMonMenuIcon ld [CurIcon], a ; $c3b6 call Function8e9db - ld a, [hConnectedMapWidth] ; $ff00+$b0 + ld a, [$ffb0] add a add a add a @@ -78770,7 +78770,7 @@ Function8e908: ; 8e908 (23:6908) ; known jump sources: 8e868 (23:6868), 8e8b4 (23:68b4), 8e8db (23:68db) Function8e936: ; 8e936 (23:6936) push bc - ld a, [hConnectedMapWidth] ; $ff00+$b0 + ld a, [$ffb0] ld b, a call Function8e94c ld a, b @@ -101584,7 +101584,7 @@ Function100063: ; 100063 call ByteFill xor a ld hl, $c300 - ld bc, Start + ld bc, $100 call ByteFill ld a, [rIE] ld [BGMapBuffer], a @@ -104395,10 +104395,10 @@ Function104263: ; 104263 (41:4263) ; known jump sources: 104261 (41:4261) asm_104265: ; 104265 (41:4265) - ld a, [hConnectionStripLength] ; $ff00+$af + ld a, [$ffaf] push af ld a, c - ld [hConnectionStripLength], a ; $ff00+$af + ld [$ffaf], a ld c, $12 .asm_10426d ld b, $14 @@ -104408,7 +104408,7 @@ asm_104265: ; 104265 (41:4265) ld [hli], a dec b jr nz, .asm_10426f - ld a, [hConnectionStripLength] ; $ff00+$af + ld a, [$ffaf] ld b, $c .asm_104279 ld [hli], a @@ -104417,7 +104417,7 @@ asm_104265: ; 104265 (41:4265) dec c jr nz, .asm_10426d pop af - ld [hConnectionStripLength], a ; $ff00+$af + ld [$ffaf], a ret @@ -104472,7 +104472,7 @@ Function1042b2:: ; 1042b2 ld d, h ld e, l pop hl - ld bc, Start + ld bc, $100 add hl, bc pop bc ld a, c @@ -111451,7 +111451,7 @@ Function11ad1b: ; 11ad1b ld a, [$cfa9] ld [$cd82], a dec a - ld [hConnectedMapWidth], a + ld [$ffb0], a ld a, $10 ld [$c3b7], a ld hl, Function8e83f @@ -112434,7 +112434,7 @@ Function11c1ca: ; 11c1ca ld [rSVBK], a ld hl, PlayerSDefLevel ld de, LYOverrides - ld bc, Start + ld bc, $100 call CopyBytes pop af ld [rSVBK], a From 32a5f21cc7c35b2580ae2c5f3709676dd8ca8405 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 23 Jun 2014 12:45:30 -0700 Subject: [PATCH 21/22] More PartyMon labels for relative addressing. --- battle/ai/scoring.asm | 23 ++++++++++------------ battle/core.asm | 2 +- battle/effect_commands.asm | 10 +++++----- data/battle_tower.asm | 7 +++++-- home.asm | 7 ++++--- items/item_effects.asm | 39 +++++++++++++++++++------------------- main.asm | 6 +++--- predef/cgb.asm | 2 +- 8 files changed, 49 insertions(+), 47 deletions(-) diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 7ea1ec8fe..e7498886f 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -1523,13 +1523,13 @@ AIScoring_HealBell: ; 38d1f ld b, a ld c, 0 ld hl, OTPartyMon1HP - ld de, $0030 + ld de, OTPartyMon2 - OTPartyMon1 -.asm_38d2c +.loop push hl ld a, [hli] or [hl] - jr z, .asm_38d37 + jr z, .next dec hl dec hl @@ -1538,34 +1538,31 @@ AIScoring_HealBell: ; 38d1f or c ld c, a -.asm_38d37 +.next pop hl add hl, de dec b - jr nz, .asm_38d2c + jr nz, .loop pop hl ld a, c and a - jr z, .asm_38d52 + jr z, .no_status ld a, [EnemyMonStatus] and a - jr z, .asm_38d48 - + jr z, .ok dec [hl] - -.asm_38d48 - and $27 +.ok + and 1 << FRZ | SLP ret z call Function39527 - ret c dec [hl] dec [hl] ret -.asm_38d52 +.no_status ld a, [EnemyMonStatus] and a ret nz diff --git a/battle/core.asm b/battle/core.asm index 5503d307d..4586d2c9c 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2395,7 +2395,7 @@ Function3cf35: ; 3cf35 Function3cf4a: ; 3cf4a ld hl, EnemyHPPal - ld e, $30 + ld e, HP_BAR_LENGTH_PX call Function3e12e call WaitBGMap callba Function2c012 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index dc82b4500..ab1113237 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -5092,7 +5092,7 @@ BattleCommand4a: ; 35c0f ld a, [AttackMissed] and a jp nz, .asm_35c91 - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ; ???? ld hl, EnemyMonMoves ld a, [hBattleTurn] and a @@ -5106,7 +5106,7 @@ BattleCommand4a: ; 35c0f cp STRUGGLE jr z, .asm_35c91 ld b, a - ld c, $ff + ld c, -1 .asm_35c33 inc c ld a, [hli] @@ -5114,9 +5114,9 @@ BattleCommand4a: ; 35c0f jr nz, .asm_35c33 ld [$d265], a dec hl - ld b, $0 + ld b, 0 push bc - ld c, $6 + ld c, BattleMonPP - BattleMonMoves add hl, bc pop bc ld a, [hl] @@ -7380,7 +7380,7 @@ Function36994: ; 36994 ld a, [PartyCount] ld d, a ld e, 0 - ld bc, $30 + ld bc, PartyMon2 - PartyMon1 .asm_3699d ld a, [CurBattleMon] cp e diff --git a/data/battle_tower.asm b/data/battle_tower.asm index 044f351f8..e4b79c0d4 100644 --- a/data/battle_tower.asm +++ b/data/battle_tower.asm @@ -70,9 +70,11 @@ Function1f8000: ; 1f8000 Function1f8081: ; 1f8081 ld c, $3 +.loop push bc ld a, $1 call GetSRAMBank + .asm_1f8089 ld a, [$d800] dec a @@ -150,14 +152,15 @@ Function1f8081: ; 1f8081 ld h, d ld l, e pop de - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes pop de pop af ld [$d265], a pop bc dec c - jp nz, $4083 + jp nz, .loop + ld a, [$be51] ld [$be54], a ld a, [$be52] diff --git a/home.asm b/home.asm index 42ba751ac..872f14406 100644 --- a/home.asm +++ b/home.asm @@ -1696,20 +1696,21 @@ Function3786:: ; 3786 Function378b:: ; 378b ld a, [CurPartySpecies] call IsAPokemon - jr c, .asm_37ad + jr c, .not_pokemon + push hl ld de, VTiles2 predef GetFrontpic pop hl xor a ld [$ffad], a - ld bc, $0707 + lb bc, 7, 7 predef FillBox xor a ld [$c2c6], a ret -.asm_37ad +.not_pokemon xor a ld [$c2c6], a inc a diff --git a/items/item_effects.asm b/items/item_effects.asm index 617fc1618..3ddd8e0e6 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -2356,10 +2356,10 @@ XSpecial: ; f4c5 ; f504 Tablef504: ; f504 - db X_ATTACK, 0 - db X_DEFEND, 1 - db X_SPEED, 2 - db X_SPECIAL, 3 + db X_ATTACK, ATTACK + db X_DEFEND, DEFENSE + db X_SPEED, SPEED + db X_SPECIAL, SP_ATTACK ; f50c @@ -2367,21 +2367,23 @@ PokeFlute: ; f50c ld a, [IsInBattle] and a jr nz, .asm_f512 - .asm_f512 + xor a ld [$d002], a - ld b, $f8 + + ld b, $ff ^ SLP + ld hl, PartyMon1Status - call .asm_f554 + call .Functionf554 ld a, [IsInBattle] - cp $1 + cp WILD_BATTLE jr z, .asm_f52b ld hl, OTPartyMon1Status - call .asm_f554 - + call .Functionf554 .asm_f52b + ld hl, BattleMonStatus ld a, [hl] and b @@ -2390,6 +2392,7 @@ PokeFlute: ; f50c ld a, [hl] and b ld [hl], a + ld a, [$d002] and a ld hl, UnknownText_0xf56c @@ -2400,31 +2403,29 @@ PokeFlute: ; f50c ld a, [Danger] and $80 jr nz, .asm_f54e - .asm_f54e ld hl, UnknownText_0xf571 jp PrintText -.asm_f554 - ld de, $0030 - ld c, $6 +.Functionf554 + ld de, PartyMon2 - PartyMon1 + ld c, PARTY_LENGTH -.asm_f559 +.loop ld a, [hl] push af - and $7 + and SLP jr z, .asm_f564 - ld a, $1 + ld a, 1 ld [$d002], a - .asm_f564 pop af and b ld [hl], a add hl, de dec c - jr nz, .asm_f559 + jr nz, .loop ret ; f56c diff --git a/main.asm b/main.asm index 914aeb626..f21c68fe3 100644 --- a/main.asm +++ b/main.asm @@ -54741,9 +54741,9 @@ Function4d15b:: ; 4d15b .asm_4d170 ld de, TileMap - ld b, $12 + ld b, SCREEN_HEIGHT .asm_4d175 - ld c, $14 + ld c, SCREEN_WIDTH .asm_4d177 ld a, [hli] ld [de], a @@ -93036,7 +93036,7 @@ Functione16c7: ; e16c7 ; e16e2 Functione16e2: ; e16e2 - ld bc, $0404 + lb bc, 4, 4 .asm_e16e5 push bc .asm_e16e6 diff --git a/predef/cgb.asm b/predef/cgb.asm index 38f4e146d..cee9c139e 100644 --- a/predef/cgb.asm +++ b/predef/cgb.asm @@ -611,7 +611,7 @@ Function91e4: ; 91e4 .asm_91f5 ld hl, PartyMon1DVs - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld a, [CurPartyMon] call AddNTimes ld c, l From d6fbdfb8decf6231d6b43fbfcba63f9ce60308dc Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 23 Jun 2014 12:47:07 -0700 Subject: [PATCH 22/22] More comments and constants in move effect command code. Also add SUBSTATUS_IN_LOOP for multi-hit moves. --- battle/core.asm | 30 +++-- battle/effect_commands.asm | 208 +++++++++++++++++---------------- constants/battle_constants.asm | 1 + 3 files changed, 125 insertions(+), 114 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index 4586d2c9c..0ed4dc703 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -75,9 +75,9 @@ Function3c000: ; 3c000 ld a, [CurPartyMon] ld [CurBattleMon], a inc a - ld hl, PartyCount + ld hl, PartySpecies - 1 ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] ld [CurPartySpecies], a @@ -1463,7 +1463,6 @@ Function3c93c: ; 3c93c ld b, 1 jr z, .asm_3c9b8 ld b, 5 - .asm_3c9b8 ld a, [de] add b @@ -1479,7 +1478,6 @@ Function3c93c: ; 3c93c jr z, .asm_3c9d2 ld de, EnemyMonMoves - 1 ld hl, EnemyMonPP - .asm_3c9d2 inc de pop bc @@ -1491,6 +1489,7 @@ Function3c93c: ; 3c93c add hl, bc pop de pop bc + ld a, [$d265] cp [hl] jr nz, .asm_3c9f5 @@ -1499,14 +1498,12 @@ Function3c93c: ; 3c93c ld a, [PlayerSubStatus5] jr z, .asm_3c9ee ld a, [EnemySubStatus5] - .asm_3c9ee bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_3c9f5 ld a, [de] add b ld [de], a - .asm_3c9f5 callab GetUserItem ld a, [hl] @@ -2207,7 +2204,7 @@ Function3ce01: ; 3ce01 .asm_3ce16 ld hl, PlayerSubStatus3 - res 2, [hl] + res SUBSTATUS_IN_LOOP, [hl] xor a ld hl, EnemyDamageTaken ld [hli], a @@ -2287,8 +2284,8 @@ Function3ceaa: ; 3ceaa ld a, [PartyCount] ld b, a ld hl, PartyMon1 - ld c, $1 - ld d, $0 + ld c, 1 + ld d, 0 .asm_3ceb5 push hl push bc @@ -2322,9 +2319,10 @@ Function3ceaa: ; 3ceaa pop de dec b jr nz, .asm_3ceb5 + ld a, d - ld e, $0 - ld b, $6 + ld e, 0 + ld b, PARTY_LENGTH .asm_3cee1 srl a jr nc, .asm_3cee6 @@ -2801,7 +2799,7 @@ Function3d1aa: ; 3d1aa ld b, $0 predef FlagPredef ld hl, EnemySubStatus3 - res 2, [hl] + res SUBSTATUS_IN_LOOP, [hl] xor a ld [Danger], a ld hl, PlayerDamageTaken @@ -3471,14 +3469,14 @@ Function3d618: ; 3d618 ld a, b inc a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] dec a ld hl, BaseData + 7 ; type ld bc, $20 call AddNTimes - ld de, EnemyMonType1 + ld de, EnemyMonType ld bc, 2 ld a, BANK(BaseData) call FarCopyBytes @@ -3487,13 +3485,13 @@ Function3d618: ; 3d618 call SetPlayerTurn callab Function347c8 ld a, [$d265] - cp $b + cp 10 + 1 ; 1.0 + 0.1 jr nc, .asm_3d663 ld a, [BattleMonType2] ld [wPlayerMoveStruct + MOVE_TYPE], a callab Function347c8 ld a, [$d265] - cp $b + cp 10 + 1 ; 1.0 + 0.1 jr nc, .asm_3d663 pop bc ret diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index ab1113237..39b36c0af 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -1241,7 +1241,7 @@ BattleCommand05: ; 34631 .FocusEnergy ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVar - bit 2, a + bit SUBSTATUS_FOCUS_ENERGY, a jr z, .CheckCritical ; +1 critical level @@ -1595,8 +1595,8 @@ BattleCommanda3: ; 34833 call Function347c8 ld a, [$d265] and a - ld a, $a - jr nz, .asm_3484a ; 3483c $c + ld a, 10 ; 1.0 + jr nz, .asm_3484a call ResetDamage xor a ld [TypeModifier], a @@ -1618,75 +1618,86 @@ Function3484e: ; 3484e ld hl, PlayerUsedMoves ld a, [hl] and a - jr z, .asm_348b0 ; 0x3485b $53 - ld d, $4 - ld e, $0 -.asm_34861 + jr z, .unknown_moves + + ld d, NUM_MOVES + ld e, 0 +.loop ld a, [hli] and a - jr z, .asm_3489f ; 0x34863 $3a + jr z, .exit push hl dec a ld hl, Moves + MOVE_POWER call GetMoveAttr and a - jr z, .asm_3489b ; 0x3486e $2b + jr z, .next + inc hl call GetMoveByte - ld hl, EnemyMonType1 + ld hl, EnemyMonType call Function347d3 ld a, [$d265] - cp $b - jr nc, .asm_34895 ; 0x3487f $14 + cp 10 + 1 ; 1.0 + 0.1 + jr nc, .super_effective and a - jr z, .asm_3489b ; 0x34882 $17 - cp $a - jr nc, .asm_34891 ; 0x34886 $9 + jr z, .next + cp 10 ; 1.0 + jr nc, .neutral + +.not_very_effective ld a, e - cp $1 - jr nc, .asm_3489b ; 0x3488b $e - ld e, $1 - jr .asm_3489b ; 0x3488f $a -.asm_34891 - ld e, $2 - jr .asm_3489b ; 0x34893 $6 -.asm_34895 + cp 1 ; 0.1 + jr nc, .next + ld e, 1 + jr .next + +.neutral + ld e, 2 + jr .next + +.super_effective call Function34931 pop hl - jr .asm_348d7 ; 0x34899 $3c -.asm_3489b + jr .done + +.next pop hl dec d - jr nz, .asm_34861 ; 0x3489d $c2 -.asm_3489f + jr nz, .loop + +.exit ld a, e - cp $2 - jr z, .asm_348d7 ; 0x348a2 $33 + cp 2 + jr z, .done call Function34939 ld a, e and a - jr nz, .asm_348d7 ; 0x348a9 $2c + jr nz, .done call Function34939 - jr .asm_348d7 ; 0x348ae $27 -.asm_348b0 + jr .done + +.unknown_moves ld a, [BattleMonType1] ld b, a ld hl, EnemyMonType1 call Function347d3 ld a, [$d265] - cp $b - jr c, .asm_348c4 ; 0x348bf $3 + cp 10 + 1 ; 1.0 + 0.1 + jr c, .ok call Function34931 -.asm_348c4 +.ok ld a, [BattleMonType2] cp b - jr z, .asm_348d7 ; 0x348c8 $d + jr z, .ok2 call Function347d3 ld a, [$d265] - cp $b - jr c, .asm_348d7 ; 0x348d2 $3 + cp 10 + 1 ; 1.0 + 0.1 + jr c, .ok2 call Function34931 -.asm_348d7 +.ok2 + +.done call Function348de pop bc pop de @@ -1702,7 +1713,6 @@ Function348de: ; 348de ld a, [$d265] push af - .loop dec b jr z, .exit @@ -1722,27 +1732,31 @@ Function348de: ; 348de call GetMoveByte ld hl, BattleMonType1 call Function347d3 + ld a, [$d265] + ; immune and a jr z, .loop + ; not very effective inc c cp 10 jr c, .loop + ; neutral inc c inc c inc c inc c inc c - cp 10 jr z, .loop + ; super effective ld c, 100 jr .loop -.exit +.exit pop af ld [$d265], a @@ -1897,18 +1911,18 @@ Function34941: ; 34941 Function349f4: ; 349f4 ld a, [OTPartyCount] cp 2 - jr c, .asm_34a26 + jr c, .only_one ld d, a ld e, 0 - ld b, $20 + ld b, 1 << (PARTY_LENGTH - 1) ld c, 0 ld hl, OTPartyMon1HP -.asm_34a05 +.loop ld a, [CurOTMon] cp e - jr z, .asm_34a16 + jr z, .next push bc ld b, [hl] @@ -1916,13 +1930,13 @@ Function349f4: ; 349f4 ld a, [hld] or b pop bc - jr z, .asm_34a16 + jr z, .next ld a, c or b ld c, a -.asm_34a16 +.next srl b push bc ld bc, PartyMon2 - PartyMon1 @@ -1930,17 +1944,17 @@ Function349f4: ; 349f4 pop bc inc e dec d - jr nz, .asm_34a05 + jr nz, .loop ld a, c and a - jr nz, .asm_34a28 + jr nz, .more_than_one -.asm_34a26 +.only_one scf ret -.asm_34a28 +.more_than_one and a ret ; 34a2a @@ -2205,15 +2219,15 @@ Function34b20: ; 34b20 Function34b77: ; 34b77 push bc ld de, OTPartySpecies - ld b, $20 + ld b, 1 << (PARTY_LENGTH - 1) ld c, 0 ld hl, OTPartyMon1HP -.asm_34b82 +.loop ld a, [de] inc de cp $ff - jr z, .asm_34bac + jr z, .done push hl push bc @@ -2231,22 +2245,22 @@ Function34b77: ; 34b77 ld a, [hl] sbc b pop bc - jr nc, .asm_34ba1 + jr nc, .next ld a, b or c ld c, a -.asm_34ba1 +.next srl b pop hl push bc ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc - jr .asm_34b82 + jr .loop -.asm_34bac +.done ld a, c pop bc and c @@ -2339,7 +2353,7 @@ BattleCommand09: ; 34d32 call .UnleashedEnergy ret nz -; Perfect-accuracy moves + ; Perfect-accuracy moves ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_ALWAYS_HIT @@ -2893,9 +2907,9 @@ BattleCommand0d: ; 35023 call GetBattleVarAddr cp FLY - jr z, .asm_3504f ; 35032 $1b + jr z, .asm_3504f cp DIG - jr z, .asm_3504f ; 35036 $17 + jr z, .asm_3504f ; Move effect: inc hl @@ -2929,25 +2943,25 @@ BattleCommand0e: ; 3505e ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVar bit SUBSTATUS_ENDURE, a - jr z, .asm_35072 ; 35065 $b + jr z, .asm_35072 call BattleCommand4b ld b, $0 - jr nc, .asm_3508b ; 3506c $1d + jr nc, .asm_3508b ld b, $1 - jr .asm_3508b ; 35070 $19 + jr .asm_3508b .asm_35072 call GetOpponentItem ld a, b cp HELD_FOCUS_BAND ld b, $0 - jr nz, .asm_3508b ; 3507a $f + jr nz, .asm_3508b call BattleRandom cp c - jr nc, .asm_3508b ; 35080 $9 + jr nc, .asm_3508b call BattleCommand4b ld b, $0 - jr nc, .asm_3508b ; 35087 $2 + jr nc, .asm_3508b ld b, $2 .asm_3508b push bc @@ -2968,7 +2982,7 @@ BattleCommand0e: ; 3505e and a ret z dec a - jr nz, .asm_350ab ; 350a3 $6 + jr nz, .asm_350ab ld hl, EnduredText jp StdBattleTextBox @@ -3019,23 +3033,24 @@ Function350e4: ; 350e4 ld de, DoesntAffectText ld a, [TypeModifier] and $7f - jr z, .asm_35110 ; 0x350ef $1f + jr z, .asm_35110 ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_FUTURE_SIGHT ld hl, ButItFailedText ld de, ItFailedText - jr z, .asm_35110 ; 0x350fe $10 + jr z, .asm_35110 ld hl, AttackMissedText ld de, AttackMissed2Text ld a, [CriticalHit] cp $ff - jr nz, .asm_35110 ; 0x3510b $3 + jr nz, .asm_35110 ld hl, UnaffectedText .asm_35110 call Function35157 xor a ld [CriticalHit], a + ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_JUMP_KICK @@ -3046,17 +3061,15 @@ Function350e4: ; 350e4 ld hl, CurDamage ld a, [hli] ld b, [hl] + rept 3 srl a rr b - srl a - rr b - srl a - rr b + endr ld [hl], b dec hl ld [hli], a or b - jr nz, .asm_3513e ; 0x3513a $2 + jr nz, .asm_3513e inc a ld [hl], a .asm_3513e @@ -3106,7 +3119,7 @@ BattleCommand0f: ; 35175 dec a add a - ld hl, .ptrs + ld hl, .texts ld b, 0 ld c, a add hl, bc @@ -3122,9 +3135,9 @@ BattleCommand0f: ; 35175 ld c, 20 jp DelayFrames -.ptrs - dw CriticalHitText ; 'critical hit' - dw OneHitKOText ; 'one-hit ko' +.texts + dw CriticalHitText + dw OneHitKOText ; 35197 @@ -3134,10 +3147,9 @@ BattleCommandae: ; 35197 ld hl, PlayerRolloutCount ld a, [hBattleTurn] and a - jr z, .asm_351a2 + jr z, .ok ld hl, EnemyRolloutCount - -.asm_351a2 +.ok xor a ld [hl], a ret @@ -3149,7 +3161,7 @@ BattleCommandad: ; 351a5 ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr - bit 2, a + bit SUBSTATUS_IN_LOOP, a ret nz ; fallthrough @@ -3163,9 +3175,9 @@ BattleCommand10: ; 351ad and $7f cp 10 ; 1.0 ret z - ld hl, SuperEffectiveText ; 'super-effective' + ld hl, SuperEffectiveText jr nc, .print - ld hl, NotVeryEffectiveText ; 'not very effective' + ld hl, NotVeryEffectiveText .print jp StdBattleTextBox ; 351c0 @@ -3304,14 +3316,14 @@ BattleCommanda2: ; 3527b ld a, [hBattleTurn] and a ld a, [$c72b] - jr z, .asm_35290 ; 3528b $3 + jr z, .asm_35290 ld a, [$c72c] .asm_35290 and a - jr z, .asm_3529a ; 35291 $7 + jr z, .asm_3529a dec a add hl, bc - jr nc, .asm_35290 ; 35295 $f9 + jr nc, .asm_35290 ld hl, $ffff .asm_3529a ld a, h @@ -3440,11 +3452,11 @@ PlayerAttackDamage: ; 352e2 call GetDamageStatsCritical jr c, .lightball - ld hl, $c6c9 + ld hl, EnemyStats + SP_DEFENSE * 2 ld a, [hli] ld b, a ld c, [hl] - ld hl, $c6bc + ld hl, PlayerStats + SP_ATTACK * 2 .lightball ; Note: Returns player special attack at hl in hl. @@ -3730,7 +3742,7 @@ BattleCommanda1: ; 35461 and a jp nz, .asm_354ef ld a, [PlayerSubStatus3] - bit 2, a + bit SUBSTATUS_IN_LOOP, a jr nz, .asm_35482 ld c, 20 call DelayFrames @@ -3796,7 +3808,7 @@ BattleCommanda1: ; 35461 .asm_354ef ld a, [EnemySubStatus3] - bit 2, a + bit SUBSTATUS_IN_LOOP, a jr nz, .asm_35502 xor a @@ -7423,9 +7435,9 @@ BattleCommand24: ; 369b6 ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr - bit 2, [hl] + bit SUBSTATUS_IN_LOOP, [hl] jp nz, .asm_36a43 - set 2, [hl] + set SUBSTATUS_IN_LOOP, [hl] ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVarAddr ld a, [hl] @@ -7470,7 +7482,7 @@ BattleCommand24: ; 369b6 .asm_36a1e ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr - res 2, [hl] + res SUBSTATUS_IN_LOOP, [hl] call BattleCommanda8 jp EndMoveEffect .asm_36a2b @@ -7499,7 +7511,7 @@ BattleCommand24: ; 369b6 .asm_36a48 ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr - res 2, [hl] + res SUBSTATUS_IN_LOOP, [hl] ld hl, PlayerHitTimesText ld a, [hBattleTurn] diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index b6d663809..f5dbe0b42 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -101,6 +101,7 @@ SUBSTATUS_FLYING EQU 6 SUBSTATUS_UNDERGROUND EQU 5 SUBSTATUS_CHARGED EQU 4 SUBSTATUS_FLINCHED EQU 3 +SUBSTATUS_IN_LOOP EQU 2 SUBSTATUS_RAMPAGE EQU 1 SUBSTATUS_BIDE EQU 0