Decompile more of m401dll
This commit is contained in:
parent
c7dd48fd3a
commit
76690a0d5f
3 changed files with 205 additions and 0 deletions
|
|
@ -66,6 +66,7 @@ void fn_2_10710(void);
|
|||
void fn_2_1079C(void);
|
||||
omObjData *fn_2_10A88(Vec *arg0, s16 arg1);
|
||||
|
||||
void fn_2_141B0(void);
|
||||
omObjData *fn_2_14640(Process *objman);
|
||||
|
||||
#endif
|
||||
|
|
@ -12,6 +12,7 @@ typedef struct vec2f {
|
|||
#define ABS(x) (((x) < 0) ? -(x) : (x))
|
||||
|
||||
#define VECDistanceXZ(a, b) sqrtf((((a)->x-(b)->x)*((a)->x-(b)->x))+(((a)->z-(b)->z)*((a)->z-(b)->z)))
|
||||
#define VECDistanceZY(a, b) sqrtf((((a)->z-(b)->z)*((a)->z-(b)->z))+(((a)->y-(b)->y)*((a)->y-(b)->y)))
|
||||
|
||||
#define VECMagXZ(a) sqrtf(((a)->x*(a)->x)+((a)->z*(a)->z))
|
||||
#define VECMagPoint(x, y, z) sqrtf(((x)*(x))+((y)*(y))+((z)*(z)))
|
||||
|
|
|
|||
|
|
@ -2583,6 +2583,17 @@ void fn_2_A8A4(omObjData *object, float x, float y, float z)
|
|||
omSetTra(object, lbl_2_bss_60.x+x, lbl_2_bss_60.y+y, lbl_2_bss_60.z+z);
|
||||
}
|
||||
|
||||
s32 lbl_2_data_434[] = {
|
||||
0x12D,
|
||||
0x16D,
|
||||
0x1AD,
|
||||
0x1ED,
|
||||
0x22D,
|
||||
0x26D,
|
||||
0x2AD,
|
||||
0x2ED
|
||||
};
|
||||
|
||||
void fn_2_A914(s32 player)
|
||||
{
|
||||
HuAudPlayerVoicePlay(player, 301);
|
||||
|
|
@ -2617,5 +2628,197 @@ void fn_2_A940(omObjData *object)
|
|||
|
||||
s32 fn_2_AC2C(Vec *pos, float dist, omObjData **newobj)
|
||||
{
|
||||
omObjData *temp_r30;
|
||||
s32 temp_r29;
|
||||
float temp_f20;
|
||||
float temp_f19;
|
||||
float temp_f18;
|
||||
Work9E28 *sp70;
|
||||
float sp6C;
|
||||
|
||||
*newobj = NULL;
|
||||
for(temp_r29=0; temp_r29<4; temp_r29++) {
|
||||
temp_r30 = lbl_2_bss_E4[temp_r29];
|
||||
if(temp_r30->func != NULL) {
|
||||
sp70 = temp_r30->data;
|
||||
temp_f20 = VECMagPoint(pos->x-temp_r30->trans.x, pos->y-temp_r30->trans.y, pos->z-temp_r30->trans.z);
|
||||
if(temp_f20 < sqrtf(1024.0f+(dist*dist))) {
|
||||
*newobj = temp_r30;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
temp_r30 = lbl_2_bss_FC;
|
||||
temp_f20 = VECDistanceZY(pos, &temp_r30->trans);
|
||||
if(temp_f20 < sqrtf(6400.0f+(dist*dist))
|
||||
&& temp_r30->trans.x < pos->x-(dist/2.0f)
|
||||
&& 1500.0f+temp_r30->trans.x > pos->x+(dist/2.0f)) {
|
||||
*newobj = temp_r30;
|
||||
return 2;
|
||||
}
|
||||
for(temp_r29=0; temp_r29<2; temp_r29++) {
|
||||
if(lbl_2_bss_100[temp_r29]->func != NULL) {
|
||||
temp_f19 = lbl_2_bss_100[temp_r29]->trans.x+(70.0*sind(lbl_2_bss_100[temp_r29]->rot.y));
|
||||
temp_f18 = lbl_2_bss_100[temp_r29]->trans.z+(70.0*cosd(lbl_2_bss_100[temp_r29]->rot.y));
|
||||
sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f;
|
||||
temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18);
|
||||
if(temp_f20 < sqrtf(4900.0f+(dist*dist))) {
|
||||
*newobj = lbl_2_bss_100[temp_r29];
|
||||
return 3;
|
||||
}
|
||||
temp_f19 = lbl_2_bss_100[temp_r29]->trans.x;
|
||||
temp_f18 = lbl_2_bss_100[temp_r29]->trans.z;
|
||||
sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f;
|
||||
temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18);
|
||||
if(temp_f20 < sqrtf(4900.0f+(dist*dist))) {
|
||||
*newobj = lbl_2_bss_100[temp_r29];
|
||||
return 3;
|
||||
}
|
||||
temp_f19 = lbl_2_bss_100[temp_r29]->trans.x+(70.0*sind(lbl_2_bss_100[temp_r29]->rot.y+180.0f));
|
||||
temp_f18 = lbl_2_bss_100[temp_r29]->trans.z+(70.0*cosd(lbl_2_bss_100[temp_r29]->rot.y+180.0f));
|
||||
sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f;
|
||||
temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18);
|
||||
if(temp_f20 < sqrtf(4410.0f+(dist*dist))) {
|
||||
*newobj = lbl_2_bss_100[temp_r29];
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void fn_2_D8CC(omObjData *object);
|
||||
|
||||
void fn_2_BD90(omObjData *object)
|
||||
{
|
||||
s32 temp_r27;
|
||||
M401WorkPlayer *temp_r26;
|
||||
switch(object->work[0]) {
|
||||
case 0:
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);;
|
||||
object->work[0] = 1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if(!WipeStatGet()) {
|
||||
object->work[0] = 2;
|
||||
object->work[1] = 180;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if(object->work[1] == 0) {
|
||||
lbl_2_bss_C0 = MGSeqStartCreate();
|
||||
object->work[0] = 3;
|
||||
lbl_2_bss_A4 = HuAudSeqPlay(68);
|
||||
} else {
|
||||
object->work[1]--;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if(!MGSeqStatGet(lbl_2_bss_C0)) {
|
||||
fn_2_AEC(1);
|
||||
lbl_2_bss_120 = 1;
|
||||
fn_2_1A38(lbl_2_bss_10C);
|
||||
|
||||
lbl_2_bss_10C->func = fn_2_34B8;
|
||||
for(temp_r27=0; temp_r27<4; temp_r27++) {
|
||||
temp_r26 = lbl_2_bss_118[temp_r27]->data;
|
||||
temp_r26->unk58.z = 0;
|
||||
temp_r26->unkC.z = 800;
|
||||
lbl_2_bss_118[temp_r27]->func = fn_2_5CC0;
|
||||
object->trans.x = object->trans.y = object->trans.z = 0;
|
||||
}
|
||||
lbl_2_bss_108->func = fn_2_8868;
|
||||
omDelObjEx(HuPrcCurrentGet(), object);
|
||||
lbl_2_bss_114 = NULL;
|
||||
lbl_2_bss_4->func = fn_2_D8CC;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_2_C130(omObjData *object)
|
||||
{
|
||||
M401WorkPlayer *temp_r31;
|
||||
s32 temp_r30;
|
||||
LightData *temp_r28;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
switch(object->work[0]) {
|
||||
case 0:
|
||||
if(!MGSeqStatGet(lbl_2_bss_C0)) {
|
||||
object->work[0] = 1;
|
||||
HuAudFXStop(lbl_2_bss_11C);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
WipeColorSet(255, 255, 255);
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if(WipeStatGet()) {
|
||||
return;
|
||||
}
|
||||
Hu3DFogClear();
|
||||
temp_r28 = &Hu3DGlobalLight[0];
|
||||
temp_r28->color.r = 255;
|
||||
temp_r28->color.g = 255;
|
||||
temp_r28->color.b = 255;
|
||||
sp14.x = 0;
|
||||
sp14.y = 2500;
|
||||
sp14.z = 1000;
|
||||
sp8.x = 0;
|
||||
sp8.y = 1030;
|
||||
sp8.z = 0;
|
||||
Hu3DGLightPosAimSetV(lbl_2_bss_A8, &sp14, &sp8);
|
||||
lbl_2_data_30.x = 0;
|
||||
lbl_2_data_30.y = 2500;
|
||||
lbl_2_data_30.z = 1000;
|
||||
lbl_2_data_48.x = 0;
|
||||
lbl_2_data_48.y = 1030;
|
||||
lbl_2_data_48.z = 0;
|
||||
Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48);
|
||||
HuAudAUXVolSet(-1, -1);
|
||||
fn_2_2ED0(lbl_2_bss_10C);
|
||||
for(temp_r30=0; temp_r30<4; temp_r30++) {
|
||||
temp_r31 = lbl_2_bss_118[temp_r30]->data;
|
||||
temp_r31->unk50->work[0] = 1;
|
||||
temp_r31->unk6C = 0;
|
||||
CharModelMotionSet(((M401WorkPlayer *)(lbl_2_bss_118[temp_r30]->data))->unk86, lbl_2_bss_118[temp_r30]->motion[4]);
|
||||
Hu3DModelAttrReset(lbl_2_bss_118[temp_r30]->model[0], 0x40000001);
|
||||
lbl_2_bss_118[temp_r30]->func = fn_2_48A0;
|
||||
Hu3DModelAmbSet(lbl_2_bss_118[temp_r30]->model[0], 0.7f, 0.7f, 0.7f);
|
||||
omSetTra(lbl_2_bss_118[temp_r30], -225.0f+(temp_r30*150), 740, 400);
|
||||
omSetRot(lbl_2_bss_118[temp_r30], 0, 0, 0);
|
||||
if(temp_r31->unk68) {
|
||||
if(lbl_2_bss_BA == 1) {
|
||||
temp_r31->unk0 = 10;
|
||||
temp_r31->unk58.x = 13;
|
||||
} else {
|
||||
temp_r31->unk58.x = 10;
|
||||
temp_r31->unk0 = 6;
|
||||
}
|
||||
OSReport("GetCoin:%d\n", temp_r30);
|
||||
GWPlayerCoinWinSet(temp_r30, 10);
|
||||
} else {
|
||||
temp_r31->unk58.x = 10;
|
||||
temp_r31->unk0 = 6;
|
||||
}
|
||||
}
|
||||
fn_2_26E0(lbl_2_bss_10C);
|
||||
object->work[0] = 2;
|
||||
lbl_2_bss_F4->work[0] = 1;
|
||||
fn_2_141B0();
|
||||
lbl_2_bss_10C->func = fn_2_3838;
|
||||
lbl_2_bss_11C = HuAudFXPlay(1280);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
omDelObjEx(HuPrcCurrentGet(), lbl_2_bss_C8);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
WipeStatGet() == 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue