rename: 4 stat calculation helpers in src/22630.{c,h}

func_80022338 → CalculateAllStats       computes level + all 5
                              battle stats (HP, Atk, Def,
                              Spd, Spc) for a runtime mon.
                              Uses CalculateStatValue and
                              func_800226C0 (level-from-exp).

  func_8002240C → FindStatDVThreshold   iterates DVs (i += 2) to
                              find the level at which the stat
                              reaches a target value. Used to
                              estimate a level from stats.

  func_800224B8 → ComputeExpToLevel     switch on
                              gSpeciesBaseStats[species].unk_13
                              (growth rate 0..5: medium fast,
                              slow, medium slow, fast, erratic,
                              fluctuating) and computes the exp
                              needed to reach the given level.

  func_800220C4 → InitStatCalc          empty stub. Previously
                              unnamed 'func_800220C4 (void) {}'.
                              Renamed for consistency; body
                              remains empty.

Touches src/232C0.c, src/2C1C0.c, src/26820.c, src/fragments/
{24,41}/* (callers) and src/22630.{c,h}.

Still matching: md5 ed1378bc… (verified by `make`)
This commit is contained in:
csaldiasdev
2026-07-06 13:59:02 -04:00
parent 069e111b60
commit 59ebd23ee8
7 changed files with 20 additions and 20 deletions

View File

@@ -201,7 +201,7 @@ u16 Isqrt(u16 arg0) {
return i;
}
void func_800220C4(void) {
void InitStatCalc(void) {
}
u16 GetPokemonDV(s32 statId, u16 dvBits) { //GetPokemonDV
@@ -279,7 +279,7 @@ u32 CalculateStatValue(s32 statId, s32 speciesId, u16 statModifier, u16 level, u
return statValue;
}
void func_80022338(unk_func_80026268_arg0* arg0) {
void CalculateAllStats(unk_func_80026268_arg0* arg0) {
arg0->unk_24 = func_800226C0(arg0->unk_00.unk_00, arg0->unk_10);
arg0->unk_26 = CalculateStatValue(1, arg0->unk_00.unk_00, arg0->unk_14, arg0->unk_24, arg0->unk_1E);
arg0->unk_28 = CalculateStatValue(2, arg0->unk_00.unk_00, arg0->unk_16, arg0->unk_24, arg0->unk_1E);
@@ -288,7 +288,7 @@ void func_80022338(unk_func_80026268_arg0* arg0) {
arg0->unk_2E = CalculateStatValue(5, arg0->unk_00.unk_00, arg0->unk_1C, arg0->unk_24, arg0->unk_1E);
}
u16 func_8002240C(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4) {
u16 FindStatDVThreshold(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4) {
s32 i;
s32 tmp;
@@ -302,7 +302,7 @@ u16 func_8002240C(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4) {
return i;
}
u32 func_800224B8(s32 arg0, u16 arg1) {
u32 ComputeExpToLevel(s32 arg0, u16 arg1) {
u32 sp4;
switch (gSpeciesBaseStats[arg0].unk_13) {

View File

@@ -227,11 +227,11 @@ void DecodeFullMonRecord(unk_func_80026268_arg0* arg0, unk_D_800AC910_050_9AC_00
void EncodeMonRecord(unk_func_80026268_arg0* arg0, unk_D_800AE4E8_004_1_000_010_000* arg1);
void EncodeFullMonRecord(unk_func_88205880_00D0* arg0, unk_D_800AC910_050_9AC_008* arg1);
u16 Isqrt(u16 arg0);
void func_800220C4(void);
void InitStatCalc(void);
u16 func_800220CC(s32 arg0, u16 arg1);
u32 CalculateStatValue(s32 statId, s32 speciesId, u16 statModifier, u16 level, u16 dvBits);
void func_80022338(unk_func_80026268_arg0* arg0);
u16 func_8002240C(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4);
u32 func_800224B8(s32 arg0, u16 arg1);
void CalculateAllStats(unk_func_80026268_arg0* arg0);
u16 FindStatDVThreshold(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4);
u32 ComputeExpToLevel(s32 arg0, u16 arg1);
#endif // _6BC0_H_

View File

@@ -30,7 +30,7 @@ u16 func_800226C0(s32 arg0, u32 arg1) {
s32 i;
for (i = 1; i < 100; i++) {
if (arg1 < func_800224B8(arg0, i + 1)) {
if (arg1 < ComputeExpToLevel(arg0, i + 1)) {
break;
}
}
@@ -44,7 +44,7 @@ void func_80022734(unk_func_80026268_arg0* arg0) {
s32 var_v0;
s32 idx;
func_80022338(arg0);
CalculateAllStats(arg0);
arg0->unk_05 = 0;
arg0->unk_02 = arg0->unk_26;
@@ -929,7 +929,7 @@ void func_80024624(unk_func_80026268_arg0* arg0, s32 arg1, s32 arg2) {
unk_D_800AC910_050_9AC* ptr2 = &D_800AC910[arg1].unk_50->unk_9AC;
DecodeFullMonRecord(arg0, &ptr2->unk_008[arg2]);
func_80022338(arg0);
CalculateAllStats(arg0);
arg0->unk_52 = 0;
arg0->unk_53 = 0;
@@ -954,7 +954,7 @@ void func_800247C4(unk_func_80026268_arg0* arg0, s32 arg1, s32 arg2, s32 arg3) {
if (sp2C != NULL) {
DecodeMonRecord(arg0, &sp2C->unk_016[arg3]);
func_80022338(arg0);
CalculateAllStats(arg0);
arg0->unk_52 = 0;
arg0->unk_53 = 0;

View File

@@ -183,7 +183,7 @@ void func_80025F50(s32 arg0, s32 arg1) {
void func_80026268(unk_func_80026268_arg0* arg0, unk_D_800AE4E8_004_1_000_010* arg1) {
DecodeMonRecord(arg0, arg1);
func_80022338(arg0);
CalculateAllStats(arg0);
arg0->unk_52 = 0;
arg0->unk_53 = 0;

View File

@@ -166,9 +166,9 @@ unk_func_80026268_arg0* func_8002B924(unk_func_80026268_arg0* arg0, u8 arg1, s16
arg0->unk_52 = 0;
arg0->unk_53 = 0;
arg0->unk_10 = func_800224B8(arg1, arg2);
arg0->unk_10 = ComputeExpToLevel(arg1, arg2);
func_80022338(arg0);
CalculateAllStats(arg0);
arg0->unk_02 = arg0->unk_26;
@@ -352,8 +352,8 @@ void func_8002BEC8(s16 arg0) {
for (i = 0; i < D_800AE540.unk_1194[1].unk_08[0]->unk_002; i++, var_s1++, var_s0++) {
var_s0->unk_24 = arg0;
var_s0->unk_10 = func_800224B8(var_s0->unk_00.unk_00, arg0);
func_80022338(var_s0);
var_s0->unk_10 = ComputeExpToLevel(var_s0->unk_00.unk_00, arg0);
CalculateAllStats(var_s0);
var_s0->unk_02 = var_s0->unk_26;
*var_s1 = *var_s0;

View File

@@ -1752,8 +1752,8 @@ s32 func_883058C4(unk_func_8830867C_02C_0CC_000* arg0, unk_func_8830867C_04C_030
sp34 = 0;
*arg2 = temp_s0->unk_24;
sp3A = temp_s0->unk_26;
*(s32*)&temp_s0->unk_10 = func_800224B8(temp_s0->unk_00, (temp_s0->unk_24 + 1) & 0xFFFF);
func_80022338(&arg0->unk_08);
*(s32*)&temp_s0->unk_10 = ComputeExpToLevel(temp_s0->unk_00, (temp_s0->unk_24 + 1) & 0xFFFF);
CalculateAllStats(&arg0->unk_08);
temp_s0->unk_02 = (temp_s0->unk_02 + temp_s0->unk_26) - sp3A;
*arg3 = temp_s0->unk_24;
break;

View File

@@ -435,7 +435,7 @@ void func_82F0D6D0(s16 arg0, unk_func_80026268_arg0* arg1) {
if (func_82F0D64C(sp2E, arg1->unk_30) != 0) {
CopyMonName(arg1->unk_30, func_82F00020(arg1->unk_00.unk_00));
}
func_80022338(arg1);
CalculateAllStats(arg1);
func_800256F4(arg0, arg1->unk_00.unk_00, 3);
}
}