changed varlabels for multiply- and divide-func, renamed battletext-labels

This commit is contained in:
JimB16 2015-09-06 23:38:01 +02:00
parent c76a3c6ecd
commit 0d4c2776d9
8 changed files with 283 additions and 269 deletions

View File

@ -63,7 +63,7 @@ Function3c000: ; 3c000
xor a
ld [CurPartyMon], a
.asm_3c06b
call Function3d887
call CheckIfPartyHasPkmnToBattleWith
jr nz, .asm_3c076
ld hl, CurPartyMon
inc [hl]
@ -71,7 +71,7 @@ Function3c000: ; 3c000
.asm_3c076
ld a, [CurBattleMon]
ld [wc71a], a
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
inc a
@ -89,7 +89,7 @@ Function3c000: ; 3c000
call Function3d57a
call Function3da0d
call ResetPlayerStatLevels
call Function3f26d
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
@ -121,7 +121,7 @@ Function3c000: ; 3c000
Function3c0e5: ; 3c0e5
WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5
call Function30b4
ld a, [wd0ee]
and $c0
@ -131,15 +131,18 @@ Function3c0e5: ; 3c0e5
and a
ld hl, BattleText_WildFled
jr z, .asm_3c115
ld a, [wd0ee]
and $c0
ld [wd0ee], a
ld hl, BattleText_EnemyFled
call Function3d2e0
jr nc, .asm_3c115
ld hl, wcd2a
bit 4, [hl]
jr nz, .asm_3c118
ld hl, BattleText_LinkErrorBattleCanceled
.asm_3c115
@ -297,9 +300,9 @@ Function3c1d6: ; 3c1d6
.asm_3c21e
call Function3c8eb
call Function3c93c
call Function3ca8f
call Function3cafb
call Function3cb36
call HanleDefrost
call HandleSafeguard
call HandleScreens
call Function3de97
call Function3dcf9
call UpdateBattleMonInParty
@ -447,7 +450,7 @@ Function3c300: ; 3c300
ret
.asm_3c30f
call Function3c0e5
call WildFled_EnemyFled_LinkBattleCanceled
scf
ret
; 3c314
@ -936,7 +939,7 @@ GetMoveEffect: ; 3c5ec
Function3c5fe: ; 3c5fe
call Function309d
call Function3c543
jp c, Function3c0e5
jp c, WildFled_EnemyFled_LinkBattleCanceled
call SetEnemyTurn
ld a, $1
ld [wc70f], a
@ -1005,7 +1008,7 @@ Function3c664: ; 3c664
jr c, .asm_3c6be
call Function309d
call Function3c543
jp c, Function3c0e5
jp c, WildFled_EnemyFled_LinkBattleCanceled
call Function3c6de
call Function3d2e0
ret c
@ -1529,7 +1532,7 @@ Function3c93c: ; 3c93c
call SwitchTurnCore
call Function3ddc8
call SwitchTurnCore
ld hl, BattleText_0x80899
ld hl, BattleText_UserRecoveredPPUsing
jp StdBattleTextBox
; 3ca26
@ -1591,7 +1594,7 @@ Function3ca26: ; 3ca26
jp UpdateEnemyMonInParty
; 3ca8f
Function3ca8f: ; 3ca8f
HanleDefrost: ; 3ca8f
ld a, [$ffcb]
cp $1
jr z, .asm_3ca9a
@ -1649,7 +1652,7 @@ Function3ca8f: ; 3ca8f
jp StdBattleTextBox
; 3cafb
Function3cafb: ; 3cafb
HandleSafeguard: ; 3cafb
ld a, [$ffcb]
cp $1
jr z, .asm_3cb06
@ -1683,12 +1686,11 @@ Function3cafb: ; 3cafb
.asm_3cb2e
ld [hBattleTurn], a
ld hl, BattleText_0x808d2
ld hl, BattleText_SafeguardFaded
jp StdBattleTextBox
; 3cb36
Function3cb36: ; 3cb36
HandleScreens: ; 3cb36
ld a, [$ffcb]
cp 1
jr z, .Both
@ -1740,7 +1742,7 @@ FadeLightScreen: ; 3cb80
res SCREENS_LIGHT_SCREEN, [hl]
push hl
push de
ld hl, BattleText_0x808e7
ld hl, BattleText_PkmnnLightScreenFell
call StdBattleTextBox
pop de
pop hl
@ -1851,13 +1853,13 @@ endr
; 3cc2d
.WeatherMessages
dw BattleText_0x8091f
dw BattleText_0x80938
dw BattleText_0x80951
dw BattleText_RainContinuesToFall
dw BattleText_TheSunlightIsStrong
dw BattleText_TheSandstormRages
.WeatherEndedMessages
dw BattleText_0x80967
dw BattleText_0x8097a
dw BattleText_0x8098f
dw BattleText_TheRainStopped
dw BattleText_TheSunlightFaded
dw BattleText_TheSandstormSubsided
; 3cc39
Function3cc39: ; 3cc39
@ -2144,19 +2146,19 @@ Function3cd55: ; 3cd55
.asm_3cda4
call Function3d227
call Function3d2e0
jp c, Function3c0e5
jp c, WildFled_EnemyFled_LinkBattleCanceled
ld a, $1
ld [wd0ec], a
call Function3cf4a
jp z, Function3c0e5
jp z, WildFled_EnemyFled_LinkBattleCanceled
jr Function3cdca
.asm_3cdba
ld a, $1
ld [wd0ec], a
call Function3cf4a
jp z, Function3c0e5
jp z, WildFled_EnemyFled_LinkBattleCanceled
xor a
ld [wd0ec], a
ret
@ -2357,7 +2359,7 @@ Function3cef1: ; 3cef1
hlcoord 9, 7
lb bc, 5, 11
call ClearBox
ld hl, BattleText_0x80a75
ld hl, BattleText_PkmnFainted
jp StdBattleTextBox
; 3cf14
@ -2371,7 +2373,7 @@ Function3cf14: ; 3cf14
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
ld hl, BattleText_0x809a8
ld hl, BattleText_EnemyPkmnFainted
jp StdBattleTextBox
; 3cf35
@ -2455,16 +2457,18 @@ Function3cfa4: ; 3cfa4
ld a, b
call z, Function3d0ea
callab Battle_GetTrainerName
ld hl, BattleText_0x809da
ld hl, BattleText_EnemyWasDefeated
call StdBattleTextBox
call IsMobileBattle
jr z, .asm_3cff5
ld a, [InLinkBattle]
and a
ret nz
ld a, [InBattleTowerBattle]
bit 0, a
jr nz, .asm_3d006
call Function3ebd8
ld c, $28
call DelayFrames
@ -2785,14 +2789,14 @@ Function3d14e: ; 3d14e
.asm_3d190
call Function3d227
call Function3d2e0
jp c, Function3c0e5
jp c, WildFled_EnemyFled_LinkBattleCanceled
ld a, c
and a
ret nz
ld a, $1
ld [wd0ec], a
call Function3cf4a
jp z, Function3c0e5
jp z, WildFled_EnemyFled_LinkBattleCanceled
jp Function3cdca
; 3d1aa
@ -2841,7 +2845,7 @@ Function3d1f8: ; 3d1f8
and a
dec a
ret nz
ld hl, BattleText_0x80a83
ld hl, BattleText_UseNextMon
call StdBattleTextBox
.asm_3d20a
lb bc, 1, 7
@ -2898,7 +2902,7 @@ Function3d227: ; 3d227
.asm_3d26c
call ClearSprites
ld a, [CurBattleMon]
ld [wc71a], a
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
call Function3d581
@ -2910,7 +2914,7 @@ Function3d227: ; 3d227
call WriteBackup
call ClearSGB
call Function32f9
call Function3f26d
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
@ -2926,13 +2930,13 @@ Function3d227: ; 3d227
Function3d2b3: ; 3d2b3
ld a, [CurBattleMon]
ld [wc71a], a
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
call Function3d581
call Function3da0d
call ResetPlayerStatLevels
call Function3f26d
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
@ -2946,10 +2950,13 @@ Function3d2b3: ; 3d2b3
Function3d2e0: ; 3d2e0
ld a, [InLinkBattle]
cp $4
jr nz, .asm_3d2ef
jr nz, .asm_3d2ef ; It's not a mobile battle
ld a, [wcd2b]
and a
jr z, .asm_3d2ef
; We have a mobile battle and something else happened
scf
ret
@ -3001,7 +3008,7 @@ PickPartyMonInBattle: ; 3d33c
call Function3d313
call Function3d329
ret c
call Function3d887
call CheckIfPartyHasPkmnToBattleWith
jr z, .loop
xor a
ret
@ -3649,7 +3656,7 @@ Function3d74b: ; 3d74b
ld a, [CurPartyMon]
push af
callab Battle_GetTrainerName
ld hl, BattleText_0x80aca
ld hl, BattleText_EnemyIsAboutToUseWillPlayerChangePkmn
call StdBattleTextBox
lb bc, 1, 7
call PlaceYesNoBox
@ -3660,7 +3667,7 @@ Function3d74b: ; 3d74b
call PickSwitchMonInBattle
jr c, .asm_3d791
ld a, [CurBattleMon]
ld [wc71a], a
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
call ClearPalettes
@ -3807,13 +3814,14 @@ Function3d873: ; 3d873
; 3d887
Function3d887: ; 3d887
CheckIfPartyHasPkmnToBattleWith: ; 3d887
ld a, [CurPartyMon]
ld hl, PartyMon1HP
call GetPartyLocation
ld a, [hli]
or [hl]
ret nz
ld a, [wd264]
and a
jr nz, .asm_3d8b1
@ -3824,9 +3832,10 @@ Function3d887: ; 3d887
add hl, bc
ld a, [hl]
cp EGG
ld hl, BattleText_0x80b26
ld hl, BattleText_AnEGGCantBattle
jr z, .asm_3d8ae
ld hl, BattleText_0x80b0b
ld hl, BattleText_TheresNoWillToBattle
.asm_3d8ae
call StdBattleTextBox
@ -3891,29 +3900,30 @@ Function3d8b3: ; 3d8b3
inc a
ld [wd267], a
ld a, [hli]
ld [$ffb5], a
ld [hStringCmpString2 + 0], a
ld a, [hl]
ld [$ffb6], a
ld [hStringCmpString2 + 1], a
ld a, [de]
inc de
ld [$ffb1], a
ld [hStringCmpString1 + 0], a
ld a, [de]
ld [$ffb2], a
ld [hStringCmpString1 + 1], a
call Function30b4
ld de, $ffb5
ld hl, $ffb1
ld de, hStringCmpString2
ld hl, hStringCmpString1
ld c, $2
call StringCmp
jr nc, .asm_3d9a2
xor a
ld [hMultiplicand], a
ld a, $20
ld [hMultiplier], a
call Multiply
ld a, [$ffb5]
ld [hProduct], a
ld a, [$ffb6]
ld [hMultiplicand], a
ld a, [hProduct + 2]
ld [hDividend + 0], a
ld a, [hProduct + 3]
ld [hDividend + 1], a
ld a, [$ffb1]
ld b, a
ld a, [$ffb2]
@ -3923,10 +3933,10 @@ Function3d8b3: ; 3d8b3
rr a
and a
jr z, .asm_3d9a2
ld [hMultiplier], a
ld [hDivisor], a
ld b, $2
call Divide
ld a, [$ffb5]
ld a, [hQuotient + 1]
and a
jr nz, .asm_3d9a2
ld a, [wd267]
@ -3935,7 +3945,7 @@ Function3d8b3: ; 3d8b3
dec c
jr z, .asm_3d97a
ld b, $1e
ld a, [$ffb6]
ld a, [hQuotient + 2]
add b
ld [$ffb6], a
jr c, .asm_3d9a2
@ -3949,15 +3959,15 @@ Function3d8b3: ; 3d8b3
jr nc, .asm_3d9a2
ld a, $1
ld [wd0ec], a
ld hl, BattleText_0x80b3b
ld hl, BattleText_CantEscape2
jr .asm_3d995
.asm_3d98d
ld hl, BattleText_0x80ba0
ld hl, BattleText_CantEscape
jr .asm_3d995
.asm_3d992
ld hl, BattleText_0x80b49
ld hl, BattleText_TheresNoEscapeFromTrainerBattle
.asm_3d995
call StdBattleTextBox
@ -4002,7 +4012,7 @@ Function3d8b3: ; 3d8b3
call WaitPlaySFX
pop de
call WaitSFX
ld hl, BattleText_0x80b77
ld hl, BattleText_GotAwaySafely
call StdBattleTextBox
call WaitSFX
call Function309d
@ -4173,7 +4183,7 @@ endr
Function3db32: ; 3db32
call ClearSprites
ld a, [CurBattleMon]
ld [wc71a], a
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
call Function3d581
@ -4342,7 +4352,7 @@ Function3dc5b: ; 3dc5b
and a
jr z, .asm_3dc7e
ld hl, DoEnemyTurn
ld a, [wc71a]
ld a, [LastPlayerMon]
ld [CurBattleMon], a
.asm_3dc7e
ld a, BANK(DoPlayerTurn)
@ -4360,7 +4370,7 @@ Function3dc5b: ; 3dc5b
and a
jr z, .asm_3dcc0
ld a, [wc71a]
ld a, [LastPlayerMon]
call UpdateBattleMon
ld hl, BattleMonHP
ld a, [hli]
@ -4377,7 +4387,7 @@ Function3dc5b: ; 3dc5b
ld b, $0
predef FlagPredef
call Function3d43b
ld hl, BattleText_0x80a75
ld hl, BattleText_PkmnFainted
jr .asm_3dcdf
.asm_3dcc0
@ -4393,7 +4403,7 @@ Function3dc5b: ; 3dc5b
call PlaySFX
call WaitSFX
call Function3d432
ld hl, BattleText_0x809a8
ld hl, BattleText_EnemyPkmnFainted
.asm_3dcdf
call StdBattleTextBox
@ -5004,17 +5014,18 @@ DrawEnemyHUD: ; 3e043
ld hl, EnemyMonHP
ld a, [hli]
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, [hld]
ld [$ffb6], a
ld [hMultiplicand + 2], a
or [hl]
jr nz, .asm_3e0d1
ld c, a
ld e, a
ld d, HP_BAR_LENGTH
jp .asm_3e11a
.asm_3e0d1
.asm_3e0d1
xor a
ld [hMultiplicand], a
ld a, HP_BAR_LENGTH_PX
@ -5033,11 +5044,11 @@ DrawEnemyHUD: ; 3e043
rr a
srl b
rr a
ld [hMultiplier], a
ld a, [$ffb5]
ld [hDivisor], a
ld a, [hProduct + 2]
ld b, a
srl b
ld a, [$ffb6]
ld a, [hProduct + 3]
rr a
srl b
rr a
@ -5047,13 +5058,13 @@ DrawEnemyHUD: ; 3e043
.asm_3e105
ld a, [$ffb5]
ld [hProduct], a
ld [hDividend + 0], a
ld a, [$ffb6]
ld [hMultiplicand], a
ld [hDividend + 1], a
ld a, $2
ld b, a
call Divide
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld e, a
ld a, HP_BAR_LENGTH
ld d, a
@ -5389,10 +5400,10 @@ Function3e358: ; 3e358
jp Function3e299
.asm_3e381
call Function3d887
call CheckIfPartyHasPkmnToBattleWith
jp z, Function3e299
ld a, [CurBattleMon]
ld [wc71a], a
ld [LastPlayerMon], a
ld a, $2
ld [wd0ec], a
call ClearPalettes
@ -5438,7 +5449,7 @@ Function3e3ad: ; 3e3ad
jp c, .asm_3e3ca
cp $f
jr nz, .asm_3e3e9
call Function3c0e5
call WildFled_EnemyFled_LinkBattleCanceled
ret
.asm_3e3e9
@ -5487,7 +5498,7 @@ BattleMonEntrance: ; 3e40b
call Function3d581
call Function3da0d
call ResetPlayerStatLevels
call Function3f26d
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
@ -7029,25 +7040,25 @@ Function3ecb7: ; 3ecb7
ld b, 0
add hl, bc
xor a
ld [hMultiplicand], a
ld [hMultiplicand + 0], a
ld a, [de]
ld [$ffb5], a
ld [hMultiplicand + 1], a
inc de
ld a, [de]
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, [hli]
ld [hMultiplier], a
call Multiply
ld a, [hl]
ld [hMultiplier], a
ld [hDivisor], a
ld b, $4
call Divide
pop hl
; Cap at 999.
ld a, [$ffb6]
ld a, [hQuotient + 2]
sub 999 % $100
ld a, [$ffb5]
ld a, [hQuotient + 1]
sbc 999 / $100
jp c, .asm_3ed1e
@ -7411,15 +7422,15 @@ endr
dec c
jr nz, .asm_3ee7c
xor a
ld [hMultiplicand], a
ld [$ffb5], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
ld a, [EnemyMonBaseExp]
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, [EnemyMonLevel]
ld [hMultiplier], a
call Multiply
ld a, $7
ld [hMultiplier], a
ld [hDivisor], a
ld b, $4
call Divide
pop bc
@ -7961,36 +7972,37 @@ Function3f22c: ; 3f22c
ld a, $1
ld [hBGMapMode], a
ret
; 3f26d
Function3f26d: ; 3f26d
; SendOutMonText?
SendOutPkmnText: ; 3f26d
ld a, [InLinkBattle]
and a
jr z, .asm_3f27c
ld hl, UnknownText_0x3f2d1
ld a, [wd264]
ld hl, JumpText_GoPkmn ; If we're in a LinkBattle print just "Go <PlayerMon>"
ld a, [wd264] ; besides this variable is set. which stands for ???
and a
jr nz, .asm_3f2ce
.asm_3f27c
; Depending on the HP of the enemy Pkmn, the game prints a different text
ld hl, EnemyMonHP
ld a, [hli]
or [hl]
ld hl, UnknownText_0x3f2d1
ld hl, JumpText_GoPkmn
jr z, .asm_3f2ce
xor a
ld [hMultiplicand], a
ld [hMultiplicand + 0], a
ld hl, EnemyMonHP
ld a, [hli]
ld [wc6ea], a
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, [hl]
ld [wc6eb], a
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, $19
ld [hMultiplier], a
call Multiply
@ -8003,55 +8015,55 @@ Function3f26d: ; 3f26d
rr b
ld a, b
ld b, $4
ld [hMultiplier], a
ld [hDivisor], a
call Divide
ld a, [$ffb6]
ld hl, UnknownText_0x3f2d1
ld a, [hQuotient + 2]
ld hl, JumpText_GoPkmn
cp $46
jr nc, .asm_3f2ce
ld hl, UnknownText_0x3f2d8
ld hl, JumpText_DoItPkmn
cp $28
jr nc, .asm_3f2ce
ld hl, UnknownText_0x3f2df
ld hl, JumpText_GoForItPkmn
cp $a
jr nc, .asm_3f2ce
ld hl, UnknownText_0x3f2e6
ld hl, JumpText_YourFoesWeakGetmPkmn
.asm_3f2ce
jp BattleTextBox
; 3f2d1
UnknownText_0x3f2d1: ; 3f2d1
text_jump UnknownText_0x1c02df
JumpText_GoPkmn: ; 3f2d1
text_jump Text_GoPkmn
start_asm
jr Function3f2eb
jr Function_TextJump_BattleMonNick01
; 3f2d6
UnknownText_0x3f2d8: ; 3f2d8
text_jump UnknownText_0x1c02e6
JumpText_DoItPkmn: ; 3f2d8
text_jump Text_DoItPkmn
start_asm
jr Function3f2eb
jr Function_TextJump_BattleMonNick01
; 3f2dd
UnknownText_0x3f2df: ; 3f2df
text_jump UnknownText_0x1c02f0
JumpText_GoForItPkmn: ; 3f2df
text_jump Text_GoForItPkmn
start_asm
jr Function3f2eb
jr Function_TextJump_BattleMonNick01
; 3f2e4
UnknownText_0x3f2e6: ; 3f2e6
text_jump UnknownText_0x1c02fe
JumpText_YourFoesWeakGetmPkmn: ; 3f2e6
text_jump Text_YourFoesWeakGetmPkmn
start_asm
; 3f2eb
Function3f2eb: ; 3f2eb
ld hl, UnknownText_0x3f2ef
Function_TextJump_BattleMonNick01: ; 3f2eb
ld hl, TextJump_BattleMonNick01
ret
; 3f2ef
UnknownText_0x3f2ef: ; 3f2ef
text_jump UnknownText_0x1c0317
TextJump_BattleMonNick01: ; 3f2ef
text_jump Text_BattleMonNick01
db "@"
; 3f2f4
@ -8075,12 +8087,12 @@ Function3f2ff: ; 3f2ff
dec hl
ld a, [de]
sub b
ld [$ffb6], a
ld [hMultiplicand + 2], a
dec de
ld b, [hl]
ld a, [de]
sbc b
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, $19
ld [hMultiplier], a
call Multiply
@ -8093,11 +8105,11 @@ Function3f2ff: ; 3f2ff
rr b
ld a, b
ld b, $4
ld [hMultiplier], a
ld [hDivisor], a
call Divide
pop bc
pop de
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld hl, UnknownText_0x3f348
and a
ret z
@ -8260,10 +8272,10 @@ Function3f39c: ; 3f39c
.asm_3f40c
ld a, c
ld [hMultiplier], a
ld [hDivisor], a
ld b, $4
call Divide
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld b, a
ld a, $40
sub b

View File

@ -1458,37 +1458,37 @@ BattleCommand07: ; 346d2
ld [AttackMissed], a
xor a
.asm_34775
ld [$ffb7], a
ld [hMultiplier], a
add b
ld [TypeModifier], a
xor a
ld [$ffb4], a
ld [hMultiplicand + 0], a
ld hl, CurDamage
ld a, [hli]
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, [hld]
ld [$ffb6], a
ld [hMultiplicand + 2], a
call Multiply
ld a, [$ffb4]
ld a, [hProduct + 1]
ld b, a
ld a, [$ffb5]
ld a, [hProduct + 2]
or b
ld b, a
ld a, [$ffb6]
ld a, [hProduct + 3]
or b
jr z, .asm_347ab
ld a, $a
ld [$ffb7], a
ld [hDivisor], a
ld b, $4
call Divide
ld a, [$ffb5]
ld a, [hQuotient + 1]
ld b, a
ld a, [$ffb6]
ld a, [hQuotient + 2]
or b
jr nz, .asm_347ab
@ -1572,11 +1572,11 @@ Function347d3: ; 347d3
jr .asm_347e7
.asm_3480b
xor a
ld [$ffb3], a
ld [$ffb4], a
ld [$ffb5], a
ld [hDividend + 0], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
ld a, [hli]
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, [wd265]
ld [hMultiplier], a
call Multiply
@ -1586,7 +1586,7 @@ Function347d3: ; 347d3
ld b, 4
call Divide
pop bc
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld [wd265], a
jr .asm_347e7
@ -2305,12 +2305,12 @@ BattleCommand08: ; 34cfd
.go
; Start with the maximum damage.
xor a
ld [$ffb4], a
ld [hMultiplicand + 0], a
dec hl
ld a, [hli]
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, [hl]
ld [$ffb6], a
ld [hMultiplicand + 2], a
; Multiply by 85-100%...
.loop
@ -2319,20 +2319,20 @@ BattleCommand08: ; 34cfd
cp $d9 ; 85%
jr c, .loop
ld [$ffb7], a
ld [hMultiplier], a
call Multiply
; ...divide by 100%...
ld a, $ff ; 100%
ld [$ffb7], a
ld [hDivisor], a
ld b, $4
call Divide
; ...to get .85-1.00x damage.
ld a, [$ffb5]
ld a, [hQuotient + 1]
ld hl, CurDamage
ld [hli], a
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld [hl], a
ret
; 34d32
@ -2594,10 +2594,10 @@ BattleCommand09: ; 34d32
sub c
ld c, a
xor a
ld [$ffb4], a
ld [$ffb5], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
ld a, [hl]
ld [$ffb6], a
ld [hMultiplicand + 2], a
push hl
ld d, $2
@ -2611,15 +2611,15 @@ BattleCommand09: ; 34d32
add hl, bc
pop bc
ld a, [hli]
ld [$ffb7], a
ld [hMultiplier], a
call Multiply
ld a, [hl]
ld [$ffb7], a
ld [hDivisor], a
ld b, $4
call Divide
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld b, a
ld a, [$ffb5]
ld a, [hQuotient + 1]
or b
jr nz, .asm_34ea2
ld [$ffb5], a
@ -4344,18 +4344,18 @@ BattleCommand3f: ; 35726
.asm_3579d
xor a
ld [$ffb3], a
ld [$ffb4], a
ld [hMultiplicand + 0], a
ld a, [hli]
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, [hli]
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, $30
ld [$ffb7], a
ld [hMultiplier], a
call Multiply
ld a, [hli]
ld b, a
ld a, [hl]
ld [$ffb7], a
ld [hDivisor], a
ld a, b
and a
jr z, .asm_357d6
@ -4365,22 +4365,22 @@ BattleCommand3f: ; 35726
rr a
srl b
rr a
ld [$ffb7], a
ld a, [$ffb5]
ld [hDivisor], a
ld a, [hProduct + 2]
ld b, a
srl b
ld a, [$ffb6]
ld a, [hProduct + 3]
rr a
srl b
rr a
ld [$ffb6], a
ld [hDividend + 3], a
ld a, b
ld [$ffb5], a
ld [hDividend + 2], a
.asm_357d6
ld b, $4
call Divide
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld b, a
ld hl, .FlailPower
@ -6874,7 +6874,7 @@ rept 2
endr
xor a
ld [hMultiplicand], a
ld [hMultiplicand + 0], a
ld a, [de]
ld [hMultiplicand + 1], a
inc de
@ -9470,7 +9470,7 @@ BattleCommand60: ; 3784b
ld hl, EnemyMonHappiness
.ok
xor a
ld [hMultiplicand], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
ld a, [hl]
ld [hMultiplicand + 2], a
@ -9595,18 +9595,18 @@ BattleCommand63: ; 3790e
.asm_3791a
ld a, $ff
sub [hl]
ld [$ffb6], a
ld [hMultiplicand + 2], a
xor a
ld [$ffb4], a
ld [$ffb5], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
ld a, 10
ld [$ffb7], a
ld [hMultiplier], a
call Multiply
ld a, 25
ld [$ffb7], a
ld [hDivisor], a
ld b, 4
call Divide
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld d, a
pop bc
ret

View File

@ -31,13 +31,16 @@ hConnectedMapWidth EQU $ffb0
hPastLeadingZeroes EQU $ffb3
hDividend EQU $ffb3
hDivisor EQU $ffb7
hQuotient EQU $ffb4
hStringCmpString1 EQU $ffb1
hStringCmpString2 EQU $ffb5
hMultiplicand EQU $ffb4
hMultiplier EQU $ffb7
hProduct EQU $ffb3
hDividend EQU $ffb3 ; length in b register, before 'call Divide' (max 4 bytes)
hDivisor EQU $ffb7 ; 1 byte long
hQuotient EQU $ffb4 ; result (3 bytes long)
hMultiplicand EQU $ffb4 ; 3 bytes long
hMultiplier EQU $ffb7 ; 1 byte long
hProduct EQU $ffb3 ; result (4 bytes long)
hMathBuffer EQU $ffb8

View File

@ -273,7 +273,7 @@ endr
jp z, .asm_e98e
ld a, b
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld hl, EnemyMonHP
ld b, [hl]
@ -318,9 +318,9 @@ endr
sub c
ld [hMultiplier], a
xor a
ld [hProduct], a
ld [hMultiplicand], a
ld [$ffb5], a
ld [hDividend + 0], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
call Multiply
pop bc
@ -329,7 +329,7 @@ endr
ld b, $4
call Divide
ld a, [$ffb6]
ld a, [hQuotient + 2]
and a
jr nz, .statuscheck
ld a, 1

116
main.asm
View File

@ -4464,11 +4464,11 @@ Functionc699: ; c699
jr z, .zero
push hl
xor a
ld [hMultiplicand], a
ld [hMultiplicand + 0], a
ld a, b
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, c
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, $30
ld [hMultiplier], a
call Multiply
@ -4479,23 +4479,23 @@ Functionc699: ; c699
rr e
srl d
rr e
ld a, [$ffb5]
ld a, [hProduct + 2]
ld b, a
ld a, [$ffb6]
ld a, [hProduct + 3]
srl b
rr a
srl b
rr a
ld [$ffb6], a
ld [hDividend + 3], a
ld a, b
ld [$ffb5], a
ld [hDividend + 2], a
.divide
ld a, e
ld [hMultiplier], a
ld [hDivisor], a
ld b, $4
call Divide
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld e, a
pop hl
and a
@ -9390,22 +9390,22 @@ endr
inc d
.asm_e20f
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, d
ld [$ffb5], a
ld [hMultiplicand + 1], a
xor a
ld [hMultiplicand], a
ld [hMultiplicand + 0], a
ld a, [CurPartyLevel]
ld [hMultiplier], a
call Multiply
ld a, [hMultiplicand]
ld [hProduct], a
ld a, [$ffb5]
ld [hMultiplicand], a
ld a, [$ffb6]
ld [$ffb5], a
ld a, [hProduct + 1]
ld [hDividend + 0], a
ld a, [hProduct + 2]
ld [hDividend + 1], a
ld a, [hProduct + 3]
ld [hDividend + 2], a
ld a, $64
ld [hMultiplier], a
ld [hDivisor], a
ld a, $3
ld b, a
call Divide
@ -9415,11 +9415,11 @@ endr
jr nz, .asm_e24e
ld a, [CurPartyLevel]
ld b, a
ld a, [$ffb6]
ld a, [hQuotient + 2]
add b
ld [$ffb6], a
jr nc, .asm_e24c
ld a, [$ffb5]
ld a, [hQuotient + 1]
inc a
ld [$ffb5], a
@ -25877,11 +25877,11 @@ Function2509f: ; 2509f
Function250a9: ; 250a9
xor a
ld [hMultiplicand], a
ld [hMultiplicand + 0], a
ld a, [Buffer1]
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, [Buffer2]
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, [wd10c]
ld [hMultiplier], a
push hl
@ -35885,7 +35885,7 @@ TrainerType4: ; 3989d
; 3991b
Function3991b: ; 3991b (e:591b)
ld hl, $ffb3
ld hl, hMultiplicand - 1
xor a
rept 3
ld [hli], a
@ -35898,9 +35898,9 @@ endr
ld hl, wc686
xor a
ld [hli], a
ld a, [$ffb5]
ld a, [hProduct + 2]
ld [hli], a
ld a, [$ffb6]
ld a, [hProduct + 3]
ld [hl], a
ret
@ -39638,8 +39638,8 @@ Function48d4a: ; 48d4a (12:4d4a)
add c
ld [hld], a
xor a
ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
ld [$ffb5], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
ld a, [hl]
srl a
srl a
@ -39651,13 +39651,13 @@ Function48d4a: ; 48d4a (12:4d4a)
ld a, [hli]
and $f
add b
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, 100
ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
ld [hMultiplier], a
call Multiply
ld a, [$ffb5]
ld a, [hProduct + 2]
ld b, a
ld a, [$ffb6]
ld a, [hProduct + 3]
ld c, a
ld e, [hl]
add e
@ -39672,10 +39672,10 @@ Function48d4a: ; 48d4a (12:4d4a)
Function48d94: ; 48d94 (12:4d94)
xor a
ld [$ffb3], a
ld [hDividend + 0], a
ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
ld a, [hli]
ld [$ffb3], a
ld [hDividend + 0], a
ld a, [hl]
ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
ld a, 100
@ -39691,7 +39691,7 @@ Function48d94: ; 48d94 (12:4d94)
sla b
or b
ld [hld], a
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld c, 10
call SimpleDivide
sla b
@ -49389,11 +49389,11 @@ endr
ld b, $4
call Divide
ld a, [hMultiplicand]
ld a, [hMultiplicand + 0]
push af
ld a, [$ffb5]
ld a, [hMultiplicand + 1]
push af
ld a, [$ffb6]
ld a, [hMultiplicand + 2]
push af
call Function50eed
@ -49402,33 +49402,33 @@ endr
ld [hMultiplier], a
call Multiply
ld a, [hMultiplicand]
ld a, [hProduct + 1]
push af
ld a, [$ffb5]
ld a, [hProduct + 2]
push af
ld a, [$ffb6]
ld a, [hProduct + 3]
push af
ld a, [hli]
push af
xor a
ld [hMultiplicand], a
ld [$ffb5], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
ld a, d
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld a, [hli]
ld [hMultiplier], a
call Multiply
ld b, [hl]
ld a, [$ffb6]
ld a, [hProduct + 3]
sub b
ld [$ffb6], a
ld b, $0
ld a, [$ffb5]
ld a, [hProduct + 2]
sbc b
ld [$ffb5], a
ld a, [hMultiplicand]
ld a, [hProduct + 1]
sbc b
ld [hMultiplicand], a
@ -49482,10 +49482,10 @@ endr
Function50eed: ; 50eed
xor a
ld [hMultiplicand], a
ld [$ffb5], a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
ld a, d
ld [$ffb6], a
ld [hMultiplicand + 2], a
ld [hMultiplier], a
jp Multiply
; 50efa
@ -87396,12 +87396,12 @@ endr
.ApplyModifier
xor a
ld [hMultiplicand], a
ld [hMultiplicand + 0], a
ld hl, CurDamage
ld a, [hli]
ld [$ffb5], a
ld [hMultiplicand + 1], a
ld a, [hl]
ld [$ffb6], a
ld [hMultiplicand + 2], a
inc de
ld a, [de]
@ -87410,18 +87410,18 @@ endr
call Multiply
ld a, 10
ld [hMultiplier], a
ld [hDivisor], a
ld b, $4
call Divide
ld a, [hMultiplicand]
ld a, [hQuotient + 0]
and a
ld bc, $ffff
jr nz, .Update
ld a, [$ffb5]
ld a, [hQuotient + 1]
ld b, a
ld a, [$ffb6]
ld a, [hQuotient + 2]
ld c, a
or b
jr nz, .Update

View File

@ -113,7 +113,7 @@ BattleText_0x80880: ; 0x80880
prompt
; 0x80899
BattleText_0x80899: ; 0x80899
BattleText_UserRecoveredPPUsing: ; 0x80899
text "<USER>"
line "recovered PP using"
cont "@"
@ -129,13 +129,13 @@ BattleText_0x808b6: ; 0x808b6
prompt
; 0x808d2
BattleText_0x808d2: ; 0x808d2
BattleText_SafeguardFaded: ; 0x808d2
text "<USER>'s"
line "SAFEGUARD faded!"
prompt
; 0x808e7
BattleText_0x808e7: ; 0x808e7
BattleText_PkmnnLightScreenFell: ; 0x808e7
text_from_ram StringBuffer1
text " #MON's"
line "LIGHT SCREEN fell!"
@ -149,42 +149,42 @@ BattleText_0x80905: ; 0x80905
prompt
; 0x8091f
BattleText_0x8091f: ; 0x8091f
BattleText_RainContinuesToFall: ; 0x8091f
text "Rain continues to"
line "fall."
prompt
; 0x80938
BattleText_0x80938: ; 0x80938
BattleText_TheSunlightIsStrong: ; 0x80938
text "The sunlight is"
line "strong."
prompt
; 0x80951
BattleText_0x80951: ; 0x80951
BattleText_TheSandstormRages: ; 0x80951
text "The SANDSTORM"
line "rages."
prompt
; 0x80967
BattleText_0x80967: ; 0x80967
BattleText_TheRainStopped: ; 0x80967
text "The rain stopped."
prompt
; 0x8097a
BattleText_0x8097a: ; 0x8097a
BattleText_TheSunlightFaded: ; 0x8097a
text "The sunlight"
line "faded."
prompt
; 0x8098f
BattleText_0x8098f: ; 0x8098f
BattleText_TheSandstormSubsided: ; 0x8098f
text "The SANDSTORM"
line "subsided."
prompt
; 0x809a8
BattleText_0x809a8: ; 0x809a8
BattleText_EnemyPkmnFainted: ; 0x809a8
text "Enemy @"
text_from_ram EnemyMonNick
text ""
@ -199,7 +199,7 @@ GotMoneyForWinningText:
line "for winning!"
prompt
BattleText_0x809da: ; 0x809da
BattleText_EnemyWasDefeated: ; 0x809da
text "<ENEMY>"
line "was defeated!"
prompt
@ -234,14 +234,14 @@ BattleText_0x80a4f: ; 0x80a4f
prompt
; 0x80a75
BattleText_0x80a75: ; 0x80a75
BattleText_PkmnFainted: ; 0x80a75
text_from_ram BattleMonNick
text ""
line "fainted!"
prompt
; 0x80a83
BattleText_0x80a83: ; 0x80a83
BattleText_UseNextMon: ; 0x80a83
text "Use next #MON?"
done
; 0x80a93
@ -259,7 +259,7 @@ LostAgainstText: ; 0x80ab9
prompt
; 0x80aca
BattleText_0x80aca: ; 0x80aca
BattleText_EnemyIsAboutToUseWillPlayerChangePkmn: ; 0x80aca
text "<ENEMY>"
line "is about to use"
cont "@"
@ -280,34 +280,32 @@ BattleText_EnemySentOut: ; 0x80af8
done
; 0x80b0b
BattleText_0x80b0b: ; 0x80b0b
BattleText_TheresNoWillToBattle: ; 0x80b0b
text "There's no will to"
line "battle!"
prompt
; 0x80b26
BattleText_0x80b26: ; 0x80b26
BattleText_AnEGGCantBattle: ; 0x80b26
text "An EGG can't"
line "battle!"
prompt
; 0x80b3b
BattleText_0x80b3b: ; 0x80b3b
BattleText_CantEscape2: ; 0x80b3b
text "Can't escape!"
prompt
; 0x80b49
BattleText_0x80b49: ; 0x80b49
BattleText_TheresNoEscapeFromTrainerBattle: ; 0x80b49
text "No! There's no"
line "running from a"
cont "trainer battle!"
prompt
; 0x80b77
BattleText_0x80b77: ; 0x80b77
BattleText_GotAwaySafely: ; 0x80b77
text "Got away safely!"
prompt
; 0x80b89
BattleText_0x80b89: ; 0x80b89
text "<USER>"
@ -318,7 +316,7 @@ BattleText_0x80b89: ; 0x80b89
prompt
; 0x80ba0
BattleText_0x80ba0: ; 0x80ba0
BattleText_CantEscape: ; 0x80ba0
text "Can't escape!"
prompt
; 0x80bae

View File

@ -129,29 +129,29 @@ UnknownText_0x1c02c9: ; 1c02c9
prompt
; 1c02df
UnknownText_0x1c02df: ; 1c02df
Text_GoPkmn: ; 1c02df
text "Go! @"
db "@"
; 1c02e6
UnknownText_0x1c02e6: ; 1c02e6
Text_DoItPkmn: ; 1c02e6
text "Do it! @"
db "@"
; 1c02f0
UnknownText_0x1c02f0: ; 1c02f0
Text_GoForItPkmn: ; 1c02f0
text "Go for it,"
line "@"
db "@"
; 1c02fe
UnknownText_0x1c02fe: ; 1c02fe
Text_YourFoesWeakGetmPkmn: ; 1c02fe
text "Your foe's weak!"
line "Get'm, @"
db "@"
; 1c0317
UnknownText_0x1c0317: ; 1c0317
Text_BattleMonNick01: ; 1c0317
text_from_ram BattleMonNick
text "!"
done

View File

@ -809,6 +809,7 @@ wc716:: ds 1
wc717:: ds 1
wc718:: ds 1
wc719:: ds 1
LastPlayerMon:: ; c71a
wc71a:: ds 1
LastPlayerMove:: ; c71b
ds 1