Use mateon's func names

This commit is contained in:
Kermalis 2024-11-05 09:57:30 -05:00
parent 25efe1ca67
commit 3aee3628f4
5 changed files with 92 additions and 92 deletions

View File

@ -496,7 +496,7 @@ _0806EE7C:
adds r0, r5, 0
adds r1, r5, 0
adds r2, r4, 0
bl sub_800A3F0
bl F48_16_SDiv
mov r1, r10
ldrb r6, [r1, 0x6]
mov r8, r5
@ -512,7 +512,7 @@ _0806EE7C:
str r0, [r2, 0x4]
adds r0, r7, 0
adds r1, r7, 0
bl sub_800A34C
bl F48_16_SMul
mov r2, r10
ldrb r0, [r2, 0x9]
lsls r0, 1
@ -555,7 +555,7 @@ _0806EF20:
adds r0, r7, 0
adds r1, r7, 0
adds r2, r4, 0
bl sub_800A3F0
bl F48_16_SDiv
ldr r0, [sp, 0x28]
_0806EF60:
movs r1, 0x3
@ -591,7 +591,7 @@ _0806EF60:
adds r0, r6, 0
adds r1, r6, 0
adds r2, r6, 0
bl sub_800A34C
bl F48_16_SMul
mov r0, r8
str r0, [sp, 0x40]
ldr r0, _0806F09C
@ -600,7 +600,7 @@ _0806EF60:
adds r0, r6, 0
adds r1, r6, 0
adds r2, r5, 0
bl sub_800A34C
bl F48_16_SMul
adds r0, r5, 0
movs r1, 0x2
bl sub_800A020
@ -608,7 +608,7 @@ _0806EF60:
adds r0, r4, 0
adds r1, r4, 0
adds r2, r5, 0
bl sub_800A34C
bl F48_16_SMul
ldr r1, [sp, 0xC]
adds r0, r5, 0
bl sub_800A020
@ -727,7 +727,7 @@ _0806F0BC:
ldr r2, _0806F160
adds r0, r7, 0
adds r1, r7, 0
bl sub_800A34C
bl F48_16_SMul
ldr r0, _0806F164
ldr r0, [r0]
movs r3, 0xB3
@ -748,7 +748,7 @@ _0806F0EE:
ldr r2, _0806F160
adds r0, r7, 0
adds r1, r7, 0
bl sub_800A34C
bl F48_16_SMul
ldr r0, _0806F164
ldr r0, [r0]
ldr r1, _0806F168
@ -855,7 +855,7 @@ _0806F1DA:
ldr r2, _0806F2B8
adds r0, r7, 0
adds r1, r7, 0
bl sub_800A34C
bl F48_16_SMul
movs r0, 0x1
ldr r3, [sp, 0xB0]
strb r0, [r3, 0xD]
@ -871,7 +871,7 @@ _0806F1F4:
mov r0, r8
mov r1, r8
adds r2, r7, 0
bl sub_800A34C
bl F48_16_SMul
ldr r0, [r5]
movs r1, 0xAE
lsls r1, 1
@ -885,7 +885,7 @@ _0806F1F4:
mov r0, r8
mov r1, r8
adds r2, r4, 0
bl sub_800A34C
bl F48_16_SMul
mov r0, r8
bl sub_800A048
ldr r1, [r5]
@ -905,7 +905,7 @@ _0806F1F4:
mov r0, r8
mov r1, r8
adds r2, r7, 0
bl sub_800A34C
bl F48_16_SMul
add r4, sp, 0x68
adds r0, r4, 0
movs r1, 0x64
@ -913,7 +913,7 @@ _0806F1F4:
adds r0, r7, 0
adds r1, r4, 0
adds r2, r7, 0
bl sub_800A34C
bl F48_16_SMul
adds r0, r7, 0
bl sub_800A048
ldr r1, [r5]
@ -984,7 +984,7 @@ _0806F2DE:
adds r0, r4, 0
adds r1, r4, 0
add r2, sp, 0x4
bl sub_800A34C
bl F48_16_SMul
adds r0, r4, 0
bl sub_800A048
str r0, [r7]

View File

@ -18,16 +18,6 @@ typedef s32 s24_8;
*/
typedef u32 u24_8;
/**
* This function computes the sine of the absolute value of `x` using a lookup
* table. The period of the function is `4096`, and the range is `[-256, 256]`.
*
* @param[in] x The value to get the sine of.
*
* @return `floor(256 * sin(pi * abs(x) / 2048))` as a signed 32-bit integer.
*/
s32 sin_abs_4096(s32 x);
/**
* This function computes the cosine of of `x` using a lookup table. The period of
* the function is `4096`, and the range is `[-256, 256]`.
@ -40,6 +30,16 @@ s32 sin_abs_4096(s32 x);
*/
s32 cos_4096(s32 x);
/**
* This function computes the sine of the absolute value of `x` using a lookup
* table. The period of the function is `4096`, and the range is `[-256, 256]`.
*
* @param[in] x The value to get the sine of.
*
* @return `floor(256 * sin(pi * abs(x) / 2048))` as a signed 32-bit integer.
*/
s32 sin_abs_4096(s32 x);
/**
* This function multiplies two signed 24.8 fixed-point numbers.
*
@ -50,9 +50,10 @@ s32 cos_4096(s32 x);
*/
s24_8 s24_8_mul(s24_8 x, s24_8 y);
bool8 F48_16_IsZero(unkStruct_80943A8 *a);
void F48_16_SMul(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b);
s32 sub_8009FB8(s32 x, s32 y);
void sub_800A020(unkStruct_80943A8 *, u32);
bool8 sub_800A2A0(unkStruct_80943A8 *a);
void sub_800A34C(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b);
#endif // GUARD_MATH_H

View File

@ -336,7 +336,7 @@ void sub_8074094(Entity *entity)
sp8.s0 = 0;
sp8.s4 = 6554;
sub_800A34C(&sp10, &sp8, &gUnknown_80F54F4[r4]);
F48_16_SMul(&sp10, &sp8, &gUnknown_80F54F4[r4]);
if (entityInfo->unk153 > 1)
sp10.s4 += (gUnknown_80F60DC[entityInfo->unk153] << 0x10);
entityInfo->unk153 = 0;

View File

@ -4,12 +4,11 @@
#include "data/math.h"
static void F48_16_UDiv(unkStruct_80943A8 *, unkStruct_80943A8 *, unkStruct_80943A8 *);
static void F48_16_UMul(unkStruct_80943A8 *, unkStruct_80943A8 *, unkStruct_80943A8 *);
static u24_8 u24_8_div(u24_8, u24_8);
static u24_8 u24_8_mul(u24_8, u24_8);
static void sub_800A5A4(unkStruct_80943A8 *, unkStruct_80943A8 *, unkStruct_80943A8 *);
static void sub_800A4E4(unkStruct_80943A8 *, unkStruct_80943A8 *, unkStruct_80943A8 *);
/**
* This function computes a value modulo 3, using a lookup table for values less
* than 0x100.
@ -516,7 +515,7 @@ s32 sub_800A0B0(unkStruct_80943A8 *a)
}
}
static void sub_800A25C(unkStruct_80943A8 *a)
static void F48_16_Negate(unkStruct_80943A8 *a)
{
a->s0 = ~a->s0;
a->s4 = ~a->s4 + 1;
@ -525,7 +524,7 @@ static void sub_800A25C(unkStruct_80943A8 *a)
a->s0++;
}
static void sub_800A27C(unkStruct_80943A8 *a)
static void F48_16_Abs(unkStruct_80943A8 *a)
{
if (a->s0 < 0) {
a->s0 = ~a->s0;
@ -536,21 +535,21 @@ static void sub_800A27C(unkStruct_80943A8 *a)
}
}
bool8 sub_800A2A0(unkStruct_80943A8 *a)
bool8 F48_16_IsZero(unkStruct_80943A8 *a)
{
if (a->s0 == 0 && a->s4 == 0)
return TRUE;
return FALSE;
}
UNUSED bool8 F48_16_AreEqual(unkStruct_80943A8 *a, unkStruct_80943A8 *b)
UNUSED bool8 F48_16_IsEqual(unkStruct_80943A8 *a, unkStruct_80943A8 *b)
{
if (a->s0 == b->s0 && a->s4 == b->s4)
return TRUE;
return FALSE;
}
static bool8 sub_800A2DC(unkStruct_80943A8 *a)
static bool8 F48_16_IsNegative(unkStruct_80943A8 *a)
{
if (a->s0 < 0)
return TRUE;
@ -583,7 +582,7 @@ bool8 sub_800A2F0(unkStruct_80943A8 *a, unkStruct_80943A8 *b)
}
}
void sub_800A34C(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b)
void F48_16_SMul(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b)
{
bool8 aIsNegative;
bool8 bIsNegative;
@ -595,34 +594,34 @@ void sub_800A34C(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8
aa.s4 = a->s4;
bb.s0 = b->s0;
bb.s4 = b->s4;
aIsNegative = sub_800A2DC(&aa);
bIsNegative = sub_800A2DC(&bb);
aIsNegative = F48_16_IsNegative(&aa);
bIsNegative = F48_16_IsNegative(&bb);
if (sub_800A2A0(&aa)) {
if (F48_16_IsZero(&aa)) {
dst->s0 = 0;
dst->s4 = 0;
}
else if (sub_800A2A0(&bb)) {
else if (F48_16_IsZero(&bb)) {
dst->s0 = 0;
dst->s4 = 0;
}
else {
if (aIsNegative)
sub_800A25C(&aa);
F48_16_Negate(&aa);
if (bIsNegative)
sub_800A25C(&bb);
F48_16_Negate(&bb);
sub_800A4E4(&res, &aa, &bb);
F48_16_UMul(&res, &aa, &bb);
if (aIsNegative != bIsNegative)
sub_800A25C(&res);
F48_16_Negate(&res);
dst->s0 = res.s0;
dst->s4 = res.s4;
}
}
void sub_800A3F0(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b)
void F48_16_SDiv(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b)
{
bool8 aIsNegative;
bool8 bIsNegative;
@ -634,34 +633,34 @@ void sub_800A3F0(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8
aa.s4 = a->s4;
bb.s0 = b->s0;
bb.s4 = b->s4;
aIsNegative = sub_800A2DC(&aa);
bIsNegative = sub_800A2DC(&bb);
aIsNegative = F48_16_IsNegative(&aa);
bIsNegative = F48_16_IsNegative(&bb);
if (sub_800A2A0(&bb)) {
if (F48_16_IsZero(&bb)) {
dst->s0 = INT32_MAX;
dst->s4 = UINT32_MAX;
}
else if (sub_800A2A0(&aa)) {
else if (F48_16_IsZero(&aa)) {
dst->s0 = 0;
dst->s4 = 0;
}
else {
if (aIsNegative)
sub_800A25C(&aa);
F48_16_Negate(&aa);
if (bIsNegative)
sub_800A25C(&bb);
F48_16_Negate(&bb);
sub_800A5A4(&res, &aa, &bb);
F48_16_UDiv(&res, &aa, &bb);
if (aIsNegative != bIsNegative)
sub_800A25C(&res);
F48_16_Negate(&res);
dst->s0 = res.s0;
dst->s4 = res.s4;
}
}
static void sub_800A4A0(unkStruct_80943A8 *a)
static void F48_16_Square(unkStruct_80943A8 *a)
{
unkStruct_80943A8 aa;
unkStruct_80943A8 res;
@ -669,20 +668,20 @@ static void sub_800A4A0(unkStruct_80943A8 *a)
aa.s0 = a->s0;
aa.s4 = a->s4;
if (sub_800A2A0(&aa)) {
if (F48_16_IsZero(&aa)) {
a->s0 = 0;
a->s4 = 0;
}
else {
sub_800A27C(&aa);
sub_800A4E4(&res, &aa, &aa);
F48_16_Abs(&aa);
F48_16_UMul(&res, &aa, &aa);
a->s0 = res.s0;
a->s4 = res.s4;
}
}
// Regswap https://decomp.me/scratch/HNmlz
static void sub_800A4E4(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b)
static void F48_16_UMul(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b)
{
u32 sl;
u32 r1;
@ -697,11 +696,11 @@ static void sub_800A4E4(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_
u32 r6;
s32 i;
if (sub_800A2A0(a)) {
if (F48_16_IsZero(a)) {
dst->s0 = 0;
dst->s4 = 0;
}
else if (sub_800A2A0(b)) {
else if (F48_16_IsZero(b)) {
dst->s0 = 0;
dst->s4 = 0;
}
@ -752,7 +751,7 @@ static void sub_800A4E4(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_
}
// Similar to u24_8_div
static void sub_800A5A4(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b)
static void F48_16_UDiv(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8 *b)
{
s32 temp;
bool8 r1;
@ -766,11 +765,11 @@ static void sub_800A5A4(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_
u32 spC;
s32 i;
if (sub_800A2A0(b)) {
if (F48_16_IsZero(b)) {
dst->s0 = INT32_MAX;
dst->s4 = UINT32_MAX;
}
else if (sub_800A2A0(a)) {
else if (F48_16_IsZero(a)) {
dst->s0 = 0;
dst->s4 = 0;
}
@ -854,7 +853,7 @@ void sub_800A6F0(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_80943A8
}
// Similar to sub_8009F68
UNUSED void sub_800A710(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, s32 b)
UNUSED void F48_16_Pow(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, s32 b)
{
unkStruct_80943A8 aa;
s32 bb;
@ -871,16 +870,16 @@ UNUSED void sub_800A710(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, s32 b)
for (; bb != 0; bb >>= 1) {
if (bb & 1)
sub_800A34C(&res, &res, &aa);
F48_16_SMul(&res, &res, &aa);
sub_800A4A0(&aa);
F48_16_Square(&aa);
}
if (b < 0) {
unkStruct_80943A8 idk;
idk.s0 = 0;
idk.s4 = 0x10000;
sub_800A3F0(&res, &idk, &res);
F48_16_SDiv(&res, &idk, &res);
}
dst->s0 = res.s0;
@ -899,8 +898,8 @@ UNUSED void sub_800A78C(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_
sp0 = *a;
sp8 = *b;
sub_800A27C(&sp0);
sub_800A27C(&sp8);
F48_16_Abs(&sp0);
F48_16_Abs(&sp8);
if (sub_800A2F0(&sp0, &sp8)) {
sp10 = sp0;
@ -908,25 +907,25 @@ UNUSED void sub_800A78C(unkStruct_80943A8 *dst, unkStruct_80943A8 *a, unkStruct_
sp8 = sp10;
}
if (!sub_800A2A0(&sp8)) {
if (!F48_16_IsZero(&sp8)) {
i = 0;
goto deez; // Fakematch cuz ya (https://decomp.me/scratch/2TCrJ)
while (i != 2) {
sub_800A34C(&sp8, &sp8, &sp10);
F48_16_SMul(&sp8, &sp8, &sp10);
i++;
deez:
sub_800A3F0(&sp10, &sp8, &sp0);
sub_800A4A0(&sp10);
F48_16_SDiv(&sp10, &sp8, &sp0);
F48_16_Square(&sp10);
sp18.s0 = sp10.s0;
sp18.s4 = sp10.s4 + 0x40000;
if (sp18.s4 < sp10.s4)
sp18.s0++;
sub_800A3F0(&sp10, &sp10, &sp18);
sub_800A34C(&sp18, &sp0, &sp10);
F48_16_SDiv(&sp10, &sp10, &sp18);
F48_16_SMul(&sp18, &sp0, &sp10);
sp18.s0 <<= 1;
if ((s32)sp18.s4 < 0)
sp18.s0 |= 0x1;

View File

@ -109,7 +109,7 @@ bool8 sub_806E100(unkStruct_80943A8 *param_1, Entity *pokemon, Entity *target, u
param_5->effectiveness = EFFECTIVENESS_NEUTRAL;
for (index = 0; index < 2; index++) {
local_48 = gUnknown_8106F54;
if (sub_800A2A0(param_1)) break;
if (F48_16_IsZero(param_1)) break;
if (((normalOrFightingType) && (targetInfo->types[index] == TYPE_GHOST)) && (targetInfo->exposed == FALSE)) {
effectiveness = EFFECTIVENESS_IMMUNE;
gDungeon->unk134.pokemonExposed = TRUE;
@ -118,7 +118,7 @@ bool8 sub_806E100(unkStruct_80943A8 *param_1, Entity *pokemon, Entity *target, u
effectiveness = gTypeEffectivenessChart[type][targetInfo->types[index]];
}
if (effectiveness != EFFECTIVENESS_NEUTRAL) {
sub_800A34C(param_1,param_1,local_48.unk0[effectiveness]);
F48_16_SMul(param_1,param_1,local_48.unk0[effectiveness]);
}
local_38[index] = effectiveness;
gDungeon->unk134.unk13C[index] = effectiveness;
@ -134,7 +134,7 @@ bool8 sub_806E100(unkStruct_80943A8 *param_1, Entity *pokemon, Entity *target, u
if (((type == TYPE_FIRE) || (type == TYPE_ICE)) && (HasAbility(target,ABILITY_THICK_FAT))) {
gDungeon->unk134.unk16D = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F1C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F1C);
}
if ((type == TYPE_FIRE) && (GetFlashFireStatus(target) != FLASH_FIRE_STATUS_NONE)) {
gDungeon->unk134.fill16E[0] = TRUE;
@ -157,7 +157,7 @@ bool8 sub_806E100(unkStruct_80943A8 *param_1, Entity *pokemon, Entity *target, u
torrentVisualFlag = SetVisualFlags(pokemonInfo,0x80,torrentFlag);
if (torrentFlag) {
gDungeon->unk134.fill16E[2] = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F0C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F0C);
}
if (torrentVisualFlag) {
sub_80428EC(pokemon);
@ -169,7 +169,7 @@ bool8 sub_806E100(unkStruct_80943A8 *param_1, Entity *pokemon, Entity *target, u
overgrowVisualFlag = SetVisualFlags(pokemonInfo,2,overgrowFlag);
if (overgrowFlag) {
gDungeon->unk134.fill16E[3] = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F0C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F0C);
}
if (overgrowVisualFlag) {
sub_80428D8(pokemon);
@ -181,7 +181,7 @@ bool8 sub_806E100(unkStruct_80943A8 *param_1, Entity *pokemon, Entity *target, u
swarmVisualFlag = SetVisualFlags(pokemonInfo,0x10,swarmFlag);
if (swarmFlag) {
gDungeon->unk134.fill16E[4] = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F0C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F0C);
}
if (swarmVisualFlag) {
sub_8042978(pokemon);
@ -193,53 +193,53 @@ bool8 sub_806E100(unkStruct_80943A8 *param_1, Entity *pokemon, Entity *target, u
blazeVisualFlag = SetVisualFlags(pokemonInfo,0x20,blazeFlag);
if (blazeFlag) {
gDungeon->unk134.fill16E[5] = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F0C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F0C);
}
if (blazeVisualFlag) {
sub_804298C(pokemon);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FEDE8);
}
}
if (!(sub_800A2A0(param_1)) && (MonsterIsType(pokemon, type))) {
if (!(F48_16_IsZero(param_1)) && (MonsterIsType(pokemon, type))) {
gDungeon->unk134.fill16E[6] = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F14);
F48_16_SMul(param_1,param_1, &gUnknown_8106F14);
}
weather = GetApparentWeather(pokemon);
if (weather == WEATHER_SUNNY) {
if (type == TYPE_FIRE) {
gDungeon->unk134.unk16C = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F14);
F48_16_SMul(param_1,param_1, &gUnknown_8106F14);
}
else if (type == TYPE_WATER) {
gDungeon->unk134.unk16C = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F1C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F1C);
}
}
if (weather == WEATHER_RAIN) {
if (type == TYPE_FIRE) {
gDungeon->unk134.unk16B = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F1C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F1C);
}
else if (type == TYPE_WATER) {
gDungeon->unk134.unk16B = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F14);
F48_16_SMul(param_1,param_1, &gUnknown_8106F14);
}
}
if ((weather == WEATHER_CLOUDY) && (type != TYPE_NORMAL)) {
sub_800A34C(param_1,param_1, &gUnknown_8106F64);
F48_16_SMul(param_1,param_1, &gUnknown_8106F64);
gDungeon->unk134.unk16A = TRUE;
}
if (((gDungeon->weather.mudSportTurns != 0) || (weather == WEATHER_FOG)) && (type == TYPE_ELECTRIC)) {
gDungeon->unk134.fill16E[7] = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F1C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F1C);
}
if ((gDungeon->weather.waterSportTurns != 0) && (type == TYPE_FIRE)) {
gDungeon->unk134.fill16E[8] = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F1C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F1C);
}
if ((type == TYPE_ELECTRIC) && (pokemonInfo->charging.chargingStatus == STATUS_CHARGING)) {
gDungeon->unk134.fill16E[9] = TRUE;
sub_800A34C(param_1,param_1, &gUnknown_8106F0C);
F48_16_SMul(param_1,param_1, &gUnknown_8106F0C);
}
}
return bVar4;