Almost finished m420dll
This commit is contained in:
parent
023b70219d
commit
e34a300610
8 changed files with 2823 additions and 125 deletions
144
src/REL/m420dll/camera.c
Normal file
144
src/REL/m420dll/camera.c
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/flag.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/printfunc.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
#include "REL/m420dll.h"
|
||||
|
||||
Process *lbl_1_bss_A8;
|
||||
M420DllUnkStruct lbl_1_bss_8C;
|
||||
M420DllUnkStruct lbl_1_bss_70;
|
||||
M420DllUnkStruct lbl_1_bss_54;
|
||||
s32 lbl_1_bss_50;
|
||||
s32 lbl_1_bss_4C;
|
||||
s32 lbl_1_bss_48;
|
||||
float lbl_1_bss_44;
|
||||
float lbl_1_bss_40;
|
||||
float lbl_1_bss_3C;
|
||||
float lbl_1_bss_38;
|
||||
float lbl_1_bss_34;
|
||||
float lbl_1_bss_30;
|
||||
|
||||
s32 fn_1_D98(void)
|
||||
{
|
||||
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
Hu3DCameraPerspectiveSet(1, 30.0f, 10.0f, 8000.0f, 1.2f);
|
||||
lbl_1_bss_8C.unk_00.x = 0.0f;
|
||||
lbl_1_bss_8C.unk_00.y = 0.0f;
|
||||
lbl_1_bss_8C.unk_00.z = 0.0f;
|
||||
lbl_1_bss_8C.unk_0C.x = -10.0f;
|
||||
lbl_1_bss_8C.unk_0C.y = 0.0f;
|
||||
lbl_1_bss_8C.unk_0C.z = 0.0f;
|
||||
lbl_1_bss_8C.unk_18 = 1000.0f;
|
||||
lbl_1_bss_50 = 0;
|
||||
lbl_1_bss_4C = 0;
|
||||
lbl_1_bss_48 = 0;
|
||||
lbl_1_bss_A8 = HuPrcChildCreate(fn_1_1184, 0x1F4, 0x2000, 0, lbl_1_bss_4);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void fn_1_F48(void)
|
||||
{
|
||||
HuPrcKill(lbl_1_bss_A8);
|
||||
}
|
||||
|
||||
void fn_1_F74(const Vec *arg0, s32 arg1)
|
||||
{
|
||||
lbl_1_bss_54.unk_00 = *arg0;
|
||||
lbl_1_bss_70.unk_00 = lbl_1_bss_8C.unk_00;
|
||||
lbl_1_bss_44 = 0.0f;
|
||||
lbl_1_bss_38 = 1.0f / arg1;
|
||||
lbl_1_bss_50 = 1;
|
||||
}
|
||||
|
||||
void fn_1_1030(const Vec *arg0, s32 arg1)
|
||||
{
|
||||
lbl_1_bss_54.unk_0C = *arg0;
|
||||
lbl_1_bss_70.unk_0C = lbl_1_bss_8C.unk_0C;
|
||||
lbl_1_bss_40 = 0.0f;
|
||||
lbl_1_bss_34 = 1.0f / arg1;
|
||||
lbl_1_bss_4C = 1;
|
||||
}
|
||||
|
||||
void fn_1_10EC(float arg8, s32 arg0)
|
||||
{
|
||||
lbl_1_bss_54.unk_18 = arg8;
|
||||
lbl_1_bss_70.unk_18 = lbl_1_bss_8C.unk_18;
|
||||
lbl_1_bss_3C = 0.0f;
|
||||
lbl_1_bss_30 = 1.0f / arg0;
|
||||
lbl_1_bss_48 = 1;
|
||||
}
|
||||
|
||||
void fn_1_1184(void)
|
||||
{
|
||||
Vec sp28;
|
||||
Vec sp1C;
|
||||
Vec sp10;
|
||||
float var_f31;
|
||||
|
||||
while (TRUE) {
|
||||
if (lbl_1_bss_50 != 0) {
|
||||
var_f31 = sind((90.0f * lbl_1_bss_44));
|
||||
var_f31 *= var_f31;
|
||||
lbl_1_bss_8C.unk_00.x = lbl_1_bss_70.unk_00.x + (var_f31 * (lbl_1_bss_54.unk_00.x - lbl_1_bss_70.unk_00.x));
|
||||
lbl_1_bss_8C.unk_00.y = lbl_1_bss_70.unk_00.y + (var_f31 * (lbl_1_bss_54.unk_00.y - lbl_1_bss_70.unk_00.y));
|
||||
lbl_1_bss_8C.unk_00.z = lbl_1_bss_70.unk_00.z + (var_f31 * (lbl_1_bss_54.unk_00.z - lbl_1_bss_70.unk_00.z));
|
||||
if ((lbl_1_bss_44 += lbl_1_bss_38) >= 1.0f) {
|
||||
lbl_1_bss_8C.unk_00 = lbl_1_bss_54.unk_00;
|
||||
lbl_1_bss_50 = 0;
|
||||
}
|
||||
}
|
||||
if (lbl_1_bss_4C != 0) {
|
||||
var_f31 = sind((90.0f * lbl_1_bss_40));
|
||||
var_f31 *= var_f31;
|
||||
lbl_1_bss_8C.unk_0C.x = lbl_1_bss_70.unk_0C.x + (var_f31 * (lbl_1_bss_54.unk_0C.x - lbl_1_bss_70.unk_0C.x));
|
||||
lbl_1_bss_8C.unk_0C.y = lbl_1_bss_70.unk_0C.y + (var_f31 * (lbl_1_bss_54.unk_0C.y - lbl_1_bss_70.unk_0C.y));
|
||||
lbl_1_bss_8C.unk_0C.z = lbl_1_bss_70.unk_0C.z + (var_f31 * (lbl_1_bss_54.unk_0C.z - lbl_1_bss_70.unk_0C.z));
|
||||
if ((lbl_1_bss_40 += lbl_1_bss_34) >= 1.0f) {
|
||||
lbl_1_bss_8C.unk_0C = lbl_1_bss_54.unk_0C;
|
||||
lbl_1_bss_4C = 0;
|
||||
}
|
||||
}
|
||||
if (lbl_1_bss_48 != 0) {
|
||||
var_f31 = sind((90.0f * lbl_1_bss_3C));
|
||||
var_f31 *= var_f31;
|
||||
lbl_1_bss_8C.unk_18 = lbl_1_bss_70.unk_18 + (var_f31 * (lbl_1_bss_54.unk_18 - lbl_1_bss_70.unk_18));
|
||||
if ((lbl_1_bss_3C += lbl_1_bss_30) >= 1.0f) {
|
||||
lbl_1_bss_8C.unk_18 = lbl_1_bss_54.unk_18;
|
||||
lbl_1_bss_48 = 0;
|
||||
}
|
||||
}
|
||||
sp28.x = lbl_1_bss_8C.unk_00.x + (lbl_1_bss_8C.unk_18 * (sind(lbl_1_bss_8C.unk_0C.y) * cosd(lbl_1_bss_8C.unk_0C.x)));
|
||||
sp28.y = lbl_1_bss_8C.unk_00.y + (lbl_1_bss_8C.unk_18 * -sind(lbl_1_bss_8C.unk_0C.x));
|
||||
sp28.z = lbl_1_bss_8C.unk_00.z + (lbl_1_bss_8C.unk_18 * (cosd(lbl_1_bss_8C.unk_0C.y) * cosd(lbl_1_bss_8C.unk_0C.x)));
|
||||
sp10.x = sind(lbl_1_bss_8C.unk_0C.y) * sind(lbl_1_bss_8C.unk_0C.x);
|
||||
sp10.y = cosd(lbl_1_bss_8C.unk_0C.x);
|
||||
sp10.z = cosd(lbl_1_bss_8C.unk_0C.y) * sind(lbl_1_bss_8C.unk_0C.x);
|
||||
sp1C = lbl_1_bss_8C.unk_00;
|
||||
|
||||
Hu3DCameraPosSet(1, sp28.x, sp28.y, sp28.z, sp10.x, sp10.y, sp10.z, sp1C.x, sp1C.y, sp1C.z);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_189C(void)
|
||||
{
|
||||
lbl_1_bss_8C.unk_00.x += (0.02f * *HuPadStkX);
|
||||
lbl_1_bss_8C.unk_00.y += (0.02f * *HuPadStkY);
|
||||
lbl_1_bss_8C.unk_0C.y -= (0.02f * *HuPadSubStkX);
|
||||
lbl_1_bss_8C.unk_0C.x += (0.02f * *HuPadSubStkY);
|
||||
lbl_1_bss_8C.unk_18 += (0.02f * *HuPadTrigL);
|
||||
lbl_1_bss_8C.unk_18 -= (0.02f * *HuPadTrigR);
|
||||
}
|
||||
|
||||
void fn_1_1AB0(void)
|
||||
{
|
||||
print8(0x20, 0x84, 1.5f, "LOOKAT : x=%.2f y=%.2f z=%.2f", lbl_1_bss_8C.unk_00.x, lbl_1_bss_8C.unk_00.y, lbl_1_bss_8C.unk_00.z);
|
||||
print8(0x20, 0x94, 1.5f, "ANGLE : x=%.2f y=%.2f z=%.2f", lbl_1_bss_8C.unk_0C.x, lbl_1_bss_8C.unk_0C.y, lbl_1_bss_8C.unk_0C.z);
|
||||
print8(0x20, 0xA4, 1.5f, "ZOOM : x=%.2f", lbl_1_bss_8C.unk_18);
|
||||
}
|
||||
251
src/REL/m420dll/main.c
Normal file
251
src/REL/m420dll/main.c
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/flag.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/printfunc.h"
|
||||
#include "game/wipe.h"
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
#include "REL/m420dll.h"
|
||||
|
||||
s32 fn_1_198(void);
|
||||
void fn_1_3D4(void);
|
||||
void fn_1_43C(void);
|
||||
void fn_1_D14(s32 arg0, s32 arg1);
|
||||
s32 fn_1_D98(void);
|
||||
void fn_1_F48(void);
|
||||
void fn_1_F74(const Vec *arg0, s32 arg1);
|
||||
void fn_1_1030(const Vec *arg0, s32 arg1);
|
||||
void fn_1_10EC(float arg8, s32 arg0);
|
||||
void fn_1_118(void);
|
||||
|
||||
s32 lbl_1_bss_2C;
|
||||
Process *lbl_1_bss_28;
|
||||
M420DllPlayerStruct *lbl_1_bss_18[4];
|
||||
s16 lbl_1_bss_14;
|
||||
s16 lbl_1_bss_12;
|
||||
s16 lbl_1_bss_10;
|
||||
s32 lbl_1_bss_C;
|
||||
s32 lbl_1_bss_8;
|
||||
Process *lbl_1_bss_4;
|
||||
Process *lbl_1_bss_0;
|
||||
|
||||
static const M420DllUnkStruct lbl_1_rodata_10[3] = {
|
||||
{ { 0.0f, 1040.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 680.0f },
|
||||
{ { 0.0f, 800.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 680.0f },
|
||||
{ { 0.0f, 310.0f, 0.0f }, { -10.0f, 0.0f, 0.0f }, 1950.0f },
|
||||
};
|
||||
|
||||
void ObjectSetup(void)
|
||||
{
|
||||
lbl_1_bss_4 = omInitObjMan(1, 0x2000);
|
||||
omGameSysInit(lbl_1_bss_4);
|
||||
lbl_1_bss_0 = HuPrcChildCreate(fn_1_118, 0x3E8, 0x4000, 0, lbl_1_bss_4);
|
||||
fn_1_198();
|
||||
}
|
||||
|
||||
void fn_1_118(void)
|
||||
{
|
||||
while (omSysExitReq == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeCreate(2, 0, 0x3C);
|
||||
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuAudFadeOut(0x64);
|
||||
fn_1_3D4();
|
||||
HuPrcVSleep();
|
||||
omOvlReturnEx(1, 1);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
s32 fn_1_198(void)
|
||||
{
|
||||
s32 sp8[3];
|
||||
s32 var_r31;
|
||||
s32 var_r30;
|
||||
|
||||
Vec sp14[3] = { { 0.0f, 4000.0f, 100.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } };
|
||||
frand();
|
||||
fn_1_8934();
|
||||
fn_1_4964();
|
||||
fn_1_D98();
|
||||
fn_1_D14(0, 1);
|
||||
Hu3DShadowCreate(30.0f, 20.0f, 10000.0f);
|
||||
Hu3DShadowTPLvlSet(0.5f);
|
||||
Hu3DShadowPosSet(&sp14[0], &sp14[1], &sp14[2]);
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
sp8[var_r31] = 0;
|
||||
}
|
||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
if (GWPlayerCfg[var_r31].group == 0) {
|
||||
lbl_1_bss_18[0] = fn_1_1B8C(var_r31, 0);
|
||||
}
|
||||
else {
|
||||
do {
|
||||
var_r30 = fn_1_8944() % 3;
|
||||
} while (sp8[var_r30] != 0);
|
||||
sp8[var_r30] = 1;
|
||||
lbl_1_bss_18[var_r30 + 1] = fn_1_1B8C(var_r31, var_r30 + 1);
|
||||
}
|
||||
}
|
||||
lbl_1_bss_18[1]->unk_E8 = NULL;
|
||||
lbl_1_bss_18[2]->unk_E8 = lbl_1_bss_18[1];
|
||||
lbl_1_bss_18[3]->unk_E8 = lbl_1_bss_18[2];
|
||||
lbl_1_bss_28 = HuPrcChildCreate(fn_1_43C, 0x3E9, 0x4000, 0, lbl_1_bss_4);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void fn_1_3D4(void)
|
||||
{
|
||||
s32 var_r31;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
fn_1_1E14(lbl_1_bss_18[var_r31]);
|
||||
}
|
||||
fn_1_596C();
|
||||
fn_1_F48();
|
||||
HuPrcKill(lbl_1_bss_28);
|
||||
}
|
||||
|
||||
void fn_1_43C(void)
|
||||
{
|
||||
s32 var_r31;
|
||||
s32 var_r30;
|
||||
|
||||
lbl_1_bss_C = 0;
|
||||
WipeCreate(1, 0, 0x3C);
|
||||
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_59F4(0);
|
||||
fn_1_D14(1, 0x50);
|
||||
HuPrcSleep(0x4E);
|
||||
fn_1_D14(2, 0x3C);
|
||||
HuPrcSleep(0xB4);
|
||||
fn_1_59F4(2);
|
||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
lbl_1_bss_18[var_r31]->unk_48 = 9;
|
||||
}
|
||||
lbl_1_bss_8 = HuAudSeqPlay(0x48);
|
||||
lbl_1_bss_10 = MGSeqCreate(3, 0);
|
||||
|
||||
while (MGSeqStatGet(lbl_1_bss_10) != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
MGSeqKill(lbl_1_bss_10);
|
||||
lbl_1_bss_12 = 0xE10;
|
||||
lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / 60, -1, -1);
|
||||
var_r30 = 1;
|
||||
while (TRUE) {
|
||||
if (lbl_1_bss_18[0]->unk_48 == 0) {
|
||||
lbl_1_bss_18[0]->unk_48 = 1;
|
||||
}
|
||||
if ((lbl_1_bss_18[var_r30]->unk_48 == 0) && (lbl_1_bss_12 > 5)) {
|
||||
lbl_1_bss_18[var_r30]->unk_48 = 3;
|
||||
}
|
||||
if ((lbl_1_bss_18[var_r30]->unk_00_field1) && (var_r30 != 1)) {
|
||||
lbl_1_bss_18[var_r30 - 1]->unk_48 = 4;
|
||||
}
|
||||
if (lbl_1_bss_18[var_r30]->unk_48 == 6) {
|
||||
var_r30++;
|
||||
if (var_r30 > 3) {
|
||||
var_r30 = 1;
|
||||
lbl_1_bss_18[3]->unk_48 = 0;
|
||||
}
|
||||
}
|
||||
if (lbl_1_bss_12 >= 0) {
|
||||
if (((--lbl_1_bss_12) % 60) == 0) {
|
||||
MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / 60);
|
||||
}
|
||||
}
|
||||
if ((fn_1_67E8(0) == 0) && (fn_1_67E8(1) == 0) && (lbl_1_bss_12 > 0)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ((fn_1_67E8(0) != 0) && (fn_1_67E8(1) != 0)) {
|
||||
lbl_1_bss_C = 3;
|
||||
}
|
||||
else if (fn_1_67E8(0) != 0) {
|
||||
lbl_1_bss_C = 1;
|
||||
}
|
||||
else if (fn_1_67E8(1) != 0) {
|
||||
lbl_1_bss_C = 2;
|
||||
}
|
||||
else {
|
||||
lbl_1_bss_C = 3;
|
||||
}
|
||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
lbl_1_bss_18[var_r31]->unk_48 = 0xB;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
MGSeqParamSet(lbl_1_bss_14, 2, -1);
|
||||
HuAudSeqFadeOut(lbl_1_bss_8, 0x64);
|
||||
lbl_1_bss_10 = MGSeqCreate(3, 1);
|
||||
|
||||
while (MGSeqStatGet(lbl_1_bss_10) != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
MGSeqKill(lbl_1_bss_10);
|
||||
fn_1_6728();
|
||||
HuPrcSleep(0x3C);
|
||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
lbl_1_bss_18[var_r31]->unk_48 = 0xA;
|
||||
}
|
||||
HuPrcSleep(0x3C);
|
||||
if (lbl_1_bss_C == 3) {
|
||||
lbl_1_bss_10 = MGSeqCreate(3, 2);
|
||||
HuAudSStreamPlay(4);
|
||||
lbl_1_bss_18[0]->unk_48 = 8;
|
||||
lbl_1_bss_18[1]->unk_48 = 8;
|
||||
lbl_1_bss_18[2]->unk_48 = 8;
|
||||
lbl_1_bss_18[3]->unk_48 = 8;
|
||||
}
|
||||
else {
|
||||
fn_1_59F4(1);
|
||||
while (fn_1_6810() == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if (lbl_1_bss_C == 1) {
|
||||
lbl_1_bss_10 = MGSeqCreate(5, 3, lbl_1_bss_18[0]->unk_0A, -1, -1, -1);
|
||||
HuAudSStreamPlay(1);
|
||||
lbl_1_bss_18[0]->unk_48 = 7;
|
||||
lbl_1_bss_18[1]->unk_48 = 8;
|
||||
lbl_1_bss_18[2]->unk_48 = 8;
|
||||
lbl_1_bss_18[3]->unk_48 = 8;
|
||||
GWPlayerCoinWinAdd(lbl_1_bss_18[0]->unk_04, 10);
|
||||
}
|
||||
else {
|
||||
lbl_1_bss_10 = MGSeqCreate(5, 3, lbl_1_bss_18[1]->unk_0A, lbl_1_bss_18[2]->unk_0A, lbl_1_bss_18[3]->unk_0A, -1);
|
||||
HuAudSStreamPlay(1);
|
||||
lbl_1_bss_18[0]->unk_48 = 8;
|
||||
lbl_1_bss_18[1]->unk_48 = 7;
|
||||
lbl_1_bss_18[2]->unk_48 = 7;
|
||||
lbl_1_bss_18[3]->unk_48 = 7;
|
||||
GWPlayerCoinWinAdd(lbl_1_bss_18[1]->unk_04, 10);
|
||||
GWPlayerCoinWinAdd(lbl_1_bss_18[2]->unk_04, 10);
|
||||
GWPlayerCoinWinAdd(lbl_1_bss_18[3]->unk_04, 10);
|
||||
}
|
||||
}
|
||||
HuPrcSleep(0xD2);
|
||||
omSysExitReq = 1;
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_D14(s32 arg0, s32 arg1)
|
||||
{
|
||||
fn_1_F74(&lbl_1_rodata_10[arg0].unk_00, arg1);
|
||||
fn_1_1030(&lbl_1_rodata_10[arg0].unk_0C, arg1);
|
||||
fn_1_10EC(lbl_1_rodata_10[arg0].unk_18, arg1);
|
||||
}
|
||||
1235
src/REL/m420dll/map.c
Normal file
1235
src/REL/m420dll/map.c
Normal file
File diff suppressed because it is too large
Load diff
992
src/REL/m420dll/player.c
Normal file
992
src/REL/m420dll/player.c
Normal file
|
|
@ -0,0 +1,992 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/esprite.h"
|
||||
#include "game/hsfdraw.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
#include "REL/m420dll.h"
|
||||
|
||||
typedef void (*M420DllUnkFunc)(M420DllPlayerStruct *);
|
||||
|
||||
typedef struct M420DllUnkStruct2 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ s32 unk_08;
|
||||
/* 0x0C */ s32 unk_0C;
|
||||
/* 0x10 */ s32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
/* 0x18 */ s32 unk_18;
|
||||
/* 0x1C */ s32 unk_1C;
|
||||
} M420DllUnkStruct2; /* size = 0x20 */
|
||||
|
||||
void fn_1_1F14(void);
|
||||
void fn_1_1F54(M420DllPlayerStruct *arg0);
|
||||
void fn_1_1F94(M420DllPlayerStruct *arg0);
|
||||
void fn_1_200C(M420DllPlayerStruct *arg0);
|
||||
void fn_1_20EC(M420DllPlayerStruct *arg0);
|
||||
void fn_1_211C(M420DllPlayerStruct *arg0);
|
||||
void fn_1_2174(M420DllPlayerStruct *arg0);
|
||||
void fn_1_2260(M420DllPlayerStruct *arg0);
|
||||
void fn_1_22CC(M420DllPlayerStruct *arg0);
|
||||
void fn_1_276C(M420DllPlayerStruct *arg0);
|
||||
void fn_1_2CE0(M420DllPlayerStruct *arg0);
|
||||
void fn_1_2D7C(M420DllPlayerStruct *arg0);
|
||||
void fn_1_2EA8(M420DllPlayerStruct *arg0);
|
||||
void fn_1_3098(M420DllPlayerStruct *arg0);
|
||||
void fn_1_326C(M420DllPlayerStruct *arg0);
|
||||
void fn_1_3450(M420DllPlayerStruct *arg0);
|
||||
s32 fn_1_34AC(M420DllPlayerStruct *arg0);
|
||||
void fn_1_355C(M420DllPlayerStruct *arg0);
|
||||
void fn_1_36E4(M420DllPlayerStruct *arg0);
|
||||
void fn_1_374C(M420DllPlayerStruct *arg0);
|
||||
void fn_1_378C(M420DllPlayerStruct *arg0);
|
||||
void fn_1_3854(void);
|
||||
void fn_1_3970(M420DllPlayerStruct *arg0);
|
||||
void fn_1_3F94(M420DllPlayerStruct *arg0);
|
||||
void fn_1_4294(M420DllPlayerStruct *arg0);
|
||||
void fn_1_4574(M420DllPlayerStruct *arg0);
|
||||
void fn_1_476C(M420DllPlayerStruct *arg0);
|
||||
|
||||
M420DllUnkStruct2 lbl_1_data_50[4] = {
|
||||
{ 0x19, 0x01, 0x2A, 0x08, 0x2D, 0x10, 0x01, 0x01 },
|
||||
{ 0x19, 0x01, 0x22, 0x06, 0x22, 0x0C, 0x01, 0x01 },
|
||||
{ 0x19, 0x01, 0x1B, 0x05, 0x14, 0x0A, 0x01, 0x01 },
|
||||
{ 0x19, 0x01, 0x14, 0x04, 0x0A, 0x08, 0x01, 0x01 },
|
||||
};
|
||||
|
||||
// TODO MAKE_NUM
|
||||
static const s32 lbl_1_rodata_F8[8][0xB] = {
|
||||
{ 0x5F0000, 0x5F0017, 0x5F0018, 0x5F0068, 0x5F0069, 0x5F006A, 0x5F0035, 0x5F006B, 0x5F006E, 0x5F0049, 0x33001B },
|
||||
{ 0x1A0000, 0x1A0017, 0x1A0018, 0x1A0068, 0x1A0069, 0x1A006A, 0x1A0035, 0x1A006B, 0x1A006E, 0x1A0049, 0x33001C },
|
||||
{ 0x6D0000, 0x6D0017, 0x6D0018, 0x6D0068, 0x6D0069, 0x6D006A, 0x6D0035, 0x6D006B, 0x6D006E, 0x6D0049, 0x33001D },
|
||||
{ 0x8A0000, 0x8A0017, 0x8A0018, 0x8A0068, 0x8A0069, 0x8A006A, 0x8A0035, 0x8A006B, 0x8A006E, 0x8A0049, 0x33001E },
|
||||
{ 0x850000, 0x850017, 0x850018, 0x850068, 0x850069, 0x85006A, 0x850035, 0x85006B, 0x85006E, 0x850049, 0x33001F },
|
||||
{ 0x110000, 0x110017, 0x110018, 0x110068, 0x110069, 0x11006A, 0x110035, 0x11006B, 0x11006E, 0x110049, 0x330020 },
|
||||
{ 0x0D0000, 0x0D0017, 0x0D0018, 0x0D0068, 0x0D0069, 0x0D006A, 0x0D0035, 0x0D006B, 0x0D006E, 0x0D0049, 0x330021 },
|
||||
{ 0x810000, 0x810017, 0x810018, 0x810068, 0x810069, 0x81006A, 0x810035, 0x81006B, 0x81006E, 0x810049, 0x330022 },
|
||||
};
|
||||
static const Vec lbl_1_rodata_258[4][2] = {
|
||||
{ { -372.0f, 300.0f, -220.0f }, { 0.0f, 50.0f, 0.0f } },
|
||||
{ { 435.0f, 300.0f, -260.0f }, { 0.0f, 140.0f, 0.0f } },
|
||||
{ { 315.0f, 300.0f, -153.0f }, { 0.0f, 140.0f, 0.0f } },
|
||||
{ { 195.0f, 300.0f, -46.0f }, { 0.0f, 140.0f, 0.0f } },
|
||||
};
|
||||
|
||||
M420DllPlayerStruct *fn_1_1B8C(s32 arg0, s32 arg1)
|
||||
{
|
||||
M420DllPlayerStruct *var_r31;
|
||||
s32 var_r30;
|
||||
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M420DllPlayerStruct), MEMORY_DEFAULT_NUM);
|
||||
if (!var_r31) {
|
||||
OSReport("M420PlayerCreate ERROR...\n");
|
||||
return NULL;
|
||||
}
|
||||
var_r31->unk_04 = arg0;
|
||||
var_r31->unk_4C = arg1;
|
||||
var_r31->unk_08 = GWPlayerCfg[arg0].diff;
|
||||
var_r31->unk_00_field0 = GWPlayerCfg[arg0].iscom;
|
||||
var_r31->unk_0A = GWPlayerCfg[arg0].character;
|
||||
var_r31->unk_0C = GWPlayerCfg[arg0].pad_idx;
|
||||
var_r31->unk_10 = lbl_1_rodata_258[arg1][0];
|
||||
var_r31->unk_1C = lbl_1_rodata_258[arg1][1];
|
||||
var_r31->unk_48 = 0;
|
||||
var_r31->unk_50 = 0;
|
||||
var_r31->unk_00_field2 = 0;
|
||||
var_r31->unk_00_field1 = 0;
|
||||
var_r31->unk_E8 = NULL;
|
||||
for (var_r30 = 0; var_r30 < 0xA; var_r30++) {
|
||||
var_r31->unk_84[var_r30] = 7;
|
||||
}
|
||||
fn_1_1F54(var_r31);
|
||||
fn_1_1F94(var_r31);
|
||||
|
||||
switch (arg1) {
|
||||
case 0:
|
||||
if (var_r31->unk_0A == 5) {
|
||||
CharModelMotionSet(var_r31->unk_0A, var_r31->unk_AE[0xA]);
|
||||
Hu3DMotionStartEndSet(var_r31->unk_AC, 0.0f, 1.0f);
|
||||
Hu3DMotionTimeSet(var_r31->unk_AC, 0.0f);
|
||||
}
|
||||
else {
|
||||
CharModelMotionSet(var_r31->unk_0A, var_r31->unk_AE[0]);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
var_r31->unk_1C.y = 0.0f;
|
||||
CharModelMotionSet(var_r31->unk_0A, var_r31->unk_AE[0]);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
CharModelMotionDataClose(var_r31->unk_0A);
|
||||
fn_1_200C(var_r31);
|
||||
var_r31->unk_40 = HuPrcChildCreate(fn_1_1F14, 0x64, 0x5000, 0, lbl_1_bss_4);
|
||||
var_r31->unk_40->user_data = var_r31;
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
void fn_1_1E14(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
fn_1_2174(arg0);
|
||||
fn_1_211C(arg0);
|
||||
fn_1_20EC(arg0);
|
||||
HuPrcKill(arg0->unk_40);
|
||||
HuMemDirectFree(arg0);
|
||||
}
|
||||
|
||||
void fn_1_1E64(M420DllPlayerStruct *arg0, s32 arg1, s32 arg2)
|
||||
{
|
||||
switch (arg1) {
|
||||
case 0:
|
||||
omVibrate(arg0->unk_04, arg2, 6, 6);
|
||||
break;
|
||||
case 1:
|
||||
omVibrate(arg0->unk_04, arg2, 4, 2);
|
||||
break;
|
||||
case 2:
|
||||
omVibrate(arg0->unk_04, arg2, 0xC, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
M420DllUnkFunc lbl_1_data_EC[0xC] = {
|
||||
fn_1_2260,
|
||||
fn_1_22CC,
|
||||
fn_1_2D7C,
|
||||
fn_1_276C,
|
||||
fn_1_2CE0,
|
||||
fn_1_2EA8,
|
||||
fn_1_2260,
|
||||
fn_1_4574,
|
||||
fn_1_476C,
|
||||
fn_1_3F94,
|
||||
fn_1_4294,
|
||||
fn_1_3970,
|
||||
};
|
||||
|
||||
void fn_1_1F14(void)
|
||||
{
|
||||
M420DllPlayerStruct *var_r31 = HuPrcCurrentGet()->user_data;
|
||||
while (TRUE) {
|
||||
lbl_1_data_EC[var_r31->unk_48](var_r31);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1F54(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
arg0->unk_AC = CharModelCreate(arg0->unk_0A, 2);
|
||||
Hu3DModelShadowSet(arg0->unk_AC);
|
||||
}
|
||||
|
||||
void fn_1_1F94(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r31;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 0xB; var_r31++) {
|
||||
arg0->unk_AE[var_r31] = CharModelMotionCreate(arg0->unk_0A, lbl_1_rodata_F8[arg0->unk_0A][var_r31]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_200C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r30;
|
||||
|
||||
for (var_r30 = 0; var_r30 <= 9; var_r30++) {
|
||||
arg0->unk_C4[var_r30] = espEntry(0x330018, 0, 0);
|
||||
espDispOff(arg0->unk_C4[var_r30]);
|
||||
}
|
||||
switch (arg0->unk_4C) {
|
||||
case 0:
|
||||
arg0->unk_D8 = espEntry(0x330019, 1, 0);
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
arg0->unk_D8 = espEntry(0x33001A, 1, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
espDispOff(arg0->unk_D8);
|
||||
espTPLvlSet(arg0->unk_D8, 0.8f);
|
||||
}
|
||||
|
||||
void fn_1_20EC(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
CharModelKill(arg0->unk_0A);
|
||||
}
|
||||
|
||||
void fn_1_211C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r31;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 0xB; var_r31++) {
|
||||
CharModelMotionKill(arg0->unk_0A, arg0->unk_AE[var_r31]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_2174(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r31;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 0xB; var_r31++) {
|
||||
espKill(arg0->unk_C4[var_r31]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_21C8(M420DllPlayerStruct *arg0, Vec *arg1, s32 arg2, s32 arg3)
|
||||
{
|
||||
arg0->unk_34 = *arg1;
|
||||
arg0->unk_28 = arg0->unk_1C;
|
||||
arg0->unk_DC = 0.0f;
|
||||
arg0->unk_E0 = 1.0f / arg2;
|
||||
arg0->unk_E4 = arg3;
|
||||
arg0->unk_00_field2 = 1;
|
||||
}
|
||||
|
||||
void inline fn_1_2260_alt(M420DllPlayerStruct *arg0, s32 arg1)
|
||||
{
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
for (var_r30 = 0; var_r30 < arg1; var_r30++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r29 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r29) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_2260(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
while (TRUE) {
|
||||
for (var_r30 = 0; var_r30 < 1; var_r30++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r29 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r29) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_22CC(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
M420DllUnkStruct2 *var_r30;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
s32 var_r26;
|
||||
s32 var_r23;
|
||||
s32 var_r21;
|
||||
s32 var_r18;
|
||||
|
||||
var_r30 = &lbl_1_data_50[arg0->unk_08];
|
||||
fn_1_3098(arg0);
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[8], 0.0f, 10.0f, 0x40000001);
|
||||
arg0->unk_50 = 0;
|
||||
arg0->unk_58 = var_r30->unk_00 + (fn_1_8944() % var_r30->unk_04);
|
||||
|
||||
while (arg0->unk_50 < 6) {
|
||||
fn_1_326C(arg0);
|
||||
while (var_r29 == 0) {
|
||||
if (arg0->unk_00_field0 == 0) {
|
||||
var_r29 = fn_1_34AC(arg0);
|
||||
}
|
||||
else if (arg0->unk_58 > 0) {
|
||||
arg0->unk_58--;
|
||||
var_r29 = 0;
|
||||
}
|
||||
else if ((fn_1_8944() % 30) != 0) {
|
||||
var_r29 = 1;
|
||||
arg0->unk_58 = (var_r30->unk_08 - (var_r30->unk_0C / 2)) + (fn_1_8944() % var_r30->unk_0C);
|
||||
}
|
||||
else {
|
||||
var_r29 = 2;
|
||||
arg0->unk_58 = (var_r30->unk_08 - (var_r30->unk_0C / 2)) + (fn_1_8944() % var_r30->unk_0C);
|
||||
}
|
||||
switch (var_r29) {
|
||||
case 0:
|
||||
fn_1_2260(arg0);
|
||||
break;
|
||||
case 1:
|
||||
var_f31 = 5.0f * arg0->unk_50;
|
||||
var_f30 = 5.0f + var_f31;
|
||||
CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[5]);
|
||||
Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30);
|
||||
Hu3DMotionTimeSet(arg0->unk_AC, var_f31);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000002);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000001);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000004);
|
||||
arg0->unk_5C[arg0->unk_50++] = 1;
|
||||
HuAudFXPlay(0x5F4);
|
||||
fn_1_60F0();
|
||||
fn_1_2260_alt(arg0, 5);
|
||||
break;
|
||||
case 2:
|
||||
if (arg0->unk_50 <= 0) {
|
||||
fn_1_2260(arg0);
|
||||
}
|
||||
else {
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000002);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000001);
|
||||
Hu3DModelAttrSet(arg0->unk_AC, 0x40000004);
|
||||
fn_1_63EC();
|
||||
fn_1_2260_alt(arg0, 1);
|
||||
if (Hu3DMotionEndCheck(arg0->unk_AC) != 0) {
|
||||
for (var_r28 = 0; var_r28 < 0xA; var_r28++) {
|
||||
arg0->unk_5C[var_r28] = 0;
|
||||
}
|
||||
arg0->unk_50 = 0;
|
||||
var_f31 = 0.0f;
|
||||
var_f30 = 0.0f;
|
||||
CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[5]);
|
||||
Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30);
|
||||
Hu3DMotionTimeSet(arg0->unk_AC, var_f31);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000001);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
fn_1_326C(arg0);
|
||||
fn_1_2260_alt(arg0, 5);
|
||||
fn_1_3450(arg0);
|
||||
arg0->unk_48 = 2;
|
||||
}
|
||||
|
||||
void fn_1_276C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 sp8[4];
|
||||
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
|
||||
s32 var_r30;
|
||||
M420DllUnkStruct2 *var_r29;
|
||||
s32 var_r28;
|
||||
s32 var_r27;
|
||||
s32 var_r26;
|
||||
s32 var_r25;
|
||||
s32 var_r24;
|
||||
s32 var_r23;
|
||||
s32 var_r22;
|
||||
s32 var_r21;
|
||||
s32 var_r20;
|
||||
s32 var_r19;
|
||||
s32 var_r18;
|
||||
s32 var_r17;
|
||||
|
||||
var_r29 = &lbl_1_data_50[arg0->unk_08];
|
||||
if (arg0->unk_4C == 1) {
|
||||
HuAudFXPlay(0x5F1);
|
||||
fn_1_669C(1);
|
||||
fn_1_6554();
|
||||
for (var_r28 = 0; var_r28 < 0xF; var_r28++) {
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0);
|
||||
for (var_r27 = 0; var_r27 < 6; var_r27++) {
|
||||
fn_1_669C(1);
|
||||
fn_1_36E4(arg0);
|
||||
HuAudFXPlay(0x5F2);
|
||||
|
||||
fn_1_355C(arg0);
|
||||
var_r19 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r19) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_355C(arg0);
|
||||
var_r20 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r20) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
block_10:
|
||||
fn_1_3098(arg0);
|
||||
arg0->unk_50 = 0;
|
||||
arg0->unk_58 = var_r29->unk_10 + (fn_1_8944() % var_r29->unk_14);
|
||||
|
||||
while (arg0->unk_50 < 1) {
|
||||
fn_1_326C(arg0);
|
||||
for (var_r21 = 0; var_r21 < 0x12; var_r21++) {
|
||||
fn_1_3450(arg0);
|
||||
arg0->unk_48 = 6;
|
||||
|
||||
fn_1_355C(arg0);
|
||||
sp8[0] = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 == sp8[0]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
fn_1_326C(arg0);
|
||||
loop_12:
|
||||
if (arg0->unk_00_field0 == 0) {
|
||||
var_r30 = fn_1_34AC(arg0);
|
||||
}
|
||||
else if (arg0->unk_58 > 0) {
|
||||
arg0->unk_58 = arg0->unk_58 - 1;
|
||||
var_r30 = 0;
|
||||
}
|
||||
else if ((fn_1_8944() % 30) != 0) {
|
||||
var_r30 = 1;
|
||||
}
|
||||
else {
|
||||
var_r30 = 2;
|
||||
}
|
||||
switch (var_r30) {
|
||||
case 0:
|
||||
for (var_r26 = 0; var_r26 < 1; var_r26++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r18 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r18) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
case 1:
|
||||
if (arg0->unk_4C != 1) {
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0);
|
||||
for (var_r25 = 0; var_r25 < 6; var_r25++) {
|
||||
fn_1_374C(arg0->unk_E8);
|
||||
fn_1_36E4(arg0);
|
||||
HuAudFXPlay(0x5F2);
|
||||
fn_1_355C(arg0);
|
||||
var_r17 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 == var_r17) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
block_36:
|
||||
arg0->unk_5C[arg0->unk_50++] = 1;
|
||||
switch (arg0->unk_4C) {
|
||||
case 1:
|
||||
case 2:
|
||||
var_f31 = 0.0f;
|
||||
var_f30 = 34.0f;
|
||||
CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]);
|
||||
Hu3DMotionStartEndSet(arg0->unk_AC, 0.0f, 34.0f);
|
||||
Hu3DMotionTimeSet(arg0->unk_AC, 0.0f);
|
||||
Hu3DMotionSpeedSet(arg0->unk_AC, 2.0f);
|
||||
break;
|
||||
}
|
||||
arg0->unk_48 = 5;
|
||||
break;
|
||||
case 2:
|
||||
switch (arg0->unk_4C) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
var_f31 = 0.0f;
|
||||
var_f30 = 10.0f;
|
||||
CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]);
|
||||
Hu3DMotionStartEndSet(arg0->unk_AC, 0.0f, 10.0f);
|
||||
Hu3DMotionTimeSet(arg0->unk_AC, 0.0f);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000002);
|
||||
for (var_r24 = 0; var_r24 < 0x1E; var_r24++) {
|
||||
var_f31 = 60.0f;
|
||||
var_f30 = 70.0f;
|
||||
CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]);
|
||||
Hu3DMotionStartEndSet(arg0->unk_AC, 60.0f, 70.0f);
|
||||
Hu3DMotionTimeSet(arg0->unk_AC, 60.0f);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000002);
|
||||
for (var_r23 = 0; var_r23 < 0x1E; var_r23++) {
|
||||
fn_1_355C(arg0);
|
||||
sp8[2] = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != sp8[2]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_355C(arg0);
|
||||
sp8[3] = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != sp8[3]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
case 2:
|
||||
case 3:
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[9], 0.0f, 2.0f, 0);
|
||||
for (var_r22 = 0; var_r22 < 0x3C; var_r22++) {
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 8.0f, 0);
|
||||
fn_1_355C(arg0);
|
||||
sp8[1] = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != sp8[1]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_2CE0(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 30.0f, 0x40000001);
|
||||
|
||||
// fn_1_2260?
|
||||
for (var_r30 = 0; var_r30 < 0x23; var_r30++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r29 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r29) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
arg0->unk_48 = 0;
|
||||
}
|
||||
|
||||
void fn_1_2D7C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
var_f30 = 0.0f;
|
||||
var_f31 = 30.0f;
|
||||
Hu3DMotionStartEndSet(arg0->unk_AC, var_f30, var_f31);
|
||||
Hu3DMotionTimeSet(arg0->unk_AC, var_f31);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000002);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000001);
|
||||
Hu3DModelAttrSet(arg0->unk_AC, 0x40000004);
|
||||
HuAudFXPlay(0x5F6);
|
||||
fn_1_6268();
|
||||
fn_1_5AA8(0, 22.5f);
|
||||
fn_1_1E64(arg0, 1, 0x1E);
|
||||
// fn_1_2260?
|
||||
for (var_r30 = 0; var_r30 < 0x1E; var_r30++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r29 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r29) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
arg0->unk_48 = 0;
|
||||
}
|
||||
|
||||
void fn_1_2EA8(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s16 var_r30;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
s32 var_r27;
|
||||
s32 var_r26;
|
||||
s32 var_r25;
|
||||
s32 var_r24;
|
||||
s32 var_r23;
|
||||
s32 var_r22;
|
||||
|
||||
fn_1_326C(arg0);
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[3], 0.0f, 1.0f, 0);
|
||||
var_r30 = fn_1_6660();
|
||||
Hu3DModelAttrReset(var_r30, 0x40000002);
|
||||
Hu3DModelAttrSet(var_r30, 0x40000001);
|
||||
Hu3DMotionTimeSet(var_r30, 0.0f);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 0x18; var_r29++) {
|
||||
HuAudFXPlay(0x5F7);
|
||||
fn_1_636C();
|
||||
fn_1_1E64(arg0, 0x1E, 1);
|
||||
Hu3DModelAttrSet(var_r30, 0x40000002);
|
||||
fn_1_5AA8(1, 22.5f);
|
||||
for (var_r28 = 0; var_r28 < 0x14; var_r28++) {
|
||||
HuAudFXPlay(0x5F8);
|
||||
fn_1_3450(arg0);
|
||||
fn_1_378C(arg0);
|
||||
for (var_r27 = 0; var_r27 < 0x14; var_r27++) {
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 30.0f, 0x40000001);
|
||||
for (var_r26 = 0; var_r26 < 0x19; var_r26++) {
|
||||
arg0->unk_48 = 6;
|
||||
|
||||
fn_1_355C(arg0);
|
||||
var_r22 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r22) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_355C(arg0);
|
||||
var_r23 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r23) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_355C(arg0);
|
||||
var_r24 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r24) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_355C(arg0);
|
||||
var_r25 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r25) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_3098(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
|
||||
for (var_r30 = 0; var_r30 < 0xA; var_r30++) {
|
||||
arg0->unk_5C[var_r30] = 0;
|
||||
}
|
||||
arg0->unk_50 = 0;
|
||||
switch (arg0->unk_4C) {
|
||||
case 0:
|
||||
for (var_r29 = 0; var_r29 < 6;) {
|
||||
arg0->unk_84[var_r29] = fn_1_8944() % 7;
|
||||
if (arg0->unk_84[var_r29] == 6) {
|
||||
arg0->unk_84[var_r29] = 0;
|
||||
}
|
||||
if ((var_r29 <= 0) || (arg0->unk_84[var_r29] != arg0->unk_84[var_r29 - 1])) {
|
||||
for (var_r30 = 0, var_r28 = 0; var_r30 < var_r29; var_r30++) {
|
||||
if (arg0->unk_84[var_r29] == arg0->unk_84[var_r30]) {
|
||||
var_r28++;
|
||||
}
|
||||
}
|
||||
if (var_r28 < 2) {
|
||||
var_r29++;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
for (var_r30 = 0; var_r30 < 0xA; var_r30++) {
|
||||
arg0->unk_84[1] = arg0->unk_84[0];
|
||||
arg0->unk_84[0] = fn_1_8944() % 7;
|
||||
if (arg0->unk_84[0] == 6) {
|
||||
arg0->unk_84[0] = 0;
|
||||
}
|
||||
if (arg0->unk_84[0] != arg0->unk_84[1]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static const s32 lbl_1_rodata_2F8[4] = { 6, 1, 1, 1 };
|
||||
|
||||
void fn_1_326C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
|
||||
s32 var_r30;
|
||||
s16 var_r29;
|
||||
s32 var_r28;
|
||||
s32 var_r26;
|
||||
|
||||
sp14 = arg0->unk_10;
|
||||
sp14.y += 300.0f;
|
||||
Hu3D3Dto2D(&sp14, 1, &sp8);
|
||||
|
||||
var_r26 = arg0->unk_4C == 0 ? -6 : 0;
|
||||
espPosSet(arg0->unk_D8, sp8.x + var_r26, 6.0f + sp8.y);
|
||||
espDispOn(arg0->unk_D8);
|
||||
var_r28 = lbl_1_rodata_2F8[arg0->unk_4C];
|
||||
sp8.x -= (var_r28 / 2) * 0x1E;
|
||||
for (var_r30 = 0; var_r30 < var_r28; var_r30++) {
|
||||
var_r29 = arg0->unk_C4[var_r30];
|
||||
if (arg0->unk_5C[var_r30] != 0) {
|
||||
espBankSet(var_r29, arg0->unk_84[var_r30] + 7);
|
||||
}
|
||||
else {
|
||||
espBankSet(var_r29, arg0->unk_84[var_r30]);
|
||||
}
|
||||
espPosSet(var_r29, sp8.x + var_r30 * 0x20, sp8.y);
|
||||
espDispOn(var_r29);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_3450(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r31;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 0xA; var_r31++) {
|
||||
espDispOff(arg0->unk_C4[var_r31]);
|
||||
}
|
||||
espDispOff(arg0->unk_D8);
|
||||
}
|
||||
|
||||
static const s32 lbl_1_rodata_30C[7] = { 0x100, 0x200, 0x40, 0x20, 0x800, 0x400, 0x10 };
|
||||
|
||||
s32 fn_1_34AC(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
s32 var_r31;
|
||||
u16 var_r30;
|
||||
u16 var_r29;
|
||||
|
||||
var_r31 = 0;
|
||||
var_r30 = HuPadBtnDown[arg0->unk_0C] & 0xF60;
|
||||
var_r29 = lbl_1_rodata_30C[arg0->unk_84[arg0->unk_50]];
|
||||
if (var_r30 != 0) {
|
||||
var_r31 = 2;
|
||||
}
|
||||
if (((var_r30 & var_r29) != 0) && ((var_r30 & ~var_r29) == 0)) {
|
||||
var_r31 = 1;
|
||||
}
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
void fn_1_355C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
float var_f31;
|
||||
|
||||
arg0 = HuPrcCurrentGet()->user_data;
|
||||
Hu3DModelPosSet(arg0->unk_AC, arg0->unk_10.x, arg0->unk_10.y, arg0->unk_10.z);
|
||||
if (arg0->unk_00_field2) {
|
||||
switch (arg0->unk_E4) {
|
||||
case 0:
|
||||
var_f31 = arg0->unk_DC;
|
||||
break;
|
||||
case 1:
|
||||
var_f31 = sind((90.0f * arg0->unk_DC));
|
||||
var_f31 *= var_f31;
|
||||
break;
|
||||
}
|
||||
arg0->unk_1C.x = arg0->unk_28.x + (var_f31 * (arg0->unk_34.x - arg0->unk_28.x));
|
||||
arg0->unk_1C.y = arg0->unk_28.y + (var_f31 * (arg0->unk_34.y - arg0->unk_28.y));
|
||||
arg0->unk_1C.z = arg0->unk_28.z + (var_f31 * (arg0->unk_34.z - arg0->unk_28.z));
|
||||
if ((arg0->unk_DC += arg0->unk_E0) >= 1.0f) {
|
||||
arg0->unk_1C = arg0->unk_34;
|
||||
arg0->unk_00_field2 = 0;
|
||||
}
|
||||
}
|
||||
Hu3DModelRotSet(arg0->unk_AC, arg0->unk_1C.x, arg0->unk_1C.y, arg0->unk_1C.z);
|
||||
}
|
||||
|
||||
void fn_1_36E4(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
Hu3DModelHookSet(arg0->unk_AC, "test11_tex_we-itemhook-r", fn_1_6660());
|
||||
arg0->unk_00_field1 = 1;
|
||||
fn_1_1E64(arg0, 1, 0x14);
|
||||
}
|
||||
|
||||
void fn_1_374C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
Hu3DModelHookReset(arg0->unk_AC);
|
||||
arg0->unk_00_field1 = 0;
|
||||
}
|
||||
|
||||
void fn_1_378C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
Mtx sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
|
||||
if (arg0->unk_00_field1) {
|
||||
Hu3DModelObjMtxGet(arg0->unk_AC, "test11_tex_we-itemhook-r", sp20);
|
||||
Hu3DModelHookObjReset(arg0->unk_AC, "test11_tex_we-itemhook-r");
|
||||
Hu3DMtxTransGet(sp20, &sp14);
|
||||
Hu3DMtxRotGet(sp20, &sp8);
|
||||
Hu3DModelPosSetV(fn_1_6660(), &sp14);
|
||||
Hu3DModelRotSetV(fn_1_6660(), &sp8);
|
||||
}
|
||||
HuPrcChildCreate(fn_1_3854, 0x64, 0x2000, 0, lbl_1_bss_4);
|
||||
arg0->unk_00_field1 = 0;
|
||||
}
|
||||
|
||||
char lbl_1_data_135[1] = { 0 };
|
||||
|
||||
void fn_1_3854(void)
|
||||
{
|
||||
Mtx sp2C;
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
|
||||
float var_f31;
|
||||
s16 var_r31;
|
||||
|
||||
var_r31 = fn_1_6660();
|
||||
Hu3DModelObjMtxGet(var_r31, lbl_1_data_135, sp2C);
|
||||
Hu3DMtxRotGet(sp2C, &sp8);
|
||||
Hu3DMtxTransGet(sp2C, &sp20);
|
||||
var_f31 = 0.0f;
|
||||
|
||||
while (var_f31 < 1.0f) {
|
||||
sp14.x = cosd((90.0f * var_f31));
|
||||
sp14.y = sp14.z = sp14.x;
|
||||
Hu3DModelScaleSet(var_r31, sp14.x, sp14.y, sp14.z);
|
||||
var_f31 += 0.05f;
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_6728();
|
||||
sp14.x = sp14.y = sp14.z = 1.0f;
|
||||
Hu3DModelScaleSet(var_r31, sp14.x, sp14.y, sp14.z);
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_3970(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
Vec sp38;
|
||||
|
||||
s32 var_r27;
|
||||
s32 var_r26;
|
||||
s32 var_r25;
|
||||
s32 var_r24;
|
||||
|
||||
if (arg0->unk_00_field1) {
|
||||
fn_1_378C(arg0);
|
||||
}
|
||||
else if (arg0->unk_4C == 1) {
|
||||
fn_1_378C(arg0);
|
||||
}
|
||||
fn_1_3450(arg0);
|
||||
if (arg0->unk_4C == 0) {
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000002);
|
||||
Hu3DModelAttrReset(arg0->unk_AC, 0x40000001);
|
||||
Hu3DModelAttrSet(arg0->unk_AC, 0x40000004);
|
||||
fn_1_63EC();
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[6], 0.0f, 32.0f, 0);
|
||||
Hu3DMotionShiftStartEndSet(arg0->unk_AC, 0.0f, 59.0f);
|
||||
sp38 = arg0->unk_1C;
|
||||
sp38.y = 0.0f;
|
||||
fn_1_21C8(arg0, &sp38, 60, 1);
|
||||
}
|
||||
for (var_r27 = 0; var_r27 < 0x3C; var_r27++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r25 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r25) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 16.0f, 0);
|
||||
for (var_r26 = 0; var_r26 < 0x3C; var_r26++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r24 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r24) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
arg0->unk_48 = 0;
|
||||
}
|
||||
|
||||
void fn_1_3F94(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
Vec sp8;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
|
||||
if (arg0->unk_4C != 0) {
|
||||
CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[6]);
|
||||
Hu3DMotionStartEndSet(arg0->unk_AC, 60.0f, 119.0f);
|
||||
Hu3DMotionTimeSet(arg0->unk_AC, 60.0f);
|
||||
sp8 = arg0->unk_1C;
|
||||
sp8.y = lbl_1_rodata_258[arg0->unk_4C][1].y;
|
||||
fn_1_21C8(arg0, &sp8, 60, 1);
|
||||
while (arg0->unk_00_field2 != 0) {
|
||||
for (var_r28 = 0; var_r28 < 1; var_r28++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r29 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r29) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 4.0f, 0);
|
||||
}
|
||||
arg0->unk_48 = 0;
|
||||
}
|
||||
|
||||
void fn_1_4294(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
Vec sp8;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
|
||||
if (arg0->unk_4C != 0) {
|
||||
CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[6]);
|
||||
Hu3DMotionStartEndSet(arg0->unk_AC, 0.0f, 59.0f);
|
||||
sp8 = arg0->unk_1C;
|
||||
sp8.y = 0.0f;
|
||||
fn_1_21C8(arg0, &sp8, 60, 1);
|
||||
while (arg0->unk_00_field2 != 0) {
|
||||
for (var_r28 = 0; var_r28 < 1; var_r28++) {
|
||||
fn_1_355C(arg0);
|
||||
var_r29 = arg0->unk_48;
|
||||
HuPrcVSleep();
|
||||
if (arg0->unk_48 != var_r29) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 8.0f, 0);
|
||||
}
|
||||
arg0->unk_48 = 0;
|
||||
}
|
||||
|
||||
void fn_1_4574(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
float var_f31;
|
||||
M420DllPlayerStruct *var_r31;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[1], 0.0f, 4.0f, 0);
|
||||
fn_1_2260(arg0);
|
||||
}
|
||||
|
||||
void fn_1_476C(M420DllPlayerStruct *arg0)
|
||||
{
|
||||
float var_f31;
|
||||
M420DllPlayerStruct *var_r31;
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
|
||||
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[2], 0.0f, 4.0f, 0);
|
||||
fn_1_2260(arg0);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue