match m427/main

This commit is contained in:
CreateSource 2025-01-24 15:58:42 -05:00
parent d6da17b604
commit 2ab9cd144e
2 changed files with 970 additions and 0 deletions

12
include/REL/m427Dll.h Normal file
View file

@ -0,0 +1,12 @@
#include "dolphin.h"
#include "game/object.h"
void fn_1_32F4(Process*);
void fn_1_3A88(void);
void fn_1_E98C(Process*);
void fn_1_EC54(void);
void fn_1_110E8(s32, s32*);
void fn_1_111C0(s32, s32*);
void fn_1_11298(f32);
s32 fn_1_113F0(s32);
f32 fn_1_168FC(f32, f32, f32);

958
src/REL/m427Dll/main.c Normal file
View file

@ -0,0 +1,958 @@
#include "REL/m427Dll.h"
#include "ext_math.h"
#include "game/audio.h"
#include "game/gamework.h"
#include "game/gamework_data.h"
#include "game/hsfformat.h"
#include "game/hsfman.h"
#include "game/minigame_seq.h"
#include "game/objsub.h"
#include "game/wipe.h"
typedef struct M427DllStruct {
s32 unk0;
s32 unk4;
} M427DllStruct;
typedef struct M427DllStruct2 {
s32 unk0[3];
s32 unkC;
s32 unk10;
s32 unk14[7];
s32 unk30[7];
HsfVector2f unk4C[7];
f32 unk84;
f32 unk88;
s32 unk8C;
f32 unk90;
f32 unk94;
f32 unk98;
s32 unk9C;
s32 unkA0;
} M427DllStruct2; // sizeof 0xA4
typedef struct M427DllStruct3 {
Vec rot;
Vec cen;
f32 zoom;
} M427DllStruct3;
Process* lbl_1_bss_8C;
omObjData* lbl_1_bss_88;
s32 lbl_1_bss_84;
s32 lbl_1_bss_80;
s32 lbl_1_bss_7C;
s32 lbl_1_bss_78;
s32 lbl_1_bss_74;
f32 lbl_1_bss_6C[2];
s32 lbl_1_bss_68;
s32 lbl_1_bss_64;
s32 lbl_1_bss_60;
s32 lbl_1_bss_5C;
s32 lbl_1_bss_58;
s32 lbl_1_bss_54;
s32 lbl_1_bss_50;
s32 lbl_1_bss_4C;
omObjData* lbl_1_bss_48;
s32 lbl_1_bss_44;
M427DllStruct2* lbl_1_bss_40;
M427DllStruct lbl_1_bss_0[8];
void fn_1_29C(omObjData*);
void fn_1_300(omObjData*);
void fn_1_1664(omObjData*);
void fn_1_16C4(omObjData*);
void fn_1_1864(s32);
void fn_1_1954(void);
void fn_1_1F34(void);
void fn_1_2188(void);
void fn_1_21E8(s32, s32);
void fn_1_232C(s32);
void fn_1_2518(s32);
void fn_1_2704(void);
void fn_1_272C(void);
void fn_1_2790(void);
void fn_1_2B20(omObjData* object);
void fn_1_2B28(void);
void fn_1_2CE8(f32);
void fn_1_2EE0(void);
void fn_1_2F6C(f32);
void fn_1_3164(void);
M427DllStruct3 lbl_1_data_0[4] = {
{
{ -25.0f, 0.0f, 0.0f },
{ 0.0f, 275.0f, 0.0f },
1975.0f
},
{
{ 4.0f, 167.0f, 0.0f },
{ 57.0f, 475.0f, 198.0f },
3375.0f
},
{
{ -0.0f, -190.0f, 0.0f },
{ -90.0f, 50.0f, 800.0f },
1700.0f
},
{
{ 2.0f, 170.0f, 0.0f },
{ -400.0f, 175.0f, 127.0f },
2425.0f
}
};
void ObjectSetup(void) {
Process* var_r30;
s32 var_r31;
OSReport("******* M426ObjectSetup *********\n");
var_r30 = omInitObjMan(0x32, 0x2000);
lbl_1_bss_8C = var_r30;
omGameSysInit(var_r30);
fn_1_2790();
Hu3DLightAllKill();
Hu3DLighInit();
HuAudSndGrpSet(0x34);
lbl_1_bss_88 = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_29C);
lbl_1_bss_84 = 0;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
lbl_1_bss_78 = lbl_1_bss_74 = GWMGRecordGet(2);
if (lbl_1_bss_78 <= 0) {
lbl_1_bss_78 = lbl_1_bss_74 = 0xE10;
}
lbl_1_bss_68 = lbl_1_bss_64 = 0;
lbl_1_bss_60 = lbl_1_bss_5C = -1;
lbl_1_bss_58 = -1;
lbl_1_bss_54 = lbl_1_bss_50 = -1;
for (var_r31 = 0; var_r31 < 2; var_r31++) {
lbl_1_bss_6C[var_r31] = 0.0f;
}
for (var_r31 = 0; var_r31 < 8; var_r31++) {
lbl_1_bss_0[var_r31].unk0 = -1;
lbl_1_bss_0[var_r31].unk4 = 0;
}
}
void fn_1_29C(omObjData* arg0) {
fn_1_32F4(lbl_1_bss_8C);
fn_1_E98C(lbl_1_bss_8C);
fn_1_1954();
fn_1_21E8(0, 1);
arg0->func = fn_1_300;
}
void fn_1_300(omObjData* arg0) {
s32 sp10[2];
s32 sp8[2];
f32 var_f31;
f32 var_f30;
s32 var_r31;
s32 var_r30;
s32 var_r29;
s32 var_r28;
s32 var_r26;
switch (lbl_1_bss_84) {
case 0:
lbl_1_bss_80++;
if (lbl_1_bss_80 == 3) {
WipeCreate(1, 0, 0x3C);
lbl_1_bss_4C = 0;
fn_1_21E8(1, 1);
fn_1_2B28();
} else if ((lbl_1_bss_80 > 3) && (WipeStatGet() == 0)) {
lbl_1_bss_54 = HuAudFXPlay(0x657);
lbl_1_bss_50 = HuAudFXPlay(0x651);
lbl_1_bss_84 = 1;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 1:
lbl_1_bss_80++;
var_f31 = lbl_1_bss_80 / 300.0f;
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
}
fn_1_11298(sind(90.0f * var_f31));
if (++lbl_1_bss_7C >= 60.0f) {
lbl_1_bss_84 = 2;
lbl_1_bss_7C = 0;
}
break;
case 2:
lbl_1_bss_80++;
var_f31 = lbl_1_bss_80 / 300.0f;
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
}
fn_1_11298(sind(90.0f * var_f31));
var_f30 = sind(90.0f * (lbl_1_bss_7C / 240.0f));
fn_1_2CE8(var_f30 * var_f30);
if (++lbl_1_bss_7C >= 240.0f) {
lbl_1_bss_60 = MGSeqCreate(3, 0);
fn_1_2EE0();
lbl_1_bss_84 = 3;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 3:
if (lbl_1_bss_60 != -1) {
var_r28 = MGSeqStatGet(lbl_1_bss_60);
if (((var_r28 & 0x10) != 0) && (lbl_1_bss_58 == -1)) {
lbl_1_bss_58 = HuAudSeqPlay(0x49);
}
} else {
var_r28 = 0;
}
if ((lbl_1_bss_60 == -1) || (var_r28 == 0)) {
lbl_1_bss_84 = 4;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 4:
lbl_1_bss_80++;
var_r30 = lbl_1_bss_80;
if (var_r30 > 0x4650) {
var_r30 = 0x4650;
}
fn_1_2518(var_r30);
for (var_r31 = 0; var_r31 < 8; var_r31++) {
if (lbl_1_bss_0[var_r31].unk0 != -1) {
if (--lbl_1_bss_0[var_r31].unk4 <= 0) {
lbl_1_bss_0[var_r31].unk0 = -1;
lbl_1_bss_0[var_r31].unk4 = 0;
}
}
}
if (lbl_1_bss_80 == 0x3F48) {
lbl_1_bss_5C = MGSeqCreate(1, 0x708, -1, -1);
}
if (lbl_1_bss_5C != -1) {
var_r26 = (0x4650 - lbl_1_bss_80);
var_r30 = (var_r26 + 0x3A) / 60;
if (var_r30 < 0) {
var_r30 = 0;
}
MGSeqParamSet(lbl_1_bss_5C, 1, var_r30);
}
if (lbl_1_bss_68 != 0) {
if (lbl_1_bss_68 != 1 && lbl_1_bss_68 != 2) {
if (((s32)frand() & 1) != 0) {
lbl_1_bss_68 = 1;
} else {
lbl_1_bss_68 = 2;
}
}
if (lbl_1_bss_5C != -1) {
MGSeqParamSet(lbl_1_bss_5C, 2, -1);
}
lbl_1_bss_5C = -1;
lbl_1_bss_60 = MGSeqCreate(3, 1);
if (lbl_1_bss_58 != -1) {
HuAudSeqFadeOut(lbl_1_bss_58, 0x64);
}
for (var_r31 = 0; var_r31 < 8; var_r31++) {
if ((lbl_1_bss_0[var_r31].unk0 != -1) && (lbl_1_bss_0[var_r31].unk4 > 0)) {
HuAudFXFadeOut(lbl_1_bss_0[var_r31].unk0, 0x64);
}
}
HuAudFXFadeOut(lbl_1_bss_54, 0x64);
HuAudFXFadeOut(lbl_1_bss_50, 0x64);
if ((lbl_1_bss_68 != 0) && (lbl_1_bss_80 < lbl_1_bss_78)) {
if (lbl_1_bss_68 == 1) {
var_r29 = 0;
} else {
var_r29 = 1;
}
if (fn_1_113F0(var_r29) == 0) {
lbl_1_bss_74 = lbl_1_bss_80;
}
}
if ((lbl_1_bss_68 != 0) && (lbl_1_bss_80 <= 0xA8C)) {
if (lbl_1_bss_68 == 1) {
var_r29 = 0;
} else {
var_r29 = 1;
}
if (fn_1_113F0(var_r29) == 0) {
GWGameStat.present[0x34] = 1;
}
}
lbl_1_bss_84 = 5;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
} else {
if (lbl_1_bss_80 >= 0x4651) {
MGSeqParamSet(lbl_1_bss_5C, 1, 0);
MGSeqParamSet(lbl_1_bss_5C, 2, -1);
lbl_1_bss_5C = -1;
lbl_1_bss_60 = MGSeqCreate(3, 1);
if (lbl_1_bss_58 != -1) {
HuAudSeqFadeOut(lbl_1_bss_58, 0x64);
}
for (var_r31 = 0; var_r31 < 8; var_r31++) {
if ((lbl_1_bss_0[var_r31].unk0 != -1) && (lbl_1_bss_0[var_r31].unk4 > 0)) {
HuAudFXFadeOut(lbl_1_bss_0[var_r31].unk0, 0x64);
}
}
HuAudFXFadeOut(lbl_1_bss_54, 0x64);
HuAudFXFadeOut(lbl_1_bss_50, 0x64);
lbl_1_bss_64 = 1;
lbl_1_bss_84 = 5;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
}
break;
case 5:
if (lbl_1_bss_68 != 0) {
WipeCreate(2, 0, 0x3C);
WipeColorSet(0xFF, 0xFF, 0xFF);
lbl_1_bss_4C = 1;
lbl_1_bss_84 = 6;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
} else if ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0)) {
lbl_1_bss_84 = 0xA;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 6:
if ((WipeStatGet() == 0) && ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0))) {
lbl_1_bss_60 = -1;
fn_1_21E8(0, 0);
fn_1_3164();
HuAudFXAllStop();
HuAudFXPlay(0x65E);
lbl_1_bss_84 = 7;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 7:
if (++lbl_1_bss_80 > 5) {
WipeCreate(1, 0, 0x1E);
WipeColorSet(0xFF, 0xFF, 0xFF);
lbl_1_bss_4C = 0;
HuAudAUXVolSet(-1, -1);
fn_1_272C();
lbl_1_bss_84 = 8;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 8:
if (WipeStatGet() == 0) {
lbl_1_bss_84 = 0xA;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 10:
if (lbl_1_bss_68 != 0) {
var_f31 = sind((90.0f * (lbl_1_bss_80 / 180.0f)));
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
}
fn_1_11298(var_f31);
if (lbl_1_bss_80 > 30.0f) {
var_f30 = lbl_1_bss_7C / 150.0f;
lbl_1_bss_7C++;
if (var_f30 >= 1.0f) {
var_f30 = 1.0f;
}
var_f30 = sind(90.0f * var_f30);
fn_1_2F6C(var_f30);
}
if (++lbl_1_bss_80 > 180.0f) {
if (lbl_1_bss_68 == 1) {
fn_1_110E8(0, sp10);
fn_1_111C0(0, sp8);
} else {
fn_1_110E8(1, sp10);
fn_1_111C0(1, sp8);
}
GWPlayerCoinWinAdd(sp8[0], 10);
GWPlayerCoinWinAdd(sp8[1], 10);
if (lbl_1_bss_74 < lbl_1_bss_78) {
lbl_1_bss_78 = lbl_1_bss_74;
fn_1_232C(lbl_1_bss_78);
GWMGRecordSet(2, lbl_1_bss_78);
fn_1_2704();
lbl_1_bss_60 = MGSeqCreate(0xE, lbl_1_bss_78);
lbl_1_bss_7C = 0xB4;
lbl_1_bss_84 = 0xB;
lbl_1_bss_80 = 0;
} else {
lbl_1_bss_60 = MGSeqCreate(5, 3, sp10[0], sp10[1], -1, -1);
HuAudSStreamPlay(1);
lbl_1_bss_7C = 0xB4;
lbl_1_bss_84 = 0xC;
lbl_1_bss_80 = 0;
}
}
} else {
lbl_1_bss_60 = MGSeqCreate(3, 2);
HuAudSStreamPlay(4);
lbl_1_bss_7C = 0xB4;
lbl_1_bss_84 = 0xC;
lbl_1_bss_80 = 0;
}
break;
case 11:
if ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0)) {
if (lbl_1_bss_68 == 1) {
fn_1_110E8(0, sp10);
} else {
fn_1_110E8(1, sp10);
}
lbl_1_bss_60 = MGSeqCreate(5, 3, sp10[0], sp10[1], -1, -1);
HuAudSStreamPlay(1);
lbl_1_bss_7C = 0xB4;
lbl_1_bss_84 = 0xC;
lbl_1_bss_80 = 0;
}
break;
case 12:
if (++lbl_1_bss_80 >= 210.0f) {
WipeCreate(2, 0, 0x3C);
lbl_1_bss_4C = 1;
lbl_1_bss_84 = 0xD;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 13:
if (WipeStatGet() == 0) {
lbl_1_bss_84 = 0xE;
lbl_1_bss_80 = 0;
lbl_1_bss_7C = 0;
}
break;
case 14:
arg0->func = fn_1_1664;
break;
}
fn_1_1F34();
fn_1_16C4(arg0);
}
void fn_1_1664(omObjData* arg0) {
if (WipeStatGet() == 0) {
fn_1_EC54();
fn_1_3A88();
fn_1_2188();
CharModelKill(-1);
HuDataDirClose(0x3A0000);
MGSeqKillAll();
HuAudFadeOut(1);
omOvlReturnEx(1, 1);
}
}
void fn_1_16C4(omObjData* arg0) {
s32 var_r30;
var_r30 = 0;
if ((WipeStatGet() != 0) || (arg0->func == fn_1_1664)) {
return;
}
if (omSysExitReq != 0) {
var_r30 = 1;
}
if (var_r30 != 0) {
if ((s32) lbl_1_bss_4C == 0) {
WipeCreate(2, 0, 0x3C);
}
lbl_1_bss_4C = 1;
HuAudStreamFadeOut(0x1E);
arg0->func = fn_1_1664;
}
}
s32 fn_1_1788(void) {
return lbl_1_bss_84;
}
void fn_1_1798(s32 arg0, f32 arg8) {
if (arg8 < 0.0f) {
arg8 = 0.0f;
} else if (arg8 > 1.0f) {
arg8 = 1.0f;
}
lbl_1_bss_6C[arg0] = arg8;
if (lbl_1_bss_6C[arg0] >= 1.0f) {
fn_1_1864(1 << arg0);
}
}
void fn_1_1864(s32 arg0) {
lbl_1_bss_68 |= arg0;
}
s32 fn_1_1884(void) {
if (lbl_1_bss_68 != 0) {
if (lbl_1_bss_68 != 1 && lbl_1_bss_68 != 2) {
if (((s32)frand() & 1) != 0) {
lbl_1_bss_68 = 1;
} else {
lbl_1_bss_68 = 2;
}
}
if (lbl_1_bss_68 == 1) {
return 0;
} else {
return 1;
}
} else {
if (lbl_1_bss_64 != 0) {
return 3;
} else {
return -1;
}
}
}
s32 lbl_1_data_D0[2] = { 0x3A0029, 0x3A002A };
s16 lbl_1_data_D8[2] = { -24, 24 };
s16 lbl_1_data_DC[2] = { -10, 10 };
s16 lbl_1_data_E0[2] = { 350, 96 };
void fn_1_1954(void) {
f32 temp_f28;
f32 temp_f29;
f32 var_f31;
f32 var_f30;
s32 var_r29;
s32 var_r31;
M427DllStruct2* var_r30;
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA4, 0x10000000);
lbl_1_bss_40 = var_r30;
var_r30->unk9C = 0;
var_r30->unkA0 = 0;
var_r31 = espEntry(0x3A0028, 1, 0);
var_r30->unk0[0] = var_r31;
espPriSet(var_r31, 0xFF);
espDispOn(var_r31);
espDrawNoSet(var_r31, 0);
espAttrSet(var_r31, 1);
espBankSet(var_r31, 0);
espPosSet(var_r31, 288.0, 240.0);
for (var_r29 = 0; var_r29 < 2; var_r29++) {
var_r31 = espEntry(lbl_1_data_D0[var_r29], 1, 0);
var_r30->unk0[var_r29 + 1] = var_r31;
espPriSet(var_r31, 0xC8);
espDispOn(var_r31);
espDrawNoSet(var_r31, 0);
espAttrSet(var_r31, 1);
espBankSet(var_r31, 0);
espPosSet(var_r31, 288.0f + lbl_1_data_D8[var_r29], 240.0);
}
temp_f28 = 288.0f;
temp_f29 = 400.0f;
var_f31 = 288.0f;
var_f30 = temp_f29;
var_r31 = espEntry(0x3A002B, 1, 0);
var_r30->unkC = var_r31;
espPriSet(var_r31, 0xBE);
espDispOn(var_r31);
espDrawNoSet(var_r31, 0);
espAttrSet(var_r31, 1);
espBankSet(var_r31, 0);
espTPLvlSet(var_r31, 0.5);
espColorSet(var_r31, 0x80, 0x80, 0x80);
espScaleSet(var_r31, 1.25, 1.5);
espPosSet(var_r31, var_f31, var_f30);
var_f31 = 248.0f;
var_f30 = temp_f29 - 8.0f;
var_r31 = espEntry(0x610037, 1, 0);
var_r30->unk10 = var_r31;
espPriSet(var_r31, 0xBE);
espDispOn(var_r31);
espDrawNoSet(var_r31, 0);
espAttrSet(var_r31, 1);
espBankSet(var_r31, 0);
espScaleSet(var_r31, 1.0, 1.0);
espPosSet(var_r31, var_f31 - 18.0f, var_f30);
var_r30->unk84 = ((var_f31 - 18.0f) - temp_f28);
var_r30->unk88 = (var_f30 - temp_f29);
var_r30->unk8C = -1;
var_r30->unk98 = 1.0f;
var_r30->unk90 = temp_f28;
var_r30->unk94 = temp_f29;
var_f31 = 248.0f;
var_f30 = temp_f29 - 8.0f;
for (var_r29 = 0; var_r29 < 7; var_r29++) {
var_r31 = espEntry(0x610030, 1, 0);
var_r30->unk14[var_r29] = var_r31;
espPriSet(var_r31, 0xB4);
espDispOn(var_r31);
espDrawNoSet(var_r31, 0);
espAttrSet(var_r31, 9);
espScaleSet(var_r31, 1.0, 1.0);
espPosSet(var_r31, var_f31, var_f30);
if (var_r29 == 1) {
espBankSet(var_r31, 10);
} else if (var_r29 == 4) {
espBankSet(var_r31, 11);
} else {
espBankSet(var_r31, 0);
}
var_r30->unk4C[var_r29].x = var_f31 - temp_f28;
var_r30->unk4C[var_r29].y = var_f30 - temp_f29;
var_f31 += 16.0f;
}
var_f31 = 248.0f;
var_f30 = 8.0f + temp_f29;
for (var_r29 = 0; var_r29 < 7; var_r29++) {
var_r31 = espEntry(0x610031, 1, 0);
var_r30->unk30[var_r29] = var_r31;
espPriSet(var_r31, 0xB4);
espDispOn(var_r31);
espDrawNoSet(var_r31, 0);
espAttrSet(var_r31, 1);
espScaleSet(var_r31, 1.0, 1.0);
espPosSet(var_r31, var_f31, var_f30);
if (var_r29 == 1) {
espBankSet(var_r31, 10);
} else if (var_r29 == 4) {
espBankSet(var_r31, 11);
} else {
espBankSet(var_r31, 0);
}
var_f31 += 16.0f;
}
fn_1_232C(lbl_1_bss_78);
fn_1_2518(0);
}
void fn_1_1F34(void) {
f32 var_f30;
f32 temp_f31;
s32 var_r29;
s32 var_r30;
M427DllStruct2* temp_r31;
temp_r31 = lbl_1_bss_40;
for (var_r30 = 0; var_r30 < 2; var_r30++) {
var_r29 = temp_r31->unk0[var_r30 + 1];
var_f30 = lbl_1_data_E0[0] + (lbl_1_bss_6C[var_r30] * (lbl_1_data_E0[1] - lbl_1_data_E0[0]));
espPosSet(var_r29, 288.0f + lbl_1_data_DC[var_r30], var_f30);
}
if (temp_r31->unk8C != -1) {
if (temp_r31->unk8C == 0) {
if ((temp_r31->unk98 += 0.02f) >= 1.2f) {
temp_r31->unk98 = 1.2f;
temp_r31->unk8C = 1;
}
} else {
if ((temp_r31->unk98 -= 0.04f) <= 1.0f) {
temp_r31->unk98 = 1.0f;
temp_r31->unk8C = 0;
}
}
temp_f31 = temp_r31->unk98;
for (var_r30 = 0; var_r30 < 7; var_r30++) {
var_r29 = temp_r31->unk14[var_r30];
espScaleSet(var_r29, temp_f31, temp_f31);
}
var_r29 = temp_r31->unk10;
espScaleSet(var_r29, temp_f31, temp_f31);
}
}
void fn_1_2188(void) {
M427DllStruct2* temp_r31;
s32 var_r30;
temp_r31 = lbl_1_bss_40;
for (var_r30 = 0; var_r30 < 3; var_r30++) {
espKill(temp_r31->unk0[var_r30]);
}
espKill(temp_r31->unkC);
}
void fn_1_21E8(s32 arg0, s32 arg1) {
M427DllStruct2* temp_r31;
s32 var_r30;
temp_r31 = lbl_1_bss_40;
for (var_r30 = 0; var_r30 < 3; var_r30++) {
if (arg0 == 0) {
espDispOff(temp_r31->unk0[var_r30]);
} else {
espDispOn(temp_r31->unk0[var_r30]);
}
}
if (arg1 != 0) {
if (arg0 == 0) {
espDispOff(temp_r31->unkC);
} else {
espDispOn(temp_r31->unkC);
}
if (arg0 == 0) {
espDispOff(temp_r31->unk10);
} else {
espDispOn(temp_r31->unk10);
}
for (var_r30 = 0; var_r30 < 7; var_r30++) {
if (arg0 == 0) {
espDispOff(temp_r31->unk14[var_r30]);
} else {
espDispOn(temp_r31->unk14[var_r30]);
}
}
for (var_r30 = 0; var_r30 < 7; var_r30++) {
if (arg0 == 0) {
espDispOff(temp_r31->unk30[var_r30]);
} else {
espDispOn(temp_r31->unk30[var_r30]);
}
}
}
}
void fn_1_232C(s32 arg0) {
M427DllStruct2* temp_r29;
f32 temp_f0;
s32 var_r31;
temp_r29 = lbl_1_bss_40;
temp_r29->unk9C = arg0;
var_r31 = arg0 / 3600;
arg0 -= var_r31 * 3600;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk14[0], var_r31);
var_r31 = (arg0 / 600);
arg0 -= var_r31 * 600;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk14[2], var_r31);
var_r31 = arg0 / 60;
arg0 -= var_r31 * 60;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk14[3], var_r31);
arg0 = 100.0f * (arg0 / 60.0f);
var_r31 = arg0 / 10;
arg0 -= var_r31 * 10;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk14[5], var_r31);
var_r31 = arg0;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk14[6], var_r31);
}
void fn_1_2518(s32 arg0) {
M427DllStruct2* temp_r29;
f32 temp_f0;
s32 var_r31;
temp_r29 = lbl_1_bss_40;
temp_r29->unkA0 = arg0;
var_r31 = arg0 / 3600;
arg0 -= var_r31 * 3600;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk30[0], var_r31);
var_r31 = (arg0 / 600);
arg0 -= var_r31 * 600;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk30[2], var_r31);
var_r31 = arg0 / 60;
arg0 -= var_r31 * 60;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk30[3], var_r31);
arg0 = 100.0f * (arg0 / 60.0f);
var_r31 = arg0 / 10;
arg0 -= var_r31 * 10;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk30[5], var_r31);
var_r31 = arg0;
if (var_r31 > 9) {
var_r31 = 9;
} else if (var_r31 < 0) {
var_r31 = 0;
}
espBankSet(temp_r29->unk30[6], var_r31);
}
void fn_1_2704(void) {
M427DllStruct2* var_r31;
var_r31 = lbl_1_bss_40;
var_r31->unk8C = 0;
}
void fn_1_272C(void) {
M427DllStruct2* var_r31;
s32 temp_r30;
var_r31 = lbl_1_bss_40;
temp_r30 = var_r31->unkC;
espTPLvlSet(temp_r30, 0.5);
espColorSet(temp_r30, 0, 0, 0);
}
void fn_1_2790(void) {
omObjData* var_r30;
s32 var_r31;
Hu3DCameraCreate(1);
Hu3DCameraPerspectiveSet(1, -1.0f, 300.0f, 50000.0f, 0.6f);
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f);
Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0);
Hu3DCameraCreate(2);
Hu3DCameraPerspectiveSet(2, -1.0f, 300.0f, 50000.0f, 0.6f);
Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f);
Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0);
Hu3DCameraCreate(4);
Hu3DCameraPerspectiveSet(4, -1.0f, 100.0f, 50000.0f, 1.2f);
Hu3DCameraViewportSet(4, 0.0f, 0.0f, 576.0f, 480.0f, 0.0f, 1.0f);
Hu3DCameraScissorSet(4, 0, 0, 0x280, 0x1E0);
var_r30 = lbl_1_bss_48 = omAddObjEx(lbl_1_bss_8C, 0x7FDA, 0, 0, -1, omOutViewMulti);
var_r30->work[0] = 3;
for (var_r31 = 0; var_r31 < 3; var_r31++) {
CRotM[var_r31].x = lbl_1_data_0[0].rot.x;
CRotM[var_r31].y = lbl_1_data_0[0].rot.y;
CRotM[var_r31].z = lbl_1_data_0[0].rot.z;
CenterM[var_r31].x = lbl_1_data_0[0].cen.x;
CenterM[var_r31].y = lbl_1_data_0[0].cen.y;
CenterM[var_r31].z = lbl_1_data_0[0].cen.z;
CZoomM[var_r31] = lbl_1_data_0[0].zoom;
}
lbl_1_bss_44 = 0;
omAddObjEx(lbl_1_bss_8C, 0x3F, 0, 0, -1, fn_1_2B20);
}
void fn_1_2B20(omObjData* object) {}
void fn_1_2B24(void) {}
void fn_1_2B28(void) {
s32 var_r31;
Hu3DCameraPerspectiveSet(1, 45.0f, 300.0f, 50000.0f, 0.6f);
Hu3DCameraPerspectiveSet(2, 45.0f, 300.0f, 50000.0f, 0.6f);
Hu3DCameraPerspectiveSet(4, 45.0f, 100.0f, 50000.0f, 1.2f);
for (var_r31 = 0; var_r31 < 2; var_r31++) {
CRotM[var_r31].x = lbl_1_data_0[2].rot.x;
CRotM[var_r31].y = lbl_1_data_0[2].rot.y;
CRotM[var_r31].z = lbl_1_data_0[2].rot.z;
CenterM[var_r31].x = lbl_1_data_0[2].cen.x;
CenterM[var_r31].y = lbl_1_data_0[2].cen.y;
CenterM[var_r31].z = lbl_1_data_0[2].cen.z;
CZoomM[var_r31] = lbl_1_data_0[2].zoom;
}
}
void fn_1_2CE8(f32 arg0) {
s32 var_r31;
for (var_r31 = 0; var_r31 < 2; var_r31++) {
CRotM[var_r31].x = fn_1_168FC(arg0, lbl_1_data_0[2].rot.x, lbl_1_data_0->rot.x);
CRotM[var_r31].y = fn_1_168FC(arg0, lbl_1_data_0[2].rot.y, lbl_1_data_0->rot.z);
CRotM[var_r31].z = fn_1_168FC(arg0, lbl_1_data_0[2].rot.z, lbl_1_data_0->rot.z);
CenterM[var_r31].x = lbl_1_data_0[2].cen.x + (arg0 * (lbl_1_data_0->cen.x - lbl_1_data_0[2].cen.x));
CenterM[var_r31].y = lbl_1_data_0[2].cen.y + (arg0 * (lbl_1_data_0->cen.y - lbl_1_data_0[2].cen.y));
CenterM[var_r31].z = lbl_1_data_0[2].cen.z + (arg0 * (lbl_1_data_0->cen.z - lbl_1_data_0[2].cen.z));
CZoomM[var_r31] = lbl_1_data_0[2].zoom + (arg0 * (lbl_1_data_0->zoom - lbl_1_data_0[2].zoom));
}
}
void fn_1_2EE0(void) {
Hu3DCameraPerspectiveSet(1, 45.0f, 700.0f, 50000.0f, 0.6f);
Hu3DCameraPerspectiveSet(2, 45.0f, 700.0f, 50000.0f, 0.6f);
}
void fn_1_2F6C(f32 arg0) {
s32 var_r31;
for (var_r31 = 0; var_r31 < 2; var_r31++) {
CRotM[var_r31].x = fn_1_168FC(arg0, lbl_1_data_0[1].rot.x, lbl_1_data_0[3].rot.x);
CRotM[var_r31].y = fn_1_168FC(arg0, lbl_1_data_0[1].rot.y, lbl_1_data_0[3].rot.y);
CRotM[var_r31].z = fn_1_168FC(arg0, lbl_1_data_0[1].rot.z, lbl_1_data_0[3].rot.z);
CenterM[var_r31].x = lbl_1_data_0[1].cen.x + (arg0 * (lbl_1_data_0[3].cen.x - lbl_1_data_0[1].cen.x));
CenterM[var_r31].y = lbl_1_data_0[1].cen.y + (arg0 * (lbl_1_data_0[3].cen.y - lbl_1_data_0[1].cen.y));
CenterM[var_r31].z = lbl_1_data_0[1].cen.z + (arg0 * (lbl_1_data_0[3].cen.z - lbl_1_data_0[1].cen.z));
CZoomM[var_r31] = lbl_1_data_0[1].zoom + (arg0 * (lbl_1_data_0[3].zoom - lbl_1_data_0[1].zoom));
}
}
void fn_1_3164(void) {
lbl_1_bss_48->work[0] = 1;
Hu3DCameraKill(2);
Hu3DCameraKill(4);
Hu3DCameraPerspectiveSet(1, 45.0f, 100.0f, 50000.0f, 1.2f);
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0);
CRotM->x = lbl_1_data_0[1].rot.x;
CRotM->y = lbl_1_data_0[1].rot.y;
CRotM->z = lbl_1_data_0[1].rot.z;
CenterM->x = lbl_1_data_0[1].cen.x;
CenterM->y = lbl_1_data_0[1].cen.y;
CenterM->z = lbl_1_data_0[1].cen.z;
*CZoomM = lbl_1_data_0[1].zoom;
}
s32 fn_1_32EC(void) {
return 0;
}