diff options
Diffstat (limited to 'engine/move_mon.asm')
-rwxr-xr-x | engine/move_mon.asm | 102 |
1 files changed, 54 insertions, 48 deletions
diff --git a/engine/move_mon.asm b/engine/move_mon.asm index aae1390b..dfa51a8e 100755 --- a/engine/move_mon.asm +++ b/engine/move_mon.asm @@ -11,7 +11,7 @@ TryAddMonToParty:: ; d892 (3:5892) ret nc ld [de], a ld a, [de] - ld [hMoveMon], a + ldh [hMoveMon], a add e ld e, a jr nc, .asm_d8ad @@ -28,7 +28,7 @@ TryAddMonToParty:: ; d892 (3:5892) jr z, .asm_d8c2 ld hl, wOTPartyMonOT .asm_d8c2 - ld a, [hMoveMon] + ldh a, [hMoveMon] dec a call SkipNames ld d, h @@ -43,7 +43,7 @@ TryAddMonToParty:: ; d892 (3:5892) ld [wd151], a call GetPokemonName ld hl, wPartyMonNicknames - ld a, [hMoveMon] + ldh a, [hMoveMon] dec a call SkipNames ld d, h @@ -58,7 +58,7 @@ TryAddMonToParty:: ; d892 (3:5892) jr z, .asm_d903 ld hl, wOTPartyMon1 .asm_d903 - ld a, [hMoveMon] + ldh a, [hMoveMon] dec a ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes @@ -117,28 +117,34 @@ GeneratePartyMonStats: inc de inc de inc de + + ; Initialize ID. ld a, [wPlayerID] ld [de], a inc de ld a, [wPlayerID + 1] ld [de], a inc de + + ; Initialize Exp. push de ld a, [wCurPartyLevel] ld d, a - callfar CalcExpAtLevel ; 14:5550 + callfar CalcExpAtLevel pop de - ld a, [hPrintNum2] + ldh a, [hProduct + 1] ld [de], a inc de - ld a, [hStringCmpString2] + ldh a, [hProduct + 2] ld [de], a inc de - ld a, [hPrintNum4] + ldh a, [hProduct + 3] ld [de], a inc de + + ; Initialize stat experience. xor a - ld b, $a + ld b, MON_DVS - MON_STAT_EXP .asm_d980 ld [de], a inc de @@ -215,10 +221,10 @@ GeneratePartyMonStats: ld c, a ld b, $0 call CalcMonStatC - ld a, [hStringCmpString2] + ldh a, [hProduct + 2] ld [de], a inc de - ld a, [hPrintNum4] + ldh a, [hProduct + 3] ld [de], a inc de jr .asm_da2f @@ -787,11 +793,11 @@ Functiondd6a: ; dd6a (3:5d6a) pop bc ld hl, $8 add hl, bc - ld a, [hQuotient] + ldh a, [hQuotient] ld [hli], a - ld a, [hPrintNum3] + ldh a, [hPrintNum3] ld [hli], a - ld a, [hPrintNum4] + ldh a, [hPrintNum4] ld [hl], a and a ret @@ -886,13 +892,13 @@ SendMonIntoBox: ; de74 (3:5e74) ld d, a callfar CalcExpAtLevel pop de - ld a, [hQuotient] + ldh a, [hQuotient] ld [de], a inc de - ld a, [hPrintNum3] + ldh a, [hPrintNum3] ld [de], a inc de - ld a, [hPrintNum4] + ldh a, [hPrintNum4] ld [de], a inc de xor a @@ -1256,10 +1262,10 @@ CalcMonStats: ; e16d .loop inc c call CalcMonStatC - ld a, [hMultiplicand + 1] + ldh a, [hMultiplicand + 1] ld [de], a inc de - ld a, [hMultiplicand + 2] + ldh a, [hMultiplicand + 2] ld [de], a inc de ld a, c @@ -1304,22 +1310,22 @@ CalcMonStatC: ; e181 add hl, bc .sqrt_loop xor a - ld [hMultiplicand], a - ld [hMultiplicand + 1], a + ldh [hMultiplicand], a + ldh [hMultiplicand + 1], a inc b ld a, b cp $ff jr z, .no_stat_exp - ld [hMultiplicand + 2], a - ld [hMultiplier], a + ldh [hMultiplicand + 2], a + ldh [hMultiplier], a call Multiply ld a, [hld] ld d, a - ld a, [hProduct + 3] + ldh a, [hProduct + 3] sub d ld a, [hli] ld d, a - ld a, [hProduct + 2] + ldh a, [hProduct + 2] sbc d jr c, .sqrt_loop .no_stat_exp @@ -1408,22 +1414,22 @@ CalcMonStatC: ; e181 inc d .no_overflow_2 - ld [hMultiplicand + 2], a + ldh [hMultiplicand + 2], a ld a, d - ld [hMultiplicand + 1], a + ldh [hMultiplicand + 1], a xor a - ld [hMultiplicand + 0], a + ldh [hMultiplicand + 0], a ld a, [wCurPartyLevel] - ld [hMultiplier], a + ldh [hMultiplier], a call Multiply - ld a, [hProduct + 1] - ld [hDividend + 0], a - ld a, [hProduct + 2] - ld [hDividend + 1], a - ld a, [hProduct + 3] - ld [hDividend + 2], a + ldh a, [hProduct + 1] + ldh [hDividend + 0], a + ldh a, [hProduct + 2] + ldh [hDividend + 1], a + ldh a, [hProduct + 3] + ldh [hDividend + 2], a ld a, 100 - ld [hDivisor], a + ldh [hDivisor], a ld a, 3 ld b, a call Divide @@ -1433,42 +1439,42 @@ CalcMonStatC: ; e181 jr nz, .not_hp ld a, [wCurPartyLevel] ld b, a - ld a, [hQuotient + 2] + ldh a, [hQuotient + 2] add b - ld [hMultiplicand + 2], a + ldh [hMultiplicand + 2], a jr nc, .no_overflow_3 - ld a, [hQuotient + 1] + ldh a, [hQuotient + 1] inc a - ld [hMultiplicand + 1], a + ldh [hMultiplicand + 1], a .no_overflow_3 ld a, 10 .not_hp ld b, a - ld a, [hQuotient + 2] + ldh a, [hQuotient + 2] add b - ld [hMultiplicand + 2], a + ldh [hMultiplicand + 2], a jr nc, .no_overflow_4 - ld a, [hQuotient + 1] + ldh a, [hQuotient + 1] inc a - ld [hMultiplicand + 1], a + ldh [hMultiplicand + 1], a .no_overflow_4 - ld a, [hQuotient + 1] + ldh a, [hQuotient + 1] cp (1000 / $100) + 1 jr nc, .max_stat cp 1000 / $100 jr c, .stat_value_okay - ld a, [hQuotient + 2] + ldh a, [hQuotient + 2] cp 1000 % $100 jr c, .stat_value_okay .max_stat ld a, 999 / $100 - ld [hMultiplicand + 1], a + ldh [hMultiplicand + 1], a ld a, 999 % $100 - ld [hMultiplicand + 2], a + ldh [hMultiplicand + 2], a .stat_value_okay pop bc |