Decompile rest of m420dll

This commit is contained in:
gamemasterplc 2024-10-27 21:30:43 -05:00
parent 1c1e79e0bb
commit 76c369d3cd
4 changed files with 185 additions and 254 deletions

View file

@ -83,15 +83,18 @@ s32 fn_1_198(void)
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);
switch(GWPlayerCfg[var_r31].group) {
case 0:
lbl_1_bss_18[0] = fn_1_1B8C(var_r31, 0);
break;
default:
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);
break;
}
}
lbl_1_bss_18[1]->unk_E8 = NULL;

View file

@ -116,6 +116,7 @@ Process *lbl_1_bss_A3C;
Process *lbl_1_bss_A2C[4];
s32 lbl_1_bss_A28;
s16 lbl_1_bss_9F0[0x1C];
s16 lbl_1_bss_9EE;
s16 lbl_1_bss_9EC;
M420DllUnkMapStruct2 lbl_1_bss_140[15];
struct M420DllUnkMapStruct lbl_1_bss_C0[2];
@ -914,13 +915,9 @@ float fn_1_73F8(float arg8)
void fn_1_74F8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8)
{
float var_f31;
float var_f30;
float var_f29;
float var_f28;
float var_f27;
float var_f26;
float var_f25;
s32 var_r31;
s32 var_r30;
@ -937,27 +934,13 @@ void fn_1_74F8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8)
if (var_r31 > var_r29) {
var_r30 = var_r29;
}
var_f31 = arg8 - var_r31;
if (var_f31 < 0.0f) {
var_f31 = -var_f31;
}
if (var_f31 < 1.0f) {
var_f27 = (4.0f + ((var_f31 * (3.0f * var_f31 * var_f31)) - (6.0f * var_f31 * var_f31))) / 6.0f;
}
else if (var_f31 < 2.0f) {
var_f28 = var_f31 - 2.0f;
var_f27 = (var_f28 * (-var_f28 * var_f28)) / 6.0f;
}
else {
var_f27 = 0.0f;
}
var_f25 = var_f27;
var_f26 = var_f25;
var_f26 = fn_1_73F8(arg8 - var_r31);
var_f30 += var_f26 * arg0[var_r30];
var_f29 += var_f26 * arg1[var_r30];
}
*arg2 = var_f30;
*arg3 = var_f29;
}
void fn_1_7704(void)
@ -1233,3 +1216,5 @@ void fn_1_8414(void)
HuPrcVSleep();
}
}
const float _pad = 0;

View file

@ -253,21 +253,6 @@ void fn_1_21C8(M420DllPlayerStruct *arg0, Vec *arg1, s32 arg2, s32 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;
@ -285,6 +270,20 @@ void fn_1_2260(M420DllPlayerStruct *arg0)
}
}
#define WAITMODECHG(player, maxTime) \
do { \
s32 time; \
s32 mode; \
for (time = 0; time < maxTime; time++) { \
fn_1_355C(arg0); \
mode = arg0->unk_48; \
HuPrcVSleep(); \
if (arg0->unk_48 != mode) { \
return; \
} \
} \
} while(0)
void fn_1_22CC(M420DllPlayerStruct *arg0)
{
float var_f31;
@ -305,7 +304,7 @@ void fn_1_22CC(M420DllPlayerStruct *arg0)
while (arg0->unk_50 < 6) {
fn_1_326C(arg0);
while (var_r29 == 0) {
do {
if (arg0->unk_00_field0 == 0) {
var_r29 = fn_1_34AC(arg0);
}
@ -323,7 +322,7 @@ void fn_1_22CC(M420DllPlayerStruct *arg0)
}
switch (var_r29) {
case 0:
fn_1_2260(arg0);
WAITMODECHG(arg0, 1);
break;
case 1:
var_f31 = 5.0f * arg0->unk_50;
@ -337,39 +336,37 @@ void fn_1_22CC(M420DllPlayerStruct *arg0)
arg0->unk_5C[arg0->unk_50++] = 1;
HuAudFXPlay(0x5F4);
fn_1_60F0();
fn_1_2260_alt(arg0, 5);
WAITMODECHG(arg0, 5);
break;
case 2:
if (arg0->unk_50 <= 0) {
fn_1_2260(arg0);
}
else {
WAITMODECHG(arg0, 1);
} 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);
while(!Hu3DMotionEndCheck(arg0->unk_AC))
WAITMODECHG(arg0, 1);
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;
}
}
} while (var_r29 == 0);
}
fn_1_326C(arg0);
fn_1_2260_alt(arg0, 5);
WAITMODECHG(arg0, 5);
fn_1_3450(arg0);
arg0->unk_48 = 2;
}
@ -401,171 +398,102 @@ void fn_1_276C(M420DllPlayerStruct *arg0)
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;
}
}
WAITMODECHG(arg0, 15);
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0);
WAITMODECHG(arg0, 6);
fn_1_669C(0);
fn_1_36E4(arg0);
HuAudFXPlay(0x5F2);
}
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_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);
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++) {
do {
if(arg0->unk_00_field0 == 0) {
var_r30 = fn_1_34AC(arg0);
} else if(arg0->unk_58 > 0) {
arg0->unk_58--;
var_r30 = 0;
} else if(fn_1_8944() % 30) {
var_r30 = 1;
} else {
var_r30 = 2;
}
switch (var_r30) {
case 0:
WAITMODECHG(arg0, 1);
break;
case 1:
if(arg0->unk_4C != 1) {
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0);
WAITMODECHG(arg0, 6);
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++) {
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, var_f31, var_f30);
Hu3DMotionTimeSet(arg0->unk_AC, var_f31);
Hu3DMotionSpeedSet(arg0->unk_AC, 2.0f);
break;
case 3:
arg0->unk_48 = 5;
return;
}
break;
case 2:
switch(arg0->unk_4C) {
case 1:
var_f31 = 0.0f;
var_f30 = 10.0f;
CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]);
Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30);
Hu3DMotionTimeSet(arg0->unk_AC, var_f31);
Hu3DModelAttrReset(arg0->unk_AC, 0x40000002);
WAITMODECHG(arg0, 30);
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);
Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30);
Hu3DMotionTimeSet(arg0->unk_AC, var_f31);
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++) {
WAITMODECHG(arg0, 30);
break;
case 2:
case 3:
CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[9], 0.0f, 2.0f, 0);
WAITMODECHG(arg0, 60);
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;
}
break;
}
break;
}
} while(var_r30 == 0);
}
fn_1_326C(arg0);
WAITMODECHG(arg0, 18);
fn_1_3450(arg0);
arg0->unk_48 = 6;
}
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;
}
}
WAITMODECHG(arg0, 35);
arg0->unk_48 = 0;
}
@ -614,53 +542,68 @@ void fn_1_2EA8(M420DllPlayerStruct *arg0)
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;
}
}
{
s32 var_r30;
s32 var_r29;
for (var_r30 = 0; var_r30 < 24; var_r30++) {
fn_1_355C(arg0);
var_r24 = arg0->unk_48;
var_r29 = arg0->unk_48;
HuPrcVSleep();
if (arg0->unk_48 != var_r24) {
break;
if (arg0->unk_48 != var_r29) {
return;
}
}
fn_1_355C(arg0);
var_r25 = arg0->unk_48;
HuPrcVSleep();
if (arg0->unk_48 != var_r25) {
break;
}
}
HuAudFXPlay(0x5F7);
fn_1_636C();
fn_1_1E64(arg0, 1, 0x1E);
Hu3DModelAttrSet(var_r30, 0x40000002);
fn_1_5AA8(1, 22.5f);
{
s32 var_r30;
s32 var_r29;
for (var_r30 = 0; var_r30 < 20; var_r30++) {
fn_1_355C(arg0);
var_r29 = arg0->unk_48;
HuPrcVSleep();
if (arg0->unk_48 != var_r29) {
return;
}
}
}
HuAudFXPlay(0x5F8);
fn_1_3450(arg0);
fn_1_378C(arg0);
{
s32 var_r30;
s32 var_r29;
for (var_r30 = 0; var_r30 < 20; var_r30++) {
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, 30.0f, 0x40000001);
{
s32 var_r30;
s32 var_r29;
for (var_r30 = 0; var_r30 < 25; var_r30++) {
fn_1_355C(arg0);
var_r29 = arg0->unk_48;
HuPrcVSleep();
if (arg0->unk_48 != var_r29) {
return;
}
}
}
arg0->unk_48 = 6;
}
void fn_1_3098(M420DllPlayerStruct *arg0)