This commit is contained in:
shy 2025-08-01 00:15:38 -04:00
parent 022e990b32
commit 7a3ad096d5
7 changed files with 135 additions and 125 deletions

View File

@ -2798,12 +2798,12 @@ func_86E0073C = 0x86E0073C; // type:func
func_86E007BC = 0x86E007BC; // type:func
func_86E007CC = 0x86E007CC; // type:func
miniMetapodCompControls = 0x86E00924; // type:func
func_86E00AF4 = 0x86E00AF4; // type:func
miniUpdateMetapods = 0x86E00AF4; // type:func
metapodRockCollisionCheck_void = 0x86E00BDC; // type:func
func_86E00C34 = 0x86E00C34; // type:func
func_86E00CAC = 0x86E00CAC; // type:func
func_86E00D78 = 0x86E00D78; // type:func
func_86E00ED0 = 0x86E00ED0; // type:func
miniRockChecks = 0x86E00CAC; // type:func
miniMatapodChecks = 0x86E00D78; // type:func
miniMatapodMinigameChecks = 0x86E00ED0; // type:func
func_86E00F60 = 0x86E00F60; // type:func
func_86E00FD8 = 0x86E00FD8; // type:func
func_86E0103C = 0x86E0103C; // type:func
@ -2811,10 +2811,10 @@ initFallingRocks = 0x86E010E8; // type:func
func_86E01188 = 0x86E01188; // type:func
func_86E01310 = 0x86E01310; // type:func
func_86E01414 = 0x86E01414; // type:func
func_86E01428 = 0x86E01428; // type:func
miniRockStateMachine = 0x86E01428; // type:func
func_86E016EC = 0x86E016EC; // type:func
func_86E0172C = 0x86E0172C; // type:func
func_86E017C0 = 0x86E017C0; // type:func
miniUpdateRockTransform = 0x86E0172C; // type:func
miniUpdateRocks = 0x86E017C0; // type:func
func_86E0182C = 0x86E0182C; // type:func
func_86E01898 = 0x86E01898; // type:func
func_86E01904 = 0x86E01904; // type:func
@ -2826,7 +2826,7 @@ func_86E01E34 = 0x86E01E34; // type:func
func_86E01EB0 = 0x86E01EB0; // type:func
func_86E01EE8 = 0x86E01EE8; // type:func
func_86E01F50 = 0x86E01F50; // type:func
func_86E01F8C = 0x86E01F8C; // type:func
miniMetapodMinigameStateMachine = 0x86E01F8C; // type:func
func_86E02150 = 0x86E02150; // type:func
miniDrawMetapodHealth = 0x86E02170; // type:func
miniDrawMetapodHeads = 0x86E021D8; // type:func

View File

@ -1581,7 +1581,7 @@ static Color_RGB8 playerColors[] = {
};
s32 func_86C00020(MiniActor* ekans) {
f32 tmp = ekans->unk_274;
f32 tmp = ekans->launchForce;
s32 var_v1 = 0;
if (tmp > 58.0f) {
@ -1788,7 +1788,7 @@ void initEkanses(void) {
}
f32 func_86C0063C(MiniActor* ekans) {
return (ekans->unk_284 <= ekans->unk_280) ? ekans->unk_280 : ekans->unk_284;
return (ekans->stickMagnitude2 <= ekans->stickMagnitude1) ? ekans->stickMagnitude1 : ekans->stickMagnitude2;
}
s16 func_86C00668(MiniActor* arg0, s16 arg1) {
@ -1891,21 +1891,21 @@ void humanEkansControls(MiniActor* ekans) {
if (ekans->mainState == 0) {
var_v0 = 0;
var_ft4 = 0.0f;
temp_fv1 = ekans->unk_280 - stickMagnitude;
temp_fa0 = ekans->unk_284 - ekans->unk_280;
temp_fv1 = ekans->stickMagnitude1 - stickMagnitude;
temp_fa0 = ekans->stickMagnitude2 - ekans->stickMagnitude1;
if (temp_fa0 <= temp_fv1) {
if ((ekans->unk_280 <= 12.0f) && (temp_fv1 >= 5.0f) && (stickMagnitude == 0.0f)) {
if ((ekans->stickMagnitude1 <= 12.0f) && (temp_fv1 >= 5.0f) && (stickMagnitude == 0.0f)) {
var_v0 = 1;
var_ft4 = ekans->unk_280;
var_ft4 = ekans->stickMagnitude1;
}
if (ekans->unk_280 <= 30.0f) {
if (ekans->stickMagnitude1 <= 30.0f) {
if (temp_fv1 >= 10.0f) {
direction = 1;
var_v0 = 1;
var_ft4 = func_86C0063C(ekans);
}
} else if (ekans->unk_280 < 50.0f) {
} else if (ekans->stickMagnitude1 < 50.0f) {
if (temp_fv1 >= 15.0f) {
direction = 1;
var_v0 = 1;
@ -1918,7 +1918,7 @@ void humanEkansControls(MiniActor* ekans) {
}
} else if (temp_fa0 >= 25.0f) {
var_v0 = 1;
var_ft4 = ekans->unk_284;
var_ft4 = ekans->stickMagnitude2;
}
if (var_v0 != 0) {
@ -1928,16 +1928,16 @@ void humanEkansControls(MiniActor* ekans) {
var_ft4 = 24.0f;
}
ekans->unk_274 = var_ft4;
ekans->launchForce = var_ft4;
ekans->unk_22E = 0;
ekans->unk_280 = 0.0f;
ekans->stickMagnitude1 = 0.0f;
ekans->globalPos.x = 0.0f;
ekans->globalPos.z = 0.0f;
ekans->mainState = 1;
}
ekans->unk_284 = ekans->unk_280;
ekans->unk_280 = stickMagnitude;
ekans->stickMagnitude2 = ekans->stickMagnitude1;
ekans->stickMagnitude1 = stickMagnitude;
}
}
@ -2079,22 +2079,22 @@ s16 func_86C00D50(MiniActor* arg0) {
return var_a0;
}
s32 func_86C00EF8(MiniActor* arg0) {
switch (arg0->unk_2AE) {
s32 func_86C00EF8(MiniActor* compEkans) {
switch (compEkans->unk_2AE) {
case 0:
arg0->playerId = func_86C00BB4();
compEkans->playerId = func_86C00BB4();
break;
case 1:
arg0->playerId = func_86C00C40(arg0);
compEkans->playerId = func_86C00C40(compEkans);
break;
case 2:
arg0->playerId = func_86C00D50(arg0);
compEkans->playerId = func_86C00D50(compEkans);
break;
}
return arg0->playerId;
return compEkans->playerId;
}
void func_86C00F70(MiniActor* ekans) {
@ -2183,7 +2183,7 @@ void miniEkansCompGetForce(MiniActor* ekans) {
}
break;
}
ekans->unk_280 = force;
ekans->stickMagnitude1 = force;
}
s16 func_86C01408(void) {
@ -2265,9 +2265,9 @@ void compEkansControls(MiniActor* ekans) {
break;
case 4: // comp launch (only y speed)
if (func_81400760(&ekans->unk_274, ekans->unk_280, 8.0f) != 0) {
if (func_81400760(&ekans->launchForce, ekans->stickMagnitude1, 8.0f) != 0) {
ekans->globalPos.z = ekans->globalPos.x = 0.0f;
ekans->unk_280 = 0;
ekans->stickMagnitude1 = 0;
ekans->mainState = 1;
ekans->compState++;
}
@ -2291,9 +2291,9 @@ void compEkansControls(MiniActor* ekans) {
void func_86C016C8(MiniActor* ekans) {
ekans->weight = 1.0f;
ekans->unk_1F8 = (SINS(ekans->totalRot.y) * (26.0f + ekans->unk_274)) / 10.0f;
ekans->unk_1FC = (ekans->unk_274 + 70.0f) * 0.125f;
ekans->unk_200 = (COSS(ekans->totalRot.y) * (26.0f + ekans->unk_274)) / 10.0f;
ekans->unk_1F8 = (SINS(ekans->totalRot.y) * (26.0f + ekans->launchForce)) / 10.0f;
ekans->unk_1FC = (ekans->launchForce + 70.0f) * 0.125f;
ekans->unk_200 = (COSS(ekans->totalRot.y) * (26.0f + ekans->launchForce)) / 10.0f;
}
void func_86C01748(void) {
@ -2551,9 +2551,9 @@ void func_86C01FAC(MiniActor* ekans, s32 nPlayer) {
}
void func_86C021FC(MiniActor* ekans) {
if (ekans->unk_280 > 5.0f) {
func_81400760(&ekans->globalPos.x, (-SINS(ekans->totalRot.y) * ekans->unk_280) / 3.0f, 4.0f);
func_81400760(&ekans->globalPos.z, (-COSS(ekans->totalRot.y) * ekans->unk_280) / 3.0f, 4.0f);
if (ekans->stickMagnitude1 > 5.0f) {
func_81400760(&ekans->globalPos.x, (-SINS(ekans->totalRot.y) * ekans->stickMagnitude1) / 3.0f, 4.0f);
func_81400760(&ekans->globalPos.z, (-COSS(ekans->totalRot.y) * ekans->stickMagnitude1) / 3.0f, 4.0f);
} else {
ekans->globalPos.x = 0.0f;
ekans->globalPos.z = 0.0f;
@ -2601,7 +2601,7 @@ void miniEkansCompStateMachine(MiniActor* ekans, s32 nPlayer) {
ekans->unk_000.unk_000.unk_02 |= 0x20;
ekans->unk_298 = 0;
ekans->unk_296 = 0;
ekans->unk_280 = 0.0f;
ekans->stickMagnitude1 = 0.0f;
ekans->mainState++;
break;

View File

@ -619,20 +619,20 @@ void miniMetapodHumanControls(MiniActor* metapod) {
metapod->metapodInputLockTimer--;
}
if ((BTN_IS_DOWN(miniControllerPtr, BTN_A)) && (metapod->mainState == 0) && (metapod->unk_240 == 0) &&
if ((BTN_IS_DOWN(miniControllerPtr, BTN_A)) && (metapod->mainState == 0) && (metapod->isSquashed == 0) &&
(metapod->unk_2AA == 0) && (metapod->metapodInputLockTimer == 0)) {
metapod->mainState = 1;
}
switch (metapod->mainState) {
case 1:
case 1: // start harden
func_86E0034C(metapod);
miniChangeActorAnim(metapod, 1, -1, 1);
func_81407D48(1.0f, metapod->unk_190, metapod->totalRot, func_879029F0, &D_87903E40, 4);
metapod->mainState++;
break;
case 2:
case 2: // harden
if (func_80017484(&metapod->unk_000, 5) != 0) {
metapod->unk_000.unk_000.unk_02 &= ~0x20;
}
@ -789,7 +789,7 @@ void func_86E007CC(MiniActor* metapod, s32 player) {
s32 sp20;
s32 var_t0 = 0;
if (metapod->unk_240 == 0) {
if (metapod->isSquashed == 0) {
switch (D_87906046) {
case 0:
sp20 = 0x1E;
@ -851,7 +851,7 @@ void miniMetapodCompControls(MiniActor* metapod, s32 nPlayer) {
case 0x1:
metapod->unk_244--;
if (metapod->unk_244 < 0) {
if ((metapod->unk_2AA == 0) && (metapod->unk_240 == 0)) {
if ((metapod->unk_2AA == 0) && (metapod->isSquashed == 0)) {
if (metapod->unk_29E > 0) {
miniChangeActorAnim(metapod, 1, -1, 1);
metapod->mainState = 1;
@ -893,7 +893,7 @@ void miniMetapodCompControls(MiniActor* metapod, s32 nPlayer) {
}
}
void func_86E00AF4(void) {
void miniUpdateMetapods(void) {
s32 i;
miniControllerPtr = gPlayer1Controller;
@ -932,7 +932,7 @@ s32 func_86E00C34(s32 nPlayer) {
func_86E001A0(7, nPlayer);
sp1C = 1;
} else {
miniMetapodPtr->unk_240 = 1; // rock squashing
miniMetapodPtr->isSquashed = 1; // rock squashing
func_86E004FC(miniMetapodPtr);
sp1C = 2;
}
@ -940,7 +940,7 @@ s32 func_86E00C34(s32 nPlayer) {
return sp1C;
}
void func_86E00CAC(UNUSED MiniActor* metapod, s32 nPlayer) {
void miniRockChecks(UNUSED MiniActor* metapod, s32 nPlayer) {
s32 i;
s32 colliding;
@ -963,7 +963,7 @@ void func_86E00CAC(UNUSED MiniActor* metapod, s32 nPlayer) {
}
}
void func_86E00D78(MiniActor* metapod, s32 nPlayer) {
void miniMatapodChecks(MiniActor* metapod, s32 nPlayer) {
if ((miniMetapodPtr->damageTimer > 0) && (metapod->unk_2A8 == 0)) {
if (miniMetapodPtr->damageTimer >= 0x28) {
miniMetapodPtr->miniHealth -= miniMetapodPtr->damageTimer;
@ -986,32 +986,32 @@ void func_86E00D78(MiniActor* metapod, s32 nPlayer) {
miniMetapodPtr->unk_2AA = 1;
}
} else {
switch (miniMetapodPtr->unk_240) {
switch (miniMetapodPtr->isSquashed) {
case 1:
miniMetapodPtr->damageTimer += 0x1E;
miniChangeActorAnim(miniMetapodPtr, 2, 0, 1);
func_86E001A0(8, nPlayer);
miniMetapodPtr->unk_240++;
miniMetapodPtr->isSquashed++;
break;
case 2:
if (miniMetapodPtr->isIdle == 0) {
miniMetapodPtr->unk_240 = 0;
miniMetapodPtr->isSquashed = 0;
}
break;
}
}
}
void func_86E00ED0(void) {
void miniMatapodMinigameChecks(void) {
s32 i;
miniMetapodPtr = miniMetapods;
for (i = 0; i < 4; i++) {
if (minigameInputLock != 0) {
func_86E00CAC(miniMetapodPtr, i);
func_86E00D78(miniMetapodPtr, i);
miniRockChecks(miniMetapodPtr, i);
miniMatapodChecks(miniMetapodPtr, i);
}
miniMetapodPtr++;
}
@ -1151,7 +1151,7 @@ void func_86E01414(MiniActor* rock) {
rock->unk_000.unk_000.unk_01 &= ~1;
}
void func_86E01428(MiniActor* rock) {
void miniRockStateMachine(MiniActor* rock) {
UNUSED s32 pad[3];
s16 temp_a1 = rock->playerId;
Vec3f sp3C;
@ -1234,11 +1234,11 @@ void func_86E016EC(MiniActor* arg0) {
arg0->unk_190.z = arg0->unk_19C.z = arg0->localOrigin.z + arg0->globalPos.z;
}
void func_86E0172C(MiniActor* rock) {
void miniUpdateRockTransform(MiniActor* rock) {
if (rock->mainState != 0) {
rock->unk_1F8 += rock->unk_204;
rock->unk_1FC += rock->unk_208 - rock->weight;
rock->unk_200 += rock->unk_20C;
rock->unk_1F8 += rock->xAccel;
rock->unk_1FC += rock->yAccel - rock->weight;
rock->unk_200 += rock->zAccel;
rock->globalPos.x += rock->unk_1F8;
rock->globalPos.y += rock->unk_1FC;
rock->globalPos.z += rock->unk_200;
@ -1247,13 +1247,13 @@ void func_86E0172C(MiniActor* rock) {
func_86E016EC(rock);
}
void func_86E017C0(void) {
void miniUpdateRocks(void) {
s32 i;
miniRockPtr = miniMetapodRocks;
for (i = 0; i < 20; i++) {
func_86E01428(miniRockPtr);
func_86E0172C(miniRockPtr);
miniRockStateMachine(miniRockPtr);
miniUpdateRockTransform(miniRockPtr);
miniRockPtr++;
}
}
@ -1508,7 +1508,7 @@ s32 func_86E01F50(void) {
return ret;
}
void func_86E01F8C(void) {
void miniMetapodMinigameStateMachine(void) {
switch (minigameState) {
case 1:
miniInputLockTimer = 0xF;
@ -1764,10 +1764,10 @@ void func_86E02A64(void) {
if (D_8780FC94 == 0) {
func_8140C5D0();
func_86E01F8C();
func_86E00AF4();
func_86E017C0();
func_86E00ED0();
miniMetapodMinigameStateMachine();
miniUpdateMetapods();
miniUpdateRocks();
miniMatapodMinigameChecks();
func_86E01898();
func_86E00FD8();
func_86E02150();

View File

@ -17,12 +17,12 @@ void func_86E0073C(MiniActor* arg0, s32 arg1);
void func_86E007BC(MiniActor* arg0, s32 arg1);
void func_86E007CC(MiniActor* metapod, s32 player);
void miniMetapodCompControls(MiniActor* arg0, s32 arg1);
void func_86E00AF4(void);
void miniUpdateMetapods(void);
s32 metapodRockCollisionCheck_void(void);
s32 func_86E00C34(s32 arg0);
void func_86E00CAC(MiniActor* arg0, s32 arg1);
void func_86E00D78(MiniActor* arg0, s32 arg1);
void func_86E00ED0(void);
void miniRockChecks(MiniActor* arg0, s32 arg1);
void miniMatapodChecks(MiniActor* arg0, s32 arg1);
void miniMatapodMinigameChecks(void);
void func_86E00F60(void);
void func_86E00FD8(void);
void func_86E0103C(MiniActor* arg0, s32 arg1);
@ -30,10 +30,10 @@ void initFallingRocks(void);
void func_86E01188(void);
void func_86E01310(MiniActor* arg0);
void func_86E01414(MiniActor* arg0);
void func_86E01428(MiniActor* arg0);
void miniRockStateMachine(MiniActor* arg0);
void func_86E016EC(MiniActor* arg0);
void func_86E0172C(MiniActor* arg0);
void func_86E017C0(void);
void miniUpdateRockTransform(MiniActor* arg0);
void miniUpdateRocks(void);
void func_86E0182C(MiniActor* arg0);
void func_86E01898(void);
void func_86E01904(void);
@ -45,7 +45,7 @@ s32 func_86E01E34(void);
void func_86E01EB0(void);
s32 func_86E01EE8(void);
s32 func_86E01F50(void);
void func_86E01F8C(void);
void miniMetapodMinigameStateMachine(void);
void func_86E02150(void);
void miniDrawMetapodHealth(void);
void miniDrawMetapodHeads(void);

View File

@ -1613,8 +1613,8 @@ void initSandshrew(MiniActor* sandshrew, s32 player) {
sandshrew->unk_2A8 = 0;
sandshrew->unk_2A4 = 0;
sandshrew->unk_274 = 0.0f;
sandshrew->unk_27C = 0.0f;
sandshrew->diggingSpeed = 0.0f;
sandshrew->diggingAccel2 = 0.0f;
sandshrew->totalRot.x = sandshrew->unk_21A = 0;
sandshrew->totalRot.y = sandshrew->unk_21C = 0;
@ -1668,11 +1668,11 @@ void func_86F003FC(MiniActor* actor, s32 animID) {
}
void func_86F00450(MiniActor* sandshrew, f32 arg1) {
sandshrew->unk_280 -= arg1;
if (sandshrew->unk_280 < 1.0f) {
sandshrew->unk_280 = 1.0f;
sandshrew->diggingAccel1 -= arg1;
if (sandshrew->diggingAccel1 < 1.0f) {
sandshrew->diggingAccel1 = 1.0f;
}
sandshrew->unk_27C = sandshrew->unk_280;
sandshrew->diggingAccel2 = sandshrew->diggingAccel1;
}
void func_86F0048C(MiniActor* sandshrew, s32 arg1) {
@ -1680,19 +1680,19 @@ void func_86F0048C(MiniActor* sandshrew, s32 arg1) {
sandshrew->sandshrewLastDir = 0;
sandshrew->unk_2B0 = 0;
sandshrew->unk_2A0 = 0;
sandshrew->unk_280 = 0.0f;
sandshrew->unk_27C = 0.0f;
sandshrew->diggingAccel1 = 0.0f;
sandshrew->diggingAccel2 = 0.0f;
} else if (arg1 == 1) {
sandshrew->unk_2A0 = 0x14;
sandshrew->unk_2B0 = 3;
sandshrew->mainState = 1;
sandshrew->unk_280 = 10.0f;
sandshrew->unk_27C = 10.0f;
sandshrew->diggingAccel1 = 10.0f;
sandshrew->diggingAccel2 = 10.0f;
} else {
sandshrew->unk_2A0 = 0x14;
sandshrew->unk_2B0 = 3;
sandshrew->unk_27C = sandshrew->unk_280;
sandshrew->unk_280 = 10.0f;
sandshrew->diggingAccel2 = sandshrew->diggingAccel1;
sandshrew->diggingAccel1 = 10.0f;
}
}
@ -1760,30 +1760,30 @@ void sandshrewPlayerInput(MiniActor* sandshrew) {
if (sandshrew->unk_2A0 < 0) {
sandshrew->unk_2A0 = 0;
}
sandshrew->unk_274 += sandshrew->unk_27C;
sandshrew->diggingSpeed += sandshrew->diggingAccel2;
}
void sandshrewCompControls(MiniActor* arg0) {
switch (D_87906046) {
case 0:
arg0->unk_27C = (func_81400A78(0xA) * 0.1f) + 3.0f;
arg0->diggingAccel2 = (func_81400A78(0xA) * 0.1f) + 3.0f;
break;
case 1:
arg0->unk_27C = (func_81400A78(0x14) * 0.15f) + 5.0f;
arg0->diggingAccel2 = (func_81400A78(0x14) * 0.15f) + 5.0f;
break;
case 2:
arg0->unk_27C = (func_81400A78(0x14) * 0.17f) + 6.0f;
arg0->diggingAccel2 = (func_81400A78(0x14) * 0.17f) + 6.0f;
break;
case 3:
arg0->unk_27C = (func_81400A78(0x12) * 0.2f) + 6.4f;
arg0->diggingAccel2 = (func_81400A78(0x12) * 0.2f) + 6.4f;
break;
}
arg0->unk_274 += arg0->unk_27C;
if ((arg0->mainState == 0) && (arg0->unk_27C != 0.0f)) {
arg0->diggingSpeed += arg0->diggingAccel2;
if ((arg0->mainState == 0) && (arg0->diggingAccel2 != 0.0f)) {
arg0->mainState = 1;
}
}
@ -1809,7 +1809,7 @@ void func_86F00920(MiniActor* sandshrew) {
break;
case 0x3: // diggin
if (sandshrew->unk_27C != 0) {
if (sandshrew->diggingAccel2 != 0) {
if (D_8140E6CC == 0) {
func_81407F24(&sandshrew->unk_000, func_87902608, &D_87903E28, 1, 1); // perticles
func_81407F24(&sandshrew->unk_000, func_87902608, &D_87903E28, 1, 2); // particles
@ -1826,9 +1826,9 @@ void func_86F00920(MiniActor* sandshrew) {
}
}
func_80017454(&sandshrew->unk_000, ((s32)sandshrew->unk_27C << 0xE) + 0xC000);
func_80017454(&sandshrew->unk_000, ((s32)sandshrew->diggingAccel2 << 0xE) + 0xC000);
holeDeepeness = sandshrew->unk_274 / 5000.0f;
holeDeepeness = sandshrew->diggingSpeed / 5000.0f;
if (holeDeepeness > 0.2f) {
sandshrew->globalPos.y -= holeDeepeness;
}
@ -1838,7 +1838,7 @@ void func_86F00920(MiniActor* sandshrew) {
func_80017464(&sandshrew->unk_000, 0);
}
} else {
sandshrew->unk_274 = 0.0f;
sandshrew->diggingSpeed = 0.0f;
func_8001BD04(&sandshrew->unk_000, 3);
func_800173DC(&sandshrew->unk_000, 0, sandshrew->unk_000.unk_040.unk_04, 0x10000);
func_80017464(&sandshrew->unk_000, 0);
@ -1946,14 +1946,14 @@ void initSandshrewHoles(void) {
void func_86F00F68(MiniActor* sandshrewHole, MiniActor* sandshrewPlayer) {
s32 var_a1;
if ((sandshrewPlayer->unk_274 > 300.0f) && (sandshrewHole->mainState == 0)) {
if ((sandshrewPlayer->diggingSpeed > 300.0f) && (sandshrewHole->mainState == 0)) {
func_86F003FC(sandshrewHole, 0);
sandshrewHole->unk_000.unk_000.unk_01 |= 1;
sandshrewHole->mainState = 1;
}
if (sandshrewHole->mainState != 0) {
if (sandshrewPlayer->unk_274 > 400.0f) {
if (sandshrewPlayer->diggingSpeed > 400.0f) {
var_a1 = 0x5000;
} else {
var_a1 = 0;
@ -2146,7 +2146,7 @@ void func_86F0164C(void) {
miniSandshrewPtr = miniSandshrews;
for (i = 0; i < 4; i++) {
miniSandshrewPtr->unk_274 = miniSandshrewPtr->unk_27C = 0.0f;
miniSandshrewPtr->diggingSpeed = miniSandshrewPtr->diggingAccel2 = 0.0f;
miniSandshrewPtr++;
}
}

View File

@ -28,10 +28,10 @@ typedef struct MiniActor {
/* 0x1F8 */ f32 unk_1F8; // speed (x) on ekans and metapod
/* 0x1FC */ f32 unk_1FC; // speed (y) on ekans and metapod
/* 0x200 */ f32 unk_200; // speed (z) on ekans and metapod
/* 0x204 */ f32 unk_204; // x acceleration on metapod ** metapod only
/* 0x208 */ f32 unk_208; // y acceleration on metapod ** metapod only
/* 0x20C */ f32 unk_20C; // z acceleration on metapod ** metapod only
/* 0x210 */ f32 weight; // weight? gravity ? y acceleration ? on ekans and metapod
/* 0x204 */ f32 xAccel; // x acceleration on metapod ** metapod only
/* 0x208 */ f32 yAccel; // y acceleration on metapod ** metapod only
/* 0x20C */ f32 zAccel; // z acceleration on metapod ** metapod only
/* 0x210 */ f32 weight;
/* 0x214 */ Vec3s totalRot; // total rotation
/* 0x21A */ s16 unk_21A; // x rotation 1, always zero
/* 0x21C */ s16 unk_21C; // y rotation 1
@ -52,7 +52,10 @@ typedef struct MiniActor {
/* 0x23A */ s16 unk_23A; // always zero
/* 0x23C */ s16 unk_23C; // ??? some value to send to unk_000->unk_018
/* 0x23E */ s16 mainState; // animation id or state
/* 0x240 */ s16 unk_240; // metapod got rock squashed
/* 0x240 */ union {
s16 unk_240;
s16 isSquashed;
};
/* 0x242 */ s16 compState;
/* 0x244 */ s16 unk_244; // ?
/* 0x246 */ char unk246[0x2]; // unused
@ -71,36 +74,43 @@ typedef struct MiniActor {
/* 0x266 */ s16 playerId;
/* 0x268 */ s16 playerIdBuffer; // ekans only
/* 0x26A */ s16 unk_26A; // some flag related to collisions
/* 0x26C */ s16 unk_26C; // animation id or state?
/* 0x26E */ s16 unk_26E; // animation something, always zero
/* 0x26C */ s16 unk_26C; // animation something
/* 0x26E */ s16 unk_26E; // animation something
/* 0x270 */ s16 unk_270;
/* 0x272 */ s16 unk_272; // colliding with a rock on metapod's minigame ?
/* 0x274 */ f32 unk_274; // ???
/* 0x272 */ s16 unk_272; // colliding with a rock on metapod's minigame ? ;
/* 0x274 */ union{
f32 unk_274;
f32 diggingSpeed;
f32 launchForce;
};
/* 0x278 */ char unk278[0x4]; // unused
/* 0x27C */ f32 unk_27C; //
/* 0x280 */ f32 unk_280; // stick magnitude on ekans? ; digging/animation speed on sandshrew
/* 0x284 */ f32 unk_284; // launch forse on ekans
/* 0x27C */ f32 diggingAccel2; //
/* 0x280 */ union {
f32 unk_280;
f32 stickMagnitude1;
f32 diggingAccel1;
};
/* 0x284 */ f32 stickMagnitude2; // launch forse on ekans
/* 0x288 */ f32 unk_288; // bottom of the hitbox / bounding box ?
/* 0x28C */ f32 unk_28C; // top of the hitbox ? / bounding box ? ; double of 1E4
/* 0x290 */ s16 unk_290; // always zero
/* 0x292 */ s16 unk_292; // always zero
/* 0x294 */ s16 unk_294; // always zero
/* 0x296 */ s16 unk_296;
/* 0x298 */ s16 unk_298; // diglett bounceness on ekans ?
/* 0x298 */ s16 unk_298; // timer after bouncin on digletts on ekans
/* 0x29A */ union {
s16 unk_29A;
s16 sandshrewLastDir;
s16 ekansDiglettHitScore;
s16 metapodInputLockTimer;
};
s16 unk_29A;
s16 sandshrewLastDir;
s16 ekansDiglettHitScore;
s16 metapodInputLockTimer;
};
/* 0x29C */ s16 diglettIsGold; // ** diglett only
/* 0x29E */ s16 unk_29E; // respawn time after landing on ekans ; something comp animation on metapod
/* 0x2A0 */ s16 unk_2A0; // ammount of frames L/R DL/DR was pressed on sandshrew and ekans
/* 0x2A0 */ s16 unk_2A0; // timer for correct L/R inpus on sandsrew; ammount of frmaes DL/DR was pressed on ekans
/* 0x2A2 */ s16 ekansScore; // ** ekans only
/* 0x2A4 */ s16 unk_2A4;
/* 0x2A6 */ s16 unk_2A6; // metapod state ?
/* 0x2A8 */ s16 unk_2A8;
/* 0x2A8 */ s16 unk_2A8; // is winner ? is alive ?
/* 0x2AA */ s16 unk_2AA;
/* 0x2AC */ s16 isComp;
/* 0x2AE */ s16 unk_2AE;

View File

@ -260,18 +260,18 @@ void func_8790060C(MiniActor* actor) {
actor->dist2DiglettLevelX = 0.0f;
actor->unk_1E4 = 0.0f;
actor->weight = 0.0f;
actor->unk_20C = 0.0f;
actor->unk_208 = 0.0f;
actor->unk_204 = 0.0f;
actor->zAccel = 0.0f;
actor->yAccel = 0.0f;
actor->xAccel = 0.0f;
actor->unk_200 = 0.0f;
actor->unk_1FC = 0.0f;
actor->unk_1F8 = 0.0f;
actor->unk_1F4 = 0.0f;
actor->unk_1F0 = 0.0f;
actor->unk_1EC = 0.0f;
actor->unk_284 = 0.0f;
actor->stickMagnitude2 = 0.0f;
actor->unk_280 = 0.0f;
actor->unk_27C = 0.0f;
actor->diggingAccel2 = 0.0f;
actor->unk_274 = 0.0f;
actor->midAirState = actor->ekansIsMidAir = actor->unk_264 = actor->playerId = 0;