From 72446feb10af282f2a8f17b14907eeb74a64abc7 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 31 Dec 2023 20:29:08 -0500 Subject: [PATCH 1/5] board/basic_space.c start --- config/GMPE01_00/symbols.txt | 4 +- src/game/board/basic_space.c | 99 ++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 src/game/board/basic_space.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index a7dbbeb8..db1b4fc1 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -1484,8 +1484,8 @@ fn_8007F6BC = .text:0x8007F6BC; // type:function size:0xA4 fn_8007F760 = .text:0x8007F760; // type:function size:0xFC fn_8007F85C = .text:0x8007F85C; // type:function size:0x38 fn_8007F894 = .text:0x8007F894; // type:function size:0x2BC -fn_8007FB50 = .text:0x8007FB50; // type:function size:0x184 -fn_8007FCD4 = .text:0x8007FCD4; // type:function size:0x19C +BoardEventLandBlue = .text:0x8007FB50; // type:function size:0x184 +BoardEventLandRed = .text:0x8007FCD4; // type:function size:0x19C fn_8007FE70 = .text:0x8007FE70; // type:function size:0x1E8 fn_80080058 = .text:0x80080058; // type:function size:0x6C fn_800800C4 = .text:0x800800C4; // type:function size:0x60 diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c new file mode 100644 index 00000000..e3956254 --- /dev/null +++ b/src/game/board/basic_space.c @@ -0,0 +1,99 @@ +#include "common.h" +#include "game/process.h" +#include "game/audio.h" + +void BoardCameraViewSet(s32); /* extern */ +void fn_8006310C(s32, Vec*); /* extern */ +void fn_800638C4(s32); /* extern */ +void fn_80063A1C(s32, s32, f32, f32, s32); /* extern */ +void fn_80063EEC(s32, s32); /* extern */ +void fn_80067B98(s32); /* extern */ +void fn_80067C90(s32, s16, s16); /* extern */ +s32 fn_8006874C(s32); /* extern */ +s8 fn_8007FE70(Point3d*, s8); /* extern */ +s32 fn_80080058(s32); /* extern */ +void fn_800B3FE0(s16, s32); /* extern */ +void omVibrate(s16, s16, s16, s16); + +void BoardEventLandBlue(s32 arg0) { + Point3d sp8; + f32 temp_f1; + s32 var_r29; + s8 temp_r28; + s32 var_r30; + + BoardCameraViewSet(2); + fn_80067C90(arg0, 0, 0xF); + while (fn_8006874C(arg0) == 0) { + HuPrcVSleep(); + } + if (_CheckFlag(0x1000BU) != 0) { + BoardCameraMotionWait(); + fn_800B3FE0(0xA, 0); + } + var_r30 = 3; + if (GWSystem.last5_effect == 1) { + var_r30 *= 2; + } + fn_8006310C(arg0, &sp8); + sp8.y += 250.0f; + temp_r28 = fn_8007FE70(&sp8, var_r30); + HuAudFXPlay(0x347); + BoardCameraMotionWait(); + fn_80063A1C(arg0, 0xC, 0.0f, 4.0f, 0); + + for (var_r29 = 0; var_r29 < var_r30; var_r29++) { + fn_80063EEC(arg0, 1); + HuAudFXPlay(7); + HuPrcSleep(6); + } + HuAudFXPlay(0xF); + while (fn_80080058(temp_r28) == 0) { + HuPrcVSleep(); + } + GWPlayer[arg0].color = 1; + fn_800638C4(arg0); + fn_80067B98(arg0); +} + +void BoardEventLandRed(s32 arg0) { + Point3d sp8; + s32 var_r29; + s8 temp_r28; + s32 var_r30; + void* temp_r3; + + BoardCameraViewSet(2); + omVibrate(arg0, 0xC, 6, 6); + fn_80067C90(arg0, 0, 0xF); + while (fn_8006874C(arg0) == 0) { + HuPrcVSleep(); + } + if (_CheckFlag(0x1000BU) != 0) { + BoardCameraMotionWait(); + fn_800B3FE0(0xB, 0); + } + var_r30 = 3; + if (GWSystem.last5_effect == 1) { + var_r30 *= 2; + } + fn_8006310C(arg0, &sp8); + sp8.y += 250.0f; + temp_r28 = fn_8007FE70(&sp8, -var_r30); + HuAudFXPlay(0x348); + BoardCameraMotionWait(); + fn_80063A1C(arg0, 0xD, 0.0f, 4.0f, 0); + for (var_r29 = 0; var_r29 < var_r30; var_r29++) { + fn_80063EEC(arg0, -1); + HuAudFXPlay(14); + HuPrcSleep(6); + } + HuAudFXPlay(0xF); + + while (fn_80080058(temp_r28) == 0) { + HuPrcVSleep(); + } + GWPlayer[arg0].color = 2; + fn_800638C4(arg0); + fn_80067B98(arg0); +} From 4a6228b7058d27d562a7bac24886f6744106deeb Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 31 Dec 2023 23:46:00 -0500 Subject: [PATCH 2/5] basic_space.c complete, names incoming --- include/dolphin/os/OSFastCast.h | 12 ++ include/game/board/basic_space.h | 54 +++++ src/game/board/basic_space.c | 357 ++++++++++++++++++++++++++++--- 3 files changed, 393 insertions(+), 30 deletions(-) create mode 100644 include/game/board/basic_space.h diff --git a/include/dolphin/os/OSFastCast.h b/include/dolphin/os/OSFastCast.h index d1ea7f4e..24000a4c 100644 --- a/include/dolphin/os/OSFastCast.h +++ b/include/dolphin/os/OSFastCast.h @@ -75,6 +75,18 @@ static inline u8 __OSf32tou8(register f32 inF) static inline void OSf32tou8(f32 *f, u8 *out) { *out = __OSf32tou8(*f); } +static inline float __OSu16tof32(register const u16* arg) { + register float ret; + + asm { + psq_l ret, 0(arg), 1, 3 + } + + return ret; +} + +static inline void OSu16tof32(const u16* in, float* out) { *out = __OSu16tof32(in); } + #ifdef __cplusplus } #endif diff --git a/include/game/board/basic_space.h b/include/game/board/basic_space.h new file mode 100644 index 00000000..ce966e8b --- /dev/null +++ b/include/game/board/basic_space.h @@ -0,0 +1,54 @@ +#include "common.h" +#include "math.h" +#include "game/process.h" +#include "game/audio.h" +#include "game/object.h" + +extern Process *boardObjMan; + +typedef struct bit_copy { + struct { + u8 hide : 1; + u8 field08_bit1 : 1; + u8 field08_bit2 : 1; + u8 field08_bit3 : 3; + u8 field08_bit6 : 1; + u8 field08_bit7 : 1; + }; + s8 unk_01; + s8 unk_02; + s8 unk_03; + u16 unk_04; + u16 unk_06; + s16 unk_08; + s16 unk_0A; + s16 unk_0C; + s16 unk_0E; +} bitcopy; + +omObjData *lbl_8013A1F0[4] = { + (omObjData *)NULL, + (omObjData *)NULL, + (omObjData *)NULL, + (omObjData *)NULL +}; + +s32 lbl_8013A200[10] = { + 0x7000C, 0x7000D, + 0x7000E, 0x7000F, + 0x70010, 0x70011, + 0x70012, 0x70013, + 0x70014, 0x70015 +}; + +void BoardEventLandBlue(s32); +void BoardEventLandRed(s32); +s8 fn_8007FE70(Point3d*, s8); +s32 fn_80080058(s32); +void fn_800800C4(s32); +void fn_80080124(bitcopy*, Vec*); +void fn_80080360(omObjData*); +void fn_800804F8(omObjData*, bitcopy*); +void fn_800806B0(omObjData*, bitcopy*); +void fn_8008094C(omObjData*, bitcopy*); +void fn_80080AF4(omObjData*, bitcopy*); \ No newline at end of file diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index e3956254..730108c3 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -1,19 +1,16 @@ -#include "common.h" -#include "game/process.h" -#include "game/audio.h" +#include "game/board/basic_space.h" -void BoardCameraViewSet(s32); /* extern */ -void fn_8006310C(s32, Vec*); /* extern */ -void fn_800638C4(s32); /* extern */ -void fn_80063A1C(s32, s32, f32, f32, s32); /* extern */ -void fn_80063EEC(s32, s32); /* extern */ -void fn_80067B98(s32); /* extern */ -void fn_80067C90(s32, s16, s16); /* extern */ -s32 fn_8006874C(s32); /* extern */ -s8 fn_8007FE70(Point3d*, s8); /* extern */ -s32 fn_80080058(s32); /* extern */ -void fn_800B3FE0(s16, s32); /* extern */ +void BoardTutorialHookExec(s16, s32); +void BoardCameraViewSet(s32); void omVibrate(s16, s16, s16, s16); +void BoardPlayerPosGet(s32, Vec*); +s32 BoardModelPosGet(s16, Vec*); +void BoardPlayerMotionEndWait(s32); +void BoardPlayerMotionShiftSet(s32, s32, f32, f32, s32); +void BoardPlayerCoinsAdd(s32, s32); +void BoardRotateDiceNumbers(s32); +void BoardCameraAnimBlendSet(s32, s16, s16); +s32 BoardPlayerAnimBlendCheck(s32); void BoardEventLandBlue(s32 arg0) { Point3d sp8; @@ -23,27 +20,27 @@ void BoardEventLandBlue(s32 arg0) { s32 var_r30; BoardCameraViewSet(2); - fn_80067C90(arg0, 0, 0xF); - while (fn_8006874C(arg0) == 0) { + BoardPlayerAnimBlendSet(arg0, 0, 0xF); + while (BoardPlayerAnimBlendCheck(arg0) == 0) { HuPrcVSleep(); } if (_CheckFlag(0x1000BU) != 0) { BoardCameraMotionWait(); - fn_800B3FE0(0xA, 0); + BoardTutorialHookExec(0xA, 0); } var_r30 = 3; if (GWSystem.last5_effect == 1) { var_r30 *= 2; } - fn_8006310C(arg0, &sp8); + BoardPlayerPosGet(arg0, &sp8); sp8.y += 250.0f; temp_r28 = fn_8007FE70(&sp8, var_r30); HuAudFXPlay(0x347); BoardCameraMotionWait(); - fn_80063A1C(arg0, 0xC, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(arg0, 0xC, 0.0f, 4.0f, 0); for (var_r29 = 0; var_r29 < var_r30; var_r29++) { - fn_80063EEC(arg0, 1); + BoardPlayerCoinsAdd(arg0, 1); HuAudFXPlay(7); HuPrcSleep(6); } @@ -52,8 +49,8 @@ void BoardEventLandBlue(s32 arg0) { HuPrcVSleep(); } GWPlayer[arg0].color = 1; - fn_800638C4(arg0); - fn_80067B98(arg0); + BoardPlayerMotionEndWait(arg0); + BoardRotateDiceNumbers(arg0); } void BoardEventLandRed(s32 arg0) { @@ -65,26 +62,26 @@ void BoardEventLandRed(s32 arg0) { BoardCameraViewSet(2); omVibrate(arg0, 0xC, 6, 6); - fn_80067C90(arg0, 0, 0xF); - while (fn_8006874C(arg0) == 0) { + BoardPlayerAnimBlendSet(arg0, 0, 0xF); + while (BoardPlayerAnimBlendCheck(arg0) == 0) { HuPrcVSleep(); } if (_CheckFlag(0x1000BU) != 0) { BoardCameraMotionWait(); - fn_800B3FE0(0xB, 0); + BoardTutorialHookExec(0xB, 0); } var_r30 = 3; if (GWSystem.last5_effect == 1) { var_r30 *= 2; } - fn_8006310C(arg0, &sp8); + BoardPlayerPosGet(arg0, &sp8); sp8.y += 250.0f; temp_r28 = fn_8007FE70(&sp8, -var_r30); HuAudFXPlay(0x348); BoardCameraMotionWait(); - fn_80063A1C(arg0, 0xD, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(arg0, 0xD, 0.0f, 4.0f, 0); for (var_r29 = 0; var_r29 < var_r30; var_r29++) { - fn_80063EEC(arg0, -1); + BoardPlayerCoinsAdd(arg0, -1); HuAudFXPlay(14); HuPrcSleep(6); } @@ -94,6 +91,306 @@ void BoardEventLandRed(s32 arg0) { HuPrcVSleep(); } GWPlayer[arg0].color = 2; - fn_800638C4(arg0); - fn_80067B98(arg0); + BoardPlayerMotionEndWait(arg0); + BoardRotateDiceNumbers(arg0); +} + +s8 fn_8007FE70(Point3d* arg0, s8 arg1) { + omObjData* var_r30 = NULL; + bitcopy* temp_r31; + s8 var_r27; + s8 var_r29; + + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_8013A1F0[var_r29] == 0) { + break; + } + } + if (var_r29 == 4) { + return -1; + } + + var_r30 = omAddObjEx(boardObjMan, 0x10A, 0, 0, -1, &fn_80080360); + lbl_8013A1F0[var_r29] = var_r30; + temp_r31 = (bitcopy *) var_r30->work; + temp_r31->hide = 0; + temp_r31->field08_bit2 = 0; + if (arg1 < 0) { + var_r27 = 1; + } else { + var_r27 = 0; + } + temp_r31->field08_bit1 = var_r27; + temp_r31->field08_bit3 = 0; + temp_r31->unk_02 = __abs(arg1) / 10; + temp_r31->unk_03 = __abs(arg1) % 10; + temp_r31->unk_01 = (s8) (var_r29 + 1); + temp_r31->unk_04 = 0; + temp_r31->unk_06 = 0; + fn_80080124(temp_r31, arg0); + var_r30->trans.x = arg0->x; + var_r30->trans.y = arg0->y; + var_r30->trans.z = arg0->z; + var_r30->rot.x = 0.0f; + var_r30->rot.y = 0.01f; + temp_r31->field08_bit2 = 1; + return temp_r31->unk_01; +} + +s32 fn_80080058(s32 arg0) { + int *sp8; + + if ((arg0 <= 0) || (arg0 > 4)) { + return arg0; + } + if (lbl_8013A1F0[arg0 - 1] != 0) { + sp8 = lbl_8013A1F0[arg0 - 1]->work; + return 0; + } + return 1; +} + +void fn_800800C4(s32 arg0) { + bitcopy* temp_r4; + + if ((arg0 <= 0) || (arg0 > 4)) { + return; + } + if (lbl_8013A1F0[arg0 - 1] != 0) { + ((bitcopy*) lbl_8013A1F0[arg0 - 1]->work)->hide = 1; + } +} + +const s32 lbl_801D56B0[2] = {0x70016, 0x70017}; + +void fn_80080124(bitcopy* arg0, Vec* arg1) { + f32 var_f31; + + if (arg0->field08_bit1 != 0) { + var_f31 = 2.5f; + } else { + var_f31 = 1.5f; + } + arg0->unk_08 = BoardModelCreate(lbl_801D56B0[arg0->field08_bit1], NULL, 0); + arg0->unk_0A = BoardModelCreate(lbl_8013A200[arg0->unk_02], NULL, 0); + arg0->unk_0C = BoardModelCreate(lbl_8013A200[arg0->unk_03], NULL, 0); + arg0->unk_0E = BoardModelCreate(0x7000A, NULL, 0); + BoardModelPosSetV(arg0->unk_08, arg1); + BoardModelPosSetV(arg0->unk_0A, arg1); + BoardModelPosSetV(arg0->unk_0C, arg1); + BoardModelPosSetV(arg0->unk_0E, arg1); + BoardModelMotionStart(arg0->unk_08, 0, 0); + BoardModelMotionStart(arg0->unk_0A, 0, 0); + BoardModelMotionStart(arg0->unk_0C, 0, 0); + BoardModelMotionTimeSet(arg0->unk_08, var_f31); + BoardModelMotionTimeSet(arg0->unk_0A, var_f31); + BoardModelMotionTimeSet(arg0->unk_0C, var_f31); + BoardModelMotionSpeedSet(arg0->unk_08, 0.0f); + BoardModelMotionSpeedSet(arg0->unk_0A, 0.0f); + BoardModelMotionSpeedSet(arg0->unk_0C, 0.0f); + BoardModelScaleSet(arg0->unk_08, 0.001, 0.001, 0.001); + BoardModelScaleSet(arg0->unk_0A, 0.001, 0.001, 0.001); + BoardModelScaleSet(arg0->unk_0C, 0.001, 0.001, 0.001); + BoardModelScaleSet(arg0->unk_0E, 0.001, 0.001, 0.001); + BoardModelLayerSet(arg0->unk_08, 1); + BoardModelLayerSet(arg0->unk_0A, 1); + BoardModelLayerSet(arg0->unk_0C, 1); + BoardModelLayerSet(arg0->unk_0E, 1); + if (arg0->unk_02 == 0) { + BoardModelVisibilitySet(arg0->unk_0A, 0); + } +} + +void fn_80080360(omObjData* arg0) { + s32 temp_r0; + bitcopy* temp_r31; + + temp_r31 = (bitcopy*) arg0->work; + if ((temp_r31->hide != 0) || (BoardIsKill() != 0)) { + if (temp_r31->unk_0E != -1) { + BoardModelKill(temp_r31->unk_0E); + temp_r31->unk_0E = -1; + } + if (temp_r31->unk_08 != -1) { + BoardModelKill(temp_r31->unk_08); + temp_r31->unk_08 = -1; + } + if (temp_r31->unk_0A != -1) { + BoardModelKill(temp_r31->unk_0A); + temp_r31->unk_0A = -1; + } + if (temp_r31->unk_0C != -1) { + BoardModelKill(temp_r31->unk_0C); + temp_r31->unk_0C = -1; + } + lbl_8013A1F0[temp_r31->unk_01 - 1] = 0; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (temp_r31->field08_bit2 != 0) { + if (temp_r31->unk_04 != 0) { + temp_r31->unk_04 -= 1; + return; + } + + switch (temp_r31->field08_bit3) { + case 0: + fn_800804F8(arg0, temp_r31); + return; + case 1: + fn_800806B0(arg0, temp_r31); + return; + case 3: + fn_8008094C(arg0, temp_r31); + return; + case 4: + fn_80080AF4(arg0, temp_r31); + break; + } + } +} + +void fn_800804F8(omObjData* arg0, bitcopy* arg1) { + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + + OSu16tof32(&arg1->unk_06, &temp_f29); + temp_f29 = sin(M_PI * temp_f29 / 180.0); + temp_f30 = temp_f29; + arg0->rot.x = 405.0f * temp_f29; + BoardModelScaleSet(arg1->unk_0E, temp_f30, temp_f30, temp_f30); + BoardModelPosSet(arg1->unk_0E, arg0->trans.x, arg0->trans.y, arg0->trans.z); + BoardModelRotYSet(arg1->unk_0E, arg0->rot.x); + if (arg1->unk_06 < 0x5A) { + arg1->unk_06 += 6; + return; + } + + arg1->field08_bit3 = 1; + arg1->unk_06 = 0; + BoardModelScaleSet(arg1->unk_08, temp_f30, temp_f30, temp_f30); + BoardModelPosSet(arg1->unk_08, arg0->trans.x, arg0->trans.y, arg0->trans.z); + BoardModelRotYSet(arg1->unk_08, arg0->rot.x); + BoardModelScaleSet(arg1->unk_0C, temp_f30, temp_f30, temp_f30); + BoardModelPosSet(arg1->unk_0C, arg0->trans.x, arg0->trans.y, arg0->trans.z); + BoardModelRotYSet(arg1->unk_0C, arg0->rot.x); + BoardModelScaleSet(arg1->unk_0A, temp_f30, temp_f30, temp_f30); + BoardModelPosSet(arg1->unk_0A, arg0->trans.x, arg0->trans.y, arg0->trans.z); + BoardModelRotYSet(arg1->unk_0A, arg0->rot.x); +} + +void fn_800806B0(omObjData* arg0, bitcopy* arg1) { + f32 temp_f28; + f32 temp_f30; + f32 var_f29; + f32 var_f27; + f32 var_f26; + f32 var_f25; + f32 var_f24; + + OSu16tof32(&arg1->unk_06, &temp_f30); + + if (arg1->unk_02 != 0) { + var_f29 = 140.0f; + } else { + var_f29 = 105.0f; + } + temp_f28 = (200.0 * sin((M_PI * (2.0f * temp_f30)) / 180.0)); + temp_f30 = sin((M_PI * temp_f30) / 180.0); + arg0->rot.x = 45.0f + (315.0f * temp_f30); + if (arg1->unk_02 != 0) { + var_f27 = arg0->trans.x + (temp_f30 * -var_f29); + var_f24 = arg0->trans.x + ((temp_f30 * -var_f29) / 3.0f); + var_f26 = arg0->trans.x + (temp_f30 * var_f29); + var_f25 = arg0->trans.x + ((temp_f30 * var_f29) / 3.0f); + } else { + var_f24 = arg0->trans.x; + var_f25 = arg0->trans.x; + var_f26 = arg0->trans.x + (temp_f30 * var_f29); + var_f27 = arg0->trans.x + (temp_f30 * -var_f29); + } + BoardModelPosSet(arg1->unk_0E, var_f27, arg0->trans.y + temp_f28, arg0->trans.z); + BoardModelPosSet(arg1->unk_08, var_f24, arg0->trans.y + temp_f28, arg0->trans.z); + BoardModelPosSet(arg1->unk_0C, var_f26, arg0->trans.y + temp_f28, arg0->trans.z); + BoardModelPosSet(arg1->unk_0A, var_f25, arg0->trans.y + temp_f28, arg0->trans.z); + BoardModelRotYSet(arg1->unk_0E, arg0->rot.x); + BoardModelRotYSet(arg1->unk_08, arg0->rot.x); + BoardModelRotYSet(arg1->unk_0C, arg0->rot.x); + BoardModelRotYSet(arg1->unk_0A, arg0->rot.x); + if (arg1->unk_06 < 0x5A) { + arg1->unk_06 += 6; + return; + } + arg0->trans.y += temp_f28; + arg1->field08_bit3 = 3; + arg1->unk_06 = 0; +} + +void fn_8008094C(omObjData* arg0, bitcopy* arg1) { + Vec sp8; + f32 temp_f29; + f32 var_f30; + + OSu16tof32(&arg1->unk_06, &temp_f29); + temp_f29 = (f32) sin((M_PI * temp_f29) / 180.0); + if (arg1->field08_bit1 != 0) { + var_f30 = (-50.0f * temp_f29) + arg0->trans.y; + } else { + var_f30 = (50.0f * temp_f29) + arg0->trans.y; + } + BoardModelPosGet(arg1->unk_0E, &sp8); + BoardModelPosSet(arg1->unk_0E, sp8.x, var_f30, sp8.z); + BoardModelPosGet(arg1->unk_08, &sp8); + BoardModelPosSet(arg1->unk_08, sp8.x, var_f30, sp8.z); + BoardModelPosGet(arg1->unk_0C, &sp8); + BoardModelPosSet(arg1->unk_0C, sp8.x, var_f30, sp8.z); + BoardModelPosGet(arg1->unk_0A, &sp8); + BoardModelPosSet(arg1->unk_0A, sp8.x, var_f30, sp8.z); + if (arg1->unk_06 < 0x5A) { + arg1->unk_06 += 6; + return; + } + arg1->field08_bit3 = 4; + arg1->unk_06 = 0; + arg1->unk_04 = 0x12; + arg0->scale.x = 1.0f; + arg0->scale.y = 1.0f; +} + +void fn_80080AF4(omObjData* arg0, bitcopy* arg1) { + const u16 sp8 = ((arg1->unk_06 * 2) % 180); + f32 temp_f31; + + OSu16tof32(&sp8, &temp_f31); + if (sp8 <= 90.0f) { + arg0->scale.x = 0.5 * cos((M_PI * temp_f31) / 180.0); + arg0->scale.y = 2.5 * sin((M_PI * temp_f31) / 180.0); + } else { + arg0->scale.x = 2.5 * sin((M_PI * temp_f31) / 180.0); + arg0->scale.y = 0.5 * cos((M_PI * temp_f31) / 180.0); + } + if (0.0f == arg0->scale.x) { + arg0->scale.x = 0.0001f; + } + if (0.0f == arg0->scale.y) { + arg0->scale.y = 0.0001f; + } + BoardModelScaleSet(arg1->unk_0E, arg0->scale.x, arg0->scale.y, 1.0f); + BoardModelScaleSet(arg1->unk_08, arg0->scale.x, arg0->scale.y, 1.0f); + BoardModelScaleSet(arg1->unk_0C, arg0->scale.x, arg0->scale.y, 1.0f); + BoardModelScaleSet(arg1->unk_0A, arg0->scale.x, arg0->scale.y, 1.0f); + if (arg1->unk_06 < 0x5A) { + arg1->unk_06 += 3; + if (arg1->unk_06 > 0x5A) { + arg1->unk_06 = 0x5A; + } + } else { + BoardModelVisibilitySet(arg1->unk_08, 0); + BoardModelVisibilitySet(arg1->unk_0A, 0); + BoardModelVisibilitySet(arg1->unk_0C, 0); + BoardModelVisibilitySet(arg1->unk_0E, 0); + arg1->hide = 1; + } } From 0b759b3264efdea4510409a77d083213a1a7b966 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 31 Dec 2023 23:48:00 -0500 Subject: [PATCH 3/5] outta here --- include/game/board/basic_space.h | 8 -------- src/game/board/basic_space.c | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/game/board/basic_space.h b/include/game/board/basic_space.h index ce966e8b..d7645cb3 100644 --- a/include/game/board/basic_space.h +++ b/include/game/board/basic_space.h @@ -33,14 +33,6 @@ omObjData *lbl_8013A1F0[4] = { (omObjData *)NULL }; -s32 lbl_8013A200[10] = { - 0x7000C, 0x7000D, - 0x7000E, 0x7000F, - 0x70010, 0x70011, - 0x70012, 0x70013, - 0x70014, 0x70015 -}; - void BoardEventLandBlue(s32); void BoardEventLandRed(s32); s8 fn_8007FE70(Point3d*, s8); diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index 730108c3..378b0d48 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -12,6 +12,14 @@ void BoardRotateDiceNumbers(s32); void BoardCameraAnimBlendSet(s32, s16, s16); s32 BoardPlayerAnimBlendCheck(s32); +s32 lbl_8013A200[10] = { + 0x7000C, 0x7000D, + 0x7000E, 0x7000F, + 0x70010, 0x70011, + 0x70012, 0x70013, + 0x70014, 0x70015 +}; + void BoardEventLandBlue(s32 arg0) { Point3d sp8; f32 temp_f1; From 0fa502407f319f39c060d52a31659bb39c696b3f Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 31 Dec 2023 23:49:19 -0500 Subject: [PATCH 4/5] you too bud --- include/game/board/basic_space.h | 7 ------- src/game/board/basic_space.c | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/game/board/basic_space.h b/include/game/board/basic_space.h index d7645cb3..6b0f306c 100644 --- a/include/game/board/basic_space.h +++ b/include/game/board/basic_space.h @@ -26,13 +26,6 @@ typedef struct bit_copy { s16 unk_0E; } bitcopy; -omObjData *lbl_8013A1F0[4] = { - (omObjData *)NULL, - (omObjData *)NULL, - (omObjData *)NULL, - (omObjData *)NULL -}; - void BoardEventLandBlue(s32); void BoardEventLandRed(s32); s8 fn_8007FE70(Point3d*, s8); diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index 378b0d48..bda049d8 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -12,6 +12,13 @@ void BoardRotateDiceNumbers(s32); void BoardCameraAnimBlendSet(s32, s16, s16); s32 BoardPlayerAnimBlendCheck(s32); +omObjData *lbl_8013A1F0[4] = { + (omObjData *)NULL, + (omObjData *)NULL, + (omObjData *)NULL, + (omObjData *)NULL +}; + s32 lbl_8013A200[10] = { 0x7000C, 0x7000D, 0x7000E, 0x7000F, From d5f24095769db5fb9a43463c7f47c94e5b10c14b Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 31 Dec 2023 23:50:01 -0500 Subject: [PATCH 5/5] set to matching --- configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 2a5a05e5..7099d2cd 100644 --- a/configure.py +++ b/configure.py @@ -369,7 +369,7 @@ config.libs = [ Object(NonMatching, "game/board/space.c"), Object(NonMatching, "game/board/shop.c"), Object(NonMatching, "game/board/lottery.c"), - Object(NonMatching, "game/board/basic_space.c"), + Object(Matching, "game/board/basic_space.c"), Object(NonMatching, "game/board/warp.c"), Object(NonMatching, "game/board/char_roulette.c"), Object(NonMatching, "game/board/mushroom_space.c"),