Merge branch 'Rainchus:main' into main
This commit is contained in:
commit
bc6ce69f6c
85 changed files with 13335 additions and 1465 deletions
|
|
@ -0,0 +1,501 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/init.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/window.h"
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
#include "REL/E3SetupDLL.h"
|
||||
|
||||
static s16 mgDefault;
|
||||
static omObjData *mgInterfaceObj;
|
||||
static omObjData *mgSelectObj;
|
||||
static omObjData *mgPicObj;
|
||||
|
||||
s32 lbl_2_bss_14;
|
||||
s16 lbl_2_bss_10;
|
||||
s16 lbl_2_bss_E;
|
||||
s16 lbl_2_bss_C;
|
||||
s16 lbl_2_bss_A;
|
||||
static s16 lbl_2_bss_0[5];
|
||||
|
||||
float lbl_2_data_0[] = { 0, 12000, 0, 0, 0, 0, 0, 0, -1 };
|
||||
|
||||
static void StartMGSelect(omObjData *object);
|
||||
static void UpdatePad(omObjData *object);
|
||||
static void CreateMGSelect(omObjData *object);
|
||||
static void CreateMGPic(omObjData *object);
|
||||
static void UpdateMGInterface(omObjData *object);
|
||||
static void CreateMGInterface(omObjData *object);
|
||||
|
||||
void E3MGSelectInit()
|
||||
{
|
||||
s32 var_r29;
|
||||
s32 var_r30;
|
||||
Process *var_r31;
|
||||
|
||||
for (var_r29 = 0, var_r30 = 0; var_r29 < 4; var_r29++) {
|
||||
if (HuPadStatGet(var_r29) == 0) {
|
||||
var_r30++;
|
||||
}
|
||||
}
|
||||
e3ConfigPlayerCnt = var_r30;
|
||||
if (var_r30 <= 0) {
|
||||
OSReport("No pad detected\n");
|
||||
var_r30++;
|
||||
}
|
||||
mgDefault = 0;
|
||||
HuSysVWaitSet(1);
|
||||
var_r31 = omInitObjMan(0x50, 0x2000);
|
||||
HuWinInit(1);
|
||||
CRot.x = -4.0f;
|
||||
CRot.y = 0.0f;
|
||||
CRot.z = 0.0f;
|
||||
Center.x = 0.0f;
|
||||
Center.y = 160.0f;
|
||||
Center.z = 0.0f;
|
||||
CZoom = 1960.0;
|
||||
e3CameraFov = 40.0f;
|
||||
Hu3DCameraCreate(1);
|
||||
Hu3DCameraPerspectiveSet(1, e3CameraFov, 100.0f, 25000.0f, 4.0f / 3.0f);
|
||||
e3ViewObj = omAddObjEx(var_r31, 32730, 0, 0, -1, omOutView);
|
||||
e3OvlWatchObj = omAddObjEx(var_r31, 200, 0, 0, -1, E3OvlWatchInit);
|
||||
e3MenuMainObj = omAddObjEx(var_r31, 10, 0, 0, -1, StartMGSelect);
|
||||
e3BGObj = omAddObjEx(var_r31, 0x14, 0, 0, -1, E3BGCreate);
|
||||
mgInterfaceObj = omAddObjEx(var_r31, 20, 0, 0, -1, CreateMGInterface);
|
||||
mgSelectObj = omAddObjEx(var_r31, 30, 0, 0, -1, CreateMGSelect);
|
||||
mgPicObj = omAddObjEx(var_r31, 31, 0, 0, -1, CreateMGPic);
|
||||
mgPicObj->work[0] = mgDefault;
|
||||
E3LightInit();
|
||||
WipeCreate(1, 0, -1);
|
||||
}
|
||||
|
||||
s16 lbl_2_data_36[] = { 0x0023, 0x0026, 0x0029, 0x002C };
|
||||
|
||||
static s16 mgOvlTbl[] = {
|
||||
11,
|
||||
12,
|
||||
15,
|
||||
18,
|
||||
20,
|
||||
23,
|
||||
26,
|
||||
27,
|
||||
33,
|
||||
34,
|
||||
39,
|
||||
44,
|
||||
46,
|
||||
};
|
||||
|
||||
static s16 mgIdTbl[] = { 403, 404, 407, 410, 412, 415, 418, 419, 425, 426, 431, 436, 438, 0 };
|
||||
|
||||
static s32 mgNameTbl[] = {
|
||||
0x00170003,
|
||||
0x00170004,
|
||||
0x00170007,
|
||||
0x0017000A,
|
||||
0x0017000C,
|
||||
0x0017000F,
|
||||
0x00170012,
|
||||
0x00170013,
|
||||
0x00170019,
|
||||
0x0017001A,
|
||||
0x0017001F,
|
||||
0x00170024,
|
||||
0x00170026,
|
||||
};
|
||||
|
||||
char lbl_2_data_A8[] = "\013TEST MINIGAME NAME01\n test";
|
||||
char lbl_2_data_C9[] = "\013TEST MINIGAME NAME02";
|
||||
char lbl_2_data_DF[] = "\013TEST MINIGAME NAME03";
|
||||
char lbl_2_data_F5[] = "\013TEST MINIGAME NAME04";
|
||||
char lbl_2_data_10B[] = "\013TEST NAME05";
|
||||
char lbl_2_data_118[] = "\013TEST MINIGAME NAME06";
|
||||
char lbl_2_data_12E[] = "\013TEST NAME07";
|
||||
char lbl_2_data_13B[] = "\013TEST MINIGAME NAME08";
|
||||
char lbl_2_data_151[] = "\013TEST MINIGAME NAME09";
|
||||
char lbl_2_data_167[] = "\013TEST MINIGAME NAME10";
|
||||
char lbl_2_data_17D[] = "\013TEST MINIGAME NAME11";
|
||||
char lbl_2_data_193[] = "\013TEST MINIGAME NAME12";
|
||||
char lbl_2_data_1A9[] = "\013TEST MINIGAME NAME13";
|
||||
|
||||
static char *mgNameTestTbl[] = {
|
||||
lbl_2_data_A8,
|
||||
lbl_2_data_C9,
|
||||
lbl_2_data_DF,
|
||||
lbl_2_data_F5,
|
||||
lbl_2_data_10B,
|
||||
lbl_2_data_118,
|
||||
lbl_2_data_12E,
|
||||
lbl_2_data_13B,
|
||||
lbl_2_data_151,
|
||||
lbl_2_data_167,
|
||||
lbl_2_data_17D,
|
||||
lbl_2_data_193,
|
||||
lbl_2_data_1A9,
|
||||
};
|
||||
|
||||
static float cursorYOfsTbl[] = { -100.0f, -50.0f, 0.0f, 50.0f, 100.0f };
|
||||
|
||||
static s32 mgPicTbl[] = { 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 };
|
||||
|
||||
static char startText[] = "\013\016\r PRESS START";
|
||||
|
||||
static void StartMGSelect(omObjData *object)
|
||||
{
|
||||
HuAudSeqPlay(0x2B);
|
||||
lbl_2_bss_14 = 0;
|
||||
lbl_2_bss_10 = -1;
|
||||
lbl_2_bss_C = 0x1E;
|
||||
lbl_2_bss_A = 0;
|
||||
object->func = UpdatePad;
|
||||
worstVcount = 0;
|
||||
object->work[0] = 0;
|
||||
object->work[1] = 0;
|
||||
}
|
||||
|
||||
static void UpdatePad(omObjData *object)
|
||||
{
|
||||
s32 i;
|
||||
s32 players;
|
||||
|
||||
if (e3ExitEnableF == 0) {
|
||||
for (i = 0, players = 0; i < 4; i++) {
|
||||
E3PadUpdate(i, &e3PadData[i]);
|
||||
if (!e3PadData[i].enable) {
|
||||
players++;
|
||||
}
|
||||
}
|
||||
e3ConfigPlayerCnt = players;
|
||||
}
|
||||
}
|
||||
|
||||
static void UpdateMGSelect(omObjData *object)
|
||||
{
|
||||
mgSelect *var_r31;
|
||||
s32 var_r30;
|
||||
u32 var_r28;
|
||||
s16 var_r27;
|
||||
s16 var_r26;
|
||||
s16 var_r25;
|
||||
s16 var_r24;
|
||||
u16 var_r23;
|
||||
s16 var_r22;
|
||||
s32 var_r21;
|
||||
float sp8[2];
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r23 = e3PadData[e3PadCtrl].btnDown;
|
||||
if (object->work[3] != 0) {
|
||||
if ((var_r23 & 0x1100) != 0) {
|
||||
HuAudFXPlay(1);
|
||||
mgDefault = var_r31->unk_44;
|
||||
var_r21 = mgIdTbl[var_r31->unk_44];
|
||||
GWMGAvailSet(var_r21);
|
||||
GWSystem.mg_next = var_r21 - 401;
|
||||
e3NextOvl = 3;
|
||||
e3NextEvent = 0;
|
||||
e3ExitMode = 2;
|
||||
e3ExitEnableF = 1;
|
||||
var_r28 = mgOvlTbl[var_r31->unk_44];
|
||||
|
||||
for (var_r30 = 0; var_r30 < 50; var_r30++) {
|
||||
if (var_r28 == mgInfoTbl[var_r30].ovl) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r30 >= 50) {
|
||||
e3ExitMode = 0;
|
||||
e3NextOvl = 0;
|
||||
};
|
||||
switch (mgInfoTbl[var_r30].type) {
|
||||
case 0:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
||||
GWPlayerCfg[var_r30].group = var_r30;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
var_r28 = frand();
|
||||
var_r28 &= 3;
|
||||
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
||||
if (var_r28 == var_r30) {
|
||||
GWPlayerCfg[var_r30].group = 0;
|
||||
} else {
|
||||
GWPlayerCfg[var_r30].group = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (var_r30 = 0; var_r30 < 2; var_r30++) {
|
||||
GWPlayerCfg[var_r30].group = 0;
|
||||
}
|
||||
for (var_r30 = 2; var_r30 < 4; var_r30++) {
|
||||
GWPlayerCfg[var_r30].group = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
object->work[3] = 0;
|
||||
return;
|
||||
}
|
||||
if ((var_r23 & 0x200) != 0) {
|
||||
HuAudFXPlay(3);
|
||||
e3ExitMode = 0;
|
||||
e3NextOvl = 0;
|
||||
e3NextEvent = 0;
|
||||
e3ExitEnableF = 1;
|
||||
object->work[3] = 0;
|
||||
return;
|
||||
}
|
||||
if (object->work[3] != 0) {
|
||||
if ((var_r23 & 8) != 0) {
|
||||
HuAudFXPlay(0);
|
||||
var_r31->unk_44--;
|
||||
if (var_r31->unk_44 < 0) {
|
||||
var_r31->unk_44 = 0xC;
|
||||
}
|
||||
} else if ((var_r23 & 4) != 0) {
|
||||
HuAudFXPlay(0);
|
||||
var_r31->unk_44++;
|
||||
if (var_r31->unk_44 >= 13) {
|
||||
var_r31->unk_44 = 0;
|
||||
}
|
||||
}
|
||||
if (var_r31->unk_46 != var_r31->unk_44) {
|
||||
mgPicObj->work[0] = var_r31->unk_44;
|
||||
var_r27 = var_r31->unk_44 - var_r31->unk_46;
|
||||
if ((var_r27 > 1) || (var_r27 < -1)) {
|
||||
if (var_r27 < 0) {
|
||||
var_r27 = 1;
|
||||
} else {
|
||||
var_r27 = -1;
|
||||
}
|
||||
}
|
||||
var_r25 = var_r31->unk_42 + var_r27;
|
||||
if ((var_r25 < 0) || (var_r25 >= 5)) {
|
||||
for (var_r30 = 0; var_r30 < 5; var_r30++) {
|
||||
var_r22 = var_r31->unk_2E[var_r30];
|
||||
var_r26 = var_r31->unk_38[var_r30];
|
||||
var_r24 = var_r26 - var_r27;
|
||||
if ((var_r24 < 0) || (var_r24 >= 5)) {
|
||||
var_r28 = mgNameTbl[var_r31->unk_44];
|
||||
HuWinMesSizeCancelCRSet(1);
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r28);
|
||||
HuWinCenterPosSet(var_r22, (296.0f - sp8[0]) / -2.0f, (68.0f - sp8[1]) / -2.0f);
|
||||
HuWinMesSet(var_r22, var_r28);
|
||||
if (var_r24 < 0) {
|
||||
var_r26 = 4;
|
||||
} else {
|
||||
var_r26 = 0;
|
||||
}
|
||||
} else {
|
||||
var_r26 = var_r24;
|
||||
}
|
||||
HuWinPosSet(var_r22, 36.0f, 237.0f + cursorYOfsTbl[var_r26]);
|
||||
var_r31->unk_38[var_r30] = var_r26;
|
||||
}
|
||||
} else {
|
||||
var_r31->unk_42 = var_r25;
|
||||
HuSprPosSet(var_r31->unk_1C, 1, 0.0f, cursorYOfsTbl[var_r25]);
|
||||
}
|
||||
var_r31->unk_46 = var_r31->unk_44;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateMGSelect(omObjData *object)
|
||||
{
|
||||
mgSelect *temp_r31;
|
||||
s16 temp_r30;
|
||||
s16 temp_r29;
|
||||
s32 var_r28;
|
||||
s16 var_r26;
|
||||
s16 index2;
|
||||
u32 temp_r22;
|
||||
s32 temp_r21;
|
||||
AnimData *temp_r25;
|
||||
AnimData *temp_r23;
|
||||
float sp8[2];
|
||||
|
||||
omSetStatBit(object, OM_STAT_MODEL_PAUSED);
|
||||
object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x48, MEMORY_DEFAULT_NUM);
|
||||
temp_r31 = object->data;
|
||||
index2 = 0;
|
||||
temp_r30 = HuSprGrpCreate(3);
|
||||
temp_r31->unk_1C = temp_r30;
|
||||
HuSprGrpPosSet(temp_r30, 174.0f, 271.0f);
|
||||
temp_r25 = HuSprAnimRead(HuDataReadNum(0x21, MEMORY_DEFAULT_NUM));
|
||||
temp_r31->unk_00[index2] = temp_r25;
|
||||
temp_r29 = HuSprCreate(temp_r25, 0x7540, 0);
|
||||
HuSprGrpMemberSet(temp_r30, index2, temp_r29);
|
||||
index2++;
|
||||
temp_r25 = HuSprAnimRead(HuDataReadNum(0x27, MEMORY_DEFAULT_NUM));
|
||||
temp_r31->unk_00[index2] = temp_r25;
|
||||
temp_r29 = HuSprCreate(temp_r25, 0x64, 0);
|
||||
HuSprGrpMemberSet(temp_r30, index2, temp_r29);
|
||||
HuSprScaleSet(temp_r30, index2, 1.1f, 1.0f);
|
||||
HuSprTPLvlSet(temp_r30, index2, 0.5f);
|
||||
temp_r31->unk_42 = 0;
|
||||
HuSprPosSet(temp_r30, index2, 0.0f, cursorYOfsTbl[temp_r31->unk_42]);
|
||||
index2++;
|
||||
temp_r25 = HuSprAnimRead(HuDataReadNum(0x35, MEMORY_DEFAULT_NUM));
|
||||
temp_r31->unk_00[index2++] = temp_r25;
|
||||
temp_r23 = HuSprAnimRead(HuDataReadNum(0x36, MEMORY_DEFAULT_NUM));
|
||||
temp_r31->unk_00[index2++] = temp_r23;
|
||||
temp_r30 = HuSprGrpCreate(2);
|
||||
temp_r31->unk_1E = temp_r30;
|
||||
HuSprGrpPosSet(temp_r30, 174.0f, 128.0f);
|
||||
temp_r29 = HuSprCreate(temp_r25, 4, 0);
|
||||
HuSprGrpMemberSet(temp_r30, 0, temp_r29);
|
||||
temp_r29 = HuSprCreate(temp_r23, 6, 0);
|
||||
HuSprGrpMemberSet(temp_r30, 1, temp_r29);
|
||||
HuSprTPLvlSet(temp_r30, 1, 0.7f);
|
||||
HuSprPosSet(temp_r30, 1, 0.0f, -4.0f);
|
||||
temp_r30 = HuSprGrpCreate(2);
|
||||
temp_r31->unk_20 = temp_r30;
|
||||
HuSprGrpPosSet(temp_r30, 174.0f, 414.0f);
|
||||
temp_r29 = HuSprCreate(temp_r25, 4, 1);
|
||||
HuSprGrpMemberSet(temp_r30, 0, temp_r29);
|
||||
temp_r29 = HuSprCreate(temp_r23, 6, 1);
|
||||
HuSprGrpMemberSet(temp_r30, 1, temp_r29);
|
||||
HuSprTPLvlSet(temp_r30, 1, 0.7f);
|
||||
HuSprPosSet(temp_r30, 1, 0.0f, -4.0f);
|
||||
|
||||
temp_r21 = GWSystem.mg_next + 401;
|
||||
var_r26 = temp_r21;
|
||||
for (var_r28 = 0; var_r28 < 13;) {
|
||||
if (var_r26 != mgIdTbl[var_r28]) {
|
||||
var_r28++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r28 >= 13) {
|
||||
var_r28 = 0;
|
||||
}
|
||||
mgDefault = var_r28;
|
||||
var_r26 = mgDefault;
|
||||
mgPicObj->work[0] = var_r26;
|
||||
temp_r31->unk_44 = var_r26;
|
||||
temp_r31->unk_46 = var_r26;
|
||||
|
||||
for (var_r28 = 0; var_r28 < 5;) {
|
||||
if (var_r26 >= 13) {
|
||||
var_r26 = 0;
|
||||
}
|
||||
temp_r29 = HuWinCreate(36.0f, 237.0f + cursorYOfsTbl[var_r28], 0x128, 0x44, 0x4E20);
|
||||
temp_r31->unk_2E[var_r28] = temp_r29;
|
||||
temp_r31->unk_38[var_r28] = var_r28;
|
||||
HuWinBGTPLvlSet(temp_r29, 0.0f);
|
||||
HuWinMesSpeedSet(temp_r29, 0);
|
||||
temp_r22 = mgNameTbl[var_r26];
|
||||
HuWinAttrSet(temp_r29, 0x100);
|
||||
HuWinMesSizeCancelCRSet(1);
|
||||
HuWinMesMaxSizeGet(1, sp8, temp_r22);
|
||||
HuWinCenterPosSet(temp_r29, (296.0f - sp8[0]) / -2.0f, (68.0f - sp8[1]) / -2.0f);
|
||||
HuWinMesSet(temp_r29, temp_r22);
|
||||
var_r28++;
|
||||
var_r26++;
|
||||
}
|
||||
object->work[3] = 1;
|
||||
object->func = UpdateMGSelect;
|
||||
}
|
||||
|
||||
static void UpdateMGPic(omObjData *object)
|
||||
{
|
||||
mgPic *temp_r30 = (mgPic *)object->data;
|
||||
s16 temp_r29;
|
||||
|
||||
if (object->work[1] != object->work[0]) {
|
||||
temp_r29 = temp_r30->unk_40;
|
||||
HuSprAttrSet(temp_r29, object->work[1], 4);
|
||||
HuSprAttrReset(temp_r29, object->work[0], 4);
|
||||
object->work[1] = object->work[0];
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateMGPic(omObjData *object)
|
||||
{
|
||||
mgPic *temp_r28;
|
||||
AnimData *temp_r3_2;
|
||||
s16 temp_r3;
|
||||
s32 var_r30;
|
||||
s32 index;
|
||||
s16 index2;
|
||||
s16 group;
|
||||
|
||||
omSetStatBit(object, OM_STAT_MODEL_PAUSED);
|
||||
object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(mgPic), MEMORY_DEFAULT_NUM);
|
||||
temp_r28 = object->data;
|
||||
index2 = 0;
|
||||
temp_r3 = HuSprGrpCreate(14);
|
||||
temp_r28->unk_40 = temp_r3;
|
||||
HuSprGrpPosSet(temp_r3, 444.0f, 228.0f);
|
||||
|
||||
for (var_r30 = 0; var_r30 < 13; var_r30++) {
|
||||
temp_r3_2 = HuSprAnimRead(HuDataReadNum(mgPicTbl[var_r30], MEMORY_DEFAULT_NUM));
|
||||
temp_r28->unk_00[var_r30] = temp_r3_2;
|
||||
group = HuSprCreate(temp_r3_2, 0x2710, 0);
|
||||
HuSprGrpMemberSet(temp_r3, var_r30, group);
|
||||
HuSprScaleSet(temp_r3, var_r30, 0.6f, 0.6f);
|
||||
HuSprAttrSet(temp_r3, var_r30, 4);
|
||||
}
|
||||
index2 = var_r30;
|
||||
temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x22, MEMORY_DEFAULT_NUM));
|
||||
temp_r28->unk_00[index2] = temp_r3_2;
|
||||
group = HuSprCreate(temp_r3_2, 0x7540, 0);
|
||||
HuSprGrpMemberSet(temp_r3, index2, group);
|
||||
HuSprTPLvlSet(temp_r3, index2, 0.7f);
|
||||
index2++;
|
||||
object->work[1] = object->work[0];
|
||||
HuSprAttrReset(temp_r3, object->work[1], 4);
|
||||
object->func = UpdateMGPic;
|
||||
}
|
||||
|
||||
static void UpdateMGInterface(omObjData *object) { void *sp8 = object->data; }
|
||||
|
||||
static void CreateMGInterface(omObjData *object)
|
||||
{
|
||||
mgInterface *unkStruct;
|
||||
s16 index;
|
||||
s16 group;
|
||||
s16 index2;
|
||||
AnimData *temp_r3_2;
|
||||
float sp8[2];
|
||||
|
||||
omSetStatBit(object, OM_STAT_MODEL_PAUSED);
|
||||
object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(mgInterface), MEMORY_DEFAULT_NUM);
|
||||
unkStruct = object->data;
|
||||
index2 = 0;
|
||||
group = HuSprGrpCreate(1);
|
||||
unkStruct->group = group;
|
||||
HuSprGrpPosSet(group, 288.0f, 64.0f);
|
||||
temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x24, MEMORY_DEFAULT_NUM));
|
||||
unkStruct->unk_00[index2] = temp_r3_2;
|
||||
index = HuSprCreate(temp_r3_2, 0x2710, 0);
|
||||
HuSprGrpMemberSet(group, 0, index);
|
||||
index2++;
|
||||
group = HuSprGrpCreate(1);
|
||||
unkStruct->group2 = group;
|
||||
HuSprGrpPosSet(group, 444.0f, 384.0f);
|
||||
temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x23, MEMORY_DEFAULT_NUM));
|
||||
unkStruct->unk_00[index2] = temp_r3_2;
|
||||
index = HuSprCreate(temp_r3_2, 0x271A, 0);
|
||||
HuSprGrpMemberSet(group, 0, index);
|
||||
index2++;
|
||||
HuWinMesMaxSizeGet(1, sp8, &startText);
|
||||
index = HuWinCreate(340.0f, 362.0f, sp8[0], sp8[1], 0);
|
||||
unkStruct->unk_2C = index;
|
||||
HuWinMesColSet(index, 0);
|
||||
HuWinBGTPLvlSet(index, 0.0f);
|
||||
HuWinMesSpeedSet(index, 0);
|
||||
HuWinMesSet(index, MAKE_MESSID_PTR(startText));
|
||||
object->func = UpdateMGInterface;
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@ static void InitBoard(void) {
|
|||
BoardCommonInit(BoardCreate, BoardDestroy);
|
||||
}
|
||||
|
||||
int _prolog(void) {
|
||||
s32 _prolog(void) {
|
||||
const VoidFunc* ctors = _ctors;
|
||||
while (*ctors != 0) {
|
||||
(**ctors)();
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@
|
|||
#include "game/thpmain.h"
|
||||
#include "game/msm.h"
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
#include "data_num/title.h"
|
||||
|
|
@ -375,15 +377,15 @@ void fn_1_1178(void)
|
|||
y = lbl_1_bss_3C[i].y;
|
||||
z = lbl_1_bss_3C[i].z;
|
||||
|
||||
pos.x = (((sin((M_PI*y)/180.0)*cos((M_PI*x)/180.0))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].x);
|
||||
pos.y = (-sin((M_PI*x)/180.0)*lbl_1_bss_1C[i])+lbl_1_bss_24[i].y;
|
||||
pos.z = ((cos((M_PI*y)/180.0)*cos((M_PI*x)/180.0))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].z;
|
||||
pos.x = (((sind(y)*cosd(x))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].x);
|
||||
pos.y = (-sind(x)*lbl_1_bss_1C[i])+lbl_1_bss_24[i].y;
|
||||
pos.z = ((cosd(y)*cosd(x))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].z;
|
||||
target.x = lbl_1_bss_24[i].x;
|
||||
target.y = lbl_1_bss_24[i].y;
|
||||
target.z = lbl_1_bss_24[i].z;
|
||||
up.x = sin((M_PI*y)/180.0)*sin((M_PI*x)/180.0);
|
||||
up.y = cos((M_PI*x)/180.0);
|
||||
up.z = cos((M_PI*y)/180.0)*sin((M_PI*x)/180.0);
|
||||
up.x = sind(y)*sind(x);
|
||||
up.y = cosd(x);
|
||||
up.z = cosd(y)*sind(x);
|
||||
Hu3DCameraPosSet(lbl_1_data_58[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
||||
}
|
||||
}
|
||||
|
|
@ -408,27 +410,27 @@ void fn_1_152C(void) {
|
|||
if (lbl_1_bss_1C[0] < 100.0f) {
|
||||
lbl_1_bss_1C[0] = 100.0f;
|
||||
}
|
||||
pos.x = lbl_1_bss_24[0].x + (lbl_1_bss_1C[0] * (sin((M_PI * lbl_1_bss_3C[0].y) / 180.0) * cos((M_PI * lbl_1_bss_3C[0].x) / 180.0)));
|
||||
pos.y = (lbl_1_bss_24[0].y + (lbl_1_bss_1C[0] * -sin((M_PI * lbl_1_bss_3C[0].x) / 180.0)));
|
||||
pos.z = (lbl_1_bss_24[0].z + (lbl_1_bss_1C[0] * (cos((M_PI * lbl_1_bss_3C[0].y) / 180.0) * cos((M_PI * lbl_1_bss_3C[0].x) / 180.0))));
|
||||
pos.x = lbl_1_bss_24[0].x + (lbl_1_bss_1C[0] * (sind(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x)));
|
||||
pos.y = (lbl_1_bss_24[0].y + (lbl_1_bss_1C[0] * -sind(lbl_1_bss_3C[0].x)));
|
||||
pos.z = (lbl_1_bss_24[0].z + (lbl_1_bss_1C[0] * (cosd(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x))));
|
||||
offset.x = lbl_1_bss_24[0].x - pos.x;
|
||||
offset.y = lbl_1_bss_24[0].y - pos.y;
|
||||
offset.z = lbl_1_bss_24[0].z - pos.z;
|
||||
dir.x = (sin((M_PI * lbl_1_bss_3C[0].y) / 180.0) * sin((M_PI * lbl_1_bss_3C[0].x) / 180.0));
|
||||
dir.y = cos((M_PI * lbl_1_bss_3C[0].x) / 180.0);
|
||||
dir.z = (cos((M_PI * lbl_1_bss_3C[0].y) / 180.0) * sin((M_PI * lbl_1_bss_3C[0].x) / 180.0));
|
||||
dir.x = (sind(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x));
|
||||
dir.y = cosd(lbl_1_bss_3C[0].x);
|
||||
dir.z = (cosd(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x));
|
||||
z_rot = lbl_1_bss_3C[0].z;
|
||||
y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0))
|
||||
+ dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0))
|
||||
+ dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0));
|
||||
y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot))
|
||||
+ dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot))
|
||||
+ dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot));
|
||||
|
||||
y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0))
|
||||
+ dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0))
|
||||
+ dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0));
|
||||
y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot))
|
||||
+ dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot))
|
||||
+ dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot));
|
||||
|
||||
y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0))
|
||||
+ (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0))
|
||||
+ dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0)));
|
||||
y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot))
|
||||
+ (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot))
|
||||
+ dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot)));
|
||||
|
||||
PSVECCrossProduct(&dir, &offset, &offset);
|
||||
PSVECNormalize(&offset, &offset);
|
||||
|
|
@ -507,7 +509,7 @@ static BOOL TitleProc(void)
|
|||
}
|
||||
HuSprAttrReset(titleGroup, 3, HUSPR_ATTR_DISPOFF);
|
||||
for(i=1; i<=50; i++) {
|
||||
scale = (cos((i*1.8)*M_PI/180.0)*10.0)+1.0;
|
||||
scale = (cosd(i*1.8)*10.0)+1.0;
|
||||
HuSprScaleSet(titleGroup, 3, scale, scale);
|
||||
HuSprTPLvlSet(titleGroup, 3, i/50.0);
|
||||
HuPrcVSleep();
|
||||
|
|
@ -525,7 +527,7 @@ static BOOL TitleProc(void)
|
|||
HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
||||
return 1;
|
||||
}
|
||||
scale = (sin((i*scale_time)*M_PI/180.0)*0.1)+0.9;
|
||||
scale = (sind(i*scale_time)*0.1)+0.9;
|
||||
scale_time += 0.05;
|
||||
if(scale_time > 5) {
|
||||
scale_time = 5;
|
||||
|
|
@ -548,4 +550,3 @@ static BOOL TitleProc(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
char data_pad[] = "\0\0\0\0\0\0\0";
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#include "REL/executor.h"
|
||||
|
||||
int _prolog(void) {
|
||||
s32 _prolog(void) {
|
||||
const VoidFunc* ctors = _ctors;
|
||||
while (*ctors != 0) {
|
||||
(**ctors)();
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include "game/chrman.h"
|
||||
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
|
|
@ -260,7 +261,7 @@ static void fn_1_994(void)
|
|||
}
|
||||
pos_z = -500.0f;
|
||||
for(i=0; i<=50; i++) {
|
||||
Hu3DModelPosSet(model, 0.0f, 2500.0*cos(M_PI*(i*1.8f)/180.0)-200.0, pos_z);
|
||||
Hu3DModelPosSet(model, 0.0f, 2500.0*cosd(i*1.8f)-200.0, pos_z);
|
||||
Hu3DModelRotSet(model, 0, 0, 45.0f*(1.0f-(i/50.0f)));
|
||||
pos_z += 50.0/7.0;
|
||||
Hu3DShadowTPLvlSet(0.5*(i/50.0f));
|
||||
|
|
@ -269,8 +270,8 @@ static void fn_1_994(void)
|
|||
HuAudFXPlay(1211);
|
||||
Hu3DModelAttrReset(model, 0x40000002);
|
||||
for(i=1; i<=20; i++) {
|
||||
Hu3DModelPosSet(model, 0.0f, (200.0*(sin(M_PI*(i*2.25f)/180.0)*(1.0/sin(M_PI/4))))-200.0, pos_z);
|
||||
rot_x = (20-i)*cos(M_PI*(i*13.5f)/180.0);
|
||||
Hu3DModelPosSet(model, 0.0f, (200.0*(sind(i*2.25f)*(1.0/sind(45))))-200.0, pos_z);
|
||||
rot_x = (20-i)*cosd(i*13.5f);
|
||||
Hu3DModelRotSet(model, rot_x, 0.0f, 0.0f);
|
||||
pos_z += 50.0/7.0;
|
||||
HuPrcVSleep();
|
||||
|
|
@ -546,7 +547,7 @@ static void fn_1_17E4(void)
|
|||
CharModelMotionSet(char_tbl[j], mot_tbl[j][1]);
|
||||
}
|
||||
if(time <= 30) {
|
||||
Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y+(300.0*sin(M_PI*(time*9.0f)/180.0)), player_pos[j].z-(time*20));
|
||||
Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y+(300.0*sind(time*9.0f)), player_pos[j].z-(time*20));
|
||||
if(time <= 10) {
|
||||
tplvl = 1-(0.1*time);
|
||||
Hu3DModelTPLvlSet(platform_mdl[j], 0.5*tplvl);
|
||||
|
|
@ -624,11 +625,11 @@ static void fn_1_220C(void)
|
|||
Hu3DMotionTimeSet(model, 40);
|
||||
HuAudFXPlay(lbl_1_data_10C[lbl_1_bss_12*2]);
|
||||
for(i=0; i<=20; i++) {
|
||||
Hu3DModelPosSet(model, -153.0f-(100.0f-(100.0f*(i/20.0f))), (100.0*sin(M_PI*(i*9.0f)/180.0)) + -150.0 + ofs_x, 356.0f);
|
||||
Hu3DModelPosSet(model, -153.0f-(100.0f-(100.0f*(i/20.0f))), (100.0*sind(i*9.0f)) + -150.0 + ofs_x, 356.0f);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
for(i=0; i<=10; i++) {
|
||||
Hu3DModelPosSet(model, -153.0f, (15.0*sin(M_PI*(i*18.0f)/180.0)) + -150.f + ofs_x, 356.0f);
|
||||
Hu3DModelPosSet(model, -153.0f, (15.0*sind(i*18.0f)) + -150.f + ofs_x, 356.0f);
|
||||
Hu3DModelRotSet(model, 0.0f, 90-((i/10.0f)*70), 0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -645,7 +646,7 @@ static void fn_1_220C(void)
|
|||
HuPrcSleep(20);
|
||||
HuAudFXPlay(lbl_1_data_10C[(lbl_1_bss_12*2)+1]);
|
||||
for(i=0; i<=30; i++) {
|
||||
Hu3DModelPosSet(model, (i*5)-153, (50.0*sin(M_PI*(i*9.0f)/180.0)) + -150.0 + ofs_x, (i*20)+356);
|
||||
Hu3DModelPosSet(model, (i*5)-153, (50.0*sind(i*9.0f)) + -150.0 + ofs_x, (i*20)+356);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcEnd();
|
||||
|
|
@ -698,7 +699,7 @@ static void fn_1_2804(void)
|
|||
}
|
||||
HuPrcSleep(40);
|
||||
for(i=0; i<=20; i++) {
|
||||
pos_x = 500.0*cos(M_PI*(i*4.5f)/180.0)+142.0;
|
||||
pos_x = 500.0*cosd(i*4.5f)+142.0;
|
||||
HuWinPosSet(window, pos_x, 320);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -725,7 +726,7 @@ static void fn_1_2804(void)
|
|||
HuWinMesPalSet(window, 7, 0, 0, 192);
|
||||
HuWinPosSet(window_other, 142.0f, 320.0f);
|
||||
for(i=0; i<=10; i++) {
|
||||
HuWinPosSet(window_other, 30.0*sin(M_PI*(i*9.0f)/180.0)+142.0, 160.0*(1.0-cos(M_PI*(i*9.0f)/180.0))+320.0);
|
||||
HuWinPosSet(window_other, 30.0*sind(i*9.0f)+142.0, 160.0*(1.0-cosd(i*9.0f))+320.0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(5);
|
||||
|
|
@ -734,7 +735,7 @@ static void fn_1_2804(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
for(i=0; i<=20; i++) {
|
||||
pos_x = 500.0*(1.0-cos(M_PI*(i*4.5f)/180.0))+142.0;
|
||||
pos_x = 500.0*(1.0-cosd(i*4.5f))+142.0;
|
||||
HuWinPosSet(window, pos_x, 320);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -870,9 +871,9 @@ static void fn_1_2FA0(void)
|
|||
for(temp_r31=0; temp_r31<36; temp_r31++) {
|
||||
temp_f30 = temp_r31;
|
||||
if(temp_f30 <= 20.0f) {
|
||||
temp_f31 = 300.0*cos(M_PI*(4.5f*temp_f30)/180.0)+temp_f29;
|
||||
temp_f31 = 300.0*cosd(4.5f*temp_f30)+temp_f29;
|
||||
HuSprGrpPosSet(temp_r25, temp_f31, temp_f28);
|
||||
temp_f31 = 300.0*cos(M_PI*(4.5f*temp_f30)/180.0)+(576.0f-(temp_r22/2)-24.0f);
|
||||
temp_f31 = 300.0*cosd(4.5f*temp_f30)+(576.0f-(temp_r22/2)-24.0f);
|
||||
for(temp_r30=0; temp_r30<temp_r26; temp_r30++) {
|
||||
HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30*28)+70);
|
||||
}
|
||||
|
|
@ -880,25 +881,25 @@ static void fn_1_2FA0(void)
|
|||
temp_f30 = temp_r31-3;
|
||||
if(temp_f30 > 0.0f) {
|
||||
if(temp_f30 <= 20.0f) {
|
||||
temp_f31 = 300.0*cos(M_PI*(4.5f*temp_f30)/180.0)+lbl_1_data_124[2];
|
||||
temp_f31 = 300.0*cosd(4.5f*temp_f30)+lbl_1_data_124[2];
|
||||
HuSprGrpPosSet(temp_r24, temp_f31, 186.0f);
|
||||
temp_f31 = 300.0*cos(M_PI*(4.5f*temp_f30)/180.0)+(lbl_1_data_124[2]-88.0f);
|
||||
temp_f31 = 300.0*cosd(4.5f*temp_f30)+(lbl_1_data_124[2]-88.0f);
|
||||
HuWinPosSet(sp10[0], 16.0f+temp_f31, 168.0f);
|
||||
}
|
||||
}
|
||||
temp_f30 = temp_r31-6;
|
||||
if(temp_f30 > 0.0f) {
|
||||
if(temp_f30 <= 20.0f) {
|
||||
temp_f31 = 300.0*cos(M_PI*(4.5f*temp_f30)/180.0)+lbl_1_data_124[4];
|
||||
temp_f31 = 300.0*cosd(4.5f*temp_f30)+lbl_1_data_124[4];
|
||||
HuSprGrpPosSet(temp_r23, temp_f31, 242.0f);
|
||||
temp_f31 = 300.0*cos(M_PI*(4.5f*temp_f30)/180.0)+(lbl_1_data_124[4]-100.0f);
|
||||
temp_f31 = 300.0*cosd(4.5f*temp_f30)+(lbl_1_data_124[4]-100.0f);
|
||||
HuWinPosSet(sp10[1], 16.0f+temp_f31, 224.0f);
|
||||
}
|
||||
}
|
||||
temp_f30 = temp_r31-9;
|
||||
if(temp_f30 > 0.0f) {
|
||||
if(temp_f30 <= 20.0f) {
|
||||
temp_f31 = 300.0*cos(M_PI*(4.5f*temp_f30)/180.0)+(lbl_1_data_124[6]-217.0f);
|
||||
temp_f31 = 300.0*cosd(4.5f*temp_f30)+(lbl_1_data_124[6]-217.0f);
|
||||
HuWinPosSet(sp10[2], 16.0f+temp_f31, 274.0f);
|
||||
}
|
||||
}
|
||||
|
|
@ -919,14 +920,14 @@ static void fn_1_2FA0(void)
|
|||
HuWinMesSet(sp10[2], 0x240002+lbl_1_bss_10+lbl_1_bss_6);
|
||||
}
|
||||
for(temp_r31=0; temp_r31<=10; temp_r31++) {
|
||||
HuWinPosSet(temp_r27, 30.0*sin(M_PI*(temp_r31*9.0f)/180.0)+temp_f31, 200.0*(1.0-cos(M_PI*(temp_r31*9.0f)/180.0))+274.0);
|
||||
HuWinPosSet(temp_r27, 30.0*sind(temp_r31*9.0f)+temp_f31, 200.0*(1.0-cosd(temp_r31*9.0f))+274.0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
for(temp_r31=0; temp_r31<20; temp_r31++) {
|
||||
temp_f30 = 1.0-cos(M_PI*(temp_r31*4.5f)/180.0);
|
||||
temp_f30 = 1.0-cosd(temp_r31*4.5f);
|
||||
temp_f31 = temp_f29+(500.0f*temp_f30);
|
||||
HuSprGrpPosSet(temp_r25, temp_f31, temp_f28);
|
||||
temp_f31 = ((576.0f-(work.alt_word_len/2))-24.0f)+(500.0f*temp_f30);
|
||||
|
|
@ -968,15 +969,15 @@ static void fn_1_4174(omObjData *object)
|
|||
y = lbl_1_bss_40[i].y;
|
||||
z = lbl_1_bss_40[i].z;
|
||||
|
||||
pos.x = (((sin((M_PI*y)/180.0)*cos((M_PI*x)/180.0))*lbl_1_bss_20[i])+lbl_1_bss_28[i].x);
|
||||
pos.y = (-sin((M_PI*x)/180.0)*lbl_1_bss_20[i])+lbl_1_bss_28[i].y;
|
||||
pos.z = ((cos((M_PI*y)/180.0)*cos((M_PI*x)/180.0))*lbl_1_bss_20[i])+lbl_1_bss_28[i].z;
|
||||
pos.x = (((sind(y)*cosd(x))*lbl_1_bss_20[i])+lbl_1_bss_28[i].x);
|
||||
pos.y = (-sind(x)*lbl_1_bss_20[i])+lbl_1_bss_28[i].y;
|
||||
pos.z = ((cosd(y)*cosd(x))*lbl_1_bss_20[i])+lbl_1_bss_28[i].z;
|
||||
target.x = lbl_1_bss_28[i].x;
|
||||
target.y = lbl_1_bss_28[i].y;
|
||||
target.z = lbl_1_bss_28[i].z;
|
||||
up.x = sin((M_PI*y)/180.0)*sin((M_PI*x)/180.0);
|
||||
up.y = cos((M_PI*x)/180.0);
|
||||
up.z = cos((M_PI*y)/180.0)*sin((M_PI*x)/180.0);
|
||||
up.x = sind(y)*sind(x);
|
||||
up.y = cosd(x);
|
||||
up.z = cosd(y)*sind(x);
|
||||
Hu3DCameraPosSet(lbl_1_data_144[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
||||
}
|
||||
}
|
||||
|
|
@ -1000,27 +1001,27 @@ static void fn_1_4528(omObjData *object)
|
|||
if (lbl_1_bss_20[0] < 100.0f) {
|
||||
lbl_1_bss_20[0] = 100.0f;
|
||||
}
|
||||
pos.x = lbl_1_bss_28[0].x + (lbl_1_bss_20[0] * (sin((M_PI * lbl_1_bss_40[0].y) / 180.0) * cos((M_PI * lbl_1_bss_40[0].x) / 180.0)));
|
||||
pos.y = (lbl_1_bss_28[0].y + (lbl_1_bss_20[0] * -sin((M_PI * lbl_1_bss_40[0].x) / 180.0)));
|
||||
pos.z = (lbl_1_bss_28[0].z + (lbl_1_bss_20[0] * (cos((M_PI * lbl_1_bss_40[0].y) / 180.0) * cos((M_PI * lbl_1_bss_40[0].x) / 180.0))));
|
||||
pos.x = lbl_1_bss_28[0].x + (lbl_1_bss_20[0] * (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x)));
|
||||
pos.y = (lbl_1_bss_28[0].y + (lbl_1_bss_20[0] * -sind(lbl_1_bss_40[0].x)));
|
||||
pos.z = (lbl_1_bss_28[0].z + (lbl_1_bss_20[0] * (cosd(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x))));
|
||||
offset.x = lbl_1_bss_28[0].x - pos.x;
|
||||
offset.y = lbl_1_bss_28[0].y - pos.y;
|
||||
offset.z = lbl_1_bss_28[0].z - pos.z;
|
||||
dir.x = (sin((M_PI * lbl_1_bss_40[0].y) / 180.0) * sin((M_PI * lbl_1_bss_40[0].x) / 180.0));
|
||||
dir.y = cos((M_PI * lbl_1_bss_40[0].x) / 180.0);
|
||||
dir.z = (cos((M_PI * lbl_1_bss_40[0].y) / 180.0) * sin((M_PI * lbl_1_bss_40[0].x) / 180.0));
|
||||
dir.x = (sind(lbl_1_bss_40[0].y) * sind(lbl_1_bss_40[0].x));
|
||||
dir.y = cosd(lbl_1_bss_40[0].x);
|
||||
dir.z = (cosd(lbl_1_bss_40[0].y) * sind(lbl_1_bss_40[0].x));
|
||||
z_rot = lbl_1_bss_40[0].z;
|
||||
y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0))
|
||||
+ dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0))
|
||||
+ dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0));
|
||||
y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot))
|
||||
+ dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot))
|
||||
+ dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot));
|
||||
|
||||
y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0))
|
||||
+ dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0))
|
||||
+ dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0));
|
||||
y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot))
|
||||
+ dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot))
|
||||
+ dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot));
|
||||
|
||||
y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0))
|
||||
+ (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0))
|
||||
+ dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0)));
|
||||
y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot))
|
||||
+ (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot))
|
||||
+ dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot)));
|
||||
|
||||
PSVECCrossProduct(&dir, &offset, &offset);
|
||||
PSVECNormalize(&offset, &offset);
|
||||
|
|
@ -1070,14 +1071,14 @@ static void fn_1_50B0(ModelData *model, Mtx mtx)
|
|||
GXSetVtxDesc(GX_VA_NRM, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
|
||||
target.x = target.z = 0.0f;
|
||||
target.x = lbl_1_data_14C*sin(M_PI*lbl_1_bss_40[0].y/180.0);
|
||||
target.z = lbl_1_data_14C*cos(M_PI*lbl_1_bss_40[0].y/180.0);
|
||||
target.x = lbl_1_data_14C*sind(lbl_1_bss_40[0].y);
|
||||
target.z = lbl_1_data_14C*cosd(lbl_1_bss_40[0].y);
|
||||
target.y = 415.0f;
|
||||
pos.x = (sin(M_PI*lbl_1_bss_40[0].y/180.0)*cos(M_PI*lbl_1_bss_40[0].x/180.0)*lbl_1_bss_20[0])+lbl_1_bss_28[0].x;
|
||||
pos.y = (-sin(M_PI*lbl_1_bss_40[0].x/180.0)*lbl_1_bss_20[0])+lbl_1_bss_28[0].y;
|
||||
pos.z = (cos(M_PI*lbl_1_bss_40[0].y/180.0)*cos(M_PI*lbl_1_bss_40[0].x/180.0)*lbl_1_bss_20[0])+lbl_1_bss_28[0].z;
|
||||
up.x = -sin(M_PI*lbl_1_bss_40[0].y/180.0);
|
||||
up.z = -cos(M_PI*lbl_1_bss_40[0].y/180.0);
|
||||
pos.x = (sind(lbl_1_bss_40[0].y)*cosd(lbl_1_bss_40[0].x)*lbl_1_bss_20[0])+lbl_1_bss_28[0].x;
|
||||
pos.y = (-sind(lbl_1_bss_40[0].x)*lbl_1_bss_20[0])+lbl_1_bss_28[0].y;
|
||||
pos.z = (cos(M_PI*lbl_1_bss_40[0].y/180.0)*cosd(lbl_1_bss_40[0].x)*lbl_1_bss_20[0])+lbl_1_bss_28[0].z;
|
||||
up.x = -sind(lbl_1_bss_40[0].y);
|
||||
up.z = -cosd(lbl_1_bss_40[0].y);
|
||||
up.y = 0;
|
||||
MTXLookAt(lookat, &pos, &up, &target);
|
||||
MTXLightPerspective(light, lbl_1_bss_C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
1949
src/REL/m402Dll/main.c
Executable file
1949
src/REL/m402Dll/main.c
Executable file
File diff suppressed because it is too large
Load diff
1592
src/REL/m403Dll/main.c
Executable file
1592
src/REL/m403Dll/main.c
Executable file
File diff suppressed because it is too large
Load diff
1024
src/REL/m403Dll/scene.c
Executable file
1024
src/REL/m403Dll/scene.c
Executable file
File diff suppressed because it is too large
Load diff
1446
src/REL/m404Dll/main.c
Normal file
1446
src/REL/m404Dll/main.c
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -8,7 +8,7 @@
|
|||
#include "game/wipe.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
extern s32 sprintf(char*, const char*, s32);
|
||||
|
|
@ -68,25 +68,25 @@ static void fn_1_300(omObjData *arg0) {
|
|||
CRot.y += HuPadSubStkX[0] / 20;
|
||||
CZoom += HuPadTrigL[0] / 2;
|
||||
CZoom -= HuPadTrigR[0] / 2;
|
||||
sp2C.x = Center.x + CZoom * (sin(CRot.y * M_PI / 180.0) * cos(CRot.x * M_PI / 180.0));
|
||||
sp2C.y = Center.y + CZoom * -sin(CRot.x * M_PI / 180.0);
|
||||
sp2C.z = Center.z + CZoom * (cos(CRot.y * M_PI / 180.0) * cos(CRot.x * M_PI / 180.0));
|
||||
sp2C.x = Center.x + CZoom * (sind(CRot.y) * cosd(CRot.x));
|
||||
sp2C.y = Center.y + CZoom * -sind(CRot.x);
|
||||
sp2C.z = Center.z + CZoom * (cosd(CRot.y) * cosd(CRot.x));
|
||||
sp20.x = Center.x - sp2C.x;
|
||||
sp20.y = Center.y - sp2C.y;
|
||||
sp20.z = Center.z - sp2C.z;
|
||||
sp14.x = sin(CRot.y * M_PI / 180.0) * sin(CRot.x * M_PI / 180.0);
|
||||
sp14.y = cos(CRot.x * M_PI / 180.0);
|
||||
sp14.z = cos(CRot.y * M_PI / 180.0) * sin(CRot.x * M_PI / 180.0);
|
||||
sp14.x = sind(CRot.y) * sind(CRot.x);
|
||||
sp14.y = cosd(CRot.x);
|
||||
sp14.z = cosd(CRot.y) * sind(CRot.x);
|
||||
temp_f31 = CRot.z;
|
||||
sp8.x = sp14.x * (sp20.x * sp20.x + (1.0f - sp20.x * sp20.x) * cos(temp_f31 * M_PI / 180.0))
|
||||
+ sp14.y * (sp20.x * sp20.y * (1.0 - cos(temp_f31 * M_PI / 180.0)) - sp20.z * sin(temp_f31 * M_PI / 180.0))
|
||||
+ sp14.z * (sp20.x * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) + sp20.y * sin(temp_f31 * M_PI / 180.0));
|
||||
sp8.y = sp14.x * (sp20.x * sp20.y * (1.0 - cos(temp_f31 * M_PI / 180.0)) + sp20.z * sin(temp_f31 * M_PI / 180.0))
|
||||
+ sp14.y * (sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cos(temp_f31 * M_PI / 180.0))
|
||||
+ sp14.z * (sp20.y * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) - sp20.x * sin(temp_f31 * M_PI / 180.0));
|
||||
sp8.z = sp14.x * (sp20.x * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) - sp20.y * sin(temp_f31 * M_PI / 180.0))
|
||||
+ sp14.y * (sp20.y * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) + sp20.x * sin(temp_f31 * M_PI / 180.0))
|
||||
+ sp14.z * (sp20.z * sp20.z + (1.0f - sp20.z * sp20.z) * cos(temp_f31 * M_PI / 180.0));
|
||||
sp8.x = sp14.x * (sp20.x * sp20.x + (1.0f - sp20.x * sp20.x) * cosd(temp_f31))
|
||||
+ sp14.y * (sp20.x * sp20.y * (1.0 - cosd(temp_f31)) - sp20.z * sind(temp_f31))
|
||||
+ sp14.z * (sp20.x * sp20.z * (1.0 - cosd(temp_f31)) + sp20.y * sind(temp_f31));
|
||||
sp8.y = sp14.x * (sp20.x * sp20.y * (1.0 - cosd(temp_f31)) + sp20.z * sind(temp_f31))
|
||||
+ sp14.y * (sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cosd(temp_f31))
|
||||
+ sp14.z * (sp20.y * sp20.z * (1.0 - cosd(temp_f31)) - sp20.x * sind(temp_f31));
|
||||
sp8.z = sp14.x * (sp20.x * sp20.z * (1.0 - cosd(temp_f31)) - sp20.y * sind(temp_f31))
|
||||
+ sp14.y * (sp20.y * sp20.z * (1.0 - cosd(temp_f31)) + sp20.x * sind(temp_f31))
|
||||
+ sp14.z * (sp20.z * sp20.z + (1.0f - sp20.z * sp20.z) * cosd(temp_f31));
|
||||
PSVECCrossProduct(&sp14, &sp20, &sp20);
|
||||
PSVECNormalize(&sp20, &sp20);
|
||||
temp_r31 = HuPadSubStkX[0] & 0xF8;
|
||||
|
|
|
|||
261
src/REL/modeseldll/modesel.c
Normal file
261
src/REL/modeseldll/modesel.c
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
#define HUWIN_USE_OLD_DEFS
|
||||
#include "game/object.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/wipe.h"
|
||||
#include "game/window.h"
|
||||
#include "game/object.h"
|
||||
#include "game/process.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/hsfanim.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
#include "REL/modeseldll.h"
|
||||
|
||||
s16 lbl_1_data_80[] = {
|
||||
16, 17, 18,
|
||||
19, 20, 21
|
||||
};
|
||||
|
||||
s32 lbl_1_data_8C[] = {
|
||||
0x630030,
|
||||
0x630032,
|
||||
0x630034,
|
||||
0x630036,
|
||||
0x630038,
|
||||
0x63003A
|
||||
};
|
||||
|
||||
s32 lbl_1_data_A4[] = {
|
||||
0x630031,
|
||||
0x630033,
|
||||
0x630035,
|
||||
0x630037,
|
||||
0x630039,
|
||||
0x63003B
|
||||
};
|
||||
|
||||
u32 lbl_1_data_BC[] = {
|
||||
0x110001,
|
||||
0x110002,
|
||||
0x110003,
|
||||
0x110004,
|
||||
0x110005,
|
||||
0x110006
|
||||
};
|
||||
|
||||
s16 lbl_1_bss_82;
|
||||
s16 lbl_1_bss_80;
|
||||
|
||||
void fn_1_3668(void);
|
||||
|
||||
//Scratch is at https://decomp.me/scratch/iirXp
|
||||
//Register allocation issues at line 180 with load of 1.0 double constant
|
||||
s32 fn_1_2490(void)
|
||||
{
|
||||
float sp10[2];
|
||||
float sp8[2];
|
||||
float temp_f31;
|
||||
float temp_f30;
|
||||
s16 temp_r31;
|
||||
s16 temp_r30;
|
||||
s16 temp_r29;
|
||||
s16 temp_r28;
|
||||
s16 temp_r27;
|
||||
s16 temp_r26;
|
||||
s32 temp_r25;
|
||||
WindowData *temp_r24;
|
||||
AnimData *temp_r23;
|
||||
AnimData *temp_r22;
|
||||
s16 temp_r21;
|
||||
fn_1_3668();
|
||||
fn_1_1EC0(1);
|
||||
temp_r25 = HuAudFXPlay(2094);
|
||||
if(omovlevtno) {
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
}
|
||||
for(temp_r31=0; temp_r31<=20; temp_r31++) {
|
||||
temp_f31 = 1.0-sind(90.0*(temp_r31/20.0));
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f+(200.0f*temp_f31), 0);
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[15], 0, -50.0f+(200.0f*temp_f31), 0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(20);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[14], 0x40000002);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[15], 0x40000002);
|
||||
HuAudFXPlay(2093);
|
||||
HuPrcSleep(120);
|
||||
HuAudFXPlay(2095);
|
||||
for(temp_r31=0; temp_r31<=30; temp_r31++) {
|
||||
temp_f31 = temp_r31/30.0;
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f-(20.0f*temp_f31), 0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinMesMaxSizeBetGet(sp10, 0x110000, 0x110006);
|
||||
lbl_1_bss_82 = HuWinExCreateStyled(-10000, 432-sp10[1], sp10[0], sp10[1], -1, 0);
|
||||
HuWinMesSpeedSet(lbl_1_bss_82, 0);
|
||||
temp_r24 = &winData[lbl_1_bss_82];
|
||||
temp_r24->active_pad = 1;
|
||||
HuWinExAnimIn(lbl_1_bss_82);
|
||||
HuWinMesSet(lbl_1_bss_82, 0x110000);
|
||||
HuWinMesMaxSizeGet(1, sp8, 0x1A0020);
|
||||
temp_r29 = HuWinCreate(-10000, 8+(432-sp10[1]-sp8[1]), sp8[0], sp8[1], 0);
|
||||
HuWinMesSpeedSet(temp_r29, 0);
|
||||
HuWinBGTPLvlSet(temp_r29, 0);
|
||||
HuWinMesSet(temp_r29, 0x1A0020);
|
||||
HuWinDispOff(temp_r29);
|
||||
while(!Hu3DMotionEndCheck(lbl_1_bss_19A[15])) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[15], 1);
|
||||
for(temp_r31=0; temp_r31<6; temp_r31++) {
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0x40000002);
|
||||
Hu3DMotionTimeSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0);
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0, -50, 0);
|
||||
}
|
||||
HuWinMesWait(lbl_1_bss_82);
|
||||
temp_r26 = 0;
|
||||
lbl_1_bss_80 = temp_r26;
|
||||
espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF);
|
||||
espBankSet(lbl_1_bss_152[10], 0);
|
||||
for(temp_r31=0; temp_r31<=10; temp_r31++) {
|
||||
temp_f31 = temp_r31/10.0f;
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0*sind(90.0f*temp_f31));
|
||||
espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*sind(90.0f*temp_f31)));
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]);
|
||||
HuWinDispOn(temp_r29);
|
||||
while(1) {
|
||||
temp_r30 = 0;
|
||||
if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) {
|
||||
temp_r30 = -1;
|
||||
} else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) {
|
||||
temp_r30 = 1;
|
||||
}
|
||||
if(temp_r30) {
|
||||
if(lbl_1_bss_80+temp_r30 < 0) {
|
||||
lbl_1_bss_80 = 0;
|
||||
} else if(lbl_1_bss_80+temp_r30 >= 6) {
|
||||
lbl_1_bss_80 = 5;
|
||||
} else {
|
||||
lbl_1_bss_80 += temp_r30;
|
||||
}
|
||||
if(temp_r26 != lbl_1_bss_80) {
|
||||
HuAudFXPlay(0);
|
||||
for(temp_r31=0; temp_r31<=10; temp_r31++) {
|
||||
temp_f31 = temp_r31/10.0f;
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r26]], 0, -50, 50.0*cosd(90.0f*temp_f31));
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0*sind(90.0f*temp_f31));
|
||||
espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*(1.0-sind(180.0f*temp_f31))));
|
||||
if(temp_r31 == 5) {
|
||||
espBankSet(lbl_1_bss_152[10], lbl_1_bss_80);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
temp_r26 = lbl_1_bss_80;
|
||||
HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]);
|
||||
}
|
||||
}
|
||||
if(HuPadBtnDown[0] & PAD_BUTTON_A) {
|
||||
HuAudFXPlay(2);
|
||||
break;
|
||||
} else if(HuPadBtnDown[0] & PAD_BUTTON_B) {
|
||||
HuAudFXPlay(3);
|
||||
HuAudFXStop(temp_r25);
|
||||
return -1;
|
||||
} else {
|
||||
HuPrcVSleep();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0x40000002);
|
||||
HuAudSeqAllFadeOut(1000);
|
||||
for(temp_r31=0; temp_r31<=20; temp_r31++) {
|
||||
temp_f31 = temp_r31/20.0f;
|
||||
for(temp_r28=0; temp_r28<6; temp_r28++) {
|
||||
if(temp_r28 != lbl_1_bss_80) {
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r28]], 0, -50-(300.0*(1.0-cosd(90.0f*temp_f31))), 0);
|
||||
espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*(cosd(90.0f*temp_f31))));
|
||||
}
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinKill(temp_r29);
|
||||
HuWinExAnimOut(lbl_1_bss_82);
|
||||
HuAudFXStop(temp_r25);
|
||||
temp_r27 = HuSprGrpCreate(1);
|
||||
temp_r21 = HuTHPSprCreateVol("movie/opmov_c00.thp", 0, 3000, 90.0);
|
||||
HuSprGrpMemberSet(temp_r27, 0, temp_r21);
|
||||
HuSprPosSet(temp_r27, 0, 288.0f, 240.0f);
|
||||
HuSprDrawNoSet(temp_r27, 0, 127);
|
||||
HuPrcSleep(2);
|
||||
espAttrSet(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF);
|
||||
for(temp_r31=0; temp_r31<=10; temp_r31++) {
|
||||
temp_f31 = temp_r31/10.0;
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -70.0f-(100.0f*temp_f31), 0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
temp_r23 = HuSprAnimRead(HuDataReadNum(lbl_1_data_8C[lbl_1_bss_80], MEMORY_DEFAULT_NUM));
|
||||
temp_r22 = HuSprAnimRead(HuDataReadNum(lbl_1_data_A4[lbl_1_bss_80], MEMORY_DEFAULT_NUM));
|
||||
Hu3DAnimCreate(temp_r23, lbl_1_bss_19A[22], "ys002_a1");
|
||||
Hu3DAnimCreate(temp_r22, lbl_1_bss_19A[22], "ys002_a2");
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 1);
|
||||
Hu3DMotionTimeSet(lbl_1_bss_19A[22], 0);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[22], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[22], 0x40000002);
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27, 50);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[22], 1.0f, 1.063f, 1.0f);
|
||||
for(temp_r31=1; temp_r31<=20; temp_r31++) {
|
||||
temp_f31 = temp_r31/20.0;
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27.0-(60.0*sind(90.0f*temp_f31)), 50);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(90);
|
||||
Hu3DFogSet(3000, 8000, 255, 255, 255);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[22], 0x40000002);
|
||||
HuPrcSleep(60);
|
||||
temp_f31 =0;
|
||||
temp_f30 = 5;
|
||||
while(!HuTHPEndCheck()) {
|
||||
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, -33.0f+(temp_f31/30.0f), 50.0f-temp_f31);
|
||||
temp_f31 += temp_f30;
|
||||
temp_f30 += 5.0f;
|
||||
HuPrcVSleep();
|
||||
}
|
||||
_ClearFlag(0x1000B);
|
||||
WipeColorSet(255, 255, 255);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuTHPClose();
|
||||
HuSprGrpKill(temp_r27);
|
||||
return lbl_1_bss_80;
|
||||
}
|
||||
|
||||
void fn_1_3668(void)
|
||||
{
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
Hu3DShadowCreate(20, 100, 5000);
|
||||
Hu3DShadowTPLvlSet(0.3f);
|
||||
Hu3DShadowSizeSet(192);
|
||||
sp14.x = sp14.y = sp14.z = 0;
|
||||
sp20.x = 0;
|
||||
sp20.z = 300;
|
||||
sp20.y = 400;
|
||||
sp8.x = 0;
|
||||
sp8.y = 1;
|
||||
sp8.z = 0;
|
||||
Hu3DShadowPosSet(&sp20, &sp8, &sp14);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[15], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[15], 0x40000002);
|
||||
Hu3DMotionTimeSet(lbl_1_bss_19A[15], 0);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[14], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[14], 0x40000002);
|
||||
Hu3DMotionTimeSet(lbl_1_bss_19A[14], 0);
|
||||
}
|
||||
|
|
@ -453,7 +453,7 @@ void fn_1_EC(void)
|
|||
}
|
||||
}
|
||||
|
||||
int _prolog(void) {
|
||||
s32 _prolog(void) {
|
||||
const VoidFunc* ctors = _ctors;
|
||||
while (*ctors != 0) {
|
||||
(**ctors)();
|
||||
|
|
|
|||
|
|
@ -129,13 +129,13 @@ static void fn_1_32F0(omObjData *arg0) {
|
|||
fn_1_39E0(temp_r31->unk00, 1, 1);
|
||||
temp_r31->unk20 = 1;
|
||||
temp_r31->unk28 = 0;
|
||||
GWRumbleSet(1);
|
||||
GWRumbleSet(1);
|
||||
arg0->unk10 = 3;
|
||||
} else if (fn_1_584(4) != 0 && temp_r31->unk20 != 0) {
|
||||
fn_1_39E0(temp_r31->unk00, 0, 1);
|
||||
temp_r31->unk20 = 0;
|
||||
temp_r31->unk28 = 0;
|
||||
GWRumbleSet(0);
|
||||
GWRumbleSet(0);
|
||||
arg0->unk10 = 3;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
235
src/REL/present/camera.c
Normal file
235
src/REL/present/camera.c
Normal file
|
|
@ -0,0 +1,235 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/printfunc.h"
|
||||
|
||||
#include "REL/present.h"
|
||||
|
||||
void fn_1_C20(omObjData *object);
|
||||
|
||||
omObjData *fn_1_6B4(void)
|
||||
{
|
||||
omObjData *var_r30;
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
var_r30 = omAddObjEx(lbl_1_bss_4, 1001, 0, 0, 3, fn_1_BF8);
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 156, MEMORY_DEFAULT_NUM);
|
||||
var_r30->data = var_r31;
|
||||
|
||||
var_r31->pos.x = 0.0f;
|
||||
var_r31->pos.y = 0.0f;
|
||||
var_r31->pos.z = 0.0f;
|
||||
|
||||
var_r31->target.x = 0.0f;
|
||||
var_r31->target.y = 0.0f;
|
||||
var_r31->target.z = 0.0f;
|
||||
|
||||
var_r31->up.x = 0.0f;
|
||||
var_r31->up.y = 1.0f;
|
||||
var_r31->up.z = 0.0f;
|
||||
|
||||
var_r31->unk_24 = 0.0f;
|
||||
var_r31->unk_28 = 0.0f;
|
||||
var_r31->unk_8C = 1.0f;
|
||||
var_r31->unk_84 = 1.0f;
|
||||
var_r31->unk_94 = 1.0f;
|
||||
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
Hu3DCameraPerspectiveSet(1, 42.0f, 10.0f, 8000.0f, 1.2f);
|
||||
fn_1_9A4(var_r30, 0.0f, 0.0f, -600.0f, 1);
|
||||
fn_1_920(var_r30, 0.0f, 220.0f, 250.0f, 1);
|
||||
|
||||
return var_r30;
|
||||
}
|
||||
|
||||
void fn_1_8F0(omObjData *object)
|
||||
{
|
||||
HuMemDirectFree(object->data);
|
||||
}
|
||||
|
||||
void fn_1_920(omObjData *object, float arg8, float arg9, float argA, s32 arg1)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_58.x = arg8;
|
||||
var_r31->unk_58.y = arg9;
|
||||
var_r31->unk_58.z = argA;
|
||||
|
||||
var_r31->unk_2C = var_r31->pos;
|
||||
var_r31->unk_84 = 0.0f;
|
||||
var_r31->unk_88 = 1.0f / arg1;
|
||||
}
|
||||
|
||||
void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_64.x = arg8;
|
||||
var_r31->unk_64.y = arg9;
|
||||
var_r31->unk_64.z = argA;
|
||||
|
||||
var_r31->unk_38 = var_r31->target;
|
||||
var_r31->unk_8C = 0.0f;
|
||||
var_r31->unk_90 = 1.0f / arg1;
|
||||
}
|
||||
|
||||
void fn_1_A28(omObjData *object, s32 arg1, float arg8, float arg9, float argA)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_64.y = argA;
|
||||
var_r31->unk_7C = arg8;
|
||||
var_r31->unk_80 = arg9;
|
||||
|
||||
var_r31->unk_38.y = var_r31->target.y;
|
||||
var_r31->unk_50 = var_r31->unk_24;
|
||||
var_r31->unk_54 = var_r31->unk_28;
|
||||
var_r31->unk_94 = 0.0f;
|
||||
var_r31->unk_98 = 1.0f / arg1;
|
||||
}
|
||||
|
||||
float fn_1_AAC(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
float var_f31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_f31 = var_r31->unk_24;
|
||||
return var_f31;
|
||||
}
|
||||
|
||||
float fn_1_ADC(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
float var_f31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_f31 = var_r31->unk_28;
|
||||
return var_f31;
|
||||
}
|
||||
|
||||
void fn_1_B0C(omObjData *object, float *arg1, float *arg2, float *arg3)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
*arg1 = var_r31->pos.x;
|
||||
*arg2 = var_r31->pos.y;
|
||||
*arg3 = var_r31->pos.z;
|
||||
}
|
||||
|
||||
void fn_1_B3C(omObjData *object, float *arg1, float *arg2, float *arg3)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
*arg1 = var_r31->target.x;
|
||||
*arg2 = var_r31->target.y;
|
||||
*arg3 = var_r31->target.z;
|
||||
}
|
||||
|
||||
s32 fn_1_B6C(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r30 = 1;
|
||||
var_r29 = 1;
|
||||
if (!(var_r31->unk_8C < 1.0f) && !(var_r31->unk_94 < 1.0f)) {
|
||||
var_r29 = 0;
|
||||
}
|
||||
if (!var_r29 && !(var_r31->unk_84 < 1.0f)) {
|
||||
var_r30 = 0;
|
||||
}
|
||||
return var_r30;
|
||||
}
|
||||
|
||||
void fn_1_BF8(omObjData *object)
|
||||
{
|
||||
fn_1_C20(object);
|
||||
}
|
||||
|
||||
void fn_1_C20(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float var_f29;
|
||||
float var_f28;
|
||||
float var_f27;
|
||||
|
||||
var_r31 = object->data;
|
||||
if (var_r31->unk_84 < 1.0f) {
|
||||
var_f28 = sind(90.0f * var_r31->unk_84);
|
||||
var_r31->pos.x = var_r31->unk_2C.x + var_f28 * (var_r31->unk_58.x - var_r31->unk_2C.x);
|
||||
var_r31->pos.y = var_r31->unk_2C.y + var_f28 * (var_r31->unk_58.y - var_r31->unk_2C.y);
|
||||
var_r31->pos.z = var_r31->unk_2C.z + var_f28 * (var_r31->unk_58.z - var_r31->unk_2C.z);
|
||||
|
||||
if ((var_r31->unk_84 += var_r31->unk_88) >= 1.0f) {
|
||||
var_r31->pos = var_r31->unk_58;
|
||||
}
|
||||
}
|
||||
if (var_r31->unk_8C < 1.0f) {
|
||||
var_f28 = sind(90.0f * var_r31->unk_8C);
|
||||
var_r31->target.x = var_r31->unk_38.x + var_f28 * (var_r31->unk_64.x - var_r31->unk_38.x);
|
||||
var_r31->target.y = var_r31->unk_38.y + var_f28 * (var_r31->unk_64.y - var_r31->unk_38.y);
|
||||
var_r31->target.z = var_r31->unk_38.z + var_f28 * (var_r31->unk_64.z - var_r31->unk_38.z);
|
||||
|
||||
if ((var_r31->unk_8C += var_r31->unk_90) >= 1.0f) {
|
||||
var_r31->target = var_r31->unk_64;
|
||||
}
|
||||
}
|
||||
if (var_r31->unk_94 < 1.0f) {
|
||||
var_f28 = sind(90.0f * var_r31->unk_94);
|
||||
var_r31->target.y = var_r31->unk_38.y + (var_f28 * (var_r31->unk_64.y - var_r31->unk_38.y));
|
||||
var_r31->unk_24 = var_r31->unk_50 + (var_f28 * (var_r31->unk_7C - var_r31->unk_50));
|
||||
var_r31->unk_28 = var_r31->unk_54 + (var_f28 * (var_r31->unk_80 - var_r31->unk_54));
|
||||
|
||||
if ((var_r31->unk_94 += var_r31->unk_98) >= 1.0f) {
|
||||
var_r31->target.y = var_r31->unk_64.y;
|
||||
var_r31->unk_24 = var_r31->unk_7C;
|
||||
var_r31->unk_28 = var_r31->unk_80;
|
||||
}
|
||||
var_r31->target.x = var_r31->unk_24 * -sind(var_r31->unk_28);
|
||||
var_r31->target.z = var_r31->unk_24 * cosd(var_r31->unk_28);
|
||||
}
|
||||
var_f31 = var_r31->target.x - var_r31->pos.x;
|
||||
var_f30 = var_r31->target.z - var_r31->pos.z;
|
||||
|
||||
var_r31->unk_24 = sqrtf(var_f31 * var_f31 + var_f30 * var_f30);
|
||||
var_r31->unk_28 = fmod(-atan2d(var_f31, var_f30), 360.0);
|
||||
if (var_r31->unk_28 < 0.0f) {
|
||||
var_r31->unk_28 += 360.0f;
|
||||
}
|
||||
Hu3DCameraPosSet(1, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z, var_r31->up.x, var_r31->up.y, var_r31->up.z, var_r31->target.x,
|
||||
var_r31->target.y, var_r31->target.z);
|
||||
}
|
||||
|
||||
void fn_1_1198(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
if (HuPadBtn[0] & PAD_BUTTON_B) {
|
||||
var_r31 = object->data;
|
||||
var_r31->target.x = var_r31->target.x + (0.5f * HuPadStkX[0]);
|
||||
var_r31->target.y = var_r31->target.y + (0.5f * HuPadStkY[0]);
|
||||
var_r31->pos.z = var_r31->pos.z + (0.5f * HuPadTrigL[0]);
|
||||
var_r31->pos.z = var_r31->pos.z - (0.5f * HuPadTrigR[0]);
|
||||
var_r31->pos.x = var_r31->pos.x + (0.5f * HuPadSubStkY[0]);
|
||||
var_r31->pos.y = var_r31->pos.y + (0.5f * HuPadSubStkX[0]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1398(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", var_r31->target.x, var_r31->target.y, var_r31->target.z);
|
||||
print8(32, 80, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", var_r31->pos.x, var_r31->pos.y, var_r31->pos.z);
|
||||
print8(32, 96, 1.5f, "R : %.2f DEG: %.2f", var_r31->unk_24, var_r31->unk_28);
|
||||
}
|
||||
227
src/REL/present/common.c
Normal file
227
src/REL/present/common.c
Normal file
|
|
@ -0,0 +1,227 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/data.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
|
||||
#include "REL/present.h"
|
||||
|
||||
void fn_1_4620(omObjData *arg0);
|
||||
void fn_1_4880(omObjData *arg0);
|
||||
|
||||
omObjFunc lbl_1_data_1A0[] = { NULL, fn_1_4620, fn_1_4880 };
|
||||
|
||||
static const s32 lbl_1_rodata_BD8[] = { 0x006E0089, 0x006E008A, 0x006E008B };
|
||||
|
||||
void fn_1_4A04(omObjData *object);
|
||||
float fn_1_4CEC(float arg8, float arg9, float argA);
|
||||
|
||||
omObjData *fn_1_42F4(void)
|
||||
{
|
||||
omObjData *var_r31;
|
||||
s32 var_lr;
|
||||
s32 var_r29;
|
||||
UnkPresentStruct5 *var_r30;
|
||||
|
||||
var_r31 = omAddObjEx(lbl_1_bss_4, 1002, 1, 3, 2, NULL);
|
||||
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 88, MEMORY_DEFAULT_NUM);
|
||||
var_r31->data = var_r30;
|
||||
var_r30->x = 0.0f;
|
||||
var_r30->z = 0.0f;
|
||||
var_r30->y = 0.0f;
|
||||
var_r30->unk_20 = 0.0f;
|
||||
var_r30->unk_24 = 0.0f;
|
||||
var_r30->unk_28 = 0.0f;
|
||||
var_r30->unk_2C = 0.0f;
|
||||
var_r30->unk_34 = 0.0f;
|
||||
var_r30->unk_30 = 0.0f;
|
||||
var_r31->model[0] = Hu3DModelCreate(HuDataReadNum(0x6E0088, MEMORY_DEFAULT_NUM));
|
||||
Hu3DModelLayerSet(var_r31->model[0], 1);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 3; var_r29++) {
|
||||
var_r31->motion[var_r29] = Hu3DJointMotion(var_r31->model[0], HuDataSelHeapReadNum(lbl_1_rodata_BD8[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||
}
|
||||
Hu3DMotionShiftSet(var_r31->model[0], var_r31->motion[var_r30->unk_04 = 0], 0.0f, 8.0f, 0x40000001);
|
||||
var_r30->unk_50 = CharModelEffectNpcInit(var_r31->model[0], var_r31->motion[2], 1, 10);
|
||||
var_r30->unk_54 = CharModelEffectNpcInit(var_r31->model[0], var_r31->motion[1], 0, 10);
|
||||
CharModelLayerSetAll(1);
|
||||
Hu3DModelShadowSet(var_r31->model[0]);
|
||||
fn_1_45C0(var_r31, 0);
|
||||
fn_1_4A04(var_r31);
|
||||
Hu3DModelAttrSet(var_r31->model[0], 1);
|
||||
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
void fn_1_4534(omObjData *object)
|
||||
{
|
||||
s32 var_r31;
|
||||
void *var_r29;
|
||||
void *var_r30;
|
||||
|
||||
var_r29 = object->data;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 1; var_r31++) {
|
||||
Hu3DModelKill(object->model[var_r31]);
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
Hu3DMotionKill(object->motion[var_r31]);
|
||||
}
|
||||
HuMemDirectFree(var_r29);
|
||||
}
|
||||
|
||||
void fn_1_45C0(omObjData *object, s32 arg1)
|
||||
{
|
||||
UnkPresentStruct5 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_00 = arg1;
|
||||
object->func = lbl_1_data_1A0[arg1];
|
||||
object->unk10 = 0;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
|
||||
s32 fn_1_4604(omObjData *object)
|
||||
{
|
||||
s32 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
return *var_r31;
|
||||
}
|
||||
|
||||
void fn_1_4620(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
omObjData *var_r30;
|
||||
void *var_r29;
|
||||
UnkPresentStruct5 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
Hu3DModelAttrReset(object->model[0], 1);
|
||||
var_r31->x = -300.0f;
|
||||
var_r31->z = -180.0f;
|
||||
var_r31->unk_48 = 0.0f;
|
||||
var_r31->unk_4C = 0.025f;
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
var_f31 = sind(90.0f * var_r31->unk_48);
|
||||
var_f31 *= var_f31;
|
||||
var_r31->unk_14 = -300.0f + (300.0f * var_f31);
|
||||
var_r31->unk_2C = var_r31->unk_14 - var_r31->x;
|
||||
if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
var_r31->x = 0.0f;
|
||||
var_r31->unk_48 = 0.0f;
|
||||
var_r31->unk_4C = 0.05f;
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
var_r31->unk_2C = 0.0f;
|
||||
var_r31->unk_34 = 0.01f;
|
||||
if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
var_r31->unk_24 = 0.0f;
|
||||
var_r31->unk_2C = 0.0f;
|
||||
var_r31->unk_30 = 0.0f;
|
||||
var_r31->unk_34 = 0.0f;
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
fn_1_45C0(object, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
fn_1_4A04(object);
|
||||
}
|
||||
|
||||
void fn_1_4880(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
UnkPresentStruct5 *var_r30;
|
||||
void *var_r29;
|
||||
|
||||
var_r30 = object->data;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
var_r30->unk_48 = 0.0f;
|
||||
var_r30->unk_4C = 0.025f;
|
||||
Hu3DModelAttrReset(object->model[0], 1);
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
var_f31 = sind(90.0f * var_r30->unk_48);
|
||||
var_f31 *= var_f31;
|
||||
var_r30->unk_14 = -(300.0f * var_f31);
|
||||
var_r30->unk_2C = var_r30->unk_14 - var_r30->x;
|
||||
if ((var_r30->unk_48 = var_r30->unk_48 + var_r30->unk_4C) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
Hu3DModelAttrSet(object->model[0], 1);
|
||||
fn_1_45C0(object, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
fn_1_4A04(object);
|
||||
(void)object;
|
||||
}
|
||||
|
||||
void fn_1_4A04(omObjData *object)
|
||||
{
|
||||
float var_f29;
|
||||
float var_f30;
|
||||
s16 var_r29;
|
||||
UnkPresentStruct5 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r29 = 0;
|
||||
var_f30 = var_r31->unk_2C * var_r31->unk_2C + var_r31->unk_34 * var_r31->unk_34;
|
||||
var_r31->unk_38 = sqrtf(var_f30);
|
||||
if (0.001f <= var_r31->unk_38) {
|
||||
if (12.0f <= var_r31->unk_38) {
|
||||
var_r31->unk_2C = var_r31->unk_2C / var_r31->unk_38;
|
||||
var_r31->unk_34 = var_r31->unk_34 / var_r31->unk_38;
|
||||
var_r31->unk_38 = 12.0f;
|
||||
var_r31->unk_2C = 12.0f * var_r31->unk_2C;
|
||||
var_r31->unk_34 = 12.0f * var_r31->unk_34;
|
||||
}
|
||||
var_r31->unk_24 = fn_1_4CEC(var_r31->unk_24, atan2d(var_r31->unk_2C, var_r31->unk_34), 0.4f);
|
||||
|
||||
if (8.0f <= var_r31->unk_38) {
|
||||
var_r29 = 2;
|
||||
} else {
|
||||
var_r29 = 1;
|
||||
}
|
||||
}
|
||||
var_r31->x = var_r31->x + var_r31->unk_2C;
|
||||
var_r31->z = var_r31->z + var_r31->unk_34;
|
||||
if (var_r31->unk_04 != var_r29) {
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[var_r31->unk_04 = var_r29], 0.0f, 8.0f, 0x40000001); // or 0x41000000
|
||||
}
|
||||
omSetTra(object, var_r31->x, var_r31->y, var_r31->z);
|
||||
omSetRot(object, var_r31->unk_20, var_r31->unk_24, var_r31->unk_28);
|
||||
}
|
||||
|
||||
float fn_1_4CEC(float arg8, float arg9, float argA)
|
||||
{
|
||||
float var_f30;
|
||||
float var_f31;
|
||||
|
||||
var_f31 = fmod(arg9 - arg8, 360.0f);
|
||||
if (0.0f > var_f31) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if (180.0f < var_f31) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
var_f30 = fmod(arg8 + (var_f31 * argA), 360.0f);
|
||||
if (0.0f > var_f30) {
|
||||
var_f30 += 360.0f;
|
||||
}
|
||||
return var_f30;
|
||||
}
|
||||
176
src/REL/present/init.c
Normal file
176
src/REL/present/init.c
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
#include "game/audio.h"
|
||||
#include "game/esprite.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/process.h"
|
||||
#include "game/wipe.h"
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
#include "REL/present.h"
|
||||
|
||||
omObjData *lbl_1_bss_18;
|
||||
omObjData *lbl_1_bss_14;
|
||||
omObjData *lbl_1_bss_10;
|
||||
omObjData *lbl_1_bss_C;
|
||||
omObjData *lbl_1_bss_8;
|
||||
Process *lbl_1_bss_4;
|
||||
omObjData *lbl_1_bss_0;
|
||||
|
||||
void fn_1_254(void);
|
||||
void fn_1_45C(void);
|
||||
void fn_1_5EC(omObjData *object);
|
||||
|
||||
void ModuleProlog(void)
|
||||
{
|
||||
lbl_1_bss_4 = omInitObjMan(150, 8192);
|
||||
omGameSysInit(lbl_1_bss_4);
|
||||
HuWinInit(1);
|
||||
lbl_1_bss_0 = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 0, fn_1_5EC);
|
||||
lbl_1_bss_0->unk10 = 0;
|
||||
lbl_1_bss_18 = fn_1_39A8();
|
||||
}
|
||||
|
||||
void fn_1_144(s16 arg0, s32 arg1, s32 arg2)
|
||||
{
|
||||
Process *var_r30;
|
||||
UnkPresentStruct6 *var_r31;
|
||||
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct6), MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_00 = arg0;
|
||||
var_r31->unk_08 = 1.0f / arg2;
|
||||
if (arg1) {
|
||||
var_r31->unk_08 = var_r31->unk_08;
|
||||
var_r31->unk_04 = 0.0f;
|
||||
} else {
|
||||
var_r31->unk_08 = -var_r31->unk_08;
|
||||
var_r31->unk_04 = 1.0f;
|
||||
}
|
||||
espDispOn(var_r31->unk_00);
|
||||
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
|
||||
var_r30 = HuPrcChildCreate(fn_1_254, 100, 5376, 0, HuPrcCurrentGet());
|
||||
var_r30->user_data = var_r31;
|
||||
}
|
||||
|
||||
void fn_1_254(void)
|
||||
{
|
||||
UnkPresentStruct6 *var_r31;
|
||||
|
||||
var_r31 = HuPrcCurrentGet()->user_data;
|
||||
while (TRUE) {
|
||||
var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_08;
|
||||
if (var_r31->unk_04 > 1.0f) {
|
||||
var_r31->unk_04 = 1.0f;
|
||||
break;
|
||||
} else if (var_r31->unk_04 < 0.0f) {
|
||||
var_r31->unk_04 = 0.0f;
|
||||
break;
|
||||
} else {
|
||||
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
|
||||
if (var_r31->unk_08 < 0.0f) {
|
||||
espDispOff(var_r31->unk_00);
|
||||
}
|
||||
HuMemDirectFree(var_r31);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2)
|
||||
{
|
||||
Process *var_r30;
|
||||
UnkPresentStruct6Weird *var_r31; // TODO correct type? why are only 12 bytes allocated?
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_00 = arg0;
|
||||
var_r31->unk_0C = 1.0f / arg2;
|
||||
var_r31->unk_04 = arg8;
|
||||
|
||||
if (arg1) {
|
||||
var_r31->unk_0C = var_r31->unk_0C;
|
||||
var_r31->unk_08 = 0.0f;
|
||||
} else {
|
||||
var_r31->unk_0C = -var_r31->unk_0C;
|
||||
var_r31->unk_08 = 1.0f;
|
||||
}
|
||||
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
|
||||
Hu3DModelAttrReset(var_r31->unk_00, 1);
|
||||
var_r30 = HuPrcChildCreate(fn_1_45C, 100, 5376, 0, HuPrcCurrentGet());
|
||||
var_r30->user_data = var_r31;
|
||||
}
|
||||
|
||||
void fn_1_45C(void)
|
||||
{
|
||||
UnkPresentStruct6Weird *var_r31; // TODO correct type? how is 0C possible?
|
||||
|
||||
var_r31 = HuPrcCurrentGet()->user_data;
|
||||
while (TRUE) {
|
||||
var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_0C;
|
||||
if (var_r31->unk_08 > 1.0f) {
|
||||
var_r31->unk_08 = 1.0f;
|
||||
break;
|
||||
} else if (var_r31->unk_08 < 0.0f) {
|
||||
var_r31->unk_08 = 0.0f;
|
||||
break;
|
||||
} else {
|
||||
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
|
||||
if (var_r31->unk_0C < 0.0f) {
|
||||
Hu3DModelAttrSet(var_r31->unk_00, 1);
|
||||
}
|
||||
HuMemDirectFree(var_r31);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
u32 fn_1_550(u16 arg0)
|
||||
{
|
||||
u32 var_r31;
|
||||
|
||||
var_r31 = HuPadBtnDown[0] & arg0;
|
||||
return var_r31 != 0;
|
||||
}
|
||||
|
||||
u32 fn_1_584(u16 arg0)
|
||||
{
|
||||
u32 var_r31;
|
||||
|
||||
var_r31 = HuPadDStkRep[0] & arg0;
|
||||
return var_r31 != 0;
|
||||
}
|
||||
|
||||
u32 fn_1_5B8(u16 arg0)
|
||||
{
|
||||
u32 var_r31;
|
||||
|
||||
var_r31 = HuPadDStk[0] & arg0;
|
||||
return var_r31 != 0;
|
||||
}
|
||||
|
||||
void fn_1_5EC(omObjData *object)
|
||||
{
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
if (!omSysExitReq) {
|
||||
break;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
WipeCreate(2, 0, 60);
|
||||
HuAudFadeOut(1000);
|
||||
object->unk10 = 3;
|
||||
break;
|
||||
case 3:
|
||||
if (!WipeStatGet()) {
|
||||
fn_1_3B18(lbl_1_bss_18);
|
||||
omOvlReturnEx(1, 1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
311
src/REL/present/main.c
Normal file
311
src/REL/present/main.c
Normal file
|
|
@ -0,0 +1,311 @@
|
|||
#include "game/audio.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/object.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/window.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
#include "REL/present.h"
|
||||
|
||||
omObjData *lbl_1_bss_20;
|
||||
|
||||
UnkPresentStruct4 lbl_1_data_F0 = { { 0.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } };
|
||||
|
||||
void fn_1_3B8C(omObjData *object);
|
||||
void fn_1_3DB8(omObjData *object);
|
||||
void fn_1_4040(UnkWindowDataStruct *arg0);
|
||||
void fn_1_4190(UnkWindowDataStruct *arg0);
|
||||
void fn_1_41E0(void);
|
||||
void fn_1_41BC(UnkWindowDataStruct *arg0, s32 arg1);
|
||||
|
||||
omObjData *fn_1_39A8(void)
|
||||
{
|
||||
omObjData *object;
|
||||
UnkPresentStruct *var_r30;
|
||||
|
||||
object = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 4, NULL);
|
||||
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct), MEMORY_DEFAULT_NUM);
|
||||
object->data = var_r30;
|
||||
var_r30->unk_04 = 0;
|
||||
lbl_1_bss_8 = fn_1_6B4();
|
||||
lbl_1_bss_10 = fn_1_1458();
|
||||
lbl_1_bss_20 = fn_1_42F4();
|
||||
var_r30->unk_00 = fn_1_3EA4(0);
|
||||
Hu3DShadowCreate(30.0f, 20.0f, 5000.0f);
|
||||
Hu3DShadowTPLvlSet(0.45f);
|
||||
Hu3DShadowPosSet(&lbl_1_data_F0.unk_00, &lbl_1_data_F0.unk_0C, &lbl_1_data_F0.unk_18);
|
||||
if (omovlevtno > 0) {
|
||||
OSReport("*** PRESENTROOM ( PRESENT GET MODE ) ***\n");
|
||||
object->func = fn_1_3DB8;
|
||||
object->unk10 = 0;
|
||||
} else {
|
||||
OSReport("*** PRESENTROOM ( PRESENT VIEW MODE ) ***\n");
|
||||
object->func = fn_1_3B8C;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
|
||||
return object;
|
||||
}
|
||||
|
||||
void fn_1_3B18(omObjData *object)
|
||||
{
|
||||
UnkWindowDataStruct **var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
fn_1_8F0(lbl_1_bss_8);
|
||||
fn_1_1784(lbl_1_bss_10);
|
||||
fn_1_4534(lbl_1_bss_20);
|
||||
fn_1_4040(*var_r31);
|
||||
HuMemDirectFree(var_r31);
|
||||
}
|
||||
|
||||
void fn_1_3B8C(omObjData *object)
|
||||
{
|
||||
UnkPresentStruct *var_r30;
|
||||
|
||||
var_r30 = object->data;
|
||||
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
if (WipeStatGet()) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
fn_1_180C(lbl_1_bss_10, 1);
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
if (fn_1_1850(lbl_1_bss_10)) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 4;
|
||||
case 4:
|
||||
fn_1_45C0(lbl_1_bss_20, 1);
|
||||
object->unk10 = 5;
|
||||
case 5:
|
||||
if (fn_1_4604(lbl_1_bss_20)) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 6;
|
||||
case 6:
|
||||
HuAudFXPlay(66);
|
||||
fn_1_4080(var_r30->unk_00);
|
||||
fn_1_40B0(var_r30->unk_00, 0x320002);
|
||||
object->unk10 = 7;
|
||||
case 7:
|
||||
if (var_r30->unk_00->unk_20) {
|
||||
return;
|
||||
}
|
||||
fn_1_41BC(var_r30->unk_00, 1);
|
||||
object->unk10 = 8;
|
||||
case 8:
|
||||
if (var_r30->unk_00->unk_20) {
|
||||
return;
|
||||
}
|
||||
fn_1_4098(var_r30->unk_00);
|
||||
if (!var_r30->unk_00->choice) {
|
||||
var_r30->unk_04 = 0;
|
||||
object->unk10 = 11;
|
||||
return;
|
||||
} else {
|
||||
object->unk10 = 9;
|
||||
return;
|
||||
}
|
||||
case 9:
|
||||
fn_1_45C0(lbl_1_bss_20, 2);
|
||||
object->unk10 = 10;
|
||||
return;
|
||||
case 10:
|
||||
if (fn_1_4604(lbl_1_bss_20)) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
return;
|
||||
case 11:
|
||||
object->unk10 = 12;
|
||||
var_r30->unk_04 = 0;
|
||||
case 12:
|
||||
if (var_r30->unk_00->unk_20) {
|
||||
return;
|
||||
}
|
||||
if (var_r30->unk_04++ >= 60) {
|
||||
omSysExitReq = 1;
|
||||
object->func = NULL;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_3DB8(omObjData *arg0)
|
||||
{
|
||||
void *sp8;
|
||||
|
||||
sp8 = arg0->data;
|
||||
switch (arg0->unk10) {
|
||||
case 0:
|
||||
fn_1_186C(lbl_1_bss_10, omovlevtno - 1);
|
||||
arg0->unk10 = 1;
|
||||
case 1:
|
||||
fn_1_180C(lbl_1_bss_10, 3);
|
||||
arg0->unk10 = 2;
|
||||
case 2:
|
||||
if (!fn_1_1850(lbl_1_bss_10)) {
|
||||
arg0->unk10 = 3;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
arg0->unk10 = 4;
|
||||
case 4:
|
||||
omSysExitReq = 1;
|
||||
arg0->func = NULL;
|
||||
arg0->unk10 = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UnkWindowDataStruct *fn_1_3EA4(s32 arg0)
|
||||
{
|
||||
UnkWindowDataStruct *var_r31;
|
||||
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWindowDataStruct), MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk18 = 0;
|
||||
var_r31->unk10 = 0;
|
||||
var_r31->unk14 = 0;
|
||||
var_r31->unk_20 = 0;
|
||||
var_r31->process = HuPrcChildCreate(fn_1_41E0, 1000, 8192, 0, lbl_1_bss_4);
|
||||
var_r31->process->user_data = var_r31;
|
||||
var_r31->unk08 = arg0;
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
var_r31->window = HuWinExCreateStyled(-10000.0f, 360.0f, 480, 80, -1, 1);
|
||||
HuWinBGTPLvlSet(var_r31->window, 0.8f);
|
||||
HuWinMesSpeedSet(var_r31->window, 0);
|
||||
HuWinMesPalSet(var_r31->window, 7, 0, 0, 0);
|
||||
break;
|
||||
case 1:
|
||||
var_r31->window = HuWinExCreateStyled(-10000.0f, 326.0f, 500, 40, -1, 0);
|
||||
HuWinAttrSet(var_r31->window, 2048);
|
||||
HuWinBGTPLvlSet(var_r31->window, 0.0f);
|
||||
HuWinMesSpeedSet(var_r31->window, 0);
|
||||
break;
|
||||
}
|
||||
HuWinDrawNoSet(var_r31->window, 63);
|
||||
fn_1_4190(var_r31);
|
||||
HuSprExecLayerSet(63, 2);
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
void fn_1_4040(UnkWindowDataStruct *windowData)
|
||||
{
|
||||
HuWinExCleanup(windowData->window);
|
||||
HuPrcKill(windowData->process);
|
||||
HuMemDirectFree(windowData);
|
||||
}
|
||||
|
||||
void fn_1_4080(UnkWindowDataStruct *windowData)
|
||||
{
|
||||
if (!windowData->unk0C) {
|
||||
windowData->unk_20 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_4098(UnkWindowDataStruct *windowData)
|
||||
{
|
||||
if (windowData->unk0C) {
|
||||
windowData->unk_20 = 2;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_40B0(UnkWindowDataStruct *windowData, u32 mess)
|
||||
{
|
||||
if (!windowData->unk_20) {
|
||||
HuWinMesSet(windowData->window, mess);
|
||||
return;
|
||||
}
|
||||
windowData->unk18 = mess;
|
||||
}
|
||||
|
||||
void fn_1_4104(UnkWindowDataStruct *windowData, u32 mess, s16 index)
|
||||
{
|
||||
HuWinInsertMesSet(windowData->window, mess, index);
|
||||
}
|
||||
|
||||
void fn_1_4144(UnkWindowDataStruct *windowData, float x, float y)
|
||||
{
|
||||
HuWinPosSet(windowData->window, x, y);
|
||||
}
|
||||
|
||||
void fn_1_4184(UnkWindowDataStruct *windowData)
|
||||
{
|
||||
windowData->unk0C = 1;
|
||||
}
|
||||
|
||||
void fn_1_4190(UnkWindowDataStruct *windowData)
|
||||
{
|
||||
windowData->unk0C = 0;
|
||||
}
|
||||
|
||||
void fn_1_419C(UnkWindowDataStruct *windowData)
|
||||
{
|
||||
if (!windowData->unk_20) {
|
||||
windowData->unk_20 = 3;
|
||||
}
|
||||
windowData->unk10 = 1;
|
||||
}
|
||||
|
||||
void fn_1_41BC(UnkWindowDataStruct *windowData, s32 arg1)
|
||||
{
|
||||
if (!windowData->unk_20) {
|
||||
windowData->unk_20 = 4;
|
||||
}
|
||||
windowData->unk14 = 1;
|
||||
windowData->choice = arg1;
|
||||
}
|
||||
|
||||
void fn_1_41E0(void)
|
||||
{
|
||||
UnkWindowDataStruct *windowData;
|
||||
|
||||
windowData = HuPrcCurrentGet()->user_data;
|
||||
while (TRUE) {
|
||||
switch (windowData->unk_20) {
|
||||
case 1:
|
||||
windowData->unk0C = 1;
|
||||
HuWinExAnimIn(windowData->window);
|
||||
break;
|
||||
case 2:
|
||||
HuWinExAnimOut(windowData->window);
|
||||
windowData->unk0C = 0;
|
||||
break;
|
||||
case 3:
|
||||
winData[windowData->window].active_pad = 1;
|
||||
HuWinMesWait(windowData->window);
|
||||
windowData->unk10 = 0;
|
||||
break;
|
||||
case 4:
|
||||
windowData->choice = HuWinChoiceGet(windowData->window, windowData->choice);
|
||||
windowData->unk14 = 0;
|
||||
break;
|
||||
}
|
||||
if (windowData->unk18 != 0) {
|
||||
HuWinMesSet(windowData->window, windowData->unk18);
|
||||
windowData->unk18 = 0;
|
||||
}
|
||||
windowData->unk_20 = 0;
|
||||
if (windowData->unk10 != 0) {
|
||||
windowData->unk_20 = 3;
|
||||
}
|
||||
if (windowData->unk14 != 0) {
|
||||
windowData->unk_20 = 4;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
868
src/REL/present/present.c
Normal file
868
src/REL/present/present.c
Normal file
|
|
@ -0,0 +1,868 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/esprite.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfdraw.h"
|
||||
#include "game/hsfex.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
#include "REL/present.h"
|
||||
|
||||
void fn_1_180C(omObjData *object, s32 arg1);
|
||||
void fn_1_1928(omObjData *arg0);
|
||||
void fn_1_1FA8(omObjData *object, s32 arg1);
|
||||
void fn_1_20E8(omObjData *arg0);
|
||||
void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3);
|
||||
void fn_1_2708(omObjData *arg0, float arg8, s32 arg1);
|
||||
void fn_1_2774(omObjData *arg0);
|
||||
s32 fn_1_28F0(omObjData *object);
|
||||
void fn_1_2924(omObjData *object);
|
||||
s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2);
|
||||
s32 fn_1_2BCC(omObjData *object, s32 arg1);
|
||||
s32 fn_1_2C5C(omObjData *object, s32 arg1);
|
||||
s32 fn_1_3394(s32 arg0);
|
||||
void fn_1_33AC(omObjData *arg0);
|
||||
s32 fn_1_393C(s32 arg0, s32 arg1);
|
||||
|
||||
UnkPresentStruct3 lbl_1_data_50 = { { 0.0f, 400.0f, 0.0f }, { 0.0f, -400.0f, -500.0f }, { 255, 255, 255, 255 } };
|
||||
omObjFunc lbl_1_data_6C[] = { NULL, fn_1_1928, fn_1_20E8, fn_1_33AC };
|
||||
|
||||
static const s32 lbl_1_rodata_A0[] = { 0x006E006C, 0x006E006B, 0x006E0000, 0x006E0001, 0x006E0002, 0x006E0003, 0x006E0004, 0x006E0005, 0x006E0006,
|
||||
0x006E0007, 0x006E0008, 0x006E0009, 0x006E000A, 0x006E000B, 0x006E000C, 0x006E000D, 0x006E000E, 0x006E000F, 0x006E0010, 0x006E0011, 0x006E0012,
|
||||
0x006E0013, 0x006E0014, 0x006E0015, 0x006E0016, 0x006E0017, 0x006E0018, 0x006E0019, 0x006E001A, 0x006E001B, 0x006E001C, 0x006E001D, 0x006E001E,
|
||||
0x006E001F, 0x006E0020, 0x006E0021, 0x006E0022, 0x006E0023, 0x006E0024, 0x006E0025, 0x006E0026, 0x006E0027, 0x006E0028, 0x006E0029, 0x006E002A,
|
||||
0x006E002B, 0x006E002C, 0x006E002D, 0x006E002E, 0x006E002F, 0x006E0030, 0x006E0031, 0x006E0032, 0x006E0033, 0x006E0034, 0x006E0035, 0x006E0036,
|
||||
0x006E0037, 0x006E0038, 0x006E0039, 0x006E003A, 0x006E003B, 0x006E003C, 0x006E003D, 0x006E003E, 0x006E003F, 0x006E0040, 0x006E0041, 0x006E0042,
|
||||
0x006E0043, 0x006E0044, 0x006E0045, 0x006E0046, 0x006E0047, 0x006E0048, 0x006E0049, 0x006E004A, 0x006E004B, 0x006E004C, 0x006E004D, 0x006E004E,
|
||||
0x006E004F, 0x006E0050, 0x006E0051, 0x006E0052, 0x006E0053, 0x006E0054, 0x006E0055, 0x006E0056, 0x006E0057, 0x006E0058, 0x006E0059, 0x006E005A,
|
||||
0x006E005B, 0x006E005C, 0x006E005D, 0x006E005E, 0x006E005F, 0x006E0060, 0x006E0061, 0x006E0062, 0x006E0063, 0x006E0064, 0x006E0065, 0x006E0066,
|
||||
0x006E0067, 0x006E0068, 0x006E0069, 0x006E006A, 0x006E006D, 0x006E006F, 0x006E0071, 0x006E0073, 0x006E0075, 0x006E0077, 0x006E0079, 0x006E007B,
|
||||
0x006E007D, 0x006E006E, 0x006E0070, 0x006E0072, 0x006E0074, 0x006E0076, 0x006E0078, 0x006E007A, 0x006E007C, 0x006E007F, 0x006E0080, 0x006E0081,
|
||||
0x006E0082, 0x006E0083, 0x006E0084, 0x006E0085, 0x006E0086 };
|
||||
|
||||
static const UnkPresentNestedOuterStruct lbl_1_rodata_2B8[] = {
|
||||
{ 0x00000006, { { 0x00000002, 0x00000008, 0x00320006, 0x00320042 }, { 0x00000003, 0x00000009, 0x00320007, 0x00320043 },
|
||||
{ 0x00000004, 0x0000000A, 0x00320008, 0x00320044 }, { 0x00000005, 0x0000000B, 0x00320009, 0x00320045 },
|
||||
{ 0x00000006, 0x0000000C, 0x0032000A, 0x00320046 }, { 0x00000007, 0x0000000D, 0x0032000B, 0x00320047 },
|
||||
},
|
||||
},
|
||||
{ 0x00000006, { { 0x0000000E, 0x00000014, 0x0032000C, 0x00320048 }, { 0x0000000F, 0x00000015, 0x0032000D, 0x00320049 },
|
||||
{ 0x00000010, 0x00000016, 0x0032000E, 0x0032004A }, { 0x00000011, 0x00000017, 0x0032000F, 0x0032004B },
|
||||
{ 0x00000012, 0x00000018, 0x00320010, 0x0032004C }, { 0x00000013, 0x00000019, 0x00320011, 0x0032004D },
|
||||
},
|
||||
},
|
||||
{ 0x00000006, { { 0x0000001A, 0x00000020, 0x00320012, 0x0032004E }, { 0x0000001B, 0x00000021, 0x00320013, 0x0032004F },
|
||||
{ 0x0000001C, 0x00000022, 0x00320014, 0x00320050 }, { 0x0000001D, 0x00000023, 0x00320015, 0x00320051 },
|
||||
{ 0x0000001E, 0x00000024, 0x00320016, 0x00320052 }, { 0x0000001F, 0x00000025, 0x00320017, 0x00320053 },
|
||||
},
|
||||
},
|
||||
{ 0x00000006, { { 0x00000026, 0x0000002C, 0x00320018, 0x00320054 }, { 0x00000027, 0x0000002D, 0x00320019, 0x00320055 },
|
||||
{ 0x00000028, 0x0000002E, 0x0032001A, 0x00320056 }, { 0x00000029, 0x0000002F, 0x0032001B, 0x00320057 },
|
||||
{ 0x0000002A, 0x00000030, 0x0032001C, 0x00320058 }, { 0x0000002B, 0x00000031, 0x0032001D, 0x00320059 },
|
||||
},
|
||||
},
|
||||
{ 0x00000006, { { 0x00000032, 0x00000038, 0x0032001E, 0x0032005A }, { 0x00000033, 0x00000039, 0x0032001F, 0x0032005B },
|
||||
{ 0x00000034, 0x0000003A, 0x00320020, 0x0032005C }, { 0x00000035, 0x0000003B, 0x00320021, 0x0032005D },
|
||||
{ 0x00000036, 0x0000003C, 0x00320022, 0x0032005E }, { 0x00000037, 0x0000003D, 0x00320023, 0x0032005F },
|
||||
},
|
||||
},
|
||||
{ 0x00000001, { { 0x00000001, 0xFFFFFFFF, 0x00320041, 0x00320041 } } },
|
||||
{ 0x00000006, { { 0x0000003E, 0x00000044, 0x00320024, 0x00320060 }, { 0x0000003F, 0x00000045, 0x00320025, 0x00320061 },
|
||||
{ 0x00000040, 0x00000046, 0x00320026, 0x00320062 }, { 0x00000041, 0x00000047, 0x00320027, 0x00320063 },
|
||||
{ 0x00000042, 0x00000048, 0x00320028, 0x00320064 }, { 0x00000043, 0x00000049, 0x00320029, 0x00320065 },
|
||||
},
|
||||
},
|
||||
{ 0x00000006, { { 0x0000004A, 0x00000050, 0x0032002A, 0x00320066 }, { 0x0000004B, 0x00000051, 0x0032002B, 0x00320067 },
|
||||
{ 0x0000004C, 0x00000052, 0x0032002C, 0x00320068 }, { 0x0000004D, 0x00000053, 0x0032002D, 0x00320069 },
|
||||
{ 0x0000004E, 0x00000054, 0x0032002E, 0x0032006A }, { 0x0000004F, 0x00000055, 0x0032002F, 0x0032006B },
|
||||
},
|
||||
},
|
||||
{ 0x00000006, { { 0x00000056, 0x0000005C, 0x00320030, 0x0032006C }, { 0x00000057, 0x0000005D, 0x00320031, 0x0032006D },
|
||||
{ 0x00000058, 0x0000005E, 0x00320032, 0x0032006E }, { 0x00000059, 0x0000005F, 0x00320033, 0x0032006F },
|
||||
{ 0x0000005A, 0x00000060, 0x00320034, 0x00320070 }, { 0x0000005B, 0x00000061, 0x00320035, 0x00320071 },
|
||||
},
|
||||
},
|
||||
{ 0x0000000B, { { 0x00000062, 0xFFFFFFFF, 0x00320036, 0x00320072 }, { 0x00000063, 0xFFFFFFFF, 0x00320037, 0x00320073 },
|
||||
{ 0x00000064, 0xFFFFFFFF, 0x00320038, 0x00320074 }, { 0x00000065, 0xFFFFFFFF, 0x00320039, 0x00320075 },
|
||||
{ 0x00000066, 0xFFFFFFFF, 0x0032003A, 0x00320076 }, { 0x00000067, 0xFFFFFFFF, 0x0032003B, 0x00320077 },
|
||||
{ 0x00000068, 0xFFFFFFFF, 0x0032003C, 0x00320078 }, { 0x00000069, 0xFFFFFFFF, 0x0032003D, 0x00320079 },
|
||||
{ 0x0000006A, 0xFFFFFFFF, 0x0032003E, 0x0032007A }, { 0x0000006B, 0xFFFFFFFF, 0x0032003F, 0x0032007B },
|
||||
{ 0x0000006C, 0xFFFFFFFF, 0x00320040, 0x0032007C }
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
omObjData *fn_1_1458(void)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
s32 var_r30;
|
||||
omObjData *var_r29;
|
||||
s32 var_r28;
|
||||
s16 var_r27;
|
||||
LightData *var_r26;
|
||||
|
||||
var_r29 = omAddObjEx(lbl_1_bss_4, 1003, 0, 0, 1, NULL);
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 868, MEMORY_DEFAULT_NUM);
|
||||
var_r29->data = var_r31;
|
||||
var_r31->unk_234 = 0;
|
||||
var_r31->unk_238 = 0;
|
||||
var_r31->unk_23C = 0.0f;
|
||||
var_r31->unk_248 = 1.0f;
|
||||
var_r31->unk_250 = 0.0f;
|
||||
|
||||
for (var_r30 = 0; var_r30 < 60; var_r30++) {
|
||||
var_r31->unk_270[var_r30] = GWGameStat.present[var_r30];
|
||||
}
|
||||
|
||||
for (var_r30 = 0; var_r30 < 59; var_r30++) {
|
||||
if (!var_r31->unk_270[var_r30]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r30 == 59) {
|
||||
var_r31->unk_270[59] = 1;
|
||||
}
|
||||
Hu3DLighInit();
|
||||
var_r27 = Hu3DGLightCreateV(&lbl_1_data_50.unk_00, &lbl_1_data_50.unk_0C, &lbl_1_data_50.unk_18);
|
||||
Hu3DGLightInfinitytSet(var_r27);
|
||||
Hu3DGLightStaticSet(var_r27, 1);
|
||||
var_r26 = &Hu3DGlobalLight[var_r27];
|
||||
var_r26->unk_00 = var_r26->unk_00 | 0x8000;
|
||||
|
||||
for (var_r30 = 0; var_r30 < 134; var_r30++) {
|
||||
var_r31->unk_10[var_r30] = omAddObjEx(lbl_1_bss_4, 1003, 1, 0, 1, NULL);
|
||||
var_r31->unk_10[var_r30]->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_rodata_A0[var_r30], MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||
Hu3DModelLayerSet(var_r31->unk_10[var_r30]->model[0], 0);
|
||||
Hu3DModelAttrSet(var_r31->unk_10[var_r30]->model[0], 1);
|
||||
}
|
||||
|
||||
for (var_r28 = 0; var_r28 < 8; var_r28++) {
|
||||
for (var_r30 = 0; var_r30 < 6; var_r30++) {
|
||||
Hu3DModelLayerSet(var_r31->unk_10[var_r30 + 2 + var_r28 * 6 * 2]->model[0], 1);
|
||||
}
|
||||
}
|
||||
Hu3DModelShadowMapSet(var_r31->unk_10[0]->model[0]);
|
||||
fn_1_2924(var_r29);
|
||||
var_r31->sprite = espEntry(7209095, 0, 0);
|
||||
espDispOff(var_r31->sprite);
|
||||
var_r31->unk_228 = fn_1_3EA4(0);
|
||||
var_r31->unk_22C = fn_1_3EA4(1);
|
||||
fn_1_2708(var_r29, var_r31->unk_234 * 36.0f, 1);
|
||||
fn_1_2774(var_r29);
|
||||
fn_1_180C(var_r29, 0);
|
||||
|
||||
(void)var_r27;
|
||||
return var_r29;
|
||||
}
|
||||
|
||||
void fn_1_1784(omObjData *object)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
s32 var_r30;
|
||||
void *var_r29;
|
||||
|
||||
var_r31 = object->data;
|
||||
fn_1_4040(var_r31->unk_228);
|
||||
fn_1_4040(var_r31->unk_22C);
|
||||
|
||||
for (var_r30 = 0; var_r30 < 134; var_r30++) {
|
||||
Hu3DModelKill(var_r31->unk_10[var_r30]->model[0]);
|
||||
}
|
||||
espKill(var_r31->sprite);
|
||||
HuMemDirectFree(var_r31);
|
||||
}
|
||||
|
||||
void fn_1_180C(omObjData *object, s32 arg1)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_0C = arg1;
|
||||
object->func = lbl_1_data_6C[arg1];
|
||||
object->unk10 = 0;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
|
||||
s32 fn_1_1850(omObjData *object)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
return var_r31->unk_0C;
|
||||
}
|
||||
|
||||
static const s32 lbl_1_rodata_9D8[] = { 0, 1, 2, 3, 4, 6, 7, 8 };
|
||||
static const s32 lbl_1_rodata_9F8[] = { 0, 1, 2, 3, 4, 0, 5, 6, 7, 0 };
|
||||
|
||||
void fn_1_186C(omObjData *object, s32 arg1)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
if (arg1 < 48) {
|
||||
var_r31->unk_234 = lbl_1_rodata_9D8[arg1 / 6];
|
||||
var_r31->unk_238 = arg1 % 6;
|
||||
return;
|
||||
}
|
||||
if (arg1 < 59) {
|
||||
var_r31->unk_234 = 9;
|
||||
var_r31->unk_238 = (arg1 - 48) % 11;
|
||||
return;
|
||||
}
|
||||
var_r31->unk_234 = 5;
|
||||
var_r31->unk_238 = 0;
|
||||
}
|
||||
|
||||
void fn_1_1928(omObjData *object)
|
||||
{
|
||||
Vec sp8;
|
||||
UnkPresentStruct2 *var_r31;
|
||||
s32 var_r29;
|
||||
UnkPresentStruct2 *var_r28;
|
||||
|
||||
var_r31 = object->data;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
var_r31->unk_00 = 0;
|
||||
var_r31->unk_08 = 0;
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
if (var_r31->unk_08) {
|
||||
fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, 250.0f, 30);
|
||||
fn_1_9A4(lbl_1_bss_8, 0.0f, 420.0f, -600.0f, 30);
|
||||
} else {
|
||||
fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, 250.0f, 30);
|
||||
fn_1_9A4(lbl_1_bss_8, 0.0f, 0.0f, -600.0f, 30);
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
if (!fn_1_B6C(lbl_1_bss_8) && !var_r31->unk_228->unk_20 && !fn_1_28F0(object)) {
|
||||
fn_1_4080(var_r31->unk_228);
|
||||
fn_1_4080(var_r31->unk_22C);
|
||||
if (var_r31->unk_08) {
|
||||
var_r29 = 0x320080;
|
||||
} else if (var_r31->unk_234 == 5) {
|
||||
var_r29 = 0x320085;
|
||||
} else {
|
||||
var_r29 = 0x32007e;
|
||||
}
|
||||
fn_1_40B0(var_r31->unk_22C, var_r29);
|
||||
switch (var_r31->unk_234) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
if (var_r31->unk_08) {
|
||||
if (fn_1_2B84(object, var_r31->unk_234, 5)) {
|
||||
var_r29 = 0x320005;
|
||||
} else {
|
||||
var_r29 = 0x320082;
|
||||
}
|
||||
} else if (fn_1_2BCC(object, var_r31->unk_234) > 0) {
|
||||
var_r29 = 0x320001;
|
||||
} else {
|
||||
var_r29 = 0x320081;
|
||||
}
|
||||
fn_1_40B0(var_r31->unk_228, var_r29);
|
||||
fn_1_4104(var_r31->unk_228, lbl_1_rodata_9F8[var_r31->unk_234], 0);
|
||||
break;
|
||||
case 5:
|
||||
if (fn_1_2B84(object, 5, 0)) {
|
||||
var_r29 = 0x320041;
|
||||
} else {
|
||||
var_r29 = 0x320084;
|
||||
}
|
||||
fn_1_40B0(var_r31->unk_228, var_r29);
|
||||
break;
|
||||
case 9:
|
||||
if (fn_1_2BCC(object, 9) > 0) {
|
||||
var_r29 = 0x320083;
|
||||
} else {
|
||||
var_r29 = 0x320081;
|
||||
}
|
||||
fn_1_40B0(var_r31->unk_228, var_r29);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (var_r31->unk_08) {
|
||||
sp8.x = 0.0f;
|
||||
sp8.y = 600.0f;
|
||||
sp8.z = -500.0f;
|
||||
} else {
|
||||
sp8.x = 0.0f;
|
||||
sp8.y = 210.0f;
|
||||
sp8.z = -500.0f;
|
||||
}
|
||||
Hu3D3Dto2D(&sp8, 1, &sp8);
|
||||
sp8.y -= 15.0f;
|
||||
sp8.x -= 20.0f;
|
||||
espPosSet(var_r31->sprite, sp8.x, sp8.y);
|
||||
if (!var_r31->unk_00) {
|
||||
fn_1_144(var_r31->sprite, 1, 5);
|
||||
var_r31->unk_00 = 1;
|
||||
}
|
||||
object->unk10 = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!var_r31->unk_228->unk_20) {
|
||||
if (fn_1_550(512) && !var_r31->unk_08) {
|
||||
fn_1_144(var_r31->sprite, 0, 5);
|
||||
var_r31->unk_00 = 0;
|
||||
fn_1_4098(var_r31->unk_228);
|
||||
fn_1_4098(var_r31->unk_22C);
|
||||
HuAudFXPlay(3);
|
||||
object->unk10 = 4;
|
||||
} else if (fn_1_550(256) && !var_r31->unk_08) {
|
||||
if (var_r31->unk_234 != 5) {
|
||||
fn_1_144(var_r31->sprite, 0, 5);
|
||||
var_r31->unk_00 = 0;
|
||||
fn_1_4098(var_r31->unk_228);
|
||||
fn_1_4098(var_r31->unk_22C);
|
||||
HuAudFXPlay(2);
|
||||
fn_1_180C(object, 2);
|
||||
}
|
||||
} else if (fn_1_584(8) && !var_r31->unk_08) {
|
||||
if ((var_r31->unk_234 != 5) && (var_r31->unk_234 != 9)) {
|
||||
var_r31->unk_08 = 1;
|
||||
fn_1_144(var_r31->sprite, 0, 5);
|
||||
var_r31->unk_00 = 0;
|
||||
fn_1_4098(var_r31->unk_228);
|
||||
fn_1_4098(var_r31->unk_22C);
|
||||
HuAudFXPlay(0);
|
||||
object->unk10 = 1;
|
||||
}
|
||||
} else if (fn_1_584(4) && var_r31->unk_08) {
|
||||
var_r31->unk_08 = 0;
|
||||
fn_1_144(var_r31->sprite, 0, 5);
|
||||
var_r31->unk_00 = 0;
|
||||
fn_1_4098(var_r31->unk_228);
|
||||
fn_1_4098(var_r31->unk_22C);
|
||||
HuAudFXPlay(0);
|
||||
object->unk10 = 1;
|
||||
} else if (fn_1_584(1)) {
|
||||
fn_1_1FA8(object, 1);
|
||||
HuAudFXPlay(0);
|
||||
object->unk10 = 2;
|
||||
} else if (fn_1_584(2)) {
|
||||
fn_1_1FA8(object, 2);
|
||||
HuAudFXPlay(0);
|
||||
object->unk10 = 2;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
fn_1_180C(object, 0);
|
||||
break;
|
||||
}
|
||||
fn_1_2774(object);
|
||||
}
|
||||
|
||||
void fn_1_1FA8(omObjData *object, s32 arg1)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
float var_f30;
|
||||
float var_f31;
|
||||
float var_f29;
|
||||
|
||||
var_r31 = object->data;
|
||||
|
||||
for (var_r30 = 0, var_f31 = 0.0f;; var_r30++) {
|
||||
var_f31 += 36.0f;
|
||||
if (arg1 == 1) {
|
||||
var_r29 = -1;
|
||||
} else {
|
||||
var_r29 = 1;
|
||||
}
|
||||
var_r31->unk_234 = var_r31->unk_234 + var_r29;
|
||||
if (var_r31->unk_234 < 0) {
|
||||
var_r31->unk_234 = 9;
|
||||
} else if (var_r31->unk_234 >= 10) {
|
||||
var_r31->unk_234 = 0;
|
||||
}
|
||||
if (!((var_r31->unk_08) && ((var_r31->unk_234 == 5) || (var_r31->unk_234 == 9)))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (arg1 == 1) {
|
||||
var_f30 = -var_f31;
|
||||
} else {
|
||||
var_f30 = var_f31;
|
||||
}
|
||||
var_f29 = var_r31->unk_23C + var_f30;
|
||||
if (!var_r30) {
|
||||
var_r28 = 30;
|
||||
} else {
|
||||
var_r28 = 45;
|
||||
}
|
||||
fn_1_2708(object, var_f29, var_r28);
|
||||
}
|
||||
|
||||
void fn_1_20E8(omObjData *object)
|
||||
{
|
||||
Vec sp8;
|
||||
UnkPresentStruct2 *var_r31;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
s32 var_r27;
|
||||
s32 var_r25;
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r29 = var_r31->unk_238;
|
||||
var_r27 = var_r31->unk_234;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, -120.0f, 30);
|
||||
fn_1_9A4(lbl_1_bss_8, 0.0f, 0.0f, -600.0f, 30);
|
||||
var_r31->unk_04 = fn_1_2BCC(object, var_r27) > 0;
|
||||
var_r31->unk_00 = 0;
|
||||
var_r31->unk_238 = 0;
|
||||
if (var_r31->unk_04) {
|
||||
var_r25 = fn_1_3394(var_r31->unk_234);
|
||||
for (var_r28 = 0; var_r28 < var_r25; var_r28++) {
|
||||
if (fn_1_2B84(object, var_r27, var_r28)) {
|
||||
var_r31->unk_238 = var_r28;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
if (fn_1_B6C(lbl_1_bss_8)) {
|
||||
break;
|
||||
}
|
||||
fn_1_4080(var_r31->unk_228);
|
||||
fn_1_4080(var_r31->unk_22C);
|
||||
fn_1_40B0(var_r31->unk_22C, 0x32007F);
|
||||
|
||||
if (var_r31->unk_04) {
|
||||
fn_1_40B0(var_r31->unk_228, lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_0C);
|
||||
} else {
|
||||
fn_1_40B0(var_r31->unk_228, 0x320003);
|
||||
}
|
||||
var_r31->unk_258 = 0.0f;
|
||||
var_r31->unk_25C = 5.0f / 30.0f;
|
||||
if (var_r31->unk_04) {
|
||||
fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_00], &sp8.x, &sp8.y, &sp8.z);
|
||||
Hu3D3Dto2D(&sp8, 1, &sp8);
|
||||
sp8.y -= 15.0f;
|
||||
sp8.x -= 20.0f;
|
||||
if (!var_r31->unk_00) {
|
||||
fn_1_144(var_r31->sprite, 1, 5);
|
||||
var_r31->unk_00 = 1;
|
||||
var_r31->unk_260 = sp8.x;
|
||||
var_r31->unk_264 = sp8.y;
|
||||
} else {
|
||||
var_r31->unk_260 = var_r31->unk_268;
|
||||
var_r31->unk_264 = var_r31->unk_26C;
|
||||
}
|
||||
var_r31->unk_268 = sp8.x;
|
||||
var_r31->unk_26C = sp8.y;
|
||||
object->unk10 = 2;
|
||||
} else {
|
||||
object->unk10 = 3;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
var_f31 = var_r31->unk_260 + (var_r31->unk_258 * (var_r31->unk_268 - var_r31->unk_260));
|
||||
var_f30 = var_r31->unk_264 + (var_r31->unk_258 * (var_r31->unk_26C - var_r31->unk_264));
|
||||
espPosSet(var_r31->sprite, var_f31, var_f30);
|
||||
if ((var_r31->unk_258 = var_r31->unk_258 + var_r31->unk_25C) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
espPosSet(var_r31->sprite, var_r31->unk_268, var_r31->unk_26C);
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
if (fn_1_550(512)) {
|
||||
fn_1_4098(var_r31->unk_228);
|
||||
fn_1_4098(var_r31->unk_22C);
|
||||
HuAudFXPlay(3);
|
||||
object->unk10 = 4;
|
||||
} else if (var_r31->unk_04) {
|
||||
if (fn_1_584(1) && fn_1_5B8(8)) {
|
||||
var_r29 = fn_1_2C5C(object, 5);
|
||||
} else if (fn_1_584(1) && fn_1_5B8(4)) {
|
||||
var_r29 = fn_1_2C5C(object, 9);
|
||||
} else if (fn_1_584(2) && fn_1_5B8(8)) {
|
||||
var_r29 = fn_1_2C5C(object, 6);
|
||||
} else if (fn_1_584(2) && fn_1_5B8(4)) {
|
||||
var_r29 = fn_1_2C5C(object, 10);
|
||||
} else if (fn_1_584(1)) {
|
||||
var_r29 = fn_1_2C5C(object, 1);
|
||||
} else if (fn_1_584(2)) {
|
||||
var_r29 = fn_1_2C5C(object, 2);
|
||||
} else if (fn_1_584(8)) {
|
||||
var_r29 = fn_1_2C5C(object, 4);
|
||||
} else if (fn_1_584(4)) {
|
||||
var_r29 = fn_1_2C5C(object, 8);
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
if (var_r29 == -1) {
|
||||
var_r29 = var_r31->unk_238;
|
||||
}
|
||||
if (var_r29 != var_r31->unk_238) {
|
||||
var_r31->unk_238 = var_r29;
|
||||
object->unk10 = 1;
|
||||
HuAudFXPlay(0);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (var_r31->unk_00) {
|
||||
fn_1_144(var_r31->sprite, 0, 5);
|
||||
}
|
||||
fn_1_180C(object, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3)
|
||||
{
|
||||
Mtx sp8;
|
||||
|
||||
Hu3DModelObjMtxGet(object->model[0], "cursor", sp8);
|
||||
*arg1 = sp8[0][3];
|
||||
*arg2 = sp8[1][3];
|
||||
*arg3 = sp8[2][3];
|
||||
}
|
||||
|
||||
void fn_1_2708(omObjData *arg0, float arg8, s32 arg1)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
|
||||
var_r31 = arg0->data;
|
||||
var_r31->unk_244 = arg8;
|
||||
var_r31->unk_240 = var_r31->unk_23C;
|
||||
var_r31->unk_248 = 0.0f;
|
||||
var_r31->unk_250 = 1.0f / arg1;
|
||||
}
|
||||
|
||||
void fn_1_2774(omObjData *object)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
float var_f31;
|
||||
s32 var_r30;
|
||||
|
||||
var_r31 = object->data;
|
||||
|
||||
if (var_r31->unk_248 < 1.0f) {
|
||||
var_f31 = sin(90.0f * var_r31->unk_248 * M_PI / 180.0f);
|
||||
var_f31 *= var_f31;
|
||||
var_r31->unk_23C = var_r31->unk_240 + (var_f31 * (var_r31->unk_244 - var_r31->unk_240));
|
||||
|
||||
if ((var_r31->unk_248 = var_r31->unk_248 + var_r31->unk_250) >= 1.0f) {
|
||||
var_r31->unk_23C = var_r31->unk_244;
|
||||
}
|
||||
}
|
||||
var_r31->unk_23C = fmod(var_r31->unk_23C, 360.0);
|
||||
|
||||
if (var_r31->unk_23C < 0.0f) {
|
||||
var_r31->unk_23C += 360.0f;
|
||||
}
|
||||
|
||||
for (var_r30 = 0; var_r30 < 134; var_r30++) {
|
||||
omSetRot(var_r31->unk_10[var_r30], 0.0f, var_r31->unk_23C, 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
s32 fn_1_28F0(omObjData *object)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
return var_r31->unk_248 < 1.0f;
|
||||
}
|
||||
|
||||
s32 lbl_1_data_84[] = { 0, 1, 2, 3, 4, 6, 7, 8 };
|
||||
|
||||
void fn_1_2924(omObjData *object)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
s32 var_r30;
|
||||
s32 var_r27;
|
||||
s32 var_r29;
|
||||
|
||||
var_r31 = object->data;
|
||||
Hu3DModelAttrReset(var_r31->unk_10[0]->model[0], 1);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 8; var_r29++) {
|
||||
if (fn_1_2BCC(object, lbl_1_data_84[var_r29]) > 0) {
|
||||
Hu3DModelAttrReset(var_r31->unk_10[var_r29 + 109]->model[0], 1);
|
||||
}
|
||||
|
||||
for (var_r27 = 0, var_r30 = 0; var_r30 < 6; var_r30++) {
|
||||
if (fn_1_2B84(object, lbl_1_data_84[var_r29], var_r30)) {
|
||||
Hu3DModelAttrReset(var_r31->unk_10[var_r29 * 6 * 2 + 2 + var_r30]->model[0], 1);
|
||||
Hu3DModelAttrReset(var_r31->unk_10[var_r29 * 6 * 2 + 8 + var_r30]->model[0], 1);
|
||||
var_r27++;
|
||||
}
|
||||
}
|
||||
if (var_r27 >= 6) {
|
||||
Hu3DModelAttrReset(var_r31->unk_10[var_r29 + 118]->model[0], 1);
|
||||
}
|
||||
}
|
||||
if (fn_1_2BCC(object, 9) > 0) {
|
||||
Hu3DModelAttrReset(var_r31->unk_10[117]->model[0], 1);
|
||||
}
|
||||
for (var_r30 = 0; var_r30 < 11; var_r30++) {
|
||||
if (fn_1_2B84(object, 9, var_r30)) {
|
||||
Hu3DModelAttrReset(var_r31->unk_10[var_r30 + 98]->model[0], 1);
|
||||
}
|
||||
}
|
||||
if (fn_1_2B84(object, 5, 0)) {
|
||||
Hu3DModelAttrReset(var_r31->unk_10[1]->model[0], 1);
|
||||
}
|
||||
for (var_r30 = 0; var_r30 < 8; var_r30++) {
|
||||
if (fn_1_2B84(object, lbl_1_data_84[var_r30], 5)) {
|
||||
Hu3DModelAttrReset(var_r31->unk_10[var_r30 + 126]->model[0], 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static const s32 lbl_1_rodata_A74[] = { 0, 6, 12, 18, 24, 59, 30, 36, 42, 48 };
|
||||
|
||||
s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2)
|
||||
{
|
||||
UnkPresentStruct2 *var_r31;
|
||||
|
||||
var_r31 = arg0->data;
|
||||
return var_r31->unk_270[arg2 + lbl_1_rodata_A74[arg1]] != 0;
|
||||
}
|
||||
|
||||
s32 fn_1_2BCC(omObjData *object, s32 arg1)
|
||||
{
|
||||
s32 var_r31;
|
||||
s32 var_r30;
|
||||
UnkPresentStruct2 *var_r29;
|
||||
s32 var_r28;
|
||||
|
||||
var_r28 = fn_1_3394(arg1);
|
||||
|
||||
for (var_r30 = 0, var_r31 = 0; var_r31 < var_r28; var_r31++) {
|
||||
if (fn_1_2B84(object, arg1, var_r31)) {
|
||||
var_r30++;
|
||||
}
|
||||
}
|
||||
|
||||
return var_r30;
|
||||
}
|
||||
|
||||
s32 fn_1_2C5C(omObjData *object, s32 arg1)
|
||||
{
|
||||
UnkPresentStruct7 spA4[10];
|
||||
Vec sp38;
|
||||
Vec sp2C;
|
||||
UnkPresentStruct7 sp24;
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float var_f29;
|
||||
UnkPresentStruct2 *var_r31;
|
||||
s32 var_r30;
|
||||
s32 var_r28;
|
||||
s32 var_r26;
|
||||
s32 var_r23;
|
||||
s32 var_r22;
|
||||
omObjData *var_r21;
|
||||
omObjData *var_r19;
|
||||
s32 var_r18;
|
||||
s32 var_r17;
|
||||
|
||||
var_r31 = object->data;
|
||||
|
||||
var_r22 = fn_1_3394(var_r31->unk_234);
|
||||
|
||||
var_r18 = fn_1_2BCC(object, var_r31->unk_234);
|
||||
if (var_r18 == 1) {
|
||||
return var_r31->unk_238;
|
||||
}
|
||||
|
||||
fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r31->unk_238].unk_00], &sp38.x, &sp38.y, &sp38.z);
|
||||
Hu3D3Dto2D(&sp38, 1, &sp38);
|
||||
for (var_r28 = 0, var_r26 = 0; !var_r28 && (var_r26 < 1); var_r26++) {
|
||||
for (var_r28 = 0, var_r30 = 0; var_r30 < var_r22; var_r30++) {
|
||||
if (var_r30 == var_r31->unk_238) {
|
||||
continue;
|
||||
}
|
||||
if (!fn_1_2B84(object, var_r31->unk_234, var_r30)) {
|
||||
continue;
|
||||
}
|
||||
fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r30].unk_00], &sp2C.x, &sp2C.y, &sp2C.z);
|
||||
Hu3D3Dto2D(&sp2C, 1, &sp2C);
|
||||
var_f30 = sp38.x - sp2C.x;
|
||||
var_f29 = sp38.y - sp2C.y;
|
||||
var_f31 = fmod(atan2d(var_f30, var_f29), 360.0);
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if ((arg1 == 1 && var_f31 >= 45.0f && var_f31 < 135.0f) || (arg1 == 2 && var_f31 >= 225.0f && var_f31 < 315.0f)
|
||||
|| (arg1 == 8 && var_f31 >= 135.0f && var_f31 < 225.0f)
|
||||
|| (arg1 == 4 && (var_f31 >= 0.0f && var_f31 < 45.0f || var_f31 >= 315.0f && var_f31 < 360.0f))
|
||||
|| (arg1 == 5 && var_f31 >= 0.0f && var_f31 < 90.0f) || (arg1 == 9 && var_f31 >= 90.0f && var_f31 < 180.0f)
|
||||
|| (arg1 == 6 && var_f31 >= 270.0f && var_f31 < 360.0f) || (arg1 == 10 && var_f31 >= 180.0f && var_f31 < 270.0f)) {
|
||||
spA4[var_r28].unk_00 = var_r30;
|
||||
spA4[var_r28].unk_04 = sqrtf(var_f30 * var_f30 + var_f29 * var_f29);
|
||||
var_r28++;
|
||||
}
|
||||
}
|
||||
|
||||
if (var_r28) {
|
||||
continue;
|
||||
}
|
||||
switch (arg1) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
L_00003218:
|
||||
arg1 = 2;
|
||||
break;
|
||||
case 2:
|
||||
L_00003220:
|
||||
arg1 = 1;
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
L_00003228:
|
||||
arg1 = 8;
|
||||
break;
|
||||
case 7:
|
||||
break;
|
||||
case 8:
|
||||
L_00003230:
|
||||
arg1 = 4;
|
||||
break;
|
||||
case 5:
|
||||
L_00003238:
|
||||
arg1 = 10;
|
||||
break;
|
||||
case 9:
|
||||
L_00003240:
|
||||
arg1 = 6;
|
||||
break;
|
||||
case 6:
|
||||
L_00003248:
|
||||
arg1 = 9;
|
||||
break;
|
||||
case 10:
|
||||
L_00003250:
|
||||
arg1 = 5;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
// L_00003254:
|
||||
}
|
||||
if (!var_r28) {
|
||||
return var_r31->unk_238;
|
||||
}
|
||||
do {
|
||||
for (var_r23 = 0, var_r30 = 0; var_r30 < (var_r28 - 1); var_r30++) {
|
||||
if (spA4[var_r30].unk_04 > spA4[var_r30 + 1].unk_04) {
|
||||
sp24 = spA4[var_r30 + 1];
|
||||
spA4[var_r30 + 1] = spA4[var_r30];
|
||||
spA4[var_r30] = sp24;
|
||||
var_r23 = 1;
|
||||
}
|
||||
}
|
||||
} while (var_r23);
|
||||
return spA4[(var_r26 <= 1) ? 0 : var_r28 - 1].unk_00;
|
||||
}
|
||||
|
||||
static const s32 lbl_1_rodata_AC8[] = { 6, 6, 6, 6, 6, 1, 6, 6, 6, 11 };
|
||||
|
||||
s32 fn_1_3394(s32 arg0)
|
||||
{
|
||||
return lbl_1_rodata_AC8[arg0];
|
||||
}
|
||||
|
||||
static const s32 lbl_1_rodata_AF0[] = { 2, 14, 26, 38, 50, 0, 62, 74, 86, 0 };
|
||||
static const s32 lbl_1_rodata_B18[] = { 8, 20, 32, 44, 56, 0, 68, 80, 92, 0 };
|
||||
static const s32 lbl_1_rodata_B40[] = { 126, 127, 128, 129, 130, 0, 131, 132, 133, 0 };
|
||||
static const s32 lbl_1_rodata_B68[] = { 118, 119, 120, 121, 122, 0, 123, 124, 125, 0 };
|
||||
|
||||
void fn_1_33AC(omObjData *object)
|
||||
{
|
||||
f32 var_f29;
|
||||
f32 var_f30;
|
||||
f32 var_f31;
|
||||
UnkPresentStruct2 *var_r31;
|
||||
UnkPresentStruct2 *var_r30;
|
||||
UnkPresentStruct2 *var_r28;
|
||||
s32 var_r27;
|
||||
|
||||
var_r31 = object->data;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
var_f29 = 36.0f * var_r31->unk_234;
|
||||
fn_1_2708(object, var_f29, 1);
|
||||
fn_1_2774(object);
|
||||
Hu3DModelAttrSet(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_B18[var_r31->unk_234]]->model[0], 1);
|
||||
Hu3DModelAttrSet(var_r31->unk_10[lbl_1_rodata_B68[var_r31->unk_234]]->model[0], 1);
|
||||
Hu3DModelAttrSet(var_r31->unk_10[lbl_1_rodata_B40[var_r31->unk_234]]->model[0], 1);
|
||||
var_r31->unk_24C = 0.0f;
|
||||
var_r31->unk_254 = 1.0f / 360.0f;
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
WipeCreate(1, 0, 120);
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
var_f31 = sind(90.0f * var_r31->unk_24C);
|
||||
var_f31 *= var_f31;
|
||||
fn_1_920(lbl_1_bss_8, 0.0f, 820.0f - (600.0f * var_f31), -120.0f, 1);
|
||||
fn_1_9A4(lbl_1_bss_8, 0.0f, 680.0f - (680.0f * var_f31), -600.0f, 1);
|
||||
omSetTra(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_AF0[var_r31->unk_234]], 0.0f, 840.0f - (840.0f * var_f31), 0.0f);
|
||||
if ((var_r31->unk_24C = var_r31->unk_24C + var_r31->unk_254) < 1.0f) {
|
||||
return;
|
||||
}
|
||||
if (fn_1_393C(var_r31->unk_234, var_r31->unk_238)) {
|
||||
fn_1_334(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_B18[var_r31->unk_234]]->model[0], 1, 0.4f, 30);
|
||||
}
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
fn_1_4080(var_r31->unk_228);
|
||||
fn_1_4104(var_r31->unk_228, lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r31->unk_238].unk08, 0);
|
||||
fn_1_40B0(var_r31->unk_228, 0x320004);
|
||||
fn_1_419C(var_r31->unk_228);
|
||||
object->unk10 = 4;
|
||||
case 4:
|
||||
if (var_r31->unk_228->unk_20) {
|
||||
break;
|
||||
}
|
||||
object->unk10 = 5;
|
||||
case 5:
|
||||
fn_1_4098(var_r31->unk_228);
|
||||
object->unk10 = 6;
|
||||
case 6:
|
||||
if (!var_r31->unk_228->unk_20) {
|
||||
fn_1_180C(object, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static const s32 lbl_1_rodata_BA4[][2] = { { 7, 1 } };
|
||||
|
||||
s32 fn_1_393C(s32 arg0, s32 arg1)
|
||||
{
|
||||
s32 var_r31;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 1; var_r31++) {
|
||||
if (arg0 == lbl_1_rodata_BA4[var_r31][0] && arg1 == lbl_1_rodata_BA4[var_r31][1]) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
597
src/REL/staffDll/main.c
Normal file
597
src/REL/staffDll/main.c
Normal file
|
|
@ -0,0 +1,597 @@
|
|||
#include "game/animdata.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/object.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/process.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/window.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
#include "REL/staffDll.h"
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
static s16 imgGroup[26];
|
||||
static s16 staffLogoGroup[3];
|
||||
static s16 thpGroup;
|
||||
static s16 thpCoverGroup;
|
||||
static s32 staffSide;
|
||||
static s32 currImg;
|
||||
static omObjData *multiViewObj;
|
||||
|
||||
static UnkStaffDllStruct staffData[] = {
|
||||
{ 0x00340001, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350000, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 72.0f, 0, 0, 0 },
|
||||
{ 0x00340002, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350001, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340003, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350002, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340004, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350003, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350004, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350005, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350006, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00350007, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350008, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340005, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350009, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340006, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035000A, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340007, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0034001C, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035000B, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035000C, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x0034001D, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035000D, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035000E, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035000F, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00350010, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350011, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350012, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350013, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350014, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x0034001E, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350015, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350016, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350017, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340008, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350018, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340009, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350019, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x0034000A, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0034001C, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035001A, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035001B, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x0034001D, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035001C, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035001D, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035001E, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x0034001E, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035001F, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350020, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350021, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x0034000B, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0034001F, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350022, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350023, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350024, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350025, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350026, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00350027, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350028, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350029, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x0034001C, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035002A, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035002B, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035002C, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x0034001D, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035002D, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035002E, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035002F, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350030, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350031, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00350032, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350033, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350034, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350035, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350036, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x0034000C, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350037, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x0034000D, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350038, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350039, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x0034000E, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035003A, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x0034000F, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035003B, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340010, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035003C, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00340011, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035003B, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035003C, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00340012, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035003D, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00340013, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035003E, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035003F, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350040, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340014, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350041, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350042, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340015, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350043, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340022, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00340024, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350056, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350057, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350058, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350059, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00340025, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035005A, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035005B, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340023, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035005C, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035005D, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035005E, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035005F, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350060, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340016, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350044, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350045, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00350046, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350047, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350048, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350049, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x0035004A, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x0035004B, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035004C, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035004D, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340017, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035004E, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
{ 0x00340018, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x0035004F, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350050, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 72.0f, 0, 0, 0 },
|
||||
{ 0x00340019, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350038, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350051, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 72.0f, 0, 0, 0 },
|
||||
{ 0x0034001A, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350052, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350053, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 72.0f, 0, 0, 0 },
|
||||
{ 0x0034001B, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350054, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350055, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 74.0f, 0, 0, 0 },
|
||||
{ -2, 0, 0.0f, 0, 0, 0 },
|
||||
{ -1, 0, 0.0f, 0, 0, 0 },
|
||||
};
|
||||
static float staffLogoPosTbl[] = { 460.0f, 293.0f, 293.0f };
|
||||
|
||||
static void MainProc(void);
|
||||
static void CreateStaff(void);
|
||||
static void ShowPicture(void);
|
||||
|
||||
void ModuleProlog(void)
|
||||
{
|
||||
Process *var_r31;
|
||||
s32 var_lr;
|
||||
|
||||
var_r31 = omInitObjMan(0x32, 0x2000);
|
||||
omGameSysInit(var_r31);
|
||||
HuWinInit(1);
|
||||
Hu3DCameraCreate(1);
|
||||
Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 10000.0f, 1.2f);
|
||||
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
Hu3DCameraScissorSet(1, 0, 0, 640, 480);
|
||||
multiViewObj = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutViewMulti);
|
||||
multiViewObj->work[0] = 1;
|
||||
CRotM[0].x = -35.0f;
|
||||
CRotM[0].y = 0.0f;
|
||||
CRotM[0].z = 0.0f;
|
||||
CenterM[0].x = 0.0f;
|
||||
CenterM[0].y = 0.0f;
|
||||
CenterM[0].z = -250.0f;
|
||||
CZoomM[0] = 4820.0f;
|
||||
Hu3DBGColorSet(0, 0, 0);
|
||||
CreateStaff();
|
||||
HuPrcChildCreate(MainProc, 0x1000, 0x2000, 0, HuPrcCurrentGet());
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
}
|
||||
|
||||
static void ExitProc(void)
|
||||
{
|
||||
while (TRUE) {
|
||||
if (omSysExitReq == 1) {
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
HuAudFadeOut(1000);
|
||||
HuPrcSleep(60);
|
||||
MGSeqKillAll();
|
||||
omOvlReturnEx(1, 1);
|
||||
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
while (!omSysExitReq) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
HuAudFadeOut(1000);
|
||||
HuPrcSleep(60);
|
||||
MGSeqKillAll();
|
||||
omOvlReturnEx(1, 1);
|
||||
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateStaff(void)
|
||||
{
|
||||
void *var_r29;
|
||||
AnimData *var_r28;
|
||||
s16 var_r30;
|
||||
s32 var_r31;
|
||||
|
||||
staffSide = 0;
|
||||
currImg = 0;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 26; var_r31++) {
|
||||
var_r29 = HuDataSelHeapReadNum(var_r31 + 0x730000, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
var_r28 = HuSprAnimRead(var_r29);
|
||||
var_r30 = HuSprCreate(var_r28, 16386, 0);
|
||||
imgGroup[var_r31] = HuSprGrpCreate(1);
|
||||
HuSprGrpMemberSet(imgGroup[var_r31], 0, var_r30);
|
||||
if (staffSide != 0) {
|
||||
HuSprGrpPosSet(imgGroup[var_r31], 380.0f, 240.0f);
|
||||
} else {
|
||||
HuSprGrpPosSet(imgGroup[var_r31], 200.0f, 240.0f);
|
||||
}
|
||||
HuSprAttrSet(imgGroup[var_r31], 0, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = HuDataSelHeapReadNum(var_r31 + 0x73001A, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
var_r28 = HuSprAnimRead(var_r29);
|
||||
var_r30 = HuSprCreate(var_r28, 256, 0);
|
||||
staffLogoGroup[var_r31] = HuSprGrpCreate(1);
|
||||
HuSprGrpMemberSet(staffLogoGroup[var_r31], 0, var_r30);
|
||||
HuSprAttrSet(staffLogoGroup[var_r31], 0, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
thpGroup = HuSprGrpCreate(1);
|
||||
var_r30 = HuTHPSprCreate("movie/stmov_a00.thp", 0, 16386);
|
||||
HuSprGrpMemberSet(thpGroup, 0, var_r30);
|
||||
HuSprGrpScaleSet(thpGroup, 0.65f, 0.65f);
|
||||
HuSprGrpPosSet(thpGroup, 280.0f, 200.0f);
|
||||
HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuTHPStop();
|
||||
var_r29 = HuDataSelHeapReadNum(0x73001D, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
var_r28 = HuSprAnimRead(var_r29);
|
||||
var_r30 = HuSprCreate(var_r28, 16385, 0);
|
||||
thpCoverGroup = HuSprGrpCreate(1);
|
||||
HuSprGrpMemberSet(thpCoverGroup, 0, var_r30);
|
||||
HuSprGrpScaleSet(thpCoverGroup, 40.0f, 40.0f);
|
||||
HuSprGrpPosSet(thpCoverGroup, 280.0f, 200.0f);
|
||||
HuSprAttrSet(thpCoverGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuPrcChildCreate(ShowPicture, 4096, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(ExitProc, 4096, 4096, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
static void MoveStaff(void)
|
||||
{
|
||||
float sp8[2];
|
||||
Process *temp_ret;
|
||||
float var_f30;
|
||||
float var_f31;
|
||||
s16 var_r30;
|
||||
u32 var_r29;
|
||||
UnkStaffDllStruct *var_r31;
|
||||
|
||||
var_r31 = HuPrcCurrentGet()->user_data;
|
||||
var_r31->unk_14 = 0;
|
||||
switch (var_r31->unk_00) {
|
||||
case -2:
|
||||
HuSprAttrReset(staffLogoGroup[var_r31->unk_10], 0, HUSPR_ATTR_DISPOFF);
|
||||
var_f31 = staffLogoPosTbl[var_r31->unk_10];
|
||||
var_f30 = 576.0f;
|
||||
break;
|
||||
default:
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r31->unk_00);
|
||||
var_r29 = 0;
|
||||
switch (var_r31->unk_04) {
|
||||
case 3:
|
||||
var_f31 = 320.0f - (0.75f * sp8[0]) / 2;
|
||||
break;
|
||||
case 0:
|
||||
var_f31 = 10.0f;
|
||||
if (!staffSide) {
|
||||
var_f31 += 240.0f;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
var_f31 = 30.0f;
|
||||
if (!staffSide) {
|
||||
var_f31 += 240.0f;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
var_f31 = 550.0f - (0.75f * sp8[0]);
|
||||
if (staffSide) {
|
||||
var_f31 -= 240.0f;
|
||||
}
|
||||
var_r29 = 0x1000;
|
||||
break;
|
||||
}
|
||||
var_f30 = 476.0f;
|
||||
var_r30 = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 1);
|
||||
HuWinAttrSet(var_r30, var_r29);
|
||||
HuWinPriSet(var_r30, 256);
|
||||
HuWinBGTPLvlSet(var_r30, 0.0f);
|
||||
HuWinMesSpeedSet(var_r30, 0);
|
||||
HuWinMesSet(var_r30, var_r31->unk_00);
|
||||
HuWinScaleSet(var_r30, 0.75f, 0.75f);
|
||||
switch (var_r31->unk_04) {
|
||||
case 0:
|
||||
case 1:
|
||||
HuWinMesPalSet(var_r30, 7, 96, 240, 255);
|
||||
break;
|
||||
default:
|
||||
HuWinMesPalSet(var_r30, 7, 255, 255, 255);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
while (TRUE) {
|
||||
var_f30 -= 0.4f;
|
||||
if (var_r31->unk_00 == -2) {
|
||||
if (var_f30 < -114.0f) {
|
||||
break;
|
||||
}
|
||||
} else if (var_f30 < -24.0f) {
|
||||
break;
|
||||
}
|
||||
if (var_r31->unk_00 == -2) {
|
||||
HuSprGrpPosSet(staffLogoGroup[var_r31->unk_10], var_f31, var_f30);
|
||||
} else {
|
||||
HuWinPosSet(var_r30, var_f31, var_f30);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
var_r31->unk_14 = 1;
|
||||
if (var_r31->unk_00 == -2) {
|
||||
HuSprAttrSet(staffLogoGroup[var_r31->unk_10], 0, HUSPR_ATTR_DISPOFF);
|
||||
} else {
|
||||
HuWinKill(var_r30);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
HuPrcKill(HuPrcCurrentGet());
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void HidePicture(void)
|
||||
{
|
||||
s32 prevImg;
|
||||
|
||||
prevImg = currImg;
|
||||
currImg++;
|
||||
if (staffSide != 0) {
|
||||
HuSprGrpPosSet(imgGroup[currImg], 380.0f, 240.0f);
|
||||
} else {
|
||||
HuSprGrpPosSet(imgGroup[currImg], 200.0f, 240.0f);
|
||||
}
|
||||
HuSprAttrSet(imgGroup[prevImg], 0, HUSPR_ATTR_DISPOFF);
|
||||
HuPrcSleep(20);
|
||||
HuSprAttrReset(imgGroup[currImg], 0, HUSPR_ATTR_DISPOFF);
|
||||
HuPrcKill(HuPrcCurrentGet());
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void ShowPicture(void)
|
||||
{
|
||||
float var_f31;
|
||||
s32 var_r31;
|
||||
|
||||
HuPrcSleep(360);
|
||||
HuSprAttrReset(imgGroup[currImg], 0, HUSPR_ATTR_DISPOFF);
|
||||
|
||||
for (var_r31 = 0, var_f31 = 0.0f; var_r31 < 30; var_r31++, var_f31 += 1.0f / 30.0f) {
|
||||
HuSprTPLvlSet(imgGroup[currImg], 0, var_f31);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprTPLvlSet(imgGroup[currImg], 0, 1.0f);
|
||||
|
||||
while (TRUE) {
|
||||
if (currImg >= 24) {
|
||||
HuPrcSleep(430);
|
||||
} else {
|
||||
HuPrcSleep(550);
|
||||
}
|
||||
if (currImg >= 25) {
|
||||
break;
|
||||
}
|
||||
HuPrcChildCreate(HidePicture, 0x1000, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
for (var_r31 = 0, var_f31 = 1.0f; var_r31 < 30; var_r31++, var_f31 -= 1.0f / 30.0f) {
|
||||
HuSprTPLvlSet(imgGroup[25], 0, var_f31);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrSet(imgGroup[25], 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(imgGroup[25], 0, HUSPR_ATTR_DISPOFF);
|
||||
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void MainProc(void)
|
||||
{
|
||||
s32 var_r31;
|
||||
UnkStaffDllStruct *var_r30;
|
||||
s32 var_r29;
|
||||
Process *var_r28;
|
||||
s32 var_r27;
|
||||
float var_f29;
|
||||
float var_f30;
|
||||
float var_f31;
|
||||
|
||||
HuPrcSleep(60);
|
||||
var_r27 = HuAudSStreamPlay(22);
|
||||
|
||||
for (var_r31 = 0;; var_r31++) {
|
||||
var_r30 = &staffData[var_r31];
|
||||
if (var_r30->unk_00 == -1) {
|
||||
break;
|
||||
}
|
||||
|
||||
switch (var_r30->unk_00) {
|
||||
case -3:
|
||||
HuPrcSleep(var_r30->unk_08 / 0.4f);
|
||||
break;
|
||||
default:
|
||||
var_r28 = HuPrcChildCreate(MoveStaff, 0x1000, 0x2000, 0, HuPrcCurrentGet());
|
||||
var_r28->user_data = var_r30;
|
||||
if (var_r30->unk_0C == 1) {
|
||||
staffSide++;
|
||||
staffSide &= 1;
|
||||
HuPrcChildCreate(HidePicture, 0x1000, 0x2000, 0, HuPrcCurrentGet());
|
||||
} else {
|
||||
HuPrcSleep(60);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
var_r30 = &staffData[var_r31 - 1];
|
||||
|
||||
while (var_r30->unk_14 == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(60);
|
||||
HuSprAttrReset(staffLogoGroup[1], 0, HUSPR_ATTR_DISPOFF);
|
||||
var_f29 = staffLogoPosTbl[1];
|
||||
var_f30 = 526.0f;
|
||||
var_r29 = 0;
|
||||
|
||||
while (TRUE) {
|
||||
var_f30 -= 0.4f;
|
||||
if (var_f30 < 400.0f) {
|
||||
break;
|
||||
}
|
||||
if ((var_r29 == 0) && (var_f30 < 506.0f)) {
|
||||
var_r29 = 1;
|
||||
HuAudSStreamFadeOut(var_r27, 6000);
|
||||
}
|
||||
HuSprGrpPosSet(staffLogoGroup[1], var_f29, var_f30);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprGrpPosSet(staffLogoGroup[1], var_f29, 400.0f);
|
||||
HuPrcSleep(240);
|
||||
HuSprAttrReset(thpGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(thpCoverGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuTHPRestart();
|
||||
|
||||
for (var_r31 = 0, var_f31 = 1.0f; var_r31 < 90; var_r31++, var_f31 -= 0.1f / 9.0f) {
|
||||
HuSprTPLvlSet(thpCoverGroup, 0, var_f31);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrSet(thpCoverGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
|
||||
while (HuTHPFrameGet() < 450) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrReset(thpCoverGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
|
||||
for (var_r31 = 0, var_f31 = 0.0f; var_r31 < 120; var_r31++, var_f31 += 0.05f / 6.0f) {
|
||||
HuSprTPLvlSet(thpCoverGroup, 0, var_f31);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprTPLvlSet(thpCoverGroup, 0, 1.0f);
|
||||
HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuTHPClose();
|
||||
|
||||
for (var_r31 = 0, var_f31 = 1.0f; var_r31 < 30; var_r31++, var_f31 -= 1.0f / 30.0f) {
|
||||
HuSprTPLvlSet(staffLogoGroup[1], 0, var_f31);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrSet(staffLogoGroup[1], 0, HUSPR_ATTR_DISPOFF);
|
||||
HuPrcSleep(120);
|
||||
HuSprAttrReset(staffLogoGroup[2], 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprGrpPosSet(staffLogoGroup[2], 280.0f, 240.0f);
|
||||
|
||||
for (var_r31 = 0, var_f31 = 0.0f; var_r31 < 30; var_r31++, var_f31 += 1.0f / 30.0f) {
|
||||
HuSprTPLvlSet(staffLogoGroup[2], 0, var_f31);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
HuPrcSleep(600);
|
||||
|
||||
while (TRUE) {
|
||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
if (HuPadBtn[var_r31] & PAD_BUTTON_START) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r31 < 4) {
|
||||
break;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
HuAudFadeOut(1000);
|
||||
HuPrcSleep(60);
|
||||
MGSeqKillAll();
|
||||
omOvlReturnEx(1, 1);
|
||||
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
|
@ -1114,7 +1114,7 @@ static void fn_1_3624(void) {
|
|||
}
|
||||
temp_r19 = HuAudFXPlay(0x40C);
|
||||
fn_1_4774();
|
||||
WipeCreate(1, 0, -1);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
lbl_1_bss_6B0 = 1;
|
||||
HuAudFXPlay(0x413);
|
||||
while (TRUE) {
|
||||
|
|
@ -1163,7 +1163,7 @@ static void fn_1_3624(void) {
|
|||
lbl_1_bss_660.x = lbl_1_bss_660.z = 0.0f;
|
||||
BoardAudSeqFadeOut(1, 1000);
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, -1);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
HuAudFXPlay(0x401);
|
||||
temp_f28 = (-lbl_1_bss_63C - lbl_1_bss_660.y) / 30.0f;
|
||||
for (i = 0; i < 30; i++) {
|
||||
|
|
@ -1213,7 +1213,7 @@ static void fn_1_45F4(void) {
|
|||
BoardAudSeqPause(0, 0, 1000);
|
||||
BoardCameraMoveSet(1);
|
||||
BoardCameraMotionWait();
|
||||
WipeCreate(1, 0, 21);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1316,7 +1316,7 @@ static s32 fn_1_48B4(void) {
|
|||
HuAudFXPlay(0x402);
|
||||
BoardStatusShowSetAll(0);
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 21);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1930,7 +1930,7 @@ static void fn_1_77EC(s32 arg0, s32 arg1) {
|
|||
static void fn_1_7894(void) {
|
||||
lbl_1_bss_6B1 = 1;
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 21);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1987,7 +1987,7 @@ static void fn_1_7A64(void) {
|
|||
fn_1_852C();
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6AE, lbl_1_bss_670);
|
||||
BoardCameraMotionWait();
|
||||
WipeCreate(1, 0, -1);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
lbl_1_bss_6B0 = 1;
|
||||
temp_r19 = HuAudFXPlay(0x412);
|
||||
while (TRUE) {
|
||||
|
|
@ -2005,13 +2005,13 @@ static void fn_1_7A64(void) {
|
|||
if (lbl_1_bss_0->unk00_field0 == 0) {
|
||||
if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 20.0f && var_r28 == 0) {
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, -1);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
var_r28 = 1;
|
||||
}
|
||||
} else {
|
||||
if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644 - 20.0f && var_r28 == 0) {
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, -1);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
var_r28 = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -301,7 +301,7 @@ static void fn_1_68D8(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelAlphaSet(lbl_1_bss_274, 0);
|
||||
WipeCreate(2, 0, 60);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
WipeColorSet(0, 0, 0);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -384,7 +384,7 @@ static void fn_1_6CF8(void) {
|
|||
BoardCameraXRotZoomSet(1600.0f, -5.0f);
|
||||
lbl_1_bss_104 = HuPrcChildCreate(fn_1_75D8, 0x2003, 0x1000, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_104, fn_1_757C);
|
||||
WipeCreate(1, 0, 60);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -417,7 +417,7 @@ static void fn_1_7300(void) {
|
|||
s32 i;
|
||||
s32 j;
|
||||
|
||||
WipeCreate(2, 0, 30);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -453,7 +453,7 @@ static void fn_1_7300(void) {
|
|||
sp8.x = sp8.y = sp8.z = 3.0f;
|
||||
BoardModelScaleSetV(lbl_1_bss_274, &sp8);
|
||||
BoardModelPosSetV(lbl_1_bss_274, &lbl_1_bss_108);
|
||||
WipeCreate(1, 0, 30);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ static void fn_1_95AC(s32 arg0) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
WipeColorSet(0xFF, 0xFF, 0xFF);
|
||||
WipeCreate(2, 1, 1);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1);
|
||||
HuPrcSleep(2);
|
||||
BoardCameraMoveSet(0);
|
||||
BoardModelVisibilitySet(BoardPlayerModelGet(arg0), 0);
|
||||
|
|
@ -334,7 +334,7 @@ static void fn_1_95AC(s32 arg0) {
|
|||
sp38.z = sp2C.z;
|
||||
BoardPlayerPosSetV(arg0, &sp38);
|
||||
BoardModelVisibilitySet(BoardPlayerModelGet(arg0), 1);
|
||||
WipeCreate(1, 1, 30);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, 30);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -553,7 +553,7 @@ static void fn_1_A408(s32 arg0) {
|
|||
_SetFlag(FLAG_ID_MAKE(1, 28));
|
||||
_SetFlag(FLAG_ID_MAKE(1, 14));
|
||||
WipeColorSet(0xFF, 0xFF, 0xFF);
|
||||
WipeCreate(2, 0, -1);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -669,7 +669,7 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) {
|
|||
BoardCameraMotionStartEx(lbl_1_data_49A, &spC, &sp18, 2000.0f, -1.0f, 2);
|
||||
BoardCameraMotionWait();
|
||||
BoardCameraTargetModelSet(-1);
|
||||
WipeCreate(1, 0, 21);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1048,7 +1048,7 @@ static void fn_1_C40C(void) {
|
|||
sp20.y += 250.0f;
|
||||
BoardModelPosSetV(lbl_1_data_4A0, &sp20);
|
||||
BoardModelScaleSet(lbl_1_data_4A0, 10.0f, 10.0f, 10.0f);
|
||||
WipeCreate(1, 0, 21);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1083,7 +1083,7 @@ static void fn_1_C40C(void) {
|
|||
BoardWinKill();
|
||||
BoardAudSeqFadeOut(1, 1000);
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 21);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
|
|||
154
src/REL/w20Dll/main.c
Normal file
154
src/REL/w20Dll/main.c
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
#include "game/board/model.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "math.h"
|
||||
|
||||
#include "REL/w20Dll.h"
|
||||
|
||||
s16 lbl_1_bss_C;
|
||||
s32 lbl_1_bss_8;
|
||||
s32 lbl_1_bss_4;
|
||||
UnkW20BoardData *lbl_1_bss_0;
|
||||
|
||||
s16 lbl_1_data_0 = 0xFFFF;
|
||||
s16 lbl_1_data_2 = 0xFFFF;
|
||||
s16 lbl_1_data_4 = 0xFFFF;
|
||||
s16 lbl_1_data_6 = 0xFFFF;
|
||||
s16 lbl_1_data_8 = 0xFFFF;
|
||||
s16 lbl_1_data_A = 0xFFFF;
|
||||
s32 lbl_1_data_C[] = {
|
||||
0x005F0000,
|
||||
0x001A0000,
|
||||
0x006D0000,
|
||||
0x008A0000,
|
||||
0x00850000,
|
||||
0x00110000,
|
||||
0x000D0000,
|
||||
0x00810000,
|
||||
};
|
||||
|
||||
s32 unkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 42), -1 };
|
||||
|
||||
void fn_1_44C(void);
|
||||
void fn_1_490(void);
|
||||
void fn_1_494(void);
|
||||
s32 fn_1_498(void);
|
||||
void fn_1_4A0(void);
|
||||
void fn_1_4A4(void);
|
||||
void fn_1_4A8(void);
|
||||
s32 fn_1_4AC(s16 arg0, float arg8, float arg9);
|
||||
|
||||
void BoardCreate(void)
|
||||
{
|
||||
s32 sp8;
|
||||
s32 var_r31;
|
||||
|
||||
var_r31 = GWSystem.board;
|
||||
sp8 = var_r31;
|
||||
lbl_1_bss_0 = (UnkW20BoardData *)GWSystem.board_data;
|
||||
lbl_1_bss_0->unk_00 = 0;
|
||||
lbl_1_bss_0->unk_04 = 0;
|
||||
lbl_1_bss_0->unk_06 = 0;
|
||||
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W20, 0));
|
||||
lbl_1_data_0 = BoardModelCreate(0x7C0001, NULL, 0);
|
||||
fn_8006DDE8(lbl_1_data_0, -1.0f);
|
||||
BoardModelPosSet(lbl_1_data_0, 0.0f, 0.0f, 0.0f);
|
||||
BoardModelMotionStart(lbl_1_data_0, 0, 0x40000001);
|
||||
BoardModelMotionSpeedSet(lbl_1_data_0, 1.0f);
|
||||
lbl_1_data_2 = BoardModelCreate(0x7C0002, NULL, 0);
|
||||
fn_8006DDE8(lbl_1_data_2, -1.0f);
|
||||
BoardModelPosSet(lbl_1_data_2, 0.0f, 0.0f, 0.0f);
|
||||
BoardModelMotionStart(lbl_1_data_2, 0, 0x40000001);
|
||||
lbl_1_data_6 = BoardModelCreate(0x20029, unkMotTbl, 0);
|
||||
BoardModelMotionStart(lbl_1_data_6, 1, 0x40000001);
|
||||
lbl_1_data_8 = BoardModelCreate(0x20029, unkMotTbl, 0);
|
||||
BoardModelMotionStart(lbl_1_data_8, 1, 0x40000001);
|
||||
BoardLightHookSet(fn_1_44C, fn_1_490);
|
||||
BoardSpaceWalkEventFuncSet(fn_1_498);
|
||||
BoardSpaceWalkMiniEventFuncSet(fn_1_4A8);
|
||||
BoardSpaceLandEventFuncSet(fn_1_494);
|
||||
BoardShopHostSet(lbl_1_data_6);
|
||||
BoardLotteryHostSet(lbl_1_data_8);
|
||||
BoardStarHostSet(lbl_1_data_6);
|
||||
}
|
||||
|
||||
void BoardDestroy(void)
|
||||
{
|
||||
if (lbl_1_data_6 != -1) {
|
||||
BoardModelKill(lbl_1_data_6);
|
||||
lbl_1_data_6 = -1;
|
||||
}
|
||||
if (lbl_1_data_0 != -1) {
|
||||
BoardModelKill(lbl_1_data_0);
|
||||
lbl_1_data_0 = -1;
|
||||
}
|
||||
if (lbl_1_data_2 != -1) {
|
||||
BoardModelKill(lbl_1_data_2);
|
||||
lbl_1_data_2 = -1;
|
||||
}
|
||||
BoardSpaceDestroy();
|
||||
}
|
||||
|
||||
void fn_1_44C(void)
|
||||
{
|
||||
s16 var_r31;
|
||||
|
||||
var_r31 = BoardModelIDGet(lbl_1_data_0);
|
||||
Hu3DModelLightInfoSet(var_r31, 1);
|
||||
}
|
||||
|
||||
void fn_1_490(void) { }
|
||||
|
||||
void fn_1_494(void) { }
|
||||
|
||||
s32 fn_1_498(void) { return 0; }
|
||||
|
||||
void fn_1_4A0(void) { }
|
||||
|
||||
void fn_1_4A4(void) { }
|
||||
|
||||
void fn_1_4A8(void) { }
|
||||
|
||||
s32 fn_1_4AC(s16 arg0, float arg8, float arg9)
|
||||
{
|
||||
float var_f29;
|
||||
float var_f31;
|
||||
s32 var_r31;
|
||||
|
||||
var_r31 = 0;
|
||||
var_f31 = BoardModelRotYGet(arg0);
|
||||
arg8 = fmod(arg8, 360.0f);
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if (arg8 < 0.0f) {
|
||||
arg8 += 360.0f;
|
||||
}
|
||||
if (var_f31 != arg8) {
|
||||
var_f29 = arg8 - var_f31;
|
||||
if (var_f29 < 0.0f) {
|
||||
var_f29 += 360.0f;
|
||||
}
|
||||
if (var_f29 < 180.0f) {
|
||||
if (var_f29 > arg9) {
|
||||
var_f31 += arg9;
|
||||
} else {
|
||||
var_f31 = arg8;
|
||||
}
|
||||
} else if ((360.0f - var_f29) > arg9) {
|
||||
var_f31 -= arg9;
|
||||
} else {
|
||||
var_f31 = arg8;
|
||||
}
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if (var_f31 >= 360.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
BoardModelRotYSet(arg0, var_f31);
|
||||
} else {
|
||||
var_r31 = 1;
|
||||
}
|
||||
return var_r31;
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
#include "game/board/space.h"
|
||||
#include "game/board/window.h"
|
||||
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
|
|
@ -635,12 +635,12 @@ static void BallMain(omObjData *arg0) {
|
|||
temp_f30 = 240.0f;
|
||||
BoardCameraRotGet(&sp20);
|
||||
BoardCameraTargetGet(&sp2C);
|
||||
sp8.x = sp2C.x + sin(sp20.y * M_PI / 180.0) * cos(sp20.x * M_PI / 180.0) * temp_f30;
|
||||
sp8.y = sp2C.y + -sin(sp20.x * M_PI / 180.0) * temp_f30;
|
||||
sp8.z = sp2C.z + cos(sp20.y * M_PI / 180.0) * cos(sp20.x * M_PI / 180.0) * temp_f30;
|
||||
sp14.x = sin(sp20.y * M_PI / 180.0) * sin(sp20.x * M_PI / 180.0);
|
||||
sp14.y = cos(sp20.x * M_PI / 180.0);
|
||||
sp14.z = cos(sp20.y * M_PI / 180.0) * sin(sp20.x * M_PI / 180.0);
|
||||
sp8.x = sp2C.x + sind(sp20.y) * cosd(sp20.x) * temp_f30;
|
||||
sp8.y = sp2C.y + -sind(sp20.x) * temp_f30;
|
||||
sp8.z = sp2C.z + cosd(sp20.y) * cosd(sp20.x) * temp_f30;
|
||||
sp14.x = sind(sp20.y) * sind(sp20.x);
|
||||
sp14.y = cosd(sp20.x);
|
||||
sp14.z = cosd(sp20.y) * sind(sp20.x);
|
||||
if (temp_r30->unk01 != 0) {
|
||||
temp_r30->unk02 += temp_r30->unk01;
|
||||
if (temp_r30->unk02 > 255) {
|
||||
|
|
@ -711,8 +711,8 @@ static void BallRenderHook(void) {
|
|||
sp20.z = 0.0f;
|
||||
C_MTXLookAt(sp38, &sp2C, &sp20, &sp14);
|
||||
GXLoadPosMtxImm(sp38, GX_PNMTX0);
|
||||
sp2C.x = sin(5 * M_PI / 72) * 20000.0 * 1.2f;
|
||||
sp2C.y = sin(5 * M_PI / 72) * 20000.0 * 0.8333333f;
|
||||
sp2C.x = sind(12.5) * 20000.0 * 1.2f;
|
||||
sp2C.y = sind(12.5) * 20000.0 * 0.8333333f;
|
||||
sp2C.z = -9000.0f;
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GXPosition3f32(-sp2C.x, -sp2C.y, sp2C.z);
|
||||
|
|
@ -754,12 +754,12 @@ static void UpdateBallCamera(omObjData *arg0) {
|
|||
sp20.x = arg0->trans.x;
|
||||
sp20.y = arg0->trans.y + arg0->rot.y;
|
||||
sp20.z = arg0->trans.z;
|
||||
sp14.x = sp20.x + sin(0.0) * cos(arg0->rot.x * M_PI / 180.0) * arg0->rot.z;
|
||||
sp14.y = sp20.y + -sin(arg0->rot.x * M_PI / 180.0) * arg0->rot.z;
|
||||
sp14.z = sp20.z + cos(0.0) * cos(arg0->rot.x * M_PI / 180.0) * arg0->rot.z;
|
||||
sp8.x = sin(0.0) * sin(arg0->rot.x * M_PI / 180.0);
|
||||
sp8.y = cos(arg0->rot.x * M_PI / 180.0);
|
||||
sp8.z = cos(0.0) * sin(arg0->rot.x * M_PI / 180.0);
|
||||
sp14.x = sp20.x + sin(0.0) * cosd(arg0->rot.x) * arg0->rot.z;
|
||||
sp14.y = sp20.y + -sind(arg0->rot.x) * arg0->rot.z;
|
||||
sp14.z = sp20.z + cos(0.0) * cosd(arg0->rot.x) * arg0->rot.z;
|
||||
sp8.x = sin(0.0) * sind(arg0->rot.x);
|
||||
sp8.y = cosd(arg0->rot.x);
|
||||
sp8.z = cos(0.0) * sind(arg0->rot.x);
|
||||
Hu3DCameraPosSetV(var_r30->unk02, &sp14, &sp8, &sp20);
|
||||
}
|
||||
|
||||
|
|
@ -909,9 +909,9 @@ static void BallPlayerZoomOut(omObjData *arg0, BallPlayerWork *arg1) {
|
|||
sp14.x = arg0->trans.x;
|
||||
sp14.y = arg0->trans.y;
|
||||
sp14.z = arg0->trans.z;
|
||||
sp8.x = sp14.x + 120.0 * sin(-M_PI / 2);
|
||||
sp8.x = sp14.x + 120.0 * sind(-90);
|
||||
sp8.y = sp14.y;
|
||||
sp8.z = sp14.z + 120.0 * cos(-M_PI / 2);
|
||||
sp8.z = sp14.z + 120.0 * cosd(-90);
|
||||
BoardPlayerPosLerpStart(stealTarget, &sp14, &sp8, 20);
|
||||
var_r29 = GWPlayer[stealTarget].character;
|
||||
HuAudFXPlay(booSfxTbl[0][var_r29]);
|
||||
|
|
@ -1082,9 +1082,9 @@ static void BallBooCreate(void) {
|
|||
BoardModelCameraSet(temp_r31->unk04, 1);
|
||||
temp_f31 = BoardPlayerRotYGet(stealTarget);
|
||||
BoardPlayerPosGet(stealTarget, &sp14);
|
||||
ballBooObj->trans.x = sp14.x + 240.0 * sin(-temp_f31 * M_PI / 180.0);
|
||||
ballBooObj->trans.x = sp14.x + 240.0 * sind(-temp_f31);
|
||||
ballBooObj->trans.y = sp14.y + 160.0f;
|
||||
ballBooObj->trans.z = sp14.z + 240.0 * cos(-temp_f31 * M_PI / 180.0);
|
||||
ballBooObj->trans.z = sp14.z + 240.0 * cosd(-temp_f31);
|
||||
BoardModelPosSet(temp_r31->unk04, ballBooObj->trans.x, ballBooObj->trans.y, ballBooObj->trans.z);
|
||||
if (stealType == 2) {
|
||||
var_f30 = 126.0f;
|
||||
|
|
@ -1093,9 +1093,9 @@ static void BallBooCreate(void) {
|
|||
var_f30 = 90.0f;
|
||||
var_f29 = 100.0f;
|
||||
}
|
||||
sp8.x = sp14.x + var_f30 * sin(-temp_f31 * M_PI / 180.0);
|
||||
sp8.x = sp14.x + var_f30 * sind(-temp_f31);
|
||||
sp8.y = sp14.y + var_f29;
|
||||
sp8.z = sp14.z + var_f30 * cos(-temp_f31 * M_PI / 180.0);
|
||||
sp8.z = sp14.z + var_f30 * cosd(-temp_f31);
|
||||
ballBooObj->rot.x = (sp8.x - ballBooObj->trans.x) / 60.0f;
|
||||
ballBooObj->rot.y = (sp8.y - ballBooObj->trans.y) / 60.0f;
|
||||
ballBooObj->rot.z = (sp8.z - ballBooObj->trans.z) / 60.0f;
|
||||
|
|
@ -1104,7 +1104,7 @@ static void BallBooCreate(void) {
|
|||
ballBooObj->scale.z = 1.0f;
|
||||
sp8.x = sp14.x - ballBooObj->trans.x;
|
||||
sp8.z = sp14.z - ballBooObj->trans.z;
|
||||
ballBooObj->scale.y = 180.0 * (atan2(sp8.x, sp8.z) / M_PI);
|
||||
ballBooObj->scale.y = atan2d(sp8.x, sp8.z);
|
||||
BoardModelRotYSet(temp_r31->unk04, ballBooObj->scale.y);
|
||||
BoardModelMotionStart(temp_r31->unk04, 1, 0x40000001);
|
||||
}
|
||||
|
|
@ -1246,7 +1246,7 @@ static void BallBooAttack(omObjData *arg0, BallBooWork *arg1) {
|
|||
}
|
||||
}
|
||||
OSu8tof32(&arg1->unk02, &var_f29);
|
||||
arg0->scale.z = 1.0 + sin(var_f29 * M_PI / 180.0);
|
||||
arg0->scale.z = 1.0 + sind(var_f29);
|
||||
}
|
||||
|
||||
static void BallBooFlash(omObjData *arg0, BallBooWork *arg1) {
|
||||
|
|
@ -1258,9 +1258,9 @@ static void BallBooFlash(omObjData *arg0, BallBooWork *arg1) {
|
|||
BoardModelMotionShiftSet(arg1->unk04, 3, 0.0f, 10.0f, 0x40000001);
|
||||
temp_f31 = BoardPlayerRotYGet(stealTarget);
|
||||
BoardPlayerPosGet(stealTarget, &sp8);
|
||||
sp8.x += 500.0 * sin(-temp_f31 * M_PI / 180.0);
|
||||
sp8.x += 500.0 * sind(-temp_f31);
|
||||
sp8.y = sp8.y + 160.0f;
|
||||
sp8.z += 500.0 * cos(-temp_f31 * M_PI / 180.0);
|
||||
sp8.z += 500.0 * cosd(-temp_f31);
|
||||
arg0->rot.x = (sp8.x - arg0->trans.x) / 72.0f;
|
||||
arg0->rot.y = (sp8.y - arg0->trans.y) / 72.0f;
|
||||
arg0->rot.z = (sp8.z - arg0->trans.z) / 72.0f;
|
||||
|
|
@ -1365,8 +1365,8 @@ void TakeBallStar(void) {
|
|||
ballTakeCoinObj->trans.y = sp8.y + 150.0f;
|
||||
ballTakeCoinObj->trans.z = sp8.z;
|
||||
temp_r31->unk04 = sp8.y;
|
||||
ballTakeCoinObj->rot.x = 3.0 * sin(4 * M_PI / 9);
|
||||
ballTakeCoinObj->rot.z = 3.0 * cos(4 * M_PI / 9);
|
||||
ballTakeCoinObj->rot.x = 3.0 * sind(80);
|
||||
ballTakeCoinObj->rot.z = 3.0 * cosd(80);
|
||||
ballTakeCoinObj->rot.y = 0.0f;
|
||||
BoardModelPosSet(temp_r31->unk02, ballTakeCoinObj->trans.x, ballTakeCoinObj->trans.y, ballTakeCoinObj->trans.z);
|
||||
BoardModelVisibilitySet(temp_r31->unk02, 1);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@
|
|||
#include "game/board/player.h"
|
||||
#include "game/board/window.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
|
||||
// bss
|
||||
static s16 houseMdl[6];
|
||||
|
||||
|
|
@ -134,7 +136,7 @@ static void ExecBooHouse(void) {
|
|||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
f32 temp_f31;
|
||||
float temp_f31;
|
||||
s16 temp_r29;
|
||||
s32 var_r31;
|
||||
s16 var_r30;
|
||||
|
|
@ -187,7 +189,7 @@ static void ExecBooHouse(void) {
|
|||
BoardSpacePosGet(0, temp_r29, &sp2C);
|
||||
PSVECSubtract(&sp2C, &sp38, &sp20);
|
||||
PSVECNormalize(&sp20, &sp20);
|
||||
temp_f31 = (180.0 * (atan2(-sp20.x, -sp20.z) / M_PI));
|
||||
temp_f31 = atan2d(-sp20.x, -sp20.z);
|
||||
sp14.x = -15.0f;
|
||||
sp14.y = temp_f31;
|
||||
sp14.z = 0.0f;
|
||||
|
|
@ -577,7 +579,7 @@ void ApplySteal(void) {
|
|||
s32 temp_r30;
|
||||
s32 temp_r6;
|
||||
s32 var_r31;
|
||||
f32 var_f31;
|
||||
float var_f31;
|
||||
|
||||
BoardModelHookSet(houseMdl[0], "yoko8", booMdl);
|
||||
BoardModelVisibilitySet(booMdl, 1);
|
||||
|
|
@ -749,7 +751,7 @@ void BoardBooHouseTutorialExec(void) {
|
|||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
f32 temp_f31;
|
||||
float temp_f31;
|
||||
s16 temp_r28;
|
||||
s16 temp_r29;
|
||||
s32 temp_r27;
|
||||
|
|
@ -765,7 +767,7 @@ void BoardBooHouseTutorialExec(void) {
|
|||
BoardSpacePosGet(0, temp_r28, &sp2C);
|
||||
PSVECSubtract(&sp2C, &sp38, &sp20);
|
||||
PSVECNormalize(&sp20, &sp20);
|
||||
temp_f31 = (180.0 * (atan2(-sp20.x, -sp20.z) / M_PI));
|
||||
temp_f31 = atan2d(-sp20.x, -sp20.z);
|
||||
sp14.x = -15.0f;
|
||||
sp14.y = temp_f31;
|
||||
sp14.z = 0.0f;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
#include "game/board/tutorial.h"
|
||||
#include "game/board/ui.h"
|
||||
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
|
|
@ -374,7 +374,7 @@ static void GrowCharWheel(CharWheelWork *arg0) {
|
|||
if (arg0->unk02 < 90) {
|
||||
arg0->unk02 += 3;
|
||||
} else {
|
||||
if (_CheckFlag(0x1000B)) {
|
||||
if (_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
BoardTutorialHookExec(0x14, 0);
|
||||
}
|
||||
arg0->unk02 = 90;
|
||||
|
|
@ -382,7 +382,7 @@ static void GrowCharWheel(CharWheelWork *arg0) {
|
|||
wheelFXStat = HuAudFXPlay(0x30A);
|
||||
}
|
||||
OSs8tof32(&arg0->unk02, &temp_f30);
|
||||
HuSprGrpScaleSet(wheelSprGrp, sin(temp_f30 * M_PI / 180.0), sin(temp_f30 * M_PI / 180.0));
|
||||
HuSprGrpScaleSet(wheelSprGrp, sind(temp_f30), sind(temp_f30));
|
||||
}
|
||||
|
||||
static void ShrinkCharWheel(CharWheelWork *arg0) {
|
||||
|
|
@ -397,7 +397,7 @@ static void ShrinkCharWheel(CharWheelWork *arg0) {
|
|||
targetF = 0;
|
||||
}
|
||||
OSs8tof32(&arg0->unk02, &temp_f30);
|
||||
HuSprGrpScaleSet(wheelSprGrp, sin(temp_f30 * M_PI / 180.0), sin(temp_f30 * M_PI / 180.0));
|
||||
HuSprGrpScaleSet(wheelSprGrp, sind(temp_f30), sind(temp_f30));
|
||||
}
|
||||
|
||||
static void KillCharWheelSpr(void) {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
#include "game/board/window.h"
|
||||
#include "game/board/boo.h"
|
||||
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
typedef BOOL (*UseCheckFunc)(s32 player, s32 item);
|
||||
|
||||
|
|
@ -625,7 +625,7 @@ s32 BoardComJunctionInputGet(s32 item, Vec *input, s32 num_dirs, float *dirs) {
|
|||
BoardSpacePosGet(0, space, &pos_junction);
|
||||
BoardSpacePosGet(0, space_next, &pos_next);
|
||||
PSVECSubtract(&pos_next, &pos_junction, &dir);
|
||||
angle = BoardDAngleCalc(90.0 - 180.0 * (atan2(dir.z, dir.x) / M_PI));
|
||||
angle = BoardDAngleCalc(90.0 - atan2d(dir.z, dir.x));
|
||||
if (angle < 0.0f) {
|
||||
angle += 360.0f;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
#include "game/board/view.h"
|
||||
#include "game/frand.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 unk00;
|
||||
/* 0x02 */ s16 unk02;
|
||||
|
|
@ -285,7 +287,7 @@ static void ItemSizeShowAnim(void) {
|
|||
BoardModelRotSetV(suitMdl, &spC);
|
||||
BoardModelPosSetV(suitMdl, &sp24);
|
||||
for (i = 0; i < 120; i++) {
|
||||
sp24.y += 3.0 * sin(var_f31 * M_PI / 180.0);
|
||||
sp24.y += 3.0 * sind(var_f31);
|
||||
BoardModelPosSetV(suitMdl, &sp24);
|
||||
var_f31 += 9.0f;
|
||||
if (var_f31 >= 360.0f) {
|
||||
|
|
@ -318,7 +320,7 @@ static void ItemRotProc(void) {
|
|||
while (1) {
|
||||
if (temp_r31->unk00 == 0) {
|
||||
sp14 = sp20;
|
||||
sp14.y += temp_r31->unk04 * sin(temp_r31->unk0C * M_PI / 180.0);
|
||||
sp14.y += temp_r31->unk04 * sind(temp_r31->unk0C);
|
||||
BoardModelPosSetV(temp_r31->unk02, &sp14);
|
||||
temp_r31->unk0C += temp_r31->unk08;
|
||||
if (temp_r31->unk0C >= 360.0f) {
|
||||
|
|
@ -489,8 +491,8 @@ static Process *ItemShowProc(UnkItemShowProcStruct *arg0, Vec *arg1) {
|
|||
if (arg0 == NULL || arg0->unk1C != 0) {
|
||||
CharModelLayerSetAll(3);
|
||||
sp20.y += 35.0f;
|
||||
sp20.z += 50.0 * cos(sp14.y * M_PI / 180.0);
|
||||
sp20.x += 50.0 * sin(sp14.y * M_PI / 180.0);
|
||||
sp20.z += 50.0 * cosd(sp14.y);
|
||||
sp20.x += 50.0 * sind(sp14.y);
|
||||
CharModelEffectCreate(1, &sp20);
|
||||
HuPrcSleep(10);
|
||||
}
|
||||
|
|
@ -861,7 +863,7 @@ static void ExecItemPipe(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 30);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -887,7 +889,7 @@ static void ExecItemPipe(void) {
|
|||
BoardPlayerVoiceEnableSet(sp2C[var_r31], 4, 0);
|
||||
BoardModelVisibilitySet(BoardPlayerModelGet(sp2C[var_r31]), 0);
|
||||
}
|
||||
WipeCreate(1, 0, 30);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1124,12 +1126,12 @@ static void ExecItemSwap(void) {
|
|||
for (var_r31 = 0; var_r31 < 60; var_r31++) {
|
||||
for (var_r30 = 0; var_r30 < var_r28 / 2; var_r30++) {
|
||||
sp6C = sp1A4[var_r30];
|
||||
sp6C.x += 3.0 * sin((frandmods(360)) * M_PI / 180.0);
|
||||
sp6C.y += 3.0 * sin((frandmods(360)) * M_PI / 180.0);
|
||||
sp6C.x += 3.0 * sind(frandmods(360));
|
||||
sp6C.y += 3.0 * sind(frandmods(360));
|
||||
BoardModelPosSetV(sp54[var_r30], &sp6C);
|
||||
sp6C = sp180[var_r30];
|
||||
sp6C.x += 3.0 * sin((frandmods(360)) * M_PI / 180.0);
|
||||
sp6C.y += 3.0 * sin((frandmods(360)) * M_PI / 180.0);
|
||||
sp6C.x += 3.0 * sind(frandmods(360));
|
||||
sp6C.y += 3.0 * sind(frandmods(360));
|
||||
BoardModelPosSetV(sp54[var_r30 + 3], &sp6C);
|
||||
}
|
||||
HuPrcSleep(2);
|
||||
|
|
@ -1263,8 +1265,8 @@ static void ExecItemSpark(void) {
|
|||
BoardSpaceRotGet(0, GWPlayer[currItemRestore].space_curr, &sp20);
|
||||
BoardModelRotSetV(suitMdl, &sp20);
|
||||
BoardModelPosGet(suitMdl, &sp2C);
|
||||
sp2C.z += 106.0 * sin(sp20.x * M_PI / 180.0);
|
||||
sp2C.x -= 106.0 * sin(sp20.z * M_PI / 180.0);
|
||||
sp2C.z += 106.0 * sind(sp20.x);
|
||||
sp2C.x -= 106.0 * sind(sp20.z);
|
||||
BoardModelPosSetV(suitMdl, &sp2C);
|
||||
HuAudFXPlay(0x31B);
|
||||
BoardModelMotionStart(suitMdl, 1, 0);
|
||||
|
|
@ -1369,9 +1371,9 @@ static void ExecItemWhistle(void) {
|
|||
temp_r17 = BoardModelMotionCreate(sp20[var_r31], DATA_MAKE_NUM(DATADIR_BGUEST, 40));
|
||||
BoardModelMotionStart(sp20[var_r31], temp_r17, 0x40000001);
|
||||
sp28[var_r31] = 120.0f;
|
||||
spF0[var_r31].x = spB4.x + 120.0 * sin(var_f31 * M_PI / 180.0);
|
||||
spF0[var_r31].x = spB4.x + 120.0 * sind(var_f31);
|
||||
spF0[var_r31].y = 1000.0f + spB4.y + 100.0f * var_r31;
|
||||
spF0[var_r31].z = spB4.z + 120.0 * cos(var_f31 * M_PI / 180.0);
|
||||
spF0[var_r31].z = spB4.z + 120.0 * cosd(var_f31);
|
||||
spC0[var_r31].x = spC0[var_r31].z = 0.0f;
|
||||
spC0[var_r31].y = var_f31 + 90.0f;
|
||||
if (spC0[var_r31].y >= 360.0f) {
|
||||
|
|
@ -1420,7 +1422,7 @@ static void ExecItemWhistle(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 60);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1435,7 +1437,7 @@ static void ExecItemWhistle(void) {
|
|||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
BoardModelVisibilitySet(sp20[var_r31], 1);
|
||||
}
|
||||
WipeCreate(1, 0, 60);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1490,8 +1492,8 @@ static void ExecItemWhistle(void) {
|
|||
if (spC0[var_r31].y >= 360.0f) {
|
||||
spC0[var_r31].y -= 360.0f;
|
||||
}
|
||||
spF0[var_r31].x = spB4.x + 120.0 * sin(sp38[var_r31] * M_PI / 180.0);
|
||||
spF0[var_r31].z = spB4.z + 120.0 * cos(sp38[var_r31] * M_PI / 180.0);
|
||||
spF0[var_r31].x = spB4.x + 120.0 * sind(sp38[var_r31]);
|
||||
spF0[var_r31].z = spB4.z + 120.0 * cosd(sp38[var_r31]);
|
||||
BoardModelPosSetV(sp20[var_r31], &spF0[var_r31]);
|
||||
BoardModelRotSetV(sp20[var_r31], &spC0[var_r31]);
|
||||
}
|
||||
|
|
@ -1523,8 +1525,8 @@ static void ExecItemWhistle(void) {
|
|||
spF0[var_r31].y = spB4.y;
|
||||
sp48[var_r31] = -1.0f;
|
||||
}
|
||||
spF0[var_r31].x = spB4.x + sp28[var_r31] * sin(sp38[var_r31] * M_PI / 180.0);
|
||||
spF0[var_r31].z = spB4.z + sp28[var_r31] * cos(sp38[var_r31] * M_PI / 180.0);
|
||||
spF0[var_r31].x = spB4.x + sp28[var_r31] * sind(sp38[var_r31]);
|
||||
spF0[var_r31].z = spB4.z + sp28[var_r31] * cosd(sp38[var_r31]);
|
||||
BoardModelPosSetV(sp20[var_r31], &spF0[var_r31]);
|
||||
}
|
||||
}
|
||||
|
|
@ -1538,7 +1540,7 @@ static void ExecItemWhistle(void) {
|
|||
BoardModelPosSetV(temp_r28, &sp9C);
|
||||
var_f30 *= 0.945f;
|
||||
if (sp9C.y >= 500.0f && var_r26 == 0) {
|
||||
WipeCreate(2, 0, 45);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 45);
|
||||
BoardAudSeqFadeOut(0, 1000);
|
||||
var_r26 = 1;
|
||||
}
|
||||
|
|
@ -1955,12 +1957,12 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat
|
|||
}
|
||||
}
|
||||
if (j != particle->unk_30) {
|
||||
var_r31->unk34.x = 60.0 * sin((spC.y - 90.0f) * M_PI / 180.0);
|
||||
var_r31->unk34.x = 60.0 * sind(spC.y - 90.0f);
|
||||
var_r31->unk34.y = 30.0f;
|
||||
var_r31->unk34.z = 60.0 * cos((spC.y - 90.0f) * M_PI / 180.0);
|
||||
var_r31->unk34.z = 60.0 * cosd(spC.y - 90.0f);
|
||||
sp8 = 12.0f;
|
||||
var_r31->unk08.x = 12.0 * cos((i * 110.0f + 35.0f) * M_PI / 180.0);
|
||||
var_r31->unk08.y = 12.0 * sin((i * 110.0f + 35.0f) * M_PI / 180.0);
|
||||
var_r31->unk08.x = 12.0 * cosd(i * 110.0f + 35.0f);
|
||||
var_r31->unk08.y = 12.0 * sind(i * 110.0f + 35.0f);
|
||||
var_r31->unk08.z = 3.0f + frand8() * 5.0f * 0.003921569f;
|
||||
var_r31->unk14.y = 255.0f;
|
||||
var_r31->unk2C = 25.0f;
|
||||
|
|
@ -1983,9 +1985,9 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat
|
|||
if (var_r31->unk14.y <= 120.0f) {
|
||||
var_r31->unk14.y = 200.0f;
|
||||
temp_f31 = frand8() * 180.0f * 0.003921569f;
|
||||
var_r31->unk08.x = 6.0 * cos(temp_f31 * M_PI / 180.0);
|
||||
var_r31->unk08.x = 6.0 * cosd(temp_f31);
|
||||
var_r31->unk08.y = -4.0f;
|
||||
var_r31->unk08.z = 6.0 * sin(temp_f31 * M_PI / 180.0);
|
||||
var_r31->unk08.z = 6.0 * sind(temp_f31);
|
||||
var_r31->unk00_s16 = 1;
|
||||
}
|
||||
var_r31->unk40.a = var_r31->unk14.y;
|
||||
|
|
@ -2017,11 +2019,11 @@ static void GenieParticleUpdate(ModelData *model, ParticleData *particle, Mtx ma
|
|||
var_r31->unk34.y = -50.0f + frand8() * 100.0f * 0.003921569f;
|
||||
var_r31->unk34.z = -10.0f + frand8() * 20.0f * 0.003921569f;
|
||||
temp_f31 = 0.5f + frand8() * 3.0f * 0.003921569f;
|
||||
var_r31->unk08.x = temp_f31 * cos((i * 110.0f + 35.0f) * M_PI / 180.0);
|
||||
var_r31->unk08.y = temp_f31 * sin((i * 110.0f + 35.0f) * M_PI / 180.0);
|
||||
var_r31->unk08.x = temp_f31 * cosd(i * 110.0f + 35.0f);
|
||||
var_r31->unk08.y = temp_f31 * sind(i * 110.0f + 35.0f);
|
||||
var_r31->unk08.z = 0.0f;
|
||||
var_r31->unk14.y = 255.0f;
|
||||
temp_f30 = 125.0f + frand8() * 0x64 * 0.003921569f;
|
||||
temp_f30 = 125.0f + frand8() * 100 * 0.003921569f;
|
||||
var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = temp_f30;
|
||||
var_r31->unk00 = 0;
|
||||
var_r31->unk2C = 80.0f + frand8() * 60.0f * 0.003921569f;
|
||||
|
|
@ -2246,7 +2248,7 @@ static void GenieSceneExec(void) {
|
|||
Hu3DModelPosSet(temp_r27, booCamPos.x, booCamPos.y, booCamPos.z - 175.0f);
|
||||
temp_r23 = Hu3DData[temp_r27].unk_120;
|
||||
temp_r23->unk_02 = 1;
|
||||
WipeCreate(1, 0, 45);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 45);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -2288,9 +2290,9 @@ static void GenieSceneExec(void) {
|
|||
booCamUp.x = sp38.x + (sp50.x - sp38.x) * 0.7f;
|
||||
booCamUp.y = sp38.y + 400.0f;
|
||||
booCamUp.z = sp38.z + (sp50.z - sp38.z) * 0.7f;
|
||||
booCamPos.x = booCamUp.x + sin(-5 * M_PI / 9) * 1100.0;
|
||||
booCamPos.x = booCamUp.x + sind(-100) * 1100.0;
|
||||
booCamPos.y = booCamUp.y + 950.0f;
|
||||
booCamPos.z = booCamUp.z + cos(-5 * M_PI / 9) * 1100.0;
|
||||
booCamPos.z = booCamUp.z + cosd(-100) * 1100.0;
|
||||
HuAudFXPlay(0x356);
|
||||
BoardWinCreate(2, MAKE_MESSID(18, 27), -1);
|
||||
BoardWinWait();
|
||||
|
|
@ -2343,7 +2345,7 @@ static void GenieSceneExec(void) {
|
|||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeCreate(2, 0, 45);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 45);
|
||||
BoardAudSeqFadeOut(1, 1000);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -2426,7 +2428,7 @@ static void ExecItemGenie(void) {
|
|||
HuAudFXStop(temp_r25);
|
||||
HuAudFXPauseAll(1);
|
||||
WipeColorSet(0xFF, 0xFF, 0xFF);
|
||||
WipeCreate(2, 0, 45);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 45);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -2446,7 +2448,7 @@ static void ExecItemGenie(void) {
|
|||
BoardPlayerPosSetV(currItemRestore, &spC);
|
||||
BoardCameraMotionWait();
|
||||
BoardCameraMoveSet(1);
|
||||
WipeCreate(1, 0, 45);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 45);
|
||||
HuPrcSleep(15);
|
||||
BoardAudSeqPause(0, 0, 1000);
|
||||
while (WipeStatGet() != 0) {
|
||||
|
|
@ -2565,7 +2567,7 @@ static void ExecItemBagShow(void) {
|
|||
break;
|
||||
}
|
||||
sp8 = sp14;
|
||||
sp8.y += 15.0 * sin(var_f31 * M_PI / 180.0);
|
||||
sp8.y += 15.0 * sind(var_f31);
|
||||
BoardModelPosSetV(suitMdl, &sp8);
|
||||
var_f31 += 36.0f;
|
||||
HuPrcVSleep();
|
||||
|
|
|
|||
|
|
@ -506,13 +506,13 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
break;
|
||||
case 1:
|
||||
if (UpdatePauseBox(arg0, temp_r31, 1) != 0) {
|
||||
GWMGExplainSet(boxState[1]);
|
||||
GWMGExplainSet(boxState[1]);
|
||||
}
|
||||
UpdatePauseText(cursorPos);
|
||||
break;
|
||||
case 2:
|
||||
if (UpdatePauseBox(arg0, temp_r31, 2) != 0) {
|
||||
GWMGShowComSet(boxState[2]);
|
||||
GWMGShowComSet(boxState[2]);
|
||||
}
|
||||
UpdatePauseText(cursorPos);
|
||||
break;
|
||||
|
|
@ -534,7 +534,7 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
break;
|
||||
case 4:
|
||||
if (UpdatePauseBox(arg0, temp_r31, 4) != 0) {
|
||||
GWRumbleSet(boxState[4]);
|
||||
GWRumbleSet(boxState[4]);
|
||||
}
|
||||
UpdatePauseText(cursorPos);
|
||||
break;
|
||||
|
|
@ -542,13 +542,13 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
if (UpdatePauseBoxExt(arg0, temp_r31, 5) != 0) {
|
||||
switch (boxState[5]) {
|
||||
case 0:
|
||||
GWMessSpeedSet(2);
|
||||
GWMessSpeedSet(2);
|
||||
break;
|
||||
case 1:
|
||||
GWMessSpeedSet(1);
|
||||
GWMessSpeedSet(1);
|
||||
break;
|
||||
case 2:
|
||||
GWMessSpeedSet(0);
|
||||
GWMessSpeedSet(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -562,13 +562,13 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
if (UpdatePauseBoxExt(arg0, temp_r31, 6) != 0) {
|
||||
switch (boxState[6]) {
|
||||
case 0:
|
||||
GWSaveModeSet(1);
|
||||
GWSaveModeSet(1);
|
||||
break;
|
||||
case 1:
|
||||
GWSaveModeSet(0);
|
||||
GWSaveModeSet(0);
|
||||
break;
|
||||
case 2:
|
||||
GWSaveModeSet(2);
|
||||
GWSaveModeSet(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
#include "game/board/player.h"
|
||||
#include "game/board/tutorial.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
u8 unk00_field0 : 1;
|
||||
|
|
@ -481,7 +483,7 @@ static void DiceMain(omObjData *arg0) {
|
|||
var_f27 = 1.0f;
|
||||
var_f28 = 0.5f;
|
||||
}
|
||||
arg0->scale.x = var_f27 + var_f28 * sin((float) (temp_r29->unk04 % 180) * M_PI / 180.0);
|
||||
arg0->scale.x = var_f27 + var_f28 * sind((float) (temp_r29->unk04 % 180));
|
||||
arg0->scale.y = arg0->scale.x;
|
||||
arg0->scale.z = arg0->scale.x;
|
||||
if (temp_r29->unk04 <= 360) {
|
||||
|
|
@ -502,7 +504,7 @@ static void DiceMain(omObjData *arg0) {
|
|||
temp_r29->unk04 -= 360;
|
||||
}
|
||||
OSs16tof32(&temp_r29->unk04, &temp_f29);
|
||||
arg0->trans.y += 0.20000000298023224 * sin(temp_f29 * M_PI / 180.0);
|
||||
arg0->trans.y += 0.2f * sind(temp_f29);
|
||||
break;
|
||||
case 2:
|
||||
temp_r29->unk04++;
|
||||
|
|
@ -523,7 +525,7 @@ static void DiceMain(omObjData *arg0) {
|
|||
OSs16tof32(&temp_r29->unk04, &temp_f29);
|
||||
if (temp_r29->unk04 < 4) {
|
||||
arg0->trans.y += 10.0f + (0.5f * temp_f29);
|
||||
arg0->scale.x = (arg0->scale.x + (0.10000000149011612 * sin((M_PI * (4.0f * temp_f29)) / 180.0)));
|
||||
arg0->scale.x += 0.1f * sind(4.0f * temp_f29);
|
||||
arg0->scale.y = arg0->scale.x;
|
||||
arg0->scale.z = arg0->scale.x;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#include "game/board/window.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
|
|
@ -262,7 +262,7 @@ static void ExecShop(void) {
|
|||
BoardSpacePosGet(0, temp_r25, &sp2C);
|
||||
PSVECSubtract(&sp2C, &sp38, &sp20);
|
||||
PSVECNormalize(&sp20, &sp20);
|
||||
temp_f31 = 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI);
|
||||
temp_f31 = atan2d(-sp20.x, -sp20.z);
|
||||
sp14.x = -10.0f;
|
||||
sp14.y = temp_f31;
|
||||
sp14.z = 0.0f;
|
||||
|
|
@ -535,7 +535,7 @@ static void UpdateShopWin(omObjData *arg0) {
|
|||
temp_r28->unk04 = 90;
|
||||
}
|
||||
OSs8tof32(&temp_r28->unk04, &var_f28);
|
||||
arg0->scale.x = arg0->scale.y = arg0->scale.z = 0.25 * sin(var_f28 * M_PI / 180.0);
|
||||
arg0->scale.x = arg0->scale.y = arg0->scale.z = 0.25 * sind(var_f28);
|
||||
}
|
||||
if (temp_r28->unk00_field1 == 5) {
|
||||
var_f29 = -12.5f;
|
||||
|
|
@ -575,7 +575,7 @@ static void SetShopWinItem(ShopWinWork *arg0, omObjData *arg1) {
|
|||
BoardModelMotionSpeedSet(itemMdl, 0.033333335f);
|
||||
}
|
||||
BoardCameraDirGet(&spC);
|
||||
arg1->rot.y = BoardDAngleCalc(180.0 * (atan2(-spC.x, -spC.z) / M_PI));
|
||||
arg1->rot.y = BoardDAngleCalc(atan2d(-spC.x, -spC.z));
|
||||
OSf32tos16(&arg1->rot.y, &angleVal);
|
||||
}
|
||||
}
|
||||
|
|
@ -689,7 +689,7 @@ static void MoveItemGive(omObjData *arg0, ItemGiveWork *arg1) {
|
|||
temp_f27 = -0.08166667f * temp_f27 * temp_f27;
|
||||
arg0->trans.y += temp_f27;
|
||||
BoardCameraDirGet(&sp10);
|
||||
var_f26 = BoardDAngleCalc(180.0 * (atan2(-sp10.x, -sp10.z) / M_PI));
|
||||
var_f26 = BoardDAngleCalc(atan2d(-sp10.x, -sp10.z));
|
||||
OSf32tos16(&var_f26, &angleVal);
|
||||
} else {
|
||||
arg0->scale.x += arg0->scale.y;
|
||||
|
|
@ -723,7 +723,7 @@ static void ShrinkItemGive(omObjData *arg0, ItemGiveWork *arg1) {
|
|||
if (var_f30 > 90.0f) {
|
||||
var_f30 = 90.0f;
|
||||
}
|
||||
arg0->scale.x = cos(var_f30 * M_PI / 180.0);
|
||||
arg0->scale.x = cosd(var_f30);
|
||||
arg0->trans.y += arg0->rot.x;
|
||||
angleVal += 8;
|
||||
if (angleVal > 360) {
|
||||
|
|
@ -1137,7 +1137,7 @@ void BoardShopTutorialExec(s32 arg0) {
|
|||
BoardSpacePosGet(0, temp_r27, &sp3C);
|
||||
PSVECSubtract(&sp3C, &sp48, &sp30);
|
||||
PSVECNormalize(&sp30, &sp30);
|
||||
temp_f31 = 180.0 * (atan2(-sp30.x, -sp30.z) / M_PI);
|
||||
temp_f31 = atan2d(-sp30.x, -sp30.z);
|
||||
sp24.x = -10.0f;
|
||||
sp24.y = temp_f31;
|
||||
sp24.z = 0.0f;
|
||||
|
|
|
|||
|
|
@ -677,7 +677,7 @@ s32 BoardSpaceBlockExec(s32 player, s32 space)
|
|||
if(space == GWSystem.block_pos) {
|
||||
event_exec = 1;
|
||||
}
|
||||
if((int)GWSystem.bonus_star == 0 && GWPartyGet() == 1 && !_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
if(!GWBonusStarGet() && GWPartyGet() == 1 && !_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
event_exec = 0;
|
||||
}
|
||||
if(GWBoardGet() == 7 || GWBoardGet() == 8) {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#include "game/board/ui.h"
|
||||
#include "game/board/window.h"
|
||||
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
|
|
@ -207,7 +207,7 @@ static void ExecStar(void) {
|
|||
var_r22 = BoardSpaceLinkFlagSearch(0, temp_r24, 0x04000000);
|
||||
BoardSpacePosGet(0, var_r22, &sp18);
|
||||
PSVECSubtract(&sp18, &sp24, &spC);
|
||||
temp_f30 = 90.0 - 180.0 * (atan2(spC.z, spC.x) / M_PI);
|
||||
temp_f30 = 90.0 - atan2d(spC.z, spC.x);
|
||||
temp_f30 = 90.0f * ((temp_f30 + 3.0f) / 90.0f);
|
||||
temp_f29 = BoardPlayerRotYGet(temp_r31);
|
||||
BoardPlayerIdleSet(temp_r31);
|
||||
|
|
@ -511,7 +511,7 @@ static void ShrinkGiveStar(GiveStarWork *arg0, omObjData *arg1) {
|
|||
}
|
||||
}
|
||||
OSs16tof32(&arg0->unk08, &var_f30);
|
||||
arg1->scale.x = sin((var_f30 + 90.0f) * M_PI / 180.0);
|
||||
arg1->scale.x = sind(var_f30 + 90.0f);
|
||||
if (arg1->scale.x <= 0.0f) {
|
||||
arg1->scale.x = 0.001f;
|
||||
}
|
||||
|
|
@ -663,7 +663,7 @@ void BoardStarShowNext(s32 arg0) {
|
|||
var_r26 = &wipeData;
|
||||
if (var_r26->mode == 0) {
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 21);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -727,7 +727,7 @@ void BoardStarShowNext(s32 arg0) {
|
|||
BoardCameraMotionWait();
|
||||
BoardCameraMoveSet(1);
|
||||
HuPrcSleep(1);
|
||||
WipeCreate(1, 0, 21);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -758,7 +758,7 @@ void BoardStarShowNext(s32 arg0) {
|
|||
}
|
||||
BoardAudSeqFadeOut(1, 1000);
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 21);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -774,7 +774,7 @@ void BoardStarShowNext(s32 arg0) {
|
|||
BoardCameraMotionWait();
|
||||
BoardCameraMoveSet(1);
|
||||
BoardStatusItemSet(1);
|
||||
WipeCreate(1, 0, 21);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ static void ExecStart(void) {
|
|||
InitCamera();
|
||||
CreateTapWin();
|
||||
InitHost();
|
||||
WipeCreate(1, 0, 0x15);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -172,7 +172,7 @@ static void ExecStart(void) {
|
|||
if (_CheckFlag(0x1000B)) {
|
||||
BoardTutorialHookExec(4, 0);
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 0x15);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -188,7 +188,7 @@ static void ExecStart(void) {
|
|||
BoardCameraMotionWait();
|
||||
BoardCameraMoveSet(1);
|
||||
BoardModelVisibilitySet(BoardStarHostMdlGet(), 0);
|
||||
WipeCreate(1, 0, 0x15);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -197,7 +197,7 @@ static void ExecStart(void) {
|
|||
BoardCameraNearFarSet(100.0f, 13000.0f);
|
||||
if (GWBoardGet() == 7 || GWBoardGet() == 8) {
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(2, 0, 0x15);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -213,7 +213,7 @@ static void ExecStart(void) {
|
|||
BoardCameraViewSet(2);
|
||||
BoardCameraMotionWait();
|
||||
BoardCameraMoveSet(1);
|
||||
WipeCreate(1, 0, 0x15);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ static void ExecBoardWindow(void) {
|
|||
HuPrcEnd();
|
||||
}
|
||||
|
||||
int BoardWinChoiceGet(void) {
|
||||
s32 BoardWinChoiceGet(void) {
|
||||
return winChoice;
|
||||
}
|
||||
|
||||
|
|
@ -292,7 +292,7 @@ void BoardWinKeyWait(void) {
|
|||
winWait = 1;
|
||||
}
|
||||
|
||||
int BoardWinSpeedGet(void) {
|
||||
s32 BoardWinSpeedGet(void) {
|
||||
return winSpeedTbl[GWMessSpeedGet()];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ static DataReadStat ATTRIBUTE_ALIGN(32) ReadDataStat[DATA_MAX_READSTAT];
|
|||
|
||||
void HuDataInit(void)
|
||||
{
|
||||
int i = 0;
|
||||
s32 i = 0;
|
||||
FileListEntry *dir_stat = DataDirStat;
|
||||
DataReadStat *read_stat;
|
||||
while(dir_stat->name) {
|
||||
|
|
@ -45,9 +45,9 @@ void HuDataInit(void)
|
|||
}
|
||||
}
|
||||
|
||||
static int HuDataReadStatusGet(void)
|
||||
static s32 HuDataReadStatusGet(void)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
for(i=0; i<DATA_MAX_READSTAT; i++) {
|
||||
if(ReadDataStat[i].dir_id == -1) {
|
||||
break;
|
||||
|
|
@ -59,9 +59,9 @@ static int HuDataReadStatusGet(void)
|
|||
return i;
|
||||
}
|
||||
|
||||
int HuDataReadChk(s32 data_num)
|
||||
s32 HuDataReadChk(s32 data_num)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
data_num >>= 16;
|
||||
for(i=0; i<DATA_MAX_READSTAT; i++) {
|
||||
if(ReadDataStat[i].dir_id == data_num && ReadDataStat[i].status != 1) {
|
||||
|
|
@ -76,7 +76,7 @@ int HuDataReadChk(s32 data_num)
|
|||
|
||||
DataReadStat *HuDataGetStatus(void *dir_ptr)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
for(i=0; i<DATA_MAX_READSTAT; i++) {
|
||||
if(ReadDataStat[i].dir == dir_ptr) {
|
||||
break;
|
||||
|
|
@ -90,7 +90,7 @@ DataReadStat *HuDataGetStatus(void *dir_ptr)
|
|||
|
||||
void *HuDataGetDirPtr(s32 data_num)
|
||||
{
|
||||
int status = HuDataReadChk(data_num);
|
||||
s32 status = HuDataReadChk(data_num);
|
||||
if(status < 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -100,7 +100,7 @@ void *HuDataGetDirPtr(s32 data_num)
|
|||
DataReadStat *HuDataDirRead(s32 data_num)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
s32 dir_id;
|
||||
dir_id = data_num >> 16;
|
||||
if(DataDirMax <= dir_id) {
|
||||
|
|
@ -135,7 +135,7 @@ DataReadStat *HuDataDirRead(s32 data_num)
|
|||
static DataReadStat *HuDataDirReadNum(s32 data_num, s32 num)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
s32 dir_id;
|
||||
dir_id = data_num >> 16;
|
||||
if(DataDirMax <= dir_id) {
|
||||
|
|
@ -176,7 +176,7 @@ static DataReadStat *HuDataDirReadNum(s32 data_num, s32 num)
|
|||
DataReadStat *HuDataDirSet(void *dir_ptr, s32 data_num)
|
||||
{
|
||||
DataReadStat *read_stat = HuDataGetStatus(dir_ptr);
|
||||
int status;
|
||||
s32 status;
|
||||
if((status = HuDataReadChk(read_stat->dir_id << 16)) >= 0) {
|
||||
HuDataDirClose(data_num);
|
||||
}
|
||||
|
|
@ -194,7 +194,7 @@ DataReadStat *HuDataDirSet(void *dir_ptr, s32 data_num)
|
|||
void HuDataDirReadAsyncCallBack(s32 result, DVDFileInfo* fileInfo)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int i;
|
||||
s32 i;
|
||||
for(i=0; i<DATA_MAX_READSTAT; i++) {
|
||||
if(ReadDataStat[i].status == 1 && ReadDataStat[i].file_info.startAddr == fileInfo->startAddr) {
|
||||
break;
|
||||
|
|
@ -211,7 +211,7 @@ void HuDataDirReadAsyncCallBack(s32 result, DVDFileInfo* fileInfo)
|
|||
s32 HuDataDirReadAsync(s32 data_num)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
s32 dir_id;
|
||||
dir_id = data_num >> 16;
|
||||
if(DataDirMax <= dir_id) {
|
||||
|
|
@ -244,7 +244,7 @@ s32 HuDataDirReadAsync(s32 data_num)
|
|||
s32 HuDataDirReadNumAsync(s32 data_num, s32 num)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
s32 dir_id;
|
||||
dir_id = data_num >> 16;
|
||||
if(DataDirMax <= dir_id) {
|
||||
|
|
@ -291,7 +291,7 @@ static void GetFileInfo(DataReadStat *read_stat, s32 file_num)
|
|||
void *HuDataRead(s32 data_num)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
void *buf;
|
||||
if(!HuDataDirRead(data_num)) {
|
||||
(void)data_num;
|
||||
|
|
@ -312,7 +312,7 @@ void *HuDataRead(s32 data_num)
|
|||
void *HuDataReadNum(s32 data_num, s32 num)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
void *buf;
|
||||
if(!HuDataDirReadNum(data_num, num)) {
|
||||
return NULL;
|
||||
|
|
@ -332,7 +332,7 @@ void *HuDataReadNum(s32 data_num, s32 num)
|
|||
void *HuDataSelHeapRead(s32 data_num, HeapID heap)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
void *buf;
|
||||
if(!HuDataDirRead(data_num)) {
|
||||
return NULL;
|
||||
|
|
@ -368,7 +368,7 @@ void *HuDataSelHeapRead(s32 data_num, HeapID heap)
|
|||
void *HuDataSelHeapReadNum(s32 data_num, s32 num, HeapID heap)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
void *buf;
|
||||
if(!HuDataDirReadNum(data_num, num)) {
|
||||
return NULL;
|
||||
|
|
@ -412,7 +412,7 @@ static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num)
|
|||
char **paths;
|
||||
void **dir_ptrs;
|
||||
void **out_ptrs;
|
||||
int i, count, total_files;
|
||||
s32 i, count, total_files;
|
||||
u32 dir_id;
|
||||
for(i=0, count=0; data_ids[i] != -1; i++) {
|
||||
dir_id = data_ids[i] >> 16;
|
||||
|
|
@ -433,7 +433,7 @@ static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num)
|
|||
for(i=0, count=0; data_ids[i] != -1; i++) {
|
||||
dir_id = data_ids[i] >> 16;
|
||||
if(HuDataReadChk(data_ids[i]) < 0) {
|
||||
int j;
|
||||
s32 j;
|
||||
for(j=0; dir_ids[j] != -1; j++) {
|
||||
if(dir_ids[j] == dir_id){
|
||||
break;
|
||||
|
|
@ -481,7 +481,7 @@ static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num)
|
|||
s32 HuDataGetSize(s32 data_num)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int status;
|
||||
s32 status;
|
||||
if((status = HuDataReadChk(data_num)) == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -499,7 +499,7 @@ void HuDataClose(void *ptr)
|
|||
|
||||
void HuDataCloseMulti(void **ptrs)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
for(i=0; ptrs[i]; i++) {
|
||||
void *ptr = ptrs[i];
|
||||
if(ptr) {
|
||||
|
|
@ -514,7 +514,7 @@ void HuDataCloseMulti(void **ptrs)
|
|||
void HuDataDirClose(s32 data_id)
|
||||
{
|
||||
DataReadStat *read_stat;
|
||||
int i;
|
||||
s32 i;
|
||||
s32 dir_id = data_id >> 16;
|
||||
for(i=0; i<DATA_MAX_READSTAT; i++) {
|
||||
if(ReadDataStat[i].dir_id == dir_id) {
|
||||
|
|
@ -537,7 +537,7 @@ void HuDataDirClose(s32 data_id)
|
|||
|
||||
void HuDataDirCloseNum(s32 num)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
for(i=0; i<DATA_MAX_READSTAT; i++) {
|
||||
if(ReadDataStat[i].used == TRUE && ReadDataStat[i].num == num) {
|
||||
HuDataDirClose(ReadDataStat[i].dir_id << 16);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ static void HuDecodeNone(struct decode_data *decode)
|
|||
static void HuDecodeLz(struct decode_data *decode)
|
||||
{
|
||||
u16 flag, pos;
|
||||
int i, j, copy_len;
|
||||
s32 i, j, copy_len;
|
||||
flag = 0;
|
||||
pos = 958;
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ static void HuDecodeLz(struct decode_data *decode)
|
|||
|
||||
static inline void SlideReadHeader(struct decode_data *decode)
|
||||
{
|
||||
int size;
|
||||
s32 size;
|
||||
size = (*decode->src++) << 24;
|
||||
size += (*decode->src++) << 16;
|
||||
size += (*decode->src++) << 8;
|
||||
|
|
@ -78,7 +78,7 @@ static void HuDecodeSlide(struct decode_data *decode)
|
|||
num_bits = 32;
|
||||
}
|
||||
if(flag >> 31) {
|
||||
*decode->dst++ = (int)*decode->src++;
|
||||
*decode->dst++ = (s32)*decode->src++;
|
||||
decode->size--;
|
||||
} else {
|
||||
u8 *src;
|
||||
|
|
@ -125,7 +125,7 @@ static void HuDecodeFslide(struct decode_data *decode)
|
|||
num_bits = 32;
|
||||
}
|
||||
if(flag >> 31) {
|
||||
*decode->dst++ = (int)*decode->src++;
|
||||
*decode->dst++ = (s32)*decode->src++;
|
||||
decode->size--;
|
||||
} else {
|
||||
u8 *src;
|
||||
|
|
@ -155,11 +155,11 @@ static void HuDecodeFslide(struct decode_data *decode)
|
|||
|
||||
static void HuDecodeRle(struct decode_data *decode)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
while(decode->size) {
|
||||
int size = *decode->src++;
|
||||
s32 size = *decode->src++;
|
||||
if(size < 128) {
|
||||
int fill = *decode->src++;
|
||||
s32 fill = *decode->src++;
|
||||
for(i=0; i<size; i++) {
|
||||
*decode->dst++ = fill;
|
||||
}
|
||||
|
|
@ -173,7 +173,7 @@ static void HuDecodeRle(struct decode_data *decode)
|
|||
}
|
||||
}
|
||||
|
||||
void HuDecodeData(void *src, void *dst, u32 size, int decode_type)
|
||||
void HuDecodeData(void *src, void *dst, u32 size, s32 decode_type)
|
||||
{
|
||||
struct decode_data decode;
|
||||
struct decode_data *decode_ptr = &decode;
|
||||
|
|
|
|||
|
|
@ -147,19 +147,19 @@ s32 GWMessDelayGet(void)
|
|||
return GWSystem.mess_delay;
|
||||
}
|
||||
|
||||
void GWMGRecordSet(int index, s32 value)
|
||||
void GWMGRecordSet(s32 index, s32 value)
|
||||
{
|
||||
if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
|
||||
GWGameStat.mg_record[index] = value;
|
||||
}
|
||||
}
|
||||
|
||||
s32 GWMGRecordGet(int index)
|
||||
s32 GWMGRecordGet(s32 index)
|
||||
{
|
||||
return GWGameStat.mg_record[index];
|
||||
}
|
||||
|
||||
void GWCharColorGet(int character, GXColor *color)
|
||||
void GWCharColorGet(s32 character, GXColor *color)
|
||||
{
|
||||
GXColor char_color[] = {
|
||||
{ 227, 67, 67, 255 },
|
||||
|
|
@ -174,7 +174,7 @@ void GWCharColorGet(int character, GXColor *color)
|
|||
*color = char_color[character];
|
||||
}
|
||||
|
||||
void GWBoardPlayCountSet(int board, u8 value)
|
||||
void GWBoardPlayCountSet(s32 board, u8 value)
|
||||
{
|
||||
if(value > 99) {
|
||||
value = 99;
|
||||
|
|
@ -182,7 +182,7 @@ void GWBoardPlayCountSet(int board, u8 value)
|
|||
GWGameStat.board_play_count[board] = value;
|
||||
}
|
||||
|
||||
void GWBoardPlayCountAdd(int board, u8 value)
|
||||
void GWBoardPlayCountAdd(s32 board, u8 value)
|
||||
{
|
||||
value += GWGameStat.board_play_count[board];
|
||||
if(value > 99) {
|
||||
|
|
@ -192,34 +192,34 @@ void GWBoardPlayCountAdd(int board, u8 value)
|
|||
}
|
||||
|
||||
|
||||
u8 GWBoardPlayCountGet(int board)
|
||||
u8 GWBoardPlayCountGet(s32 board)
|
||||
{
|
||||
return GWGameStat.board_play_count[board];
|
||||
}
|
||||
|
||||
void GWBoardMaxStarsSet(int board, int value)
|
||||
void GWBoardMaxStarsSet(s32 board, s32 value)
|
||||
{
|
||||
GWGameStat.board_max_stars[board] = value;
|
||||
}
|
||||
|
||||
u16 GWBoardMaxStarsGet(int board)
|
||||
u16 GWBoardMaxStarsGet(s32 board)
|
||||
{
|
||||
return GWGameStat.board_max_stars[board];
|
||||
}
|
||||
|
||||
void GWBoardMaxCoinsSet(int board, int value)
|
||||
void GWBoardMaxCoinsSet(s32 board, s32 value)
|
||||
{
|
||||
GWGameStat.board_max_coins[board] = value;
|
||||
}
|
||||
|
||||
u16 GWBoardMaxCoinsGet(int board)
|
||||
u16 GWBoardMaxCoinsGet(s32 board)
|
||||
{
|
||||
return GWGameStat.board_max_coins[board];
|
||||
}
|
||||
|
||||
int GWBoardWinCountInc(int character, int board)
|
||||
s32 GWBoardWinCountInc(s32 character, s32 board)
|
||||
{
|
||||
int win_count = GWGameStat.board_win_count[board][character]+1;
|
||||
s32 win_count = GWGameStat.board_win_count[board][character]+1;
|
||||
if(win_count > 99) {
|
||||
win_count = 99;
|
||||
}
|
||||
|
|
@ -227,20 +227,20 @@ int GWBoardWinCountInc(int character, int board)
|
|||
return win_count;
|
||||
}
|
||||
|
||||
int GWBoardWinCountGet(int character, int board)
|
||||
s32 GWBoardWinCountGet(s32 character, s32 board)
|
||||
{
|
||||
return GWGameStat.board_win_count[board][character];
|
||||
}
|
||||
|
||||
void GWBoardWinCountSet(int character, int board, int value)
|
||||
void GWBoardWinCountSet(s32 character, s32 board, s32 value)
|
||||
{
|
||||
GWGameStat.board_win_count[board][character] = value;
|
||||
}
|
||||
|
||||
int GWMGAvailGet(int id)
|
||||
s32 GWMGAvailGet(s32 id)
|
||||
{
|
||||
int word;
|
||||
int bit;
|
||||
s32 word;
|
||||
s32 bit;
|
||||
id -= 401;
|
||||
word = id >> 5;
|
||||
bit = id % 32;
|
||||
|
|
@ -251,20 +251,20 @@ int GWMGAvailGet(int id)
|
|||
}
|
||||
}
|
||||
|
||||
int GWMGAvailSet(int id)
|
||||
s32 GWMGAvailSet(s32 id)
|
||||
{
|
||||
int word;
|
||||
int bit;
|
||||
s32 word;
|
||||
s32 bit;
|
||||
id -= 401;
|
||||
word = id >> 5;
|
||||
bit = id % 32;
|
||||
GWGameStat.mg_avail[word] |= (1 << bit);
|
||||
}
|
||||
|
||||
int GWMGCustomGet(int id)
|
||||
s32 GWMGCustomGet(s32 id)
|
||||
{
|
||||
int word;
|
||||
int bit;
|
||||
s32 word;
|
||||
s32 bit;
|
||||
id -= 401;
|
||||
word = id >> 5;
|
||||
bit = id % 32;
|
||||
|
|
@ -275,32 +275,32 @@ int GWMGCustomGet(int id)
|
|||
}
|
||||
}
|
||||
|
||||
int GWMGCustomSet(int id)
|
||||
s32 GWMGCustomSet(s32 id)
|
||||
{
|
||||
int word;
|
||||
int bit;
|
||||
s32 word;
|
||||
s32 bit;
|
||||
id -= 401;
|
||||
word = id >> 5;
|
||||
bit = id % 32;
|
||||
GWGameStat.mg_custom[word] |= (1 << bit);
|
||||
}
|
||||
|
||||
int GWMGCustomReset(int id)
|
||||
s32 GWMGCustomReset(s32 id)
|
||||
{
|
||||
int word;
|
||||
int bit;
|
||||
s32 word;
|
||||
s32 bit;
|
||||
id -= 401;
|
||||
word = id >> 5;
|
||||
bit = id % 32;
|
||||
GWGameStat.mg_custom[word] &= ~(1 << bit);
|
||||
}
|
||||
|
||||
s16 GWCoinsGet(int player)
|
||||
s16 GWCoinsGet(s32 player)
|
||||
{
|
||||
return GWPlayer[player].coins;
|
||||
}
|
||||
|
||||
void GWCoinsSet(int player, s16 value)
|
||||
void GWCoinsSet(s32 player, s16 value)
|
||||
{
|
||||
if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
|
||||
if(value < 0) {
|
||||
|
|
@ -316,12 +316,12 @@ void GWCoinsSet(int player, s16 value)
|
|||
}
|
||||
}
|
||||
|
||||
void GWCoinsAdd(int player, s16 amount)
|
||||
void GWCoinsAdd(s32 player, s16 amount)
|
||||
{
|
||||
GWCoinsSet(player, GWPlayer[player].coins+amount);
|
||||
}
|
||||
|
||||
void GWStarsSet(int player, s16 value)
|
||||
void GWStarsSet(s32 player, s16 value)
|
||||
{
|
||||
if(value < 0) {
|
||||
value = 0;
|
||||
|
|
@ -335,12 +335,12 @@ void GWStarsSet(int player, s16 value)
|
|||
GWPlayer[player].stars = value;
|
||||
}
|
||||
|
||||
void GWStarsAdd(int player, s16 amount)
|
||||
void GWStarsAdd(s32 player, s16 amount)
|
||||
{
|
||||
GWStarsSet(player, GWPlayer[player].stars+amount);
|
||||
}
|
||||
|
||||
s32 GWStarsGet(int player)
|
||||
s32 GWStarsGet(s32 player)
|
||||
{
|
||||
return GWPlayer[player].stars;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -981,7 +981,7 @@ static void PaletteLoad(void)
|
|||
char *MakeObjectName(char *name)
|
||||
{
|
||||
static char buf[768];
|
||||
int index, num_minus;
|
||||
s32 index, num_minus;
|
||||
char *temp_name;
|
||||
num_minus = 0;
|
||||
index = 0;
|
||||
|
|
@ -1009,9 +1009,9 @@ char *MakeObjectName(char *name)
|
|||
return buf;
|
||||
}
|
||||
|
||||
int CmpObjectName(char *name1, char *name2)
|
||||
s32 CmpObjectName(char *name1, char *name2)
|
||||
{
|
||||
int temp = 0;
|
||||
s32 temp = 0;
|
||||
return strcmp(name1, name2);
|
||||
}
|
||||
|
||||
|
|
@ -1054,7 +1054,7 @@ static inline s32 FindClusterName(char *name)
|
|||
return -1;
|
||||
}
|
||||
|
||||
static inline int FindMotionClusterName(char *name)
|
||||
static inline s32 FindMotionClusterName(char *name)
|
||||
{
|
||||
s32 i;
|
||||
HsfCluster *cluster;
|
||||
|
|
@ -1085,7 +1085,7 @@ static inline s32 FindAttributeName(char *name)
|
|||
return -1;
|
||||
}
|
||||
|
||||
static inline int FindMotionAttributeName(char *name)
|
||||
static inline s32 FindMotionAttributeName(char *name)
|
||||
{
|
||||
s32 i;
|
||||
HsfAttribute *attribute;
|
||||
|
|
|
|||
|
|
@ -1500,7 +1500,7 @@ void Hu3DLLightInfinitytSet(s16 dataIndex, s16 lightIndex) {
|
|||
Hu3DLightInfinitytSet(light);
|
||||
}
|
||||
|
||||
inline void Hu3DLightPointSet(LightData *light, u16 arg1, f32 arg8, f32 arg9) {
|
||||
inline void Hu3DLightPointSet(LightData *light, f32 arg8, f32 arg9, u16 arg1) {
|
||||
light->unk_00 &= 0xFF00;
|
||||
light->unk_00 |= 2;
|
||||
light->unk_04 = arg8;
|
||||
|
|
@ -1508,19 +1508,19 @@ inline void Hu3DLightPointSet(LightData *light, u16 arg1, f32 arg8, f32 arg9) {
|
|||
light->unk_02 = arg1;
|
||||
}
|
||||
|
||||
void Hu3DGLightPointSet(s16 arg0, u16 arg1, f32 arg8, f32 arg9) {
|
||||
void Hu3DGLightPointSet(s16 arg0, f32 arg8, f32 arg9, u16 arg1) {
|
||||
LightData* light = &Hu3DGlobalLight[arg0];
|
||||
|
||||
Hu3DLightPointSet(light, arg1, arg8, arg9);
|
||||
Hu3DLightPointSet(light, arg8, arg9, arg1);
|
||||
}
|
||||
|
||||
void Hu3DLLightPointSet(s16 arg0, s16 arg1, u16 arg2, f32 arg8, f32 arg9) {
|
||||
void Hu3DLLightPointSet(s16 arg0, s16 arg1, f32 arg8, f32 arg9, u16 arg2) {
|
||||
ModelData* data;
|
||||
LightData* light;
|
||||
|
||||
data = &Hu3DData[arg0];
|
||||
light = &Hu3DLocalLight[data->unk_38[arg1]];
|
||||
Hu3DLightPointSet(light, arg2, arg8, arg9);
|
||||
Hu3DLightPointSet(light, arg8, arg9, arg2);
|
||||
}
|
||||
|
||||
void Hu3DGLightKill(s16 index) {
|
||||
|
|
@ -1755,7 +1755,7 @@ s32 Hu3DModelLightInfoSet(s16 arg0, s16 arg1) {
|
|||
Hu3DGLightSpotSet(sp12, 2, var_r18->light.cutoff);
|
||||
break;
|
||||
case 1:
|
||||
Hu3DGLightPointSet(sp12, 2, var_r18->data.base.scale.x - var_r18->data.base.rot.z, 1.0f);
|
||||
Hu3DGLightPointSet(sp12, var_r18->data.base.scale.x - var_r18->data.base.rot.z, 1.0f, 2);
|
||||
Hu3DGLightPosSet(sp12, var_r18->light.pos.x, var_r18->light.pos.y, var_r18->light.pos.z, var_r18->light.target.x, var_r18->light.target.y, var_r18->light.target.z);
|
||||
break;
|
||||
case 2:
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ void HuSysBeforeRender()
|
|||
|
||||
void HuSysDoneRender(s32 retrace_count)
|
||||
{
|
||||
int retrace_dist;
|
||||
s32 retrace_dist;
|
||||
if(DemoStatEnable) {
|
||||
GXDrawDone();
|
||||
DEMOUpdateStats(1);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "game/jmp.h"
|
||||
|
||||
int gcsetjmp(register jmp_buf *jump) {
|
||||
s32 gcsetjmp(register jmp_buf *jump) {
|
||||
// clang-format off
|
||||
asm {
|
||||
mflr r5
|
||||
|
|
@ -36,7 +36,7 @@ int gcsetjmp(register jmp_buf *jump) {
|
|||
}
|
||||
|
||||
// clang-format off
|
||||
asm int gclongjmp(register jmp_buf *jump, register int status) {
|
||||
asm s32 gclongjmp(register jmp_buf *jump, register s32 status) {
|
||||
nofralloc
|
||||
lwz r5, jump->lr
|
||||
lwz r6, jump->cr
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ static void *HeapTbl[HEAP_MAX];
|
|||
|
||||
void HuMemInitAll(void)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
void *ptr;
|
||||
u32 free_size;
|
||||
for(i=0; i<4; i++) {
|
||||
|
|
|
|||
|
|
@ -31,30 +31,30 @@ typedef struct seq_info {
|
|||
s32 time_max;
|
||||
} SeqInfo;
|
||||
|
||||
static int SeqInitTimer(SeqWork *work, va_list params);
|
||||
static int SeqUpdateTimer(SeqWork *work);
|
||||
static s32 SeqInitTimer(SeqWork *work, va_list params);
|
||||
static s32 SeqUpdateTimer(SeqWork *work);
|
||||
|
||||
static int SeqInitType2(SeqWork *work, va_list params);
|
||||
static int SeqUpdateType2(SeqWork *work);
|
||||
static s32 SeqInitType2(SeqWork *work, va_list params);
|
||||
static s32 SeqUpdateType2(SeqWork *work);
|
||||
|
||||
static int SeqInitMGBasic(SeqWork *work, va_list params);
|
||||
static int SeqUpdateMGBasic(SeqWork *work);
|
||||
static int SeqInitMGCommon(SeqWork *work, va_list params);
|
||||
static int SeqUpdateMG1vs3(SeqWork *work);
|
||||
static int SeqUpdateMGBattle(SeqWork *work);
|
||||
static int SeqUpdateMGStory(SeqWork *work);
|
||||
static int SeqUpdateMG2vs2(SeqWork *work);
|
||||
static int SeqUpdateMGBowser(SeqWork *work);
|
||||
static s32 SeqInitMGBasic(SeqWork *work, va_list params);
|
||||
static s32 SeqUpdateMGBasic(SeqWork *work);
|
||||
static s32 SeqInitMGCommon(SeqWork *work, va_list params);
|
||||
static s32 SeqUpdateMG1vs3(SeqWork *work);
|
||||
static s32 SeqUpdateMGBattle(SeqWork *work);
|
||||
static s32 SeqUpdateMGStory(SeqWork *work);
|
||||
static s32 SeqUpdateMG2vs2(SeqWork *work);
|
||||
static s32 SeqUpdateMGBowser(SeqWork *work);
|
||||
|
||||
static int SeqInitWin(SeqWork *work, va_list params);
|
||||
static int SeqUpdateWin(SeqWork *work);
|
||||
static int SeqInitDraw(SeqWork *work, va_list params);
|
||||
static int SeqUpdateDraw(SeqWork *work);
|
||||
static int SeqInitRecord(SeqWork *work, va_list params);
|
||||
static int SeqUpdateRecord(SeqWork *work);
|
||||
static s32 SeqInitWin(SeqWork *work, va_list params);
|
||||
static s32 SeqUpdateWin(SeqWork *work);
|
||||
static s32 SeqInitDraw(SeqWork *work, va_list params);
|
||||
static s32 SeqUpdateDraw(SeqWork *work);
|
||||
static s32 SeqInitRecord(SeqWork *work, va_list params);
|
||||
static s32 SeqUpdateRecord(SeqWork *work);
|
||||
|
||||
static int SeqInitFlip(SeqWork *work, va_list params);
|
||||
static int SeqUpdateFlip(SeqWork *work);
|
||||
static s32 SeqInitFlip(SeqWork *work, va_list params);
|
||||
static s32 SeqUpdateFlip(SeqWork *work);
|
||||
|
||||
OverlayID mgSeqOvlPrev = OVL_INVALID;
|
||||
|
||||
|
|
@ -118,7 +118,7 @@ static u8 seqDoneF;
|
|||
u8 lbl_801D3D94;
|
||||
static s16 seqSpeed;
|
||||
static s16 seqPauseF;
|
||||
static s32 seqRecordVal;
|
||||
static int seqRecordVal;
|
||||
static s32 pauseWaitF;
|
||||
static s32 pauseExitF;
|
||||
static s32 pauseActiveF;
|
||||
|
|
@ -130,7 +130,7 @@ void fn_80036BC8(void);
|
|||
|
||||
void MGSeqInit(void)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
SeqWork *work;
|
||||
work = &seqWorkData[0];
|
||||
for(i=8; i!=0; i--, work++) {
|
||||
|
|
@ -204,8 +204,8 @@ static s16 CreateSeq(s16 seq_no, va_list params)
|
|||
{
|
||||
SeqWork *work;
|
||||
SeqInfo *info;
|
||||
int i;
|
||||
int temp;
|
||||
s32 i;
|
||||
s32 temp;
|
||||
work = seqWorkData;
|
||||
info = &seqInfoTbl[(u8)seq_no];
|
||||
for(i=0; i<8; i++, work++) {
|
||||
|
|
@ -269,7 +269,7 @@ u8 MGSeqStatGet(s16 id)
|
|||
SeqWork *work;
|
||||
u8 ret = 0;
|
||||
if(id < 0) {
|
||||
int i;
|
||||
s32 i;
|
||||
work = seqWorkData;
|
||||
for(i=8; i != 0; i--, work++) {
|
||||
ret |= work->stat;
|
||||
|
|
@ -334,7 +334,7 @@ void MGSeqStub(void)
|
|||
|
||||
void MGSeqSprKill(SeqWork *work)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
for(i=0; i<16; i++) {
|
||||
if(work->spr_grp[i] >= 0) {
|
||||
HuSprGrpKill(work->spr_grp[i]);
|
||||
|
|
@ -350,7 +350,7 @@ static void *SeqReadFile(s32 file)
|
|||
return HuAR_ARAMtoMRAMFileRead(file, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
}
|
||||
|
||||
static int SeqInitTimer(SeqWork *work, va_list params)
|
||||
static s32 SeqInitTimer(SeqWork *work, va_list params)
|
||||
{
|
||||
AnimData *spr_anim;
|
||||
s16 sprite;
|
||||
|
|
@ -407,7 +407,7 @@ static int SeqInitTimer(SeqWork *work, va_list params)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateTimer(SeqWork *work)
|
||||
static s32 SeqUpdateTimer(SeqWork *work)
|
||||
{
|
||||
float scale;
|
||||
float tp_lvl;
|
||||
|
|
@ -563,7 +563,7 @@ static int SeqUpdateTimer(SeqWork *work)
|
|||
}
|
||||
}
|
||||
|
||||
static int SeqInitType2(SeqWork *work, va_list params)
|
||||
static s32 SeqInitType2(SeqWork *work, va_list params)
|
||||
{
|
||||
s16 spr_idx;
|
||||
s16 spr_grp;
|
||||
|
|
@ -662,7 +662,7 @@ static int SeqInitType2(SeqWork *work, va_list params)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateType2(SeqWork *work)
|
||||
static s32 SeqUpdateType2(SeqWork *work)
|
||||
{
|
||||
float tp_lvl;
|
||||
s16 spr_grp;
|
||||
|
|
@ -920,7 +920,7 @@ static float ForceDefine480()
|
|||
|
||||
static void SeqPlayStartFX(void);
|
||||
|
||||
static int SeqInitMGBasic(SeqWork *work, va_list params)
|
||||
static s32 SeqInitMGBasic(SeqWork *work, va_list params)
|
||||
{
|
||||
s16 i;
|
||||
s16 word_grp;
|
||||
|
|
@ -967,7 +967,7 @@ static int SeqInitMGBasic(SeqWork *work, va_list params)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateMGBasic(SeqWork *work)
|
||||
static s32 SeqUpdateMGBasic(SeqWork *work)
|
||||
{
|
||||
s16 idx;
|
||||
float scale;
|
||||
|
|
@ -1130,7 +1130,7 @@ static int SeqUpdateMGBasic(SeqWork *work)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqInitMGCommon(SeqWork *work, va_list params)
|
||||
static s32 SeqInitMGCommon(SeqWork *work, va_list params)
|
||||
{
|
||||
s16 i;
|
||||
float tp_lvl;
|
||||
|
|
@ -1204,7 +1204,7 @@ static int SeqInitMGCommon(SeqWork *work, va_list params)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateMGBattle(SeqWork *work)
|
||||
static s32 SeqUpdateMGBattle(SeqWork *work)
|
||||
{
|
||||
s16 idx;
|
||||
float scale;
|
||||
|
|
@ -1446,7 +1446,7 @@ static int SeqUpdateMGBattle(SeqWork *work)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateMG1vs3(SeqWork *work)
|
||||
static s32 SeqUpdateMG1vs3(SeqWork *work)
|
||||
{
|
||||
s16 idx;
|
||||
float scale;
|
||||
|
|
@ -1652,7 +1652,7 @@ static int SeqUpdateMG1vs3(SeqWork *work)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateMGStory(SeqWork *work)
|
||||
static s32 SeqUpdateMGStory(SeqWork *work)
|
||||
{
|
||||
s16 idx;
|
||||
float scale;
|
||||
|
|
@ -1859,7 +1859,7 @@ static int SeqUpdateMGStory(SeqWork *work)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateMG2vs2(SeqWork *work)
|
||||
static s32 SeqUpdateMG2vs2(SeqWork *work)
|
||||
{
|
||||
s16 idx;
|
||||
float scale;
|
||||
|
|
@ -2036,7 +2036,7 @@ static int SeqUpdateMG2vs2(SeqWork *work)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqInitFlip(SeqWork *work, va_list params)
|
||||
static s32 SeqInitFlip(SeqWork *work, va_list params)
|
||||
{
|
||||
s16 i;
|
||||
s16 word_grp;
|
||||
|
|
@ -2117,7 +2117,7 @@ static int SeqInitFlip(SeqWork *work, va_list params)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateFlip(SeqWork *work)
|
||||
static s32 SeqUpdateFlip(SeqWork *work)
|
||||
{
|
||||
s16 idx;
|
||||
float scale;
|
||||
|
|
@ -2285,7 +2285,7 @@ static int SeqUpdateFlip(SeqWork *work)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateMGBowser(SeqWork *work)
|
||||
static s32 SeqUpdateMGBowser(SeqWork *work)
|
||||
{
|
||||
s16 idx;
|
||||
float scale;
|
||||
|
|
@ -2500,7 +2500,7 @@ static int SeqUpdateMGBowser(SeqWork *work)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqInitDraw(SeqWork *work, va_list params)
|
||||
static s32 SeqInitDraw(SeqWork *work, va_list params)
|
||||
{
|
||||
s16 word_grp;
|
||||
work->state = 2;
|
||||
|
|
@ -2529,7 +2529,7 @@ static int SeqInitDraw(SeqWork *work, va_list params)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateDraw(SeqWork *work)
|
||||
static s32 SeqUpdateDraw(SeqWork *work)
|
||||
{
|
||||
s16 idx;
|
||||
float scale;
|
||||
|
|
@ -2700,9 +2700,9 @@ static s16 winnerNameW[8];
|
|||
#define GET_WIN_KANAF() ((seqLanguage == 0) ? 1 : 0)
|
||||
|
||||
|
||||
static int SeqInitWin(SeqWork *work, va_list params)
|
||||
static s32 SeqInitWin(SeqWork *work, va_list params)
|
||||
{
|
||||
s32 win_type = va_arg(params, int);
|
||||
int win_type = va_arg(params, int);
|
||||
s16 word_idx;
|
||||
s16 word_grp;
|
||||
s32 i;
|
||||
|
|
@ -2731,7 +2731,7 @@ static int SeqInitWin(SeqWork *work, va_list params)
|
|||
num_winners = 0;
|
||||
work->win_scale = 1.0f;
|
||||
for(j=0; j<4; j++) {
|
||||
s32 winner = va_arg(params, int);
|
||||
int winner = va_arg(params, int);
|
||||
if(winner < 0) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -2825,7 +2825,7 @@ static int SeqInitWin(SeqWork *work, va_list params)
|
|||
}
|
||||
|
||||
|
||||
static int SeqUpdateWin(SeqWork *work)
|
||||
static s32 SeqUpdateWin(SeqWork *work)
|
||||
{
|
||||
s32 idx;
|
||||
float tp_lvl;
|
||||
|
|
@ -2948,7 +2948,7 @@ static int SeqUpdateWin(SeqWork *work)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqInitRecord(SeqWork *work, va_list params)
|
||||
static s32 SeqInitRecord(SeqWork *work, va_list params)
|
||||
{
|
||||
AnimData *spr_data;
|
||||
s16 spr_grp;
|
||||
|
|
@ -3063,7 +3063,7 @@ static int SeqInitRecord(SeqWork *work, va_list params)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int SeqUpdateRecord(SeqWork *work)
|
||||
static s32 SeqUpdateRecord(SeqWork *work)
|
||||
{
|
||||
s16 group;
|
||||
if(_CheckFlag(0x1000C)) {
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ void omDLLDBGOut(void)
|
|||
|
||||
void omDLLInit(FileListEntry *ovl_list)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
OSReport("DLL DBG OUT\n");
|
||||
for(i=0; i<OM_DLL_MAX; i++) {
|
||||
omDLLinfoTbl[i] = NULL;
|
||||
|
|
@ -24,9 +24,9 @@ void omDLLInit(FileListEntry *ovl_list)
|
|||
omDLLFileList = ovl_list;
|
||||
}
|
||||
|
||||
int omDLLStart(s16 overlay, s16 flag)
|
||||
s32 omDLLStart(s16 overlay, s16 flag)
|
||||
{
|
||||
int dllno;
|
||||
s32 dllno;
|
||||
OSReport("DLLStart %d %d\n", overlay, flag);
|
||||
dllno = omDLLSearch(overlay);
|
||||
if(dllno >= 0 && !flag) {
|
||||
|
|
|
|||
|
|
@ -34,12 +34,12 @@ omObjData *omDBGSysKeyObj;
|
|||
Process *omwatchproc;
|
||||
OverlayID omnextovl;
|
||||
OverlayID omcurovl;
|
||||
int omcurdll;
|
||||
int omovlhisidx;
|
||||
int omovlevtno;
|
||||
int omnextovlevtno;
|
||||
int omovlstat;
|
||||
static int omnextovlstat;
|
||||
s32 omcurdll;
|
||||
s32 omovlhisidx;
|
||||
s32 omovlevtno;
|
||||
s32 omnextovlevtno;
|
||||
s32 omovlstat;
|
||||
static s32 omnextovlstat;
|
||||
char omUPauseFlag;
|
||||
s16 omSysExitReq;
|
||||
s16 omdispinfo;
|
||||
|
|
@ -52,7 +52,7 @@ OverlayID omprevovl = OVL_INVALID;
|
|||
static void omWatchOverlayProc(void);
|
||||
static void omInsertObj(Process *objman_process, omObjData *object);
|
||||
|
||||
void omMasterInit(int prio, FileListEntry *ovl_list, int ovl_count, OverlayID start_ovl)
|
||||
void omMasterInit(s32 prio, FileListEntry *ovl_list, s32 ovl_count, OverlayID start_ovl)
|
||||
{
|
||||
omDLLInit(ovl_list);
|
||||
omwatchproc = HuPrcCreate(omWatchOverlayProc, prio, 8192, 0);
|
||||
|
|
@ -106,7 +106,7 @@ static void omWatchOverlayProc(void)
|
|||
}
|
||||
}
|
||||
|
||||
void omOvlCallEx(OverlayID overlay, s16 arg2, int event, int stat)
|
||||
void omOvlCallEx(OverlayID overlay, s16 arg2, s32 event, s32 stat)
|
||||
{
|
||||
OSReport("objman>Call New Ovl %d(%d)\n", overlay, arg2);
|
||||
if(omovlhisidx >= OM_OVL_HIS_MAX) {
|
||||
|
|
@ -119,7 +119,7 @@ void omOvlCallEx(OverlayID overlay, s16 arg2, int event, int stat)
|
|||
omOvlGotoEx(overlay, arg2, event, stat);
|
||||
}
|
||||
|
||||
void omOvlGotoEx(OverlayID overlay, s16 arg2, int event, int stat)
|
||||
void omOvlGotoEx(OverlayID overlay, s16 arg2, s32 event, s32 stat)
|
||||
{
|
||||
omprevovl = omcurovl;
|
||||
if(omcurovl >= 0) {
|
||||
|
|
@ -162,7 +162,7 @@ void omOvlKill(s16 arg)
|
|||
omDBGSysKeyObj = NULL;
|
||||
}
|
||||
|
||||
void omOvlHisChg(s32 level, OverlayID overlay, int event, int stat)
|
||||
void omOvlHisChg(s32 level, OverlayID overlay, s32 event, s32 stat)
|
||||
{
|
||||
omOvlHisData *history;
|
||||
if(omovlhisidx-level < 0 || omovlhisidx-level >= OM_OVL_HIS_MAX) {
|
||||
|
|
@ -184,12 +184,12 @@ omOvlHisData *omOvlHisGet(s32 level)
|
|||
return &omovlhis[omovlhisidx-level];
|
||||
}
|
||||
|
||||
Process *omInitObjMan(s16 max_objs, int prio)
|
||||
Process *omInitObjMan(s16 max_objs, s32 prio)
|
||||
{
|
||||
omObjGroup *group_all;
|
||||
omObjData *obj_all;
|
||||
omObjData *obj;
|
||||
int i;
|
||||
s32 i;
|
||||
omObjMan *objman;
|
||||
Process *process;
|
||||
OSReport("objman>InitObjMan start\n");
|
||||
|
|
@ -245,7 +245,7 @@ void omDestroyObjMan(void)
|
|||
|
||||
omObjData *omAddObjEx(Process *objman_process, s16 prio, u16 mdlcnt, u16 mtncnt, s16 group, void (*func)(omObjData *))
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
omObjData *object;
|
||||
s16 next_idx;
|
||||
omObjMan *objman = objman_process->user_data;
|
||||
|
|
@ -408,7 +408,7 @@ void omDelMember(Process *objman_process, omObjData *object)
|
|||
|
||||
void omMakeGroupEx(Process *objman_process, u16 group, u16 max_objs)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
omObjMan *objman = objman_process->user_data;
|
||||
omObjGroup *group_ptr = &objman->group[group];
|
||||
if(group_ptr->obj != NULL) {
|
||||
|
|
@ -521,7 +521,7 @@ static void omDumpObj(Process *objman_process)
|
|||
{
|
||||
omObjMan *objman = objman_process->user_data;
|
||||
omObjData *obj_all = objman->obj;
|
||||
int i;
|
||||
s32 i;
|
||||
OSReport("=================== 現在登録されている OBJECT ==================\n");
|
||||
OSReport("STAT PRI GRPN MEMN PROG (TRA) (ROT) (SCA) mdlcnt mtncnt work[0] work[1] work[2] work[3] *data\n");
|
||||
for(i=0; i<objman->max_objs; i++) {
|
||||
|
|
@ -540,7 +540,7 @@ void omAllPause(BOOL pause)
|
|||
{
|
||||
Process *objman_process = HuPrcCurrentGet();
|
||||
omObjMan *objman = objman_process->user_data;
|
||||
int i;
|
||||
s32 i;
|
||||
if(pause) {
|
||||
for(i=0; i<objman->max_objs; i++) {
|
||||
if((objman->obj[i].stat & (OM_STAT_DELETED|OM_STAT_NOPAUSE)) == 0) {
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ void omSystemKeyCheck(omObjData *object)
|
|||
HuAudSeqPauseAll(0);
|
||||
}
|
||||
} else {
|
||||
int i;
|
||||
s32 i;
|
||||
s16 pause = 0;
|
||||
if(WipeStatGet() || omCurrentOvlGet() == OVL_INVALID || omSysExitReq) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
#include "game/memory.h"
|
||||
#include "dolphin/os.h"
|
||||
|
||||
#define PROCESS_MEMORY_RETADDR 0xA5A5A5A5
|
||||
#define FAKE_RETADDR 0xA5A5A5A5
|
||||
|
||||
#define EXEC_NORMAL 0
|
||||
#define EXEC_SLEEP 1
|
||||
|
|
@ -15,7 +15,6 @@ static Process *processcur;
|
|||
static u16 processcnt;
|
||||
u32 procfunc;
|
||||
|
||||
|
||||
void HuPrcInit(void)
|
||||
{
|
||||
processcnt = 0;
|
||||
|
|
@ -49,12 +48,9 @@ static void UnlinkProcess(Process **root, Process *process) {
|
|||
if (process->next) {
|
||||
process->next->prev = process->prev;
|
||||
}
|
||||
|
||||
if (process->prev) {
|
||||
process->prev->next = process->next;
|
||||
}
|
||||
|
||||
else {
|
||||
} else {
|
||||
*root = process->next;
|
||||
}
|
||||
}
|
||||
|
|
@ -75,13 +71,13 @@ Process *HuPrcCreate(void (*func)(void), u16 prio, u32 stack_size, s32 extra_siz
|
|||
return NULL;
|
||||
}
|
||||
HuMemHeapInit(heap, alloc_size);
|
||||
process = HuMemMemoryAlloc(heap, sizeof(Process), PROCESS_MEMORY_RETADDR);
|
||||
process = HuMemMemoryAlloc(heap, sizeof(Process), FAKE_RETADDR);
|
||||
process->heap = heap;
|
||||
process->exec = EXEC_NORMAL;
|
||||
process->stat = 0;
|
||||
process->prio = prio;
|
||||
process->sleep_time = 0;
|
||||
process->base_sp = ((u32)HuMemMemoryAlloc(heap, stack_size, PROCESS_MEMORY_RETADDR))+stack_size-8;
|
||||
process->base_sp = ((u32)HuMemMemoryAlloc(heap, stack_size, FAKE_RETADDR))+stack_size-8;
|
||||
gcsetjmp(&process->jump);
|
||||
process->jump.lr = (u32)func;
|
||||
process->jump.sp = process->base_sp;
|
||||
|
|
@ -144,7 +140,7 @@ Process *HuPrcCurrentGet()
|
|||
return processcur;
|
||||
}
|
||||
|
||||
static int SetKillStatusProcess(Process *process)
|
||||
static s32 SetKillStatusProcess(Process *process)
|
||||
{
|
||||
if(process->exec != EXEC_KILLED) {
|
||||
HuPrcWakeup(process);
|
||||
|
|
@ -155,7 +151,7 @@ static int SetKillStatusProcess(Process *process)
|
|||
}
|
||||
}
|
||||
|
||||
int HuPrcKill(Process *process)
|
||||
s32 HuPrcKill(Process *process)
|
||||
{
|
||||
if(process == NULL) {
|
||||
process = HuPrcCurrentGet();
|
||||
|
|
@ -196,7 +192,7 @@ void HuPrcEnd()
|
|||
gcTerminateProcess(process);
|
||||
}
|
||||
|
||||
void HuPrcSleep(int time)
|
||||
void HuPrcSleep(s32 time)
|
||||
{
|
||||
Process *process = HuPrcCurrentGet();
|
||||
if(time != 0 && process->exec != EXEC_KILLED) {
|
||||
|
|
@ -210,10 +206,7 @@ void HuPrcSleep(int time)
|
|||
|
||||
void HuPrcVSleep()
|
||||
{
|
||||
Process *process = HuPrcCurrentGet();
|
||||
if(!gcsetjmp(&process->jump)) {
|
||||
gclongjmp(&processjmpbuf, 1);
|
||||
}
|
||||
HuPrcSleep(0);
|
||||
}
|
||||
|
||||
void HuPrcWakeup(Process *process)
|
||||
|
|
@ -232,10 +225,10 @@ void HuPrcDestructorSet(void (*func)(void))
|
|||
process->dtor = func;
|
||||
}
|
||||
|
||||
void HuPrcCall(int tick)
|
||||
void HuPrcCall(s32 tick)
|
||||
{
|
||||
Process *process;
|
||||
int ret;
|
||||
s32 ret;
|
||||
processcur = processtop;
|
||||
ret = gcsetjmp(&processjmpbuf);
|
||||
while(1) {
|
||||
|
|
@ -293,12 +286,12 @@ void HuPrcCall(int tick)
|
|||
void *HuPrcMemAlloc(s32 size)
|
||||
{
|
||||
Process *process = HuPrcCurrentGet();
|
||||
return HuMemMemoryAlloc(process->heap, size, PROCESS_MEMORY_RETADDR);
|
||||
return HuMemMemoryAlloc(process->heap, size, FAKE_RETADDR);
|
||||
}
|
||||
|
||||
void HuPrcMemFree(void *ptr)
|
||||
{
|
||||
HuMemMemoryFree(ptr, PROCESS_MEMORY_RETADDR);
|
||||
HuMemMemoryFree(ptr, FAKE_RETADDR);
|
||||
}
|
||||
|
||||
void HuPrcSetStat(Process *process, u16 value)
|
||||
|
|
@ -311,7 +304,7 @@ void HuPrcResetStat(Process *process, u16 value)
|
|||
process->stat &= ~value;
|
||||
}
|
||||
|
||||
void HuPrcAllPause(int flag)
|
||||
void HuPrcAllPause(s32 flag)
|
||||
{
|
||||
Process *process = processtop;
|
||||
if(flag) {
|
||||
|
|
@ -333,7 +326,7 @@ void HuPrcAllPause(int flag)
|
|||
}
|
||||
}
|
||||
|
||||
void HuPrcAllUPause(int flag)
|
||||
void HuPrcAllUPause(s32 flag)
|
||||
{
|
||||
Process *process = processtop;
|
||||
if(flag) {
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) {
|
|||
}
|
||||
_SetFlag(FLAG_ID_MAKE(3, 0));
|
||||
result = HuCardWrite(&curFileInfo, addr, size, 0);
|
||||
_ClearFlag(FLAG_ID_MAKE(3, 0));
|
||||
_ClearFlag(FLAG_ID_MAKE(3, 0));
|
||||
if (result < 0) {
|
||||
HuWinExAnimOut(window);
|
||||
HuWinExCleanup(window);
|
||||
|
|
@ -552,18 +552,18 @@ s32 SLStatSet(s32 reportF) {
|
|||
}
|
||||
return CARD_RESULT_FATAL_ERROR;
|
||||
}
|
||||
CARDSetCommentAddress(&stat, 0);
|
||||
CARDSetIconAddress(&stat, 64);
|
||||
CARDSetBannerFormat(&stat, CARD_STAT_BANNER_C8);
|
||||
CARDSetIconFormat(&stat, 0, CARD_STAT_ICON_C8);
|
||||
CARDSetIconFormat(&stat, 1, CARD_STAT_ICON_C8);
|
||||
CARDSetIconFormat(&stat, 2, CARD_STAT_ICON_C8);
|
||||
CARDSetIconFormat(&stat, 3, CARD_STAT_ICON_C8);
|
||||
CARDSetCommentAddress(&stat, 0);
|
||||
CARDSetIconAddress(&stat, 64);
|
||||
CARDSetBannerFormat(&stat, CARD_STAT_BANNER_C8);
|
||||
CARDSetIconFormat(&stat, 0, CARD_STAT_ICON_C8);
|
||||
CARDSetIconFormat(&stat, 1, CARD_STAT_ICON_C8);
|
||||
CARDSetIconFormat(&stat, 2, CARD_STAT_ICON_C8);
|
||||
CARDSetIconFormat(&stat, 3, CARD_STAT_ICON_C8);
|
||||
CARDSetIconSpeed(&stat, 0, CARD_STAT_SPEED_MIDDLE);
|
||||
CARDSetIconSpeed(&stat, 1, CARD_STAT_SPEED_MIDDLE);
|
||||
CARDSetIconSpeed(&stat, 2, CARD_STAT_SPEED_MIDDLE);
|
||||
CARDSetIconSpeed(&stat, 3, CARD_STAT_SPEED_MIDDLE);
|
||||
CARDSetIconSpeed(&stat, 4, CARD_STAT_SPEED_END);
|
||||
CARDSetIconSpeed(&stat, 1, CARD_STAT_SPEED_MIDDLE);
|
||||
CARDSetIconSpeed(&stat, 2, CARD_STAT_SPEED_MIDDLE);
|
||||
CARDSetIconSpeed(&stat, 3, CARD_STAT_SPEED_MIDDLE);
|
||||
CARDSetIconSpeed(&stat, 4, CARD_STAT_SPEED_END);
|
||||
CARDSetIconAnim(&stat, CARD_STAT_ANIM_LOOP);
|
||||
|
||||
result = CARDSetStatus(curSlotNo, fileNo, &stat);
|
||||
|
|
@ -706,43 +706,43 @@ s16 SLMessOut(s16 mess) {
|
|||
slot_mess = 0;
|
||||
has_choice = 0;
|
||||
HuWinInit(1);
|
||||
SLKillSaveWin();
|
||||
SLKillSaveWin();
|
||||
switch (mess) {
|
||||
case 0:
|
||||
save_mess = MAKE_MESSID(16, 2);
|
||||
break;
|
||||
|
||||
|
||||
case 1:
|
||||
save_mess = MAKE_MESSID(16, 83);
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
break;
|
||||
|
||||
|
||||
case 2:
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
save_mess = MAKE_MESSID(16, 74);
|
||||
break;
|
||||
|
||||
|
||||
case 3:
|
||||
save_mess = MAKE_MESSID(16, 74);
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
break;
|
||||
|
||||
|
||||
case 4:
|
||||
save_mess = MAKE_MESSID(16, 74);
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
break;
|
||||
|
||||
|
||||
case 5:
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
save_mess = MAKE_MESSID(16, 4);
|
||||
has_choice = 1;
|
||||
break;
|
||||
|
||||
|
||||
case 6:
|
||||
save_mess = MAKE_MESSID(16, 54);
|
||||
break;
|
||||
|
|
@ -751,30 +751,30 @@ s16 SLMessOut(s16 mess) {
|
|||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
save_mess = MAKE_MESSID(16, 55);
|
||||
break;
|
||||
|
||||
|
||||
case 8:
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
save_mess = MAKE_MESSID(16, 57);
|
||||
break;
|
||||
|
||||
|
||||
case 9:
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
save_mess = MAKE_MESSID(16, 69);
|
||||
break;
|
||||
|
||||
|
||||
case 10:
|
||||
save_mess = MAKE_MESSID(16, 70);
|
||||
has_choice = 1;
|
||||
break;
|
||||
|
||||
|
||||
case 11:
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
save_mess = MAKE_MESSID(16, 72);
|
||||
break;
|
||||
|
||||
|
||||
case 12:
|
||||
save_mess = MAKE_MESSID(16, 80);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
#include "game/armem.h"
|
||||
#include "game/audio.h"
|
||||
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
#include "stdarg.h"
|
||||
#include "string.h"
|
||||
|
||||
|
|
@ -1784,7 +1784,7 @@ static s32 winPortraitTbl[] = {
|
|||
WIN_BOWSER_TALK_ANM,
|
||||
WIN_KKID_TALK_ANM,
|
||||
WIN_KOOPA_TALK_ANM,
|
||||
WIN_CONDOR_TALK_ANM,
|
||||
WIN_CONDOR_TALK_ANM,
|
||||
WIN_BOO_BLUE_TALK_ANM,
|
||||
WIN_DOLPHIN_TALK_ANM,
|
||||
WIN_BOO_RED_TALK_ANM,
|
||||
|
|
@ -1842,7 +1842,7 @@ void HuWinExAnimIn(s16 window) {
|
|||
HuSprScaleSet(window_ptr->group, 0, 1.0f, 0.0f);
|
||||
HuWinDispOn(window);
|
||||
for (i=0; i<=10; i++) {
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0 - 1.1 * cos(M_PI * (9.0f * i) / 180.0));
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0 - 1.1 * cosd(9.0f * i));
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0f);
|
||||
|
|
@ -1852,13 +1852,13 @@ void HuWinExAnimIn(s16 window) {
|
|||
HuWinDispOn(window);
|
||||
for (i=0; i<=20; i++) {
|
||||
if (i <= 10) {
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.1 * (1.0 - cos(M_PI * (9.0f * i) / 180.0)));
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.1 * (1.0 - cosd(9.0f * i)));
|
||||
} else {
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0f);
|
||||
}
|
||||
if (i > 10) {
|
||||
s16 time = i - 10;
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, 1.0 - 1.1 * cos(M_PI * (9.0f * time) / 180.0));
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, 1.0 - 1.1 * cosd(9.0f * time));
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1873,18 +1873,18 @@ void HuWinExAnimOut(s16 window) {
|
|||
_HuWinHomeClear(window_ptr);
|
||||
if (window_ptr->sprite_id[2] == -1) {
|
||||
for (i=0; i<=10; i++) {
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, cos(M_PI * (9.0f * i) / 180.0));
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, cosd(9.0f * i));
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinDispOff(window);
|
||||
} else {
|
||||
for (i=0; i<=15; i++) {
|
||||
if (i <= 10) {
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, cos(M_PI * (9.0f * i) / 180.0));
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, cosd(9.0f * i));
|
||||
}
|
||||
if (i > 5) {
|
||||
s16 time = i - 5;
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, cos(M_PI * (9.0f * time) / 180.0));
|
||||
HuSprScaleSet(window_ptr->group, 0, 1.0f, cosd(9.0f * time));
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1901,13 +1901,13 @@ void HuWinExAnimPopIn(s16 window, s16 portrait) {
|
|||
s16 i;
|
||||
|
||||
for (i=0; i<=10; i++) {
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, cos(M_PI * (9.0f * i) / 180.0));
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, cosd(9.0f * i));
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinSprKill(window, 2);
|
||||
HuWinExCreatePortrait(window, portrait, 48.0f, 48.0f);
|
||||
for (i=0; i<=10; i++) {
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, sin(M_PI * (9.0f * i) / 180.0));
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, sind(9.0f * i));
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprScaleSet(window_ptr->group, 2, 1.0f, 1.0f);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
s16 HuSysVWaitGet(s16 old);
|
||||
|
||||
typedef int (*fadeFunc)(void);
|
||||
typedef s32 (*fadeFunc)(void);
|
||||
|
||||
WipeState wipeData;
|
||||
BOOL wipeFadeInF;
|
||||
|
|
@ -15,9 +15,9 @@ static void WipeColorFill(GXColor color);
|
|||
static void WipeFrameStill(GXColor color);
|
||||
|
||||
|
||||
static int WipeNormalFade(void);
|
||||
static int WipeCrossFade(void);
|
||||
static int WipeDummyFade(void);
|
||||
static s32 WipeNormalFade(void);
|
||||
static s32 WipeCrossFade(void);
|
||||
static s32 WipeDummyFade(void);
|
||||
|
||||
static fadeFunc fadeInFunc[3] = { WipeNormalFade, WipeCrossFade, WipeDummyFade };
|
||||
static fadeFunc fadeOutFunc[3] = { WipeNormalFade, WipeCrossFade, WipeDummyFade };
|
||||
|
|
@ -25,7 +25,7 @@ static fadeFunc fadeOutFunc[3] = { WipeNormalFade, WipeCrossFade, WipeDummyFade
|
|||
void WipeInit(GXRenderModeObj *rmode)
|
||||
{
|
||||
WipeState *wipe;
|
||||
int i;
|
||||
s32 i;
|
||||
wipe = &wipeData;
|
||||
wipe->unk00 = 0;
|
||||
wipe->unk04 = 0;
|
||||
|
|
@ -46,7 +46,7 @@ void WipeInit(GXRenderModeObj *rmode)
|
|||
|
||||
void WipeExecAlways(void)
|
||||
{
|
||||
int i;
|
||||
s32 i;
|
||||
WipeState *wipe;
|
||||
wipe = &wipeData;
|
||||
switch(wipe->mode) {
|
||||
|
|
@ -151,12 +151,12 @@ u8 WipeStatGet(void)
|
|||
return wipeData.stat;
|
||||
}
|
||||
|
||||
static int WipeDummyFade(void)
|
||||
static s32 WipeDummyFade(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int WipeNormalFade(void)
|
||||
static s32 WipeNormalFade(void)
|
||||
{
|
||||
u8 alpha;
|
||||
WipeState *wipe = &wipeData;
|
||||
|
|
@ -192,9 +192,9 @@ static void WipeColorFill(GXColor color)
|
|||
WipeState *wipe;
|
||||
u16 ulx, lrx, uly, lry;
|
||||
wipe = &wipeData;
|
||||
ulx = (int)wipe->x;
|
||||
ulx = (s32)wipe->x;
|
||||
lrx = wipe->x+wipe->w;
|
||||
uly = (int)wipe->y;
|
||||
uly = (s32)wipe->y;
|
||||
lry = wipe->x+wipe->h+1;
|
||||
MTXOrtho(proj, uly, lry, ulx, lrx, 0, 10);
|
||||
GXSetProjection(proj, GX_ORTHOGRAPHIC);
|
||||
|
|
@ -227,7 +227,7 @@ static void WipeColorFill(GXColor color)
|
|||
GXSetChanMatColor(GX_COLOR0A0, colorN);
|
||||
}
|
||||
|
||||
static int WipeCrossFade(void)
|
||||
static s32 WipeCrossFade(void)
|
||||
{
|
||||
u32 size;
|
||||
u8 alpha;
|
||||
|
|
@ -273,9 +273,9 @@ static void WipeFrameStill(GXColor color)
|
|||
WipeState *wipe;
|
||||
u16 ulx, lrx, uly, lry;
|
||||
wipe = &wipeData;
|
||||
ulx = (int)wipe->x;
|
||||
ulx = (s32)wipe->x;
|
||||
lrx = wipe->x+wipe->w;
|
||||
uly = (int)wipe->y;
|
||||
uly = (s32)wipe->y;
|
||||
lry = wipe->x+wipe->h+1;
|
||||
MTXOrtho(proj, uly, lry, ulx, lrx, 0, 10);
|
||||
GXSetProjection(proj, GX_ORTHOGRAPHIC);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue