Replace most of Point3d with Vec

This commit is contained in:
dbalatoni13 2025-04-01 06:40:22 +02:00
parent dd2c167c8e
commit eb35233505
19 changed files with 732 additions and 711 deletions

View file

@ -30,7 +30,7 @@ void fn_1_1CA8(void);
void fn_1_1CAC(float, float, float);
void fn_1_1CD4(float *arg0, float *arg1, float *arg2);
s32 fn_1_1D88(void);
void fn_1_1DB0(Point3d *arg0, Point3d *arg1, float *arg2, s32 arg3, s32 arg4);
void fn_1_1DB0(Vec *arg0, Vec *arg1, float *arg2, s32 arg3, s32 arg4);
void fn_1_2354(Process *arg0);
void fn_1_2564(void);

View file

@ -5,7 +5,6 @@
#include "game/object.h"
#include "game/objsub.h"
#include "ext_math.h"
// -------------------------------------------------------------------------- //
@ -21,20 +20,20 @@ typedef struct {
} HuUnkF9C2;
typedef struct {
Point3d pos; // 0000
Point3d rot; // 000C
Point3d scale; // 0018
Vec pos; // 0000
Vec rot; // 000C
Vec scale; // 0018
s32 unk24;
s32 unk28;
s32 unk2C;
HsfObject *obj; // 0030
} HuObjUnk;
extern Point3d CRot;
extern Point3d Center;
extern Vec CRot;
extern Vec Center;
extern float CZoom;
void fn_1_29C();
void fn_1_28F8(Point3d *arg0, Point3d *arg1);
void fn_1_28F8(Vec *arg0, Vec *arg1);
void fn_1_37DC(omObjData *);
void fn_1_439C(omObjData *);
void fn_1_46F0();

View file

@ -6,7 +6,6 @@
#include "game/hsfformat.h"
#include "game/memory.h"
#define HU3D_MODEL_MAX 512
#define HU3D_MOTION_MAX 256
#define HU3D_TEXANIM_MAX 256
@ -109,7 +108,7 @@ struct model_data {
u32 unk_4C;
u32 attr;
u32 motion_attr;
Point3d unk_58;
Vec unk_58;
float unk_64;
float unk_68;
float unk_6C;
@ -164,8 +163,8 @@ typedef struct ThreeDProjectionStruct {
char unk_01[0x3];
void *unk_04;
Vec unk_08;
Point3d unk_14;
Point3d unk_20;
Vec unk_14;
Vec unk_20;
Vec unk_2C;
Mtx unk_38;
Mtx unk_68;
@ -271,12 +270,12 @@ void Hu3DLLightKill(s16, s16);
void Hu3DLightAllKill(void);
void Hu3DGLightColorSet(s16, u8, u8, u8, u8);
void Hu3DLLightColorSet(s16, s16, u8, u8, u8, u8);
void Hu3DGLightPosSetV(s16, Vec *, Point3d *);
void Hu3DLLightPosSetV(s16, s16, Vec *, Point3d *);
void Hu3DGLightPosSetV(s16, Vec *, Vec *);
void Hu3DLLightPosSetV(s16, s16, Vec *, Vec *);
void Hu3DGLightPosSet(s16, float, float, float, float, float, float);
void Hu3DLLightPosSet(s16, s16, float, float, float, float, float, float);
void Hu3DGLightPosAimSetV(s16, Point3d *, Point3d *);
void Hu3DLLightPosAimSetV(s16, s16, Point3d *, Point3d *);
void Hu3DGLightPosAimSetV(s16, Vec *, Vec *);
void Hu3DLLightPosAimSetV(s16, s16, Vec *, Vec *);
void Hu3DGLightPosAimSet(s16, float, float, float, float, float, float);
void Hu3DLLightPosAimSet(s16, s16, float, float, float, float, float, float);
void Hu3DGLightStaticSet(s16, s32);

View file

@ -1,35 +1,37 @@
#include "game/process.h"
#include "game/object.h"
#include "game/hsfdraw.h"
#include "ext_math.h"
#include "game/hsfdraw.h"
#include "game/object.h"
#include "game/process.h"
typedef struct unkDominationData2 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Point3d unk_08;
/* 0x14 */ Point3d unk_14;
/* 0x20 */ f32 unk_20;
/* 0x24 */ Point3d unk_24;
/* 0x30 */ Point3d unk_30;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ s32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
} unkDominationData2; //sizeof 0x4C
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ Vec unk_14;
/* 0x20 */ f32 unk_20;
/* 0x24 */ Vec unk_24;
/* 0x30 */ Vec unk_30;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ s32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
} unkDominationData2; // sizeof 0x4C
//function signatures
// function signatures
void fn_1_1CAC(f32, f32, f32);
void fn_1_1D08(f32, f32, f32);
void fn_1_1D64(f32);
void fn_1_2024(omObjData*);
void fn_1_2024(omObjData *);
//bss
Process* lbl_1_bss_34;
omObjData* lbl_1_bss_30;
// bss
Process *lbl_1_bss_34;
omObjData *lbl_1_bss_30;
void fn_1_1B1C(Process *arg0)
{
unkDominationData2 *unkData;
void fn_1_1B1C(Process* arg0) {
unkDominationData2* unkData;
lbl_1_bss_34 = arg0;
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
Hu3DCameraPerspectiveSet(1, 45.0f, 10.0f, 40000.0f, 1.2f);
@ -42,49 +44,55 @@ void fn_1_1B1C(Process* arg0) {
fn_1_1D64(0.0f);
}
void fn_1_1CA8(void) {
void fn_1_1CA8(void) { }
}
void fn_1_1CAC(f32 arg8, f32 arg9, f32 argA) {
void fn_1_1CAC(f32 arg8, f32 arg9, f32 argA)
{
Center.x = arg8;
Center.y = arg9;
Center.z = argA;
}
void fn_1_1CD4(f32* arg0, f32* arg1, f32* arg2) {
void fn_1_1CD4(f32 *arg0, f32 *arg1, f32 *arg2)
{
*arg0 = Center.x;
*arg1 = Center.y;
*arg2 = Center.z;
}
void fn_1_1D08(f32 arg8, f32 arg9, f32 argA) {
void fn_1_1D08(f32 arg8, f32 arg9, f32 argA)
{
CRot.x = arg8;
CRot.y = arg9;
CRot.z = argA;
}
void fn_1_1D30(f32* arg0, f32* arg1, f32* arg2) {
void fn_1_1D30(f32 *arg0, f32 *arg1, f32 *arg2)
{
*arg0 = CRot.x;
*arg1 = CRot.y;
*arg2 = CRot.z;
}
void fn_1_1D64(f32 arg8) {
void fn_1_1D64(f32 arg8)
{
CZoom = arg8;
}
void fn_1_1D74(f32* arg0) {
void fn_1_1D74(f32 *arg0)
{
*arg0 = CZoom;
}
s32 fn_1_1D88(void) {
unkDominationData2* unkData = lbl_1_bss_30->data;
s32 fn_1_1D88(void)
{
unkDominationData2 *unkData = lbl_1_bss_30->data;
return unkData->unk_04;
}
void fn_1_1DB0(Point3d* arg0, Point3d* arg1, f32* arg2, s32 arg3, s32 arg4) {
unkDominationData2* temp_r31;
void fn_1_1DB0(Vec *arg0, Vec *arg1, f32 *arg2, s32 arg3, s32 arg4)
{
unkDominationData2 *temp_r31;
temp_r31 = lbl_1_bss_30->data;
temp_r31->unk_00 = arg4;
@ -100,46 +108,48 @@ void fn_1_1DB0(Point3d* arg0, Point3d* arg1, f32* arg2, s32 arg3, s32 arg4) {
temp_r31->unk_04 = 1;
}
f32 fn_1_1F1C(f32 arg8, f32 arg9) {
f32 fn_1_1F1C(f32 arg8, f32 arg9)
{
if (((arg8 > 0.0f) && (arg9 > 0.0f)) || ((arg8 < 0.0f) && (arg9 < 0.0f))) {
return abs(arg8 - arg9);
}
return abs(arg8) + abs(arg9);
}
void fn_1_2024(omObjData* arg0) {
void fn_1_2024(omObjData *arg0)
{
Vec sp14;
Vec sp8;
f32 var_f31;
f32 cZoomTemp;
unkDominationData2* temp_r31;
unkDominationData2 *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk_04 != 0) {
switch (temp_r31->unk_00) {
case 0:
var_f31 = temp_r31->unk_44;
break;
case 1:
var_f31 = temp_r31->unk_44;
if (temp_r31->unk_48 > 0.5) {
temp_r31->unk_00 = 2;
}
break;
case 2:
var_f31 = sind(90.0f * temp_r31->unk_44);
break;
case 3:
var_f31 = sind(90.0f * temp_r31->unk_44);
if (temp_r31->unk_48 > 0.5) {
temp_r31->unk_00 = 4;
}
break;
case 4:
var_f31 = sind(90.0f * temp_r31->unk_44);
var_f31 *= var_f31;
break;
case 0:
var_f31 = temp_r31->unk_44;
break;
case 1:
var_f31 = temp_r31->unk_44;
if (temp_r31->unk_48 > 0.5) {
temp_r31->unk_00 = 2;
}
break;
case 2:
var_f31 = sind(90.0f * temp_r31->unk_44);
break;
case 3:
var_f31 = sind(90.0f * temp_r31->unk_44);
if (temp_r31->unk_48 > 0.5) {
temp_r31->unk_00 = 4;
}
break;
case 4:
var_f31 = sind(90.0f * temp_r31->unk_44);
var_f31 *= var_f31;
break;
}
sp14.x = temp_r31->unk_24.x + (var_f31 * (temp_r31->unk_08.x - temp_r31->unk_24.x));
sp14.y = temp_r31->unk_24.y + (var_f31 * (temp_r31->unk_08.y - temp_r31->unk_24.y));

View file

@ -34,10 +34,10 @@ s32 lbl_1_data_198[] = {
Vec lbl_1_data_1CC[] = { { 600.0f, 3.0f, -300.0f }, { 200.0f, 3.0f, -300.0f }, { -200.0f, 3.0f, -300.0f }, { -600.0f, 3.0f, -300.0f } };
Point3d lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f };
Point3d lbl_1_data_208 = { -0.5f, -0.5f, -0.5f };
Vec lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f };
Vec lbl_1_data_208 = { -0.5f, -0.5f, -0.5f };
GXColor lbl_1_data_214 = { 255, 255, 255, 255 };
Point3d lbl_1_data_218 = { 0.0f, 1.0f, 0.0f };
Vec lbl_1_data_218 = { 0.0f, 1.0f, 0.0f };
void fn_1_14F0(Process *arg0, s32 arg1)
{
@ -117,7 +117,7 @@ void fn_1_162C(omObjData *arg0)
void fn_1_1A8C(omObjData *arg0)
{
Point3d sp8;
Vec sp8;
sp8.x = lbl_1_data_1FC.x;
sp8.y = lbl_1_data_1FC.y;

View file

@ -12,7 +12,6 @@
#include "game/sprite.h"
#include "string.h"
// STRUCT
typedef struct _M424DllBallStruct {
u8 unk0;
@ -1467,7 +1466,7 @@ void fn_1_79FC(Vec *arg0, Vec *arg1, f32 arg2, Vec *arg3, Vec *arg4, f32 arg5, f
}
}
void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d *arg3)
void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Vec *arg3)
{
f32 var_f31;

View file

@ -492,7 +492,7 @@ void fn_1_3B20(s8 arg0, s16 arg1)
Vec sp54[4] = { { 110.0f, -20.0f, 0.0f }, { -110.0f, -20.0f, 0.0f }, { 110.0f, -20.0f, 190.0f }, { -110.0f, -20.0f, 190.0f } };
Mtx sp24;
f32 sp14[4] = { 135.0f, 225.0f, 45.0f, 315.0f };
Point3d sp8;
Vec sp8;
f32 temp_f31;
s16 var_r29;
s32 var_r27;

View file

@ -1166,7 +1166,7 @@ static inline f32 isEven(u32 arg)
}
}
void fn_1_8FFC(u32 arg0, Point3d *arg1, f32 arg2, f32 arg3)
void fn_1_8FFC(u32 arg0, Vec *arg1, f32 arg2, f32 arg3)
{
f32 temp_f31;
f32 var_f29;

View file

@ -157,9 +157,9 @@ void fn_1_50C(void)
void fn_1_5E8(s32 arg0)
{
Point3d sp24 = { 0.0f, 3000.0f, 800.0f };
Point3d sp18 = { 0.0f, 0.0f, 640.0f };
Point3d spC = { 0.0f, 1.0f, 0.0f };
Vec sp24 = { 0.0f, 3000.0f, 800.0f };
Vec sp18 = { 0.0f, 0.0f, 640.0f };
Vec spC = { 0.0f, 1.0f, 0.0f };
if (arg0 == 3) {
sp24.x = sp18.x = 1200.0f;

View file

@ -163,8 +163,8 @@ HsfanimStruct00 lbl_1_data_258 = {
{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } },
};
const Point3d lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f };
const Point3d lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f };
const Vec lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f };
const Vec lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f };
s16 lbl_1_bss_99C;
s16 lbl_1_bss_99A;
s16 lbl_1_bss_98A[8];
@ -196,9 +196,9 @@ static u8 unk_bss[8];
void fn_1_29C(omObjData *arg0)
{
Point3d sp20;
Point3d sp14;
Point3d sp8;
Vec sp20;
Vec sp14;
Vec sp8;
Mtx sp2C;
s16 var_r31;
s16 temp_r27;
@ -337,7 +337,7 @@ void fn_1_F38(void)
// -------------------------------------------------------------------------- //
static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30)
static inline void HuControlCamCenter(Vec *sp18, Vec *sp30)
{
s8 temp_r28;
@ -364,10 +364,10 @@ const HuUnkF9C2 lbl_1_rodata_B8 = { { 8, 6, 4, 7, 9, 10, 11 } };
void fn_1_F9C(struct om_obj_data *omData)
{
Point3d sp3C;
Point3d sp30;
Point3d sp24;
Point3d sp18;
Vec sp3C;
Vec sp30;
Vec sp24;
Vec sp18;
f32 temp_f31;
s32 var_r31;
s16 var_r30;
@ -643,9 +643,9 @@ void fn_1_20F4(void)
// -------------------------------------------------------------------------- //
void fn_1_28F8(Point3d *arg0, Point3d *arg1)
void fn_1_28F8(Vec *arg0, Vec *arg1)
{
Point3d spC;
Vec spC;
Mtx sp18;
CameraData *cam;
f32 temp_f31;

View file

@ -1,27 +1,28 @@
#include "math.h"
#include "game/chrman.h"
#include "game/wipe.h"
#include "game/pad.h"
#include "game/wipe.h"
#include "math.h"
#include "REL/modeltestDll.h"
// -------------------------------------------------------------------------- //
omObjData * unk_bss_9FC;
omObjData * lbl_1_bss_9F8;
omObjData * lbl_1_bss_9F4;
omObjData *unk_bss_9FC;
omObjData *lbl_1_bss_9F8;
omObjData *lbl_1_bss_9F4;
s16 lbl_1_bss_9EC[4];
s16 lbl_1_bss_9AC[4][8];
Process * lbl_1_bss_9A8;
u16 lbl_1_data_358[4] = {1, 2, 4, 8};
Process *lbl_1_bss_9A8;
u16 lbl_1_data_358[4] = { 1, 2, 4, 8 };
// -------------------------------------------------------------------------- //
void fn_1_34B0()
{
Process * temp_r30;
Process *temp_r30;
s16 var_r31;
OSReport("******* MODELTESTObjectSetup *********\n");
temp_r30 = omInitObjMan(0x32, 0x2000);
@ -33,8 +34,7 @@ void fn_1_34B0()
Center.z = 0.0f;
CZoom = 400.0f;
for (var_r31 = 0; var_r31 < 4; ++var_r31)
{
for (var_r31 = 0; var_r31 < 4; ++var_r31) {
Hu3DCameraCreate(lbl_1_data_358[var_r31]);
Hu3DCameraPerspectiveSet(lbl_1_data_358[var_r31], 45.0f, 20.0f, 20000.0f, 1.2f);
Hu3DCameraViewportSet(lbl_1_data_358[var_r31], (var_r31 & 1) * 320, ((var_r31 & 2) != 0) ? 0xF0 : 0, 320.0f, 240.0f, 0.0f, 1.0f);
@ -51,7 +51,8 @@ void fn_1_34B0()
// -------------------------------------------------------------------------- //
static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) {
static inline void HuControlCamCenter(Vec *sp18, Vec *sp30)
{
s8 temp_r28;
temp_r28 = HuPadSubStkX[0] & 0xF8;
@ -73,12 +74,12 @@ static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) {
void fn_1_37DC(omObjData *)
{
Point3d sp3C;
Point3d sp30;
Point3d sp24;
Point3d sp18;
Vec sp3C;
Vec sp30;
Vec sp24;
Vec sp18;
float temp_f31;
if ((HuPadBtnDown[0] & PAD_BUTTON_START) != 0) {
if (lbl_1_bss_9A8) {
HuPrcKill(lbl_1_bss_9A8);
@ -113,17 +114,17 @@ void fn_1_37DC(omObjData *)
sp24.y = cosd(CRot.x);
sp24.z = cosd(CRot.y) * sind(CRot.x);
temp_f31 = CRot.z;
sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cosd(temp_f31))
+ sp24.y * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) - sp30.z * sind(temp_f31))
+ sp24.z * (sp30.x * sp30.z * (1.0f - cosd(temp_f31)) + sp30.y * sind(temp_f31));
+ sp24.y * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) - sp30.z * sind(temp_f31))
+ sp24.z * (sp30.x * sp30.z * (1.0f - cosd(temp_f31)) + sp30.y * sind(temp_f31));
sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cosd(temp_f31))
+ sp24.x * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) + sp30.z * sind(temp_f31))
+ sp24.z * (sp30.y * sp30.z * (1.0f - cosd(temp_f31)) - sp30.x * sind(temp_f31));
+ sp24.x * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) + sp30.z * sind(temp_f31))
+ sp24.z * (sp30.y * sp30.z * (1.0f - cosd(temp_f31)) - sp30.x * sind(temp_f31));
sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cosd(temp_f31))
+ (sp24.x * (sp30.x * sp30.z * (1.0 - cosd(temp_f31)) - sp30.y * sind(temp_f31))
+ (sp24.x * (sp30.x * sp30.z * (1.0 - cosd(temp_f31)) - sp30.y * sind(temp_f31))
+ sp24.y * (sp30.y * sp30.z * (1.0 - cosd(temp_f31)) + sp30.x * sind(temp_f31)));
VECCrossProduct(&sp24, &sp30, &sp30);
@ -134,24 +135,23 @@ void fn_1_37DC(omObjData *)
// -------------------------------------------------------------------------- //
void fn_1_439C(omObjData * )
void fn_1_439C(omObjData *)
{
s16 var_r31;
f32 temp_f30;
f32 temp_f31;
f32 sp10;
Point3d sp2C;
Point3d sp20;
Point3d sp14;
for (var_r31 = 0; var_r31 < 4; ++var_r31)
{
Vec sp2C;
Vec sp20;
Vec sp14;
for (var_r31 = 0; var_r31 < 4; ++var_r31) {
temp_f31 = CRot.x;
temp_f30 = CRot.y + (var_r31 * 90);
sp10 = CRot.z;
sp2C.x = Center.x + CZoom * (sind(temp_f30) * (cosd(temp_f31)));
sp2C.y = Center.y + CZoom * -sind(temp_f31);
sp2C.z = Center.z + CZoom * (cosd(temp_f30) * (cosd(temp_f31)));
sp20.x = Center.x;
sp20.y = Center.y;
sp20.z = Center.z;
@ -160,22 +160,22 @@ void fn_1_439C(omObjData * )
sp14.y = cosd(temp_f31);
sp14.z = cosd(temp_f30) * (sind(temp_f31));
Hu3DCameraPosSet(lbl_1_data_358[var_r31], sp2C.x, sp2C.y, sp2C.z, sp14.x, sp14.y, sp14.z, sp20.x, sp20.y, sp20.z);
Hu3DCameraPosSet(lbl_1_data_358[var_r31], sp2C.x, sp2C.y, sp2C.z, sp14.x, sp14.y, sp14.z, sp20.x, sp20.y, sp20.z);
}
}
// -------------------------------------------------------------------------- //
const Point3d lbl_1_rodata_18C = {0.0f, 0.0f, 0.0f};
const Point3d lbl_1_rodata_198 = {0.0f, 1.0f, 0.0f};
const Vec lbl_1_rodata_18C = { 0.0f, 0.0f, 0.0f };
const Vec lbl_1_rodata_198 = { 0.0f, 1.0f, 0.0f };
// -------------------------------------------------------------------------- //
void fn_1_46F0(void)
{
Point3d sp20;
Point3d sp14;
Point3d sp8;
Vec sp20;
Vec sp14;
Vec sp8;
s16 var_r31;
s16 var_r30;
@ -192,8 +192,7 @@ void fn_1_46F0(void)
sp20.z = 1000.0f;
Hu3DShadowPosSet(&sp20, &sp8, &sp14);
for (var_r31 = 0; var_r31 < 4; ++var_r31)
{
for (var_r31 = 0; var_r31 < 4; ++var_r31) {
var_r30 = var_r31;
lbl_1_bss_9EC[var_r31] = CharModelCreate(var_r30, 8);
Hu3DModelShadowSet(lbl_1_bss_9EC[var_r31]);
@ -201,7 +200,7 @@ void fn_1_46F0(void)
CharModelMotionSet(var_r30, lbl_1_bss_9AC[var_r31][0]);
Hu3DModelAttrSet(lbl_1_bss_9EC[var_r31], HU3D_MOTATTR_LOOP);
Hu3DModelCameraSet(lbl_1_bss_9EC[var_r31], lbl_1_data_358[var_r31]);
Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], ((( var_r31 / 4) * 200) - 100), 0.0f, (-( var_r31 % 4) * 150));
Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], (((var_r31 / 4) * 200) - 100), 0.0f, (-(var_r31 % 4) * 150));
Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], 0.0f, 0.0f, 0.0f);
CharModelMotionDataClose(var_r30);
}
@ -210,15 +209,12 @@ void fn_1_46F0(void)
Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f);
Hu3DModelShadowMapSet(var_r31);
while (TRUE)
{
while (TRUE) {
if ((HuPadBtnDown[0] & PAD_BUTTON_Y) != 0) {
Hu3DCameraKill(2);
Hu3DCameraKill(4);
Hu3DCameraKill(8);
sp20.x =
sp20.z =
sp20.y = 0.0f;
sp20.x = sp20.z = sp20.y = 0.0f;
sp20.y += 200.0f;
CharModelCoinEffectCreate(4, &sp20);
}

View file

@ -2,22 +2,22 @@
#include "game/frand.h"
// Temporary defines
#define BOARD_ITEM_MINI 0x0
#define BOARD_ITEM_MEGA 0x1
#define BOARD_ITEM_SUPERMINI 0x2
#define BOARD_ITEM_SUPERMEGA 0x3
#define BOARD_ITEM_HAMMER 0x4
#define BOARD_ITEM_PIPE 0x5
#define BOARD_ITEM_CARD 0x6
#define BOARD_ITEM_SPARKY 0x7
#define BOARD_ITEM_GADDLIGHT 0x8
#define BOARD_ITEM_CHOMPCALL 0x9
#define BOARD_ITEM_SUIT 0xA
#define BOARD_ITEM_BOO 0xB
#define BOARD_ITEM_LAMP 0xC
#define BOARD_ITEM_BAG 0xD
#define BOARD_ITEM_MAX 0xE
#define BOARD_ITEM_NONE -1
#define BOARD_ITEM_MINI 0x0
#define BOARD_ITEM_MEGA 0x1
#define BOARD_ITEM_SUPERMINI 0x2
#define BOARD_ITEM_SUPERMEGA 0x3
#define BOARD_ITEM_HAMMER 0x4
#define BOARD_ITEM_PIPE 0x5
#define BOARD_ITEM_CARD 0x6
#define BOARD_ITEM_SPARKY 0x7
#define BOARD_ITEM_GADDLIGHT 0x8
#define BOARD_ITEM_CHOMPCALL 0x9
#define BOARD_ITEM_SUIT 0xA
#define BOARD_ITEM_BOO 0xB
#define BOARD_ITEM_LAMP 0xC
#define BOARD_ITEM_BAG 0xD
#define BOARD_ITEM_MAX 0xE
#define BOARD_ITEM_NONE -1
/* BSS */
s16 lbl_1_bss_30[0x10]; // Model List
@ -25,30 +25,29 @@ s16 lbl_1_bss_2E;
s16 lbl_1_bss_2C;
Vec lbl_1_bss_20;
Vec lbl_1_bss_14;
s32* lbl_1_bss_10;
s32 *lbl_1_bss_10;
s16 lbl_1_bss_8[4]; // Item List
Process* lbl_1_bss_4;
u8* lbl_1_bss_0;
Process *lbl_1_bss_4;
u8 *lbl_1_bss_0;
/* DATA */
static BoardMapObject lbl_1_data_0[0x10] = {
{{2550.0f, 0.0f, -450.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000C)},
{{-3150.0f, 0.0f, -1350.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000D)},
{{-3150.0f, 0.0f, 1650.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000E)},
{{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0008)},
{{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0009)},
{{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000A)},
{{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000B)},
{{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0011)},
{{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0012)},
{{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0015)},
{{-300.0f, 0.0f, -900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0016)},
{{1175.0f, 0.0f, -125.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)},
{{-525.0f, 0.0f, -825.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)},
{{-2225.0f, 0.0f, -2100.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)},
{{1925.0f, 0.0f, -2100.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)},
{{150.0f, 0.0f, 1650.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}
};
static BoardMapObject lbl_1_data_0[0x10]
= { { { 2550.0f, 0.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000C) },
{ { -3150.0f, 0.0f, -1350.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000D) },
{ { -3150.0f, 0.0f, 1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000E) },
{ { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0008) },
{ { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0009) },
{ { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000A) },
{ { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000B) },
{ { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0011) },
{ { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0012) },
{ { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0015) },
{ { -300.0f, 0.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0016) },
{ { 1175.0f, 0.0f, -125.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) },
{ { -525.0f, 0.0f, -825.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) },
{ { -2225.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) },
{ { 1925.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) },
{ { 150.0f, 0.0f, 1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) } };
// Special Models
s16 lbl_1_data_280 = -1;
@ -56,21 +55,15 @@ s16 lbl_1_data_282 = -1;
s16 lbl_1_data_284 = -1;
s16 lbl_1_data_286 = -1;
s32 lbl_1_data_288[] = {
DATA_MAKE_NUM(DATADIR_W02, 0x0004),
DATA_NUM_LISTEND
};
s32 lbl_1_data_288[] = { DATA_MAKE_NUM(DATADIR_W02, 0x0004), DATA_NUM_LISTEND };
s32 lbl_1_data_290[] = {
DATA_MAKE_NUM(DATADIR_BGUEST, 0x0009),
DATA_MAKE_NUM(DATADIR_BGUEST, 0x0006),
DATA_MAKE_NUM(DATADIR_BGUEST, 0x0007),
DATA_MAKE_NUM(DATADIR_BGUEST, 0x0008),
DATA_NUM_LISTEND,
DATA_MAKE_NUM(DATADIR_BGUEST, 0x0009), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0006), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0007),
DATA_MAKE_NUM(DATADIR_BGUEST, 0x0008), DATA_NUM_LISTEND,
0x00000000 // Padding
};
/* Functions */
//Actual externs
// Actual externs
extern void BoardMusStart(s32, s32, s32, s32);
extern void BoardAudSeqPause(s32, s32, s32);
s8 BoardComPreferItemCheck(s32, s8, s8, s8);
@ -79,13 +72,15 @@ extern void BoardComKeySetRight();
extern void CharModelDataClose(s16);
// function is probably global. only inlined in rels?
inline s32 get_current_board(void) {
inline s32 get_current_board(void)
{
return GWSystem.board;
}
void BoardCreate(void) {
void BoardCreate(void)
{
s32 i, boardData;
BoardMapObject* modelTransform;
BoardMapObject *modelTransform;
boardData = get_current_board();
lbl_1_bss_0 = GWSystem.board_data;
@ -106,12 +101,13 @@ void BoardCreate(void) {
BoardModelMotionStart(lbl_1_data_286, 1, 0x40000001);
BoardLightHookSet(fn_1_72C, fn_1_770);
for(i = 0; i < 0x10; i++) {
for (i = 0; i < 0x10; i++) {
modelTransform = &lbl_1_data_0[i];
if (modelTransform->data_num != -1) {
if ((i == 0xB) || (i == 0xC) || (i == 0xD) || (i == 0xE) || (i == 0xF)) {
lbl_1_bss_10 = lbl_1_data_290;
} else {
}
else {
lbl_1_bss_10 = NULL;
}
lbl_1_bss_30[i] = BoardModelCreate(modelTransform->data_num, lbl_1_bss_10, 0);
@ -146,7 +142,8 @@ void BoardCreate(void) {
BoardJunctionMaskSet(0x30);
}
void BoardDestroy(void) {
void BoardDestroy(void)
{
/* Kill Model List */
s32 i;
for (i = 0; i < 0x10; i++) {
@ -176,17 +173,17 @@ void BoardDestroy(void) {
BoardSpaceDestroy();
}
void fn_1_72C(void) {
void fn_1_72C(void)
{
s16 var = BoardModelIDGet(lbl_1_data_280);
Hu3DModelLightInfoSet(var, 1);
}
void fn_1_770(void) {
}
void fn_1_770(void) { }
/* Decrement current space's [UNKNOWN] flag */
s32 fn_1_774(void) {
s32 fn_1_774(void)
{
u32 unkFlag;
u32 currPlayer;
u32 currSpace;
@ -194,7 +191,7 @@ s32 fn_1_774(void) {
currPlayer = GWSystem.player_curr;
currSpace = GWPlayer[currPlayer].space_curr;
spaceFlags = BoardSpaceFlagGet(0, currSpace);
//temp_r31 = (temp_r)
// temp_r31 = (temp_r)
unkFlag = (spaceFlags & 0x1C0) >> 6;
if (unkFlag != 0) {
unkFlag--;
@ -203,8 +200,9 @@ s32 fn_1_774(void) {
}
/* Check if can iteract with board object? */
s32 fn_1_800(void) {
BoardSpace* currSpace;
s32 fn_1_800(void)
{
BoardSpace *currSpace;
s32 currPlayer;
s32 var_r29;
@ -212,7 +210,6 @@ s32 fn_1_800(void) {
currSpace = BoardSpaceGet(0, GWPlayer[currPlayer].space_curr);
if ((currSpace->flag & 0x30) != 0) {
// If mega mushroom state return
if (BoardPlayerSizeGet(currPlayer) == 2) {
return 0;
@ -224,9 +221,11 @@ s32 fn_1_800(void) {
if ((currSpace->flag & 0x20) != 0 && (currSpace->flag & 0x10) != 0) {
var_r29 = 2;
} else if ((currSpace->flag & 0x20) != 0) {
}
else if ((currSpace->flag & 0x20) != 0) {
var_r29 = 1;
} else {
}
else {
var_r29 = 0;
}
fn_1_394C(var_r29);
@ -239,22 +238,23 @@ s32 fn_1_800(void) {
return 0;
}
void fn_1_92C(void) {
void fn_1_92C(void)
{
fn_1_39F4();
fn_1_5CF8();
}
void fn_1_950(void) {
void fn_1_950(void) { }
}
void fn_1_954(void) {
void fn_1_954(void)
{
HuPrcSleep(0x3C);
BoardMusStart(1, 0x12, 0x7F, 0);
HuPrcEnd();
}
void fn_1_990(void) {
void fn_1_990(void)
{
Vec rotation;
Vec offset;
Vec boardSpacePos;
@ -264,13 +264,13 @@ void fn_1_990(void) {
s32 currSpace;
s32 spaceLinkFlag;
currPlayer = GWSystem.player_curr;
BoardWinCreateChoice(2, MAKE_MESSID(19, 17), 4, 0);
if (GWPlayer[currPlayer].com) {
if (frandBool() != 0) {
BoardComKeySetLeft();
} else {
}
else {
BoardComKeySetRight();
}
}
@ -317,7 +317,8 @@ void fn_1_990(void) {
BoardPlayerMotionStart(currPlayer, 1, 0x40000001);
}
void fn_1_C50(void) {
void fn_1_C50(void)
{
Vec rotation;
Vec offset;
s32 currSpace;
@ -327,7 +328,7 @@ void fn_1_C50(void) {
s32 i, j;
currPlayer = GWSystem.player_curr;
if (BoardPlayerItemCount((s32) currPlayer) == 3) {
if (BoardPlayerItemCount((s32)currPlayer) == 3) {
BoardWinCreate(2, MAKE_MESSID(19, 26), 4);
BoardWinWait();
BoardWinKill();
@ -351,7 +352,7 @@ void fn_1_C50(void) {
}
if (lbl_1_bss_8[i] != BOARD_ITEM_NONE) {
i++;
}
}
}
}
fn_1_79BC(lbl_1_bss_8);
@ -361,7 +362,8 @@ void fn_1_C50(void) {
if (GWPlayer[currPlayer].com) {
if (BoardComPreferItemCheck(currPlayer, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) {
BoardComKeySetLeft();
} else {
}
else {
BoardComKeySetRight();
}
}
@ -387,14 +389,14 @@ void fn_1_C50(void) {
offset.x = 0.0f;
offset.y = 0.0f;
offset.z = -250.0f;
BoardCameraMotionStartEx(lbl_1_bss_30[10], (Point3d* ) &rotation, (Point3d* ) &offset, 1500.0f, 25.0f, 0x15);
BoardCameraMotionStartEx(lbl_1_bss_30[10], (Vec *)&rotation, (Vec *)&offset, 1500.0f, 25.0f, 0x15);
currSpace = GWPlayer[currPlayer].space_curr;
spaceLinkFlags = BoardSpaceLinkFlagSearch(0, currSpace, 0x02000000U);
BoardPlayerMoveBetween(currPlayer, currSpace, spaceLinkFlags);
while (GWPlayer[currPlayer].moving) {
HuPrcVSleep();
}
BoardPlayerMotionStart((s32) currPlayer, 1, 0x40000001);
BoardPlayerMotionStart((s32)currPlayer, 1, 0x40000001);
BoardPlayerMotBlendSet(currPlayer, 0xB4, 0xF);
while (BoardPlayerMotBlendCheck(currPlayer) == 0) {
HuPrcVSleep();
@ -409,17 +411,19 @@ void fn_1_C50(void) {
HuPrcVSleep();
}
fn_1_5F90();
BoardPlayerMotionStart((s32) currPlayer, 1, 0x40000001);
BoardPlayerMotionStart((s32)currPlayer, 1, 0x40000001);
HuPrcEnd();
}
void fn_1_1070(void) {
void fn_1_1070(void)
{
BoardWinKill();
CharModelDataClose(-1);
lbl_1_bss_4 = 0;
}
void fn_1_10A8(void) {
void fn_1_10A8(void)
{
lbl_1_bss_4 = HuPrcChildCreate(fn_1_C50, 0x2003U, 0x2000U, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1070);
while (lbl_1_bss_4) {
@ -427,7 +431,8 @@ void fn_1_10A8(void) {
}
}
s32 fn_1_1128(void) {
s32 fn_1_1128(void)
{
u32 spaceFlags;
s16 currSpace;
currSpace = GWPlayer[GWSystem.player_curr].space_curr;
@ -436,7 +441,8 @@ s32 fn_1_1128(void) {
if (spaceFlags & 0x200000) {
fn_1_990();
} else if (spaceFlags & 0x400000) {
}
else if (spaceFlags & 0x400000) {
lbl_1_bss_4 = HuPrcChildCreate(fn_1_C50, 0x2003U, 0x2000U, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1070);
while (lbl_1_bss_4) {
@ -447,7 +453,8 @@ s32 fn_1_1128(void) {
BoardRollDispSet(1);
}
void fn_1_121C(u32 mesg) {
void fn_1_121C(u32 mesg)
{
BoardWinCreate(2, mesg, 4);
BoardWinWait();
BoardWinKill();

File diff suppressed because it is too large Load diff

View file

@ -134,9 +134,9 @@ void fn_1_7C98(void)
s32 fn_1_7D18(s32 arg0)
{
Point3d sp38;
Point3d sp2C;
Point3d sp20;
Vec sp38;
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
f32 var_f31;
@ -259,7 +259,7 @@ s32 lbl_1_data_490[] = {
void fn_1_81E0(s32 arg0)
{
Point3d sp8;
Vec sp8;
omObjData *temp_r3;
f32 temp_f31;
s32 temp_r28;
@ -499,7 +499,7 @@ s32 lbl_1_data_4B4[] = { 0x00000440, 0x00000441, 0x00000442, 0x00000443, 0x00000
void fn_1_8C08(omObjData *arg0, someBits3 *arg1)
{
Point3d spC;
Vec spC;
f32 temp_f31;
f32 temp_f30;
s8 temp_r27;
@ -535,7 +535,7 @@ void fn_1_8C08(omObjData *arg0, someBits3 *arg1)
void fn_1_8E44(omObjData *arg0, someBits3 *arg1)
{
Point3d sp8;
Vec sp8;
f32 temp_f1;
f32 temp_f31;
@ -611,9 +611,9 @@ void fn_1_91B8(void)
void fn_1_9230(s32 arg0)
{
Point3d sp20;
Point3d sp14;
Point3d sp8;
Vec sp20;
Vec sp14;
Vec sp8;
s16 temp_r30;
f32 rotY;
@ -747,7 +747,7 @@ void fn_1_95B8(omObjData *arg0)
void fn_1_97F8(s32 arg0)
{
Point3d sp8;
Vec sp8;
f32 temp_f2;
f32 var_f31;
f64 temp_f1;

View file

@ -794,9 +794,9 @@ void fn_1_B350(omObjData *arg0)
void fn_1_B4AC(omObjData *arg0, someBits2 *arg1)
{
Point3d sp20;
Point3d sp14;
Point3d sp8;
Vec sp20;
Vec sp14;
Vec sp8;
f32 temp_f31;
s8 temp_r0;
s32 i;
@ -827,7 +827,7 @@ void fn_1_B4AC(omObjData *arg0, someBits2 *arg1)
void fn_1_B688(omObjData *arg0, someBits2 *arg1)
{
Point3d sp8;
Vec sp8;
if (arg1->unk1-- != 0) {
BoardModelPosGet(arg1->unk_06[arg1->unk2], &sp8);
@ -844,7 +844,7 @@ void fn_1_B688(omObjData *arg0, someBits2 *arg1)
void fn_1_B748(omObjData *arg0, someBits2 *arg1)
{
Vec sp14;
Point3d sp8;
Vec sp8;
f32 temp_f0;
s16 temp_r29;
@ -877,8 +877,8 @@ void fn_1_B748(omObjData *arg0, someBits2 *arg1)
void fn_1_B8E8(s32 arg0)
{
Point3d sp14;
Point3d sp8;
Vec sp14;
Vec sp8;
f32 temp_f31;
someBits2 *temp_r31;
f32 temp;
@ -975,7 +975,7 @@ void fn_1_BDAC(void)
void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix)
{
Point3d sp8;
Vec sp8;
f32 temp_f30;
f32 temp_f29;
f32 temp_f31;

View file

@ -1,28 +1,29 @@
#include "dolphin.h"
#include "game/object.h"
#include "REL/w03Dll.h"
#include "dolphin.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/hsfdraw.h"
#include "game/object.h"
#include "ext_math.h"
//BSS
// BSS
char lbl_1_bss_130[8];
omObjData* lbl_1_bss_12C;
omObjData *lbl_1_bss_12C;
s16 lbl_1_bss_128;
s32 lbl_1_bss_124;
Process* lbl_1_bss_120;
Process *lbl_1_bss_120;
//function signatures
// function signatures
void fn_1_67F8(void);
void fn_1_6884(void);
void fn_1_767C(omObjData* arg0);
void fn_1_767C(omObjData *arg0);
s32 fn_1_6898(s32 arg0);
void fn_1_6B98(s32 arg0);
void fn_1_6F9C(s32 arg0);
void fn_1_767C(omObjData* arg0);
void fn_1_767C(omObjData *arg0);
void fn_1_735C(s32 arg0);
void fn_1_77E4(s32 arg0);
@ -34,43 +35,37 @@ typedef struct unkWorkStruct {
f32 unk_04;
} unkWorkStruct;
//data
s32 lbl_1_data_368[] = {
0x00000105, 0x00000145, 0x00000185,
0x000001C5, 0x00000205, 0x00000245,
0x00000285, 0x000002C5
};
// data
s32 lbl_1_data_368[] = { 0x00000105, 0x00000145, 0x00000185, 0x000001C5, 0x00000205, 0x00000245, 0x00000285, 0x000002C5 };
s16 lbl_1_data_388 = -1;
s16 lbl_1_data_38A = -1;
s16 lbl_1_data_38C = -1;
s32 lbl_1_data_390[] = {
DATA_MAKE_NUM(DATADIR_W03, 0x26),
DATA_MAKE_NUM(DATADIR_W03, 0x27),
DATA_MAKE_NUM(DATADIR_W03, 0x28),
DATA_NUM_LISTEND
};
s32 lbl_1_data_390[] = { DATA_MAKE_NUM(DATADIR_W03, 0x26), DATA_MAKE_NUM(DATADIR_W03, 0x27), DATA_MAKE_NUM(DATADIR_W03, 0x28), DATA_NUM_LISTEND };
void fn_1_63F4(s32 arg0) {
void fn_1_63F4(s32 arg0)
{
Vec spC;
unkWorkStruct* work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct);
unkWorkStruct *work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct);
work->unk_04 = 0.0f;
BoardModelPosGet(lbl_1_data_388, &spC);
if (arg0 != 0) {
spC.y = -185.0f;
} else {
}
else {
spC.y = 10.0f;
}
BoardModelPosSetV(lbl_1_data_388, &spC);
}
void fn_1_6494(void) {
void fn_1_6494(void)
{
Vec sp14;
Vec sp8;
unkWorkStruct* temp_r31;
unkWorkStruct *temp_r31;
lbl_1_data_388 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0E), NULL, 0);
lbl_1_data_38C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0F), NULL, 0);
@ -83,14 +78,15 @@ void fn_1_6494(void) {
sp14.x = sp8.x + (400.0 * sin(-(M_PI / 2)));
sp14.z = sp8.z + (400.0 * cos(-(M_PI / 2)));
BoardModelPosSetV(lbl_1_data_388, &sp14);
lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_767C);
lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void *)fn_1_767C);
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct);
temp_r31->temp1 = 0;
temp_r31->unk_04 = 0.0f;
lbl_1_bss_124 = 0;
}
s32 fn_1_6698(void) {
s32 fn_1_6698(void)
{
Vec sp14;
Vec sp8;
@ -98,11 +94,12 @@ s32 fn_1_6698(void) {
BoardSpaceFlagPosGet(0, 0x200, &sp8);
sp14.x = sp8.x + (400.0 * sin(-(M_PI / 2)));
sp14.z = sp8.z + (400.0 * cos(-(M_PI / 2)));
BoardModelPosSetV(lbl_1_data_388, (Point3d* ) &sp14);
BoardModelPosSetV(lbl_1_data_388, (Vec *)&sp14);
return 1;
}
s16 fn_1_675C(void) {
s16 fn_1_675C(void)
{
BoardRollDispSet(0);
lbl_1_bss_120 = HuPrcChildCreate(fn_1_67F8, 0x2003, 0x2000, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_120, fn_1_6884);
@ -115,7 +112,8 @@ s16 fn_1_675C(void) {
return lbl_1_bss_128;
}
void fn_1_67F8(void) {
void fn_1_67F8(void)
{
s32 temp_r31;
temp_r31 = GWSystem.player_curr;
@ -133,7 +131,8 @@ void fn_1_67F8(void) {
HuPrcEnd();
}
void fn_1_6884(void) {
void fn_1_6884(void)
{
lbl_1_bss_120 = 0;
}
@ -144,15 +143,16 @@ typedef struct unkPos {
} unkPos;
unkPos lbl_1_data_3B8[6] = {
{5, 20, 5},
{21, 35, 7},
{31, 50, 10},
{51, 80, 15},
{81, 100, 17},
{101, 999, 20},
{ 5, 20, 5 },
{ 21, 35, 7 },
{ 31, 50, 10 },
{ 51, 80, 15 },
{ 81, 100, 17 },
{ 101, 999, 20 },
};
s32 fn_1_6898(s32 arg0) {
s32 fn_1_6898(s32 arg0)
{
Vec sp20;
Vec sp14;
Vec sp8;
@ -165,7 +165,7 @@ s32 fn_1_6898(s32 arg0) {
BoardPlayerIdleSet(arg0);
BoardCameraViewSet(2);
BoardCameraMotionWait();
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "hei01", &sp20);
BoardPlayerPosGet(arg0, &sp14);
VECSubtract(&sp20, &sp14, &sp8);
@ -197,7 +197,7 @@ s32 fn_1_6898(s32 arg0) {
var_r27 = lbl_1_data_3B8[i].z;
break;
}
}
}
}
sprintf(lbl_1_bss_130, "%d", var_r27);
@ -216,24 +216,24 @@ s32 fn_1_6898(s32 arg0) {
BoardWinKill();
switch (BoardWinChoiceGet()) {
case 0:
j = 1;
break;
case 1:
case -1:
BoardWinCreate(2, MAKE_MESSID(22, 14), 2);
BoardWinWait();
BoardWinKill();
return 0;
default:
BoardViewMapExec(arg0);
case 0:
j = 1;
break;
case 1:
case -1:
BoardWinCreate(2, MAKE_MESSID(22, 14), 2);
BoardWinWait();
BoardWinKill();
return 0;
default:
BoardViewMapExec(arg0);
}
}
for (i = 0; i < var_r27; i++) {
BoardPlayerCoinsAdd(arg0, -1);
HuAudFXPlay(0xE);
HuPrcSleep(6);
HuPrcSleep(6);
}
HuAudFXPlay(0xF);
@ -245,11 +245,12 @@ s32 fn_1_6898(s32 arg0) {
s32 BoardDAngleCalcRange(float *value, float min, float range);
void fn_1_6B98(s32 arg0) {
void fn_1_6B98(s32 arg0)
{
Vec sp30;
Point3d sp24;
Vec sp24;
Vec sp18;
Point3d spC;
Vec spC;
f32 sp8;
f32 temp_f1;
f32 temp_f31;
@ -287,19 +288,19 @@ void fn_1_6B98(s32 arg0) {
VECAdd(&spC, &sp24, &sp24);
temp_f1 = BoardModelMotionTimeGet(lbl_1_data_38A);
if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16) var_r31 == 0)) {
if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16)var_r31 == 0)) {
HuAudFXPlay(0x451);
var_r31 = 1;
}
if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16) var_r31 != 0)) {
if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16)var_r31 != 0)) {
var_r31 = 0;
}
BoardModelPosSetV(lbl_1_data_388, &sp24);
HuPrcVSleep();
HuPrcVSleep();
}
BoardModelPosSetV(lbl_1_data_388, &sp18);
BoardCameraTargetModelSet(-1);
BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, HU3D_MOTATTR_REV);
@ -321,7 +322,8 @@ void fn_1_6B98(s32 arg0) {
extern s32 lbl_1_data_368[];
// extern w03State* lbl_1_bss_0;
void fn_1_6F9C(s32 arg0) {
void fn_1_6F9C(s32 arg0)
{
Vec sp20;
Vec sp14;
Vec sp8;
@ -344,7 +346,8 @@ void fn_1_6F9C(s32 arg0) {
var_f30 = 10.0f;
var_f29 = 0.21f;
sp14.y += sp20.y;
} else {
}
else {
var_f30 = 0.0f;
var_f29 = 0.15f;
}
@ -364,16 +367,17 @@ void fn_1_6F9C(s32 arg0) {
}
}
BoardPlayerPosSetV(arg0, &sp14);
HuPrcVSleep();
HuPrcVSleep();
}
BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE);
HuPrcSleep(10);
BoardPlayerIdleSet(arg0);
if (GWPlayer[arg0].bowser_suit != 0) {
BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0));
} else {
}
else {
BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0));
}
@ -381,10 +385,11 @@ void fn_1_6F9C(s32 arg0) {
lbl_1_bss_124 = 0;
}
void fn_1_735C(s32 arg0) {
void fn_1_735C(s32 arg0)
{
Vec sp20;
Vec sp14;
Point3d sp8;
Vec sp8;
f32 temp_f1;
f32 var_f30;
f32 var_f31;
@ -397,19 +402,20 @@ void fn_1_735C(s32 arg0) {
BoardPlayerPosSetV(arg0, &sp14);
BoardModelHookObjReset(lbl_1_data_388, "chara01");
VECSubtract(&sp20, &sp14, &sp8);
sp8.x = sp8.x / 60.0f;
sp8.z = sp8.z / 60.0f;
sp8.y = 0.0f;
HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]);
BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE);
if (lbl_1_bss_0->unk0 != 0) {
var_f30 = 0.25f;
} else {
}
else {
var_f30 = 0.2f;
}
for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) {
VECAdd(&sp14, &sp8, &sp14);
sp14.y += 20.0f + (var_f30 * (-0.08166667f * var_f31 * var_f31));
@ -421,9 +427,9 @@ void fn_1_735C(s32 arg0) {
}
}
BoardPlayerPosSetV(arg0, &sp14);
HuPrcVSleep();
HuPrcVSleep();
}
BoardPlayerPosSetV(arg0, &sp20);
HuPrcSleep(0xA);
BoardPlayerMotBlendSet(arg0, 0, 15);
@ -441,15 +447,15 @@ void fn_1_735C(s32 arg0) {
BoardWinKill();
}
void fn_1_767C(omObjData* arg0) {
Point3d sp8;
void fn_1_767C(omObjData *arg0)
{
Vec sp8;
s32 temp_r30;
unkWorkStruct* temp_r31;
unkWorkStruct *temp_r31;
temp_r31 = OM_GET_WORK_PTR(arg0, unkWorkStruct);
if ( (temp_r31->temp1 != 0) || (BoardIsKill() != 0)) {
if ((temp_r31->temp1 != 0) || (BoardIsKill() != 0)) {
lbl_1_bss_12C = NULL;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
@ -466,7 +472,8 @@ void fn_1_767C(omObjData* arg0) {
}
}
void fn_1_77E4(s32 arg0) {
void fn_1_77E4(s32 arg0)
{
s32 boardIndex;
s32 var_r30 = 0;

View file

@ -13,7 +13,6 @@
#include "game/objsub.h"
#include "game/process.h"
#include "ext_math.h"
void fn_1_1358(void);
@ -142,11 +141,11 @@ s32 fn_1_15E8(void)
s32 fn_1_1650(s32 arg0)
{
Point3d sp38;
Point3d sp2C;
Point3d sp20;
Point3d sp14;
Point3d sp8;
Vec sp38;
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
f32 temp;
s32 temp2;
@ -356,7 +355,7 @@ s32 fn_1_1D1C(void)
void fn_1_1ED4(s32 arg0)
{
Point3d spC;
Vec spC;
f32 sp8;
lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0C), NULL, 0);
@ -400,9 +399,9 @@ void fn_1_1ED4(s32 arg0)
void fn_1_20E0(s32 arg0)
{
Point3d sp24;
Point3d sp18;
Point3d spC;
Vec sp24;
Vec sp18;
Vec spC;
f32 sp8;
f32 var_f31;
s32 i;
@ -520,9 +519,9 @@ void fn_1_20E0(s32 arg0)
void fn_1_26E0(s32 arg0)
{
Point3d sp20;
Point3d sp14;
Point3d sp8;
Vec sp20;
Vec sp14;
Vec sp8;
f32 temp;
BoardSpacePosGet(0, GWPlayer[arg0].space_curr, &sp20);

View file

@ -1202,7 +1202,7 @@ void PSMTXReflect(register Mtx m, const register Vec *p, const register Vec *n)
}
#endif
void C_MTXLookAt(Mtx m, const Point3d *camPos, const Vec *camUp, const Point3d *target)
void C_MTXLookAt(Mtx m, const Vec *camPos, const Vec *camUp, const Vec *target)
{
Vec vLook, vRight, vUp;

View file

@ -1,3 +1,4 @@
#include "ext_math.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
@ -6,7 +7,7 @@
#include "game/flag.h"
#include "game/objsub.h"
#include "game/process.h"
#include "ext_math.h"
#define BLOCK_SPAWN 0
#define BLOCK_HIT 2
@ -89,7 +90,7 @@ static void BlockProc(void)
s32 sp14[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x60), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x60),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x60), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x60),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x60), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x60) };
Point3d sp8;
Vec sp8;
s32 var_r28;
s32 i;
s32 player;
@ -191,7 +192,7 @@ static void DestroyBlock(void)
static void CreateBlockObj(s32 arg0)
{
Point3d player_pos;
Vec player_pos;
BlockWork *work;
s8 contains_star;
@ -422,7 +423,7 @@ static inline s32 FindCoinModel(s16 *out_model)
static void PopupCoin(void)
{
Point3d star_pos;
Vec star_pos;
omObjData *coinObj;
s32 model_index;
s16 model;
@ -451,8 +452,8 @@ static void PopupCoin(void)
static void PopupCoinExec(omObjData *obj)
{
Point3d coin_pos;
Point3d coin_rot;
Vec coin_pos;
Vec coin_rot;
CoinWork *work;
work = OM_GET_WORK_PTR(obj, CoinWork);