This commit is contained in:
shy
2025-07-27 19:03:00 -04:00
parent 5839c32089
commit 546e4c45b0
12 changed files with 258 additions and 257 deletions

View File

@@ -146,7 +146,7 @@ typedef struct unk_D_86002F58_004_000 {
/* 0x040 */ unk_D_86002F58_004_000_040 unk_040;
/* 0x054 */ unk_D_86002F58_004_000_054 unk_054;
/* 0x060 */ MtxF unk_060;
/* 0x0A0 */ Color_RGBA8_u32 unk_0A0;
/* 0x0A0 */ Color_RGBA8_u32 unk_0A0; // vertex color ?
/* 0x0A4 */ char unk0A4[2];
/* 0x0A6 */ u8 unk_0A6;
/* 0x0A7 */ u8 unk_0A7;

View File

@@ -2114,8 +2114,8 @@ func_87900854 = 0x87900854; // type:func
func_87900920 = 0x87900920; // type:func
func_879009B4 = 0x879009B4; // type:func
func_87900A50 = 0x87900A50; // type:func
func_87900B64 = 0x87900B64; // type:func
minigameDebuggModeControll = 0x87900C5C; // type:func
miniUpdateCamera = 0x87900B64; // type:func
minigameDebuggModeControl = 0x87900C5C; // type:func
showDebuggCameraInfo = 0x87900F44; // type:func
showDebuggJoystickInfo = 0x879010A4; // type:func
func_87901200 = 0x87901200; // type:func
@@ -2731,7 +2731,7 @@ func_86C00C40 = 0x86C00C40; // type:func
func_86C00D50 = 0x86C00D50; // type:func
func_86C00EF8 = 0x86C00EF8; // type:func
func_86C00F70 = 0x86C00F70; // type:func
func_86C01100 = 0x86C01100; // type:func
miniEkansCompGetForce = 0x86C01100; // type:func
func_86C01408 = 0x86C01408; // type:func
func_86C014A0 = 0x86C014A0; // type:func
compEkansControls = 0x86C01538; // type:func
@@ -2744,16 +2744,16 @@ func_86C01D2C = 0x86C01D2C; // type:func
func_86C01FAC = 0x86C01FAC; // type:func
func_86C021FC = 0x86C021FC; // type:func
anyEkansControls = 0x86C022D8; // type:func
func_86C02324 = 0x86C02324; // type:func
miniEkansCompStateMachine = 0x86C02324; // type:func
miniEkansPhysics = 0x86C02514; // type:func
func_86C02610 = 0x86C02610; // type:func
initDiglettHole = 0x86C026F0; // type:func
func_86C0276C = 0x86C0276C; // type:func
func_86C027BC = 0x86C027BC; // type:func
func_86C02804 = 0x86C02804; // type:func
func_86C028C0 = 0x86C028C0; // type:func
miniEkansChooseRandDiglett = 0x86C028C0; // type:func
func_86C02A1C = 0x86C02A1C; // type:func
func_86C02B78 = 0x86C02B78; // type:func
miniEkansRecolorDiglet = 0x86C02B78; // type:func
func_86C02C28 = 0x86C02C28; // type:func
func_86C03008 = 0x86C03008; // type:func
ekansMinigameInitObjects = 0x86C03080; // type:func
@@ -2762,7 +2762,7 @@ func_86C03128 = 0x86C03128; // type:func
func_86C031E4 = 0x86C031E4; // type:func
func_86C03258 = 0x86C03258; // type:func
miniEkansStateMachine = 0x86C03344; // type:func
func_86C03500 = 0x86C03500; // type:func
miniEkansInitCam = 0x86C03500; // type:func
func_86C035E0 = 0x86C035E0; // type:func
func_86C03608 = 0x86C03608; // type:func
func_86C03AB8 = 0x86C03AB8; // type:func
@@ -2778,10 +2778,10 @@ ekansMinigameUpdate = 0x86C043C4; // type:func
func_86C044B4 = 0x86C044B4; // type:func
ekansMinigameLoad = 0x86C046B0; // type:func
func_86D00020 = 0x86D00020; // type:func
func_86D000A8 = 0x86D000A8; // type:func
func_86D000D0 = 0x86D000D0; // type:func
miniUnkUpdateCamera = 0x86D000A8; // type:func
miniUnkDrawHUB = 0x86D000D0; // type:func
func_86D00134 = 0x86D00134; // type:func
func_86D0015C = 0x86D0015C; // type:func
miniUnkControls = 0x86D0015C; // type:func
func_86D0032C = 0x86D0032C; // type:func
func_86D0037C = 0x86D0037C; // type:func
func_86D003EC = 0x86D003EC; // type:func

View File

@@ -39,13 +39,13 @@ extern u32 D_030426E0[];
extern u32 D_03042E00[];
typedef struct ActiveDiglettInfo {
/* 0x00 */ s16 unk_00; // diglett id ?
/* 0x02 */ s16 unk_02; // 0
/* 0x04 */ s16 unk_04;
/* 0x00 */ s16 diglettId;
/* 0x02 */ s16 state;
/* 0x04 */ s16 timer;
/* 0x06 */ s16 unk_06; // 0
/* 0x08 */ s16 unk_08; // 0
/* 0x08 */ s16 gotHoop;
/* 0x0A */ s16 unk_0A; // 0
/* 0x0C */ s16 unk_0C;
/* 0x0C */ s16 playerId;
} ActiveDiglettInfo; // size = 0xE
typedef struct ActorOriginPosition {
@@ -1502,7 +1502,7 @@ UNUSED static s16 D_86C0E054[] = {
0x0002, 0x0004, 0x0006, 0x0002, 0x0005, 0x0008, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
};
static s16 D_86C0E084[4][4] = {
static s16 D_86C0E084[4][4] = { // difficulties ?
{
0x0000,
0x0000,
@@ -1596,7 +1596,7 @@ s32 func_86C00020(MiniActor* arg0) {
}
void func_86C00090(s16 nDiglett, s32* arg1, s32* arg2) {
s16 ActiveDiglettId = activeDigletts[nDiglett].unk_00;
s16 ActiveDiglettId = activeDigletts[nDiglett].diglettId;
if (miniDigletts[ActiveDiglettId].unk_29C != 0) {
*arg1 = 1;
@@ -1763,7 +1763,7 @@ void initEkans(MiniActor* ekans, s16 player) {
ekans->unk_000.unk_000.unk_02 &= ~0x40;
ekans->isComp = D_879060C4[player];
ekans->unk_266 = -1;
ekans->playerId = -1;
if (ekansMinigameCountdownStarted == false) {
ekans->unk_2AE = D_86C0E084[D_87906046][player];
@@ -1787,8 +1787,8 @@ void initEkanses(void) {
}
}
f32 func_86C0063C(MiniActor* arg0) {
return (arg0->unk_284 <= arg0->unk_280) ? arg0->unk_280 : arg0->unk_284;
f32 func_86C0063C(MiniActor* ekans) {
return (ekans->unk_284 <= ekans->unk_280) ? ekans->unk_280 : ekans->unk_284;
}
s16 func_86C00668(MiniActor* arg0, s16 arg1) {
@@ -1955,12 +1955,12 @@ void func_86C00AA4(void) {
s32 func_86C00B0C(MiniActor* ekans) {
s32 ret = 0;
s32 idx = ekans->unk_266;
s32 idx = ekans->playerId;
s32 i;
if ((miniDigletts[activeDigletts[idx].unk_00].unk_29C == 0) && (ekans->unk_2AE == 1)) {
if ((miniDigletts[activeDigletts[idx].diglettId].unk_29C == 0) && (ekans->unk_2AE == 1)) {
for (i = 0; i < 3; i++) {
if ((activeDigletts[i].unk_02 == 6) && (miniDigletts[activeDigletts[i].unk_00].unk_29C != 0)) {
if ((activeDigletts[i].state == 6) && (miniDigletts[activeDigletts[i].diglettId].unk_29C != 0)) {
ret = 1;
break;
}
@@ -1976,7 +1976,7 @@ s16 func_86C00BB4(void) {
s16 var_t0 = -1;
for (i = 0; i < 3; i++) {
if (activeDigletts[var_v1].unk_02 == 6) {
if (activeDigletts[var_v1].state == 6) {
var_t0 = var_v1;
break;
}
@@ -1996,8 +1996,8 @@ s16 func_86C00C40(MiniActor* arg0) {
s16 sp1E = -1;
s32 sp18 = 0;
if (arg0->unk_266 >= 0) {
var_a0 = arg0->unk_266;
if (arg0->playerId >= 0) {
var_a0 = arg0->playerId;
} else {
sp18 = 0;
sp1E = -1;
@@ -2005,7 +2005,7 @@ s16 func_86C00C40(MiniActor* arg0) {
}
for (i = 0; i < 3; i++) {
if ((activeDigletts[i].unk_02 == 6) && (miniDigletts[activeDigletts[i].unk_00].unk_29C != 0)) {
if ((activeDigletts[i].state == 6) && (miniDigletts[activeDigletts[i].diglettId].unk_29C != 0)) {
sp1E = i;
sp18 = 1;
break;
@@ -2014,7 +2014,7 @@ s16 func_86C00C40(MiniActor* arg0) {
if (sp18 == 0) {
for (i = 0; i < 3; i++) {
if (activeDigletts[var_a0].unk_02 == 6) {
if (activeDigletts[var_a0].state == 6) {
sp1E = var_a0;
break;
}
@@ -2048,12 +2048,12 @@ s16 func_86C00D50(MiniActor* arg0) {
var_a0 = func_878001E8(0x64) % 3;
for (i = 0; i < 3; i++) {
if (activeDigletts[var_a0].unk_02 == 6) {
if (activeDigletts[var_a0].state == 6) {
if (sp1C == 0) {
var_v0 = miniEkanses;
var_v1 = 1;
for (j = 0; j < 4; j++, var_v0++) {
if ((var_v0 != arg0) && (var_v0->isComp != 0) && (var_a0 == var_v0->unk_266)) {
if ((var_v0 != arg0) && (var_v0->isComp != 0) && (var_a0 == var_v0->playerId)) {
var_v1 = 0;
}
}
@@ -2082,19 +2082,19 @@ s16 func_86C00D50(MiniActor* arg0) {
s32 func_86C00EF8(MiniActor* arg0) {
switch (arg0->unk_2AE) {
case 0:
arg0->unk_266 = func_86C00BB4();
arg0->playerId = func_86C00BB4();
break;
case 1:
arg0->unk_266 = func_86C00C40(arg0);
arg0->playerId = func_86C00C40(arg0);
break;
case 2:
arg0->unk_266 = func_86C00D50(arg0);
arg0->playerId = func_86C00D50(arg0);
break;
}
return arg0->unk_266;
return arg0->playerId;
}
void func_86C00F70(MiniActor* ekans) {
@@ -2128,7 +2128,7 @@ void func_86C00F70(MiniActor* ekans) {
break;
}
idx = activeDigletts[ekans->unk_266].unk_00;
idx = activeDigletts[ekans->playerId].diglettId;
tempDiglett = &miniDigletts[idx];
sp3C.x = tempDiglett->unk_190.x - ekans->unk_190.x;
@@ -2138,52 +2138,52 @@ void func_86C00F70(MiniActor* ekans) {
ekans->unk_22E = func_878001E8(sp32) + sp34;
}
void func_86C01100(MiniActor* arg0) {
s16 temp_v1 = activeDigletts[arg0->unk_266].unk_00;
f32 var_fv0;
void miniEkansCompGetForce(MiniActor* ekans) {
s16 diglettId = activeDigletts[ekans->playerId].diglettId;
f32 force;
switch (D_87906046) {
case 0:
if (temp_v1 < 3) {
var_fv0 = func_878001E8(0x28) + 0x14;
} else if (temp_v1 < 6) {
var_fv0 = func_878001E8(0x23) + 0x14;
if (diglettId < 3) {
force = func_878001E8(0x28) + 0x14;
} else if (diglettId < 6) {
force = func_878001E8(0x23) + 0x14;
} else {
var_fv0 = func_878001E8(0x19) + 0x28;
force = func_878001E8(0x19) + 0x28;
}
break;
case 1:
if (temp_v1 < 3) {
var_fv0 = func_878001E8(0x1E) + 0x14;
} else if (temp_v1 < 6) {
var_fv0 = func_878001E8(0x1E) + 0x1E;
if (diglettId < 3) {
force = func_878001E8(0x1E) + 0x14;
} else if (diglettId < 6) {
force = func_878001E8(0x1E) + 0x1E;
} else {
var_fv0 = func_878001E8(0xF) + 0x32;
force = func_878001E8(0xF) + 0x32;
}
break;
case 2:
if (temp_v1 < 3) {
var_fv0 = func_878001E8(0xF) + 0x18;
} else if (temp_v1 < 6) {
var_fv0 = func_878001E8(0xF) + 0x28;
if (diglettId < 3) {
force = func_878001E8(0xF) + 0x18;
} else if (diglettId < 6) {
force = func_878001E8(0xF) + 0x28;
} else {
var_fv0 = func_878001E8(0xA) + 0x36;
force = func_878001E8(0xA) + 0x36;
}
break;
case 3:
if (temp_v1 < 3) {
var_fv0 = func_878001E8(0xA) + 0x1C;
} else if (temp_v1 < 6) {
var_fv0 = func_878001E8(0xA) + 0x2A;
if (diglettId < 3) {
force = func_878001E8(0xA) + 0x1C;
} else if (diglettId < 6) {
force = func_878001E8(0xA) + 0x2A;
} else {
var_fv0 = func_878001E8(6) + 0x3A;
force = func_878001E8(6) + 0x3A;
}
break;
}
arg0->unk_280 = var_fv0;
ekans->unk_280 = force;
}
s16 func_86C01408(void) {
@@ -2258,7 +2258,7 @@ void compEkansControls(MiniActor* ekans) {
} else {
ekans->unk_29E--;
if (ekans->unk_29E <= 0) {
func_86C01100(ekans);
miniEkansCompGetForce(ekans);
ekans->unk_242++;
}
}
@@ -2345,8 +2345,8 @@ void checkCollitionWithDigletts(MiniActor* ekans, s32 nPlayer) {
func_80015390(&ekans->unk_000, 0xA, &tempEkansHitboxPos);
if ((ekans->unk_262 != 0) && (ekans->unk_260 < 2)) {
for (i = 0; i < 3; i++) {
if ((activeDigletts[i].unk_06 != 0) && (activeDigletts[i].unk_08 == 0)) {
func_80015390(&miniDigletts[activeDigletts[i].unk_00].unk_000, 0xA, &tempDiglettHitboxPos);
if ((activeDigletts[i].unk_06 != 0) && (activeDigletts[i].gotHoop == false)) {
func_80015390(&miniDigletts[activeDigletts[i].diglettId].unk_000, 0xA, &tempDiglettHitboxPos);
distance2d = func_81400EF0(tempEkansHitboxPos, tempDiglettHitboxPos);
xDist = tempEkansHitboxPos.x - tempDiglettHitboxPos.x;
@@ -2356,8 +2356,8 @@ void checkCollitionWithDigletts(MiniActor* ekans, s32 nPlayer) {
if ((distance2d < 35.0f) && (yDist > -35.0f) && (yDist < 20.0f)) {
if ((distance2d < 25.0f) && (yDist > -20.0f) && (yDist < 20.0f)) {
ekans->ekansAbbleToHoop = true;
ekans->unk_268 = ekans->unk_266;
ekans->unk_266 = i;
ekans->unk_268 = ekans->playerId;
ekans->playerId = i;
} else if (ekans->unk_260 == 0) {
ekans->unk_260 = 1;
ekansFixDirToDiglett(ekans, nPlayer, i, zDist, xDist, yDist);
@@ -2380,11 +2380,11 @@ void func_86C01AF8(void) {
for (i = 0; i < 4; i++, ekans++) {
if (ekans->ekansAbbleToHoop) {
s32 idx = ekans->unk_266;
s32 idx = ekans->playerId;
for (j = i + 1; j < 4; j++) {
if ( (miniEkanses[j].ekansAbbleToHoop) && (idx == miniEkanses[j].unk_266) ) {
diglett = &miniDigletts[activeDigletts[idx].unk_00];
if ( (miniEkanses[j].ekansAbbleToHoop) && (idx == miniEkanses[j].playerId) ) {
diglett = &miniDigletts[activeDigletts[idx].diglettId];
func_80015390(&ekans->unk_000, 0xA, &sp7C);
func_80015390(&miniEkanses[j].unk_000, 0xA, &sp70);
@@ -2407,14 +2407,14 @@ void func_86C01AF8(void) {
}
}
void func_86C01D2C(MiniActor* ekans, s32 arg1) {
void func_86C01D2C(MiniActor* ekans, s32 nPlayer) {
Vec3f diglettColl;
Vec3f ekansColl;
f32 xDist;
f32 zDist;
s32 idx;
MiniActor* diglett;
ActiveDiglettInfo* sp18;
ActiveDiglettInfo* activeDiglett;
if (ekans->unk_260 != 2) {
return;
@@ -2422,9 +2422,9 @@ void func_86C01D2C(MiniActor* ekans, s32 arg1) {
func_80015390(&ekans->unk_000, 0xA, &ekansColl);
idx = ekans->unk_266;
sp18 = &activeDigletts[idx];
diglett = &miniDigletts[sp18->unk_00];
idx = ekans->playerId;
activeDiglett = &activeDigletts[idx];
diglett = &miniDigletts[activeDiglett->diglettId];
func_80015390(&diglett->unk_000, 0xA, &diglettColl);
@@ -2468,9 +2468,9 @@ void func_86C01D2C(MiniActor* ekans, s32 arg1) {
ekans->ekansDiglettHitScore = 1;
}
sp18->unk_08 = 1;
sp18->unk_0C = arg1;
D_86C12040[sp18->unk_00][arg1] = 1;
activeDiglett->gotHoop = true;
activeDiglett->playerId = nPlayer;
D_86C12040[activeDiglett->diglettId][nPlayer] = 1;
ekans->unk_296 = 1;
if (ekans->unk_260 == 0) {
@@ -2487,7 +2487,7 @@ void func_86C01FAC(MiniActor* ekans, s32 nPlayer) {
if (ekans->unk_298 != 0) {
ekans->unk_298--;
} else if (ekans->unk_296 != 0) {
func_86C00368(8, ekans->unk_266);
func_86C00368(8, ekans->playerId);
ekans->unk_296 = 0;
}
@@ -2530,10 +2530,10 @@ void func_86C01FAC(MiniActor* ekans, s32 nPlayer) {
ekans->unk_29E--;
if (ekans->unk_29E <= 0) {
if ((ekans->unk_260 == 5) && (ekans->isComp != 0)) {
if (ekans->unk_268 == ekans->unk_266) {
ekans->unk_266 = -1;
if (ekans->unk_268 == ekans->playerId) {
ekans->playerId = -1;
} else {
ekans->unk_266 = ekans->unk_268;
ekans->playerId = ekans->unk_268;
}
}
@@ -2570,7 +2570,7 @@ void anyEkansControls(MiniActor* ekans) {
}
}
void func_86C02324(MiniActor* ekans, s32 nPlayer) {
void miniEkansCompStateMachine(MiniActor* ekans, s32 nPlayer) {
switch (ekans->unk_23E) {
case 0x0: // pull back
func_86C021FC(ekans);
@@ -2653,7 +2653,7 @@ void miniEkansPhysics(void) {
miniEkansPtr = miniEkanses;
for (i = 0; i < 4; i++) {
func_86C02324(miniEkansPtr, i);
miniEkansCompStateMachine(miniEkansPtr, i);
func_879003A0(miniEkansPtr);
miniActorUpdateTransform(miniEkansPtr);
func_87900808(miniEkansPtr); // update the collider?
@@ -2662,19 +2662,19 @@ void miniEkansPhysics(void) {
}
}
void initDiglett(MiniActor* diglett, s32 arg1) {
void initDiglett(MiniActor* diglett, s32 nDiglett) {
func_8790060C(diglett);
diglett->scale.x = 1.0f;
diglett->scale.y = 1.0f;
diglett->scale.z = 1.0f;
diglett->localOrigin.x = diglettActorInfo[arg1].pos.x;
diglett->localOrigin.y = diglettActorInfo[arg1].pos.y;
diglett->localOrigin.z = diglettActorInfo[arg1].pos.z;
diglett->localOrigin.x = diglettActorInfo[nDiglett].pos.x;
diglett->localOrigin.y = diglettActorInfo[nDiglett].pos.y;
diglett->localOrigin.z = diglettActorInfo[nDiglett].pos.z;
diglett->unk_288 = diglettActorInfo[arg1].unk_12;
diglett->unk_28C = diglettActorInfo[arg1].unk_14;
diglett->unk_288 = diglettActorInfo[nDiglett].unk_12;
diglett->unk_28C = diglettActorInfo[nDiglett].unk_14;
diglett->unk_258 = diglett->unk_25C = 0x64;
diglett->unk_1E4 = diglett->unk_28C * 0.5f;
@@ -2704,10 +2704,10 @@ void func_86C0276C(void) {
s32 i;
for (i = 0; i < 3; i++) {
activeDigletts[i].unk_02 = 0;
activeDigletts[i].unk_00 = -1;
activeDigletts[i].state = 0;
activeDigletts[i].diglettId = -1;
activeDigletts[i].unk_06 = 0;
activeDigletts[i].unk_08 = 0;
activeDigletts[i].gotHoop = false;
activeDigletts[i].unk_0A = 0;
}
}
@@ -2727,8 +2727,8 @@ void func_86C027BC(void) {
func_86C0276C();
for (i = 0; i < 3; i++) {
activeDigletts[i].unk_02 = 3;
activeDigletts[i].unk_00 = -1;
activeDigletts[i].state = 3;
activeDigletts[i].diglettId = -1;
}
}
@@ -2751,10 +2751,10 @@ void initDigletts(void) {
func_86C0276C();
}
s16 func_86C028C0(s16 arg0) {
s16 miniEkansChooseRandDiglett(UNUSED s16 activeDiglett) {
s32 i;
s16 sp44[3];
s16 var_a1;
s16 rand;
s16 var_s0;
s16 var_s3;
@@ -2764,22 +2764,22 @@ s16 func_86C028C0(s16 arg0) {
var_s0 = 0;
for (i = 0; i < 3; i++) {
if (activeDigletts[i].unk_00 != -1) {
sp44[var_s0] = activeDigletts[i].unk_00;
if (activeDigletts[i].diglettId != -1) {
sp44[var_s0] = activeDigletts[i].diglettId;
var_s0++;
}
}
if (var_s0 == 0) {
var_a1 = func_878001E8(0x64) % 9;
rand = func_878001E8(0x64) % 9;
} else {
var_s3 = 0;
while (true) {
var_s0 = 0;
var_a1 = func_878001E8(0x64) % 9;
rand = func_878001E8(0x64) % 9;
while (true) {
s16 tmp = var_s0 + 1;
if (var_a1 == sp44[var_s0]) {
if (rand == sp44[var_s0]) {
break;
}
var_s0++;
@@ -2795,7 +2795,7 @@ s16 func_86C028C0(s16 arg0) {
}
}
return var_a1;
return rand;
}
void func_86C02A1C(MiniActor* diglett) {
@@ -2835,70 +2835,70 @@ void func_86C02A1C(MiniActor* diglett) {
}
}
void func_86C02B78(MiniActor* diglett, s32 arg1) {
u8 var_s0 = 0;
u8 var_a2 = 0;
u8 var_a3 = 0;
void miniEkansRecolorDiglet(MiniActor* diglett, s32 nActiveDiglett) {
u8 r = 0;
u8 g = 0;
u8 b = 0;
switch (activeDigletts[arg1].unk_0C) {
switch (activeDigletts[nActiveDiglett].playerId) {
case 0:
var_s0 = 0x14;
var_a2 = 0x3C;
var_a3 = 0xFF;
r = 0x14;
g = 0x3C;
b = 0xFF;
break;
case 1:
var_a2 = 0x96;
var_a3 = 0x3C;
g = 0x96;
b = 0x3C;
break;
case 2:
var_s0 = 0xC8;
var_a2 = 0x1E;
var_a3 = 0x14;
r = 0xC8;
g = 0x1E;
b = 0x14;
break;
case 3:
var_s0 = 0xDC;
var_a2 = 0xAA;
r = 0xDC;
g = 0xAA;
break;
}
func_8001BE34(&diglett->unk_000, var_s0, var_a2, var_a3, 0x80);
func_8001BE34(&diglett->unk_000, r, g, b, 0x80);
}
void func_86C02C28(void) {
s32 i;
for (i = 0; i < 3; i++) {
switch (activeDigletts[i].unk_02) {
switch (activeDigletts[i].state) {
case 1:
miniDiglettPtr = &miniDigletts[activeDigletts[i].unk_00];
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
miniChangeActorAnim(miniDiglettPtr, 1, -1, 0);
activeDigletts[i].unk_02 = 2;
activeDigletts[i].state = 2;
func_86C00368(6, i);
break;
case 2:
miniDiglettPtr = &miniDigletts[activeDigletts[i].unk_00];
if (miniIddleAnimCheck(miniDiglettPtr) != false) {
activeDigletts[i].unk_00 = -1;
activeDigletts[i].unk_02 = 0;
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
if ( miniIddleAnimCheck(miniDiglettPtr) ) {
activeDigletts[i].diglettId = -1;
activeDigletts[i].state = 0;
}
break;
case 3:
activeDigletts[i].unk_02 = 4;
activeDigletts[i].unk_04 = func_878001E8(0x14);
activeDigletts[i].state = 4;
activeDigletts[i].timer = func_878001E8(0x14); // get random
break;
case 4:
activeDigletts[i].unk_04--;
if (activeDigletts[i].unk_04 < 0) {
activeDigletts[i].unk_02 = 5;
activeDigletts[i].unk_04 = 0xD;
activeDigletts[i].unk_00 = func_86C028C0(i);
miniDiglettPtr = &miniDigletts[activeDigletts[i].unk_00];
case 4: // pre-spawn
activeDigletts[i].timer--; // spawn delay
if (activeDigletts[i].timer < 0) {
activeDigletts[i].state = 5;
activeDigletts[i].timer = 0xD;
activeDigletts[i].diglettId = miniEkansChooseRandDiglett(i);
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
miniDiglettPtr->unk_000.unk_000.unk_01 |= 1;
func_86C00368(7, i);
func_86C02A1C(miniDiglettPtr);
@@ -2906,51 +2906,52 @@ void func_86C02C28(void) {
}
break;
case 5:
activeDigletts[i].unk_04--;
if (activeDigletts[i].unk_04 < 0) {
case 5: // coming out of the ground anim
activeDigletts[i].timer--; // interactable delay
if (activeDigletts[i].timer < 0) {
activeDigletts[i].unk_06 = 1;
activeDigletts[i].unk_02 = 6;
activeDigletts[i].state = 6;
}
break;
case 6:
if (activeDigletts[i].unk_08 != 0) {
miniDiglettPtr = &miniDigletts[activeDigletts[i].unk_00];
case 6: // getting hoop'd
if ( activeDigletts[i].gotHoop ) {
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
miniChangeActorAnim(miniDiglettPtr, 2, -1, 0);
func_86C02B78(miniDiglettPtr, i);
activeDigletts[i].unk_02 = 7;
miniEkansRecolorDiglet(miniDiglettPtr, i);
activeDigletts[i].state = 7;
activeDigletts[i].unk_06 = 0;
activeDigletts[i].unk_08 = 0;
activeDigletts[i].gotHoop = false;
}
break;
case 7:
miniDiglettPtr = &miniDigletts[activeDigletts[i].unk_00];
if (miniIddleAnimCheck(miniDiglettPtr) != false) {
case 7: // reset active diglet
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
if ( miniIddleAnimCheck(miniDiglettPtr) ) {
// recolor diglett to white
func_8001BE34(&miniDiglettPtr->unk_000, 0xFF, 0xFF, 0xFF, 0);
miniChangeActorAnim(miniDiglettPtr, 1, -1, 0);
activeDigletts[i].unk_02 = 8;
activeDigletts[i].state = 8;
func_86C00368(9, i);
}
break;
case 8:
miniDiglettPtr = &miniDigletts[activeDigletts[i].unk_00];
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
if (miniIddleAnimCheck(miniDiglettPtr) != false) {
miniDiglettPtr->unk_000.unk_000.unk_01 &= ~1;
activeDigletts[i].unk_04 = 1;
activeDigletts[i].unk_02 = 9;
activeDigletts[i].timer = 1;
activeDigletts[i].state = 9;
miniDiglettPtr->unk_29C = 0;
miniDiglettPtr->unk_000.unk_01C = 0;
}
break;
case 9:
activeDigletts[i].unk_04--;
if (activeDigletts[i].unk_04 == 0) {
activeDigletts[i].unk_00 = -1;
activeDigletts[i].unk_02 = 3;
case 9: // dissapering to the ground anim
activeDigletts[i].timer--; // re-starting delay
if (activeDigletts[i].timer == 0) {
activeDigletts[i].diglettId = -1;
activeDigletts[i].state = 3;
}
break;
}
@@ -2976,7 +2977,7 @@ void ekansMinigameInitObjects(void) {
func_87900854(); // minigame variables
initEkanses();
initDigletts();
func_86C03500(); // camera
miniEkansInitCam();
ekansMinigameCountdown = 0x3C;
D_879060C0 = ekansMinigameCountdown * 0x1E;
@@ -3125,7 +3126,7 @@ void miniEkansStateMachine(void) {
void func_86C034F8(void) {
}
void func_86C03500(void) {
void miniEkansInitCam(void) {
D_87906054 = D_87906050->unk_00.unk_0C;
minigameCameraXRot = 0x1800;
@@ -3139,7 +3140,7 @@ void func_86C03500(void) {
minigameCameraCoords.y = 0x56;
minigameCameraCoords.z = 0;
func_87900B64();
miniUpdateCamera();
D_879060CA = 0;
@@ -3153,8 +3154,8 @@ void func_86C03500(void) {
}
void func_86C035E0(void) {
minigameDebuggModeControll();
func_87900B64();
minigameDebuggModeControl();
miniUpdateCamera();
}
void func_86C03608(void) {
@@ -3339,11 +3340,11 @@ void func_86C040B4(s32 arg0) {
func_87901C98();
func_86C03ED4();
if (minigameDebuggMode == 0) {
if (miniDebugMode == 0) {
func_86C03E8C(arg0);
}
if (minigameDebuggMode != 0) {
if (miniDebugMode != 0) {
showDebuggCameraInfo();
showDebuggJoystickInfo();
}
@@ -3377,7 +3378,7 @@ void showTutorialScreenEkansMinigame(void) {
while (var_s1 != 0) {
func_87900528(); // input
if ((minigameDebuggMode == 0) && (func_80007604() == 0)) {
if ((miniDebugMode == 0) && (func_80007604() == 0)) {
if (ekansMinigameCountdownStarted) {
if ((gPlayer1Controller->buttonPressed != 0) || (ekansMinigameCountdown == 0x28)) {
func_87802EB8(2); // D_8780FC92 = 1
@@ -3403,7 +3404,7 @@ void showTutorialScreenEkansMinigame(void) {
func_86C035E0();
}
if ((minigameDebuggMode == 0) && ((D_87903DAC != 0) || (D_8780FC92 != 0))) {
if ((miniDebugMode == 0) && ((D_87903DAC != 0) || (D_8780FC92 != 0))) {
var_s1 = 0;
}
@@ -3497,7 +3498,7 @@ s32 ekansMinigameLoad(s32 arg0, UNUSED s32 arg1) {
ekansMinigameCountdownStarted = false;
}
D_87906046 = D_8780FA38;
D_87906046 = D_8780FA38; // difficulty ?
main_pool_push_state('MINI');

View File

@@ -21,7 +21,7 @@ s16 func_86C00C40(MiniActor* arg0);
s16 func_86C00D50(MiniActor* arg0);
s32 func_86C00EF8(MiniActor* arg0);
void func_86C00F70(MiniActor* arg0);
void func_86C01100(MiniActor* arg0);
void miniEkansCompGetForce(MiniActor* arg0);
s16 func_86C01408(void);
s16 func_86C014A0(void);
void compEkansControls(MiniActor* arg0);
@@ -34,7 +34,7 @@ void func_86C01D2C(MiniActor* arg0, s32 arg1);
void func_86C01FAC(MiniActor* arg0, s32 arg1);
void func_86C021FC(MiniActor* arg0);
void anyEkansControls(MiniActor* arg0);
void func_86C02324(MiniActor* arg0, s32 arg1);
void miniEkansCompStateMachine(MiniActor* arg0, s32 arg1);
void func_86C0250C(void);
void miniEkansPhysics(void);
void initDiglett(MiniActor* diglett, s32 arg1);
@@ -45,9 +45,9 @@ void func_86C027AC(void);
void func_86C027B4(void);
void func_86C027BC(void);
void initDigletts(void);
s16 func_86C028C0(s16 arg0);
s16 miniEkansChooseRandDiglett(s16 arg0);
void func_86C02A1C(MiniActor* arg0);
void func_86C02B78(MiniActor* arg0, s32 arg1);
void miniEkansRecolorDiglet(MiniActor* arg0, s32 arg1);
void func_86C02C28(void);
void func_86C03008(void);
void ekansMinigameInitObjects(void);
@@ -57,7 +57,7 @@ s32 func_86C031E4(void);
s32 func_86C03258(void);
void miniEkansStateMachine(void);
void func_86C034F8(void);
void func_86C03500(void);
void miniEkansInitCam(void);
void func_86C035E0(void);
void func_86C03608(void);
void func_86C03AB8(void);

View File

@@ -32,21 +32,21 @@ void func_86D00020(void) {
minigameCameraCoords.y = 0x1E;
minigameCameraCoords.z = 0;
func_87900B64();
miniUpdateCamera();
}
void func_86D000A8(void) {
minigameDebuggModeControll();
func_87900B64();
void miniUnkUpdateCamera(void) {
minigameDebuggModeControl();
miniUpdateCamera();
}
void func_86D000D0(UNUSED s32 arg0) {
void miniUnkDrawHUB(UNUSED s32 arg0) {
func_800079C4();
func_8000699C(&gDisplayListHead, 1);
func_80015348();
func_80015094(&D_87906050->unk_00);
if (minigameDebuggMode != 0) {
if (miniDebugMode != 0) {
showDebuggCameraInfo();
}
@@ -58,7 +58,7 @@ void func_86D00134(void) {
miniTutoScreenState = 3;
}
void func_86D0015C(void) {
void miniUnkControls(void) {
s32 var_s1 = 1;
while (var_s1 != 0) {
@@ -77,21 +77,21 @@ void func_86D0015C(void) {
}
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_Z)) {
minigameDebuggMode = (minigameDebuggMode + 1) & 1;
miniDebugMode = (miniDebugMode + 1) & 1;
}
if ((minigameDebuggMode == 0) && BTN_IS_PRESSED(gPlayer1Controller, BTN_START)) {
if ((miniDebugMode == 0) && BTN_IS_PRESSED(gPlayer1Controller, BTN_START)) {
minigameState = 1;
}
func_8790370C();
func_86D000A8();
miniUnkUpdateCamera();
if ((minigameDebuggMode == 0) && BTN_IS_PRESSED(gPlayer1Controller, BTN_CDOWN)) {
if ((miniDebugMode == 0) && BTN_IS_PRESSED(gPlayer1Controller, BTN_CDOWN)) {
var_s1 = 0;
}
func_86D000D0(1);
miniUnkDrawHUB(1);
}
}
@@ -101,8 +101,8 @@ void func_86D0032C(void) {
func_80006CB4(0x1E);
for (i = 0; i < 30; i++) {
func_87900528();
func_86D000D0(2);
func_87900528(); // inputs
miniUnkDrawHUB(2);
}
}
@@ -134,7 +134,7 @@ s32 func_86D003EC(s32 arg0, s32 arg1) {
func_86D0037C();
func_80007678(sp24);
func_86D00134();
func_86D0015C();
miniUnkControls();
func_86D0032C();
func_800076C0();
func_8001E9CC();

View File

@@ -4,10 +4,10 @@
#include "global.h"
void func_86D00020(void);
void func_86D000A8(void);
void func_86D000D0(UNUSED s32 arg0);
void miniUnkUpdateCamera(void);
void miniUnkDrawHUB(UNUSED s32 arg0);
void func_86D00134(void);
void func_86D0015C(void);
void miniUnkControls(void);
void func_86D0032C(void);
void func_86D0037C(void);
s32 func_86D003EC(s32 arg0, s32 arg1);

View File

@@ -456,7 +456,7 @@ static s16 D_86E04B20 = 0;
static s16 D_86E04B24 = 1;
static s16 D_86E04B28 = 0;
static MiniActor* miniMetapodPtr = miniMetapods;
static MiniActor* miniMetapodRockPtr = miniMetapodRocks;
static MiniActor* miniRockPtr = miniMetapodRocks;
static u32 D_86E04B34[] = {
0x0C00FFFF, 0x05000000, 0x0B00001E, 0x00000000, 0x014000F0, 0xFFE20032, 0x00000000, 0x00000000,
0x05000000, 0x0D000000, 0x05000000, 0x14000000, 0x002B0012, 0xFFFFFF32, 0x16FFFFFF, 0x0F000003,
@@ -807,15 +807,15 @@ void func_86E007CC(MiniActor* metapod, s32 player) {
sp20 = 0xC;
}
miniMetapodRockPtr = miniMetapodRocks;
miniRockPtr = miniMetapodRocks;
for (i = 0; i < 20; i++) {
if ((miniMetapodRockPtr->unk_270 != 0) && (player == miniMetapodRockPtr->unk_266)) {
if (miniMetapodRockPtr->unk_29E < sp20) {
if ((miniRockPtr->unk_270 != 0) && (player == miniRockPtr->playerId)) {
if (miniRockPtr->unk_29E < sp20) {
var_t0 = 1;
sp20 = miniMetapodRockPtr->unk_29E;
sp20 = miniRockPtr->unk_29E;
}
}
miniMetapodRockPtr++;
miniRockPtr++;
}
sp20--;
@@ -920,7 +920,7 @@ void func_86E00AF4(void) {
}
s32 metapodRockCollisionCheck_void(void) {
return metapodRockCollisionCheck(miniMetapodRockPtr, &miniMetapods[miniMetapodRockPtr->unk_266]);
return metapodRockCollisionCheck(miniRockPtr, &miniMetapods[miniRockPtr->playerId]);
}
s32 func_86E00C34(s32 nPlayer) {
@@ -944,22 +944,22 @@ void func_86E00CAC(UNUSED MiniActor* metapod, s32 nPlayer) {
s32 i;
s32 colliding;
miniMetapodRockPtr = miniMetapodRocks;
miniRockPtr = miniMetapodRocks;
for (i = 0; i < 20; i++) {
if ((miniMetapodRockPtr->unk_270 != 0) && (nPlayer == miniMetapodRockPtr->unk_266) && (miniMetapodRockPtr->unk_260 == 0)) {
if ((miniRockPtr->unk_270 != 0) && (nPlayer == miniRockPtr->playerId) && (miniRockPtr->unk_260 == 0)) {
colliding = func_86E00C34(nPlayer);
if (colliding != 0) {
miniMetapodRockPtr->unk_260 = 1;
if (colliding) {
miniRockPtr->unk_260 = 1;
if (colliding == 1) {
miniMetapodRockPtr->unk_272 = 1;
miniRockPtr->unk_272 = 1;
} else {
miniMetapodRockPtr->unk_272 = 0;
miniRockPtr->unk_272 = 0;
}
break;
}
}
miniMetapodRockPtr++;
miniRockPtr++;
}
}
@@ -1042,7 +1042,7 @@ void func_86E00FD8(void) {
void func_86E0103C(MiniActor* arg0, s32 arg1) {
func_8790060C(arg0);
arg0->unk_266 = arg1;
arg0->playerId = arg1;
arg0->localOrigin.x = D_86E04BFC[arg1].unk_00.x;
arg0->localOrigin.y = D_86E04BFC[arg1].unk_00.y;
@@ -1065,12 +1065,12 @@ void initFallingRocks(void) {
s32 i;
s32 j;
miniMetapodRockPtr = miniMetapodRocks;
miniRockPtr = miniMetapodRocks;
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
func_86E0103C(miniMetapodRockPtr, i);
miniMetapodRockPtr++;
func_86E0103C(miniRockPtr, i);
miniRockPtr++;
}
}
@@ -1112,16 +1112,16 @@ void func_86E01188(void) {
for (i = 0; i < 4; i++, metapod++) {
if (metapod->unk_2AA == 0) {
var_s1 = 0;
miniMetapodRockPtr = &miniMetapodRocks[i * 5];
miniRockPtr = &miniMetapodRocks[i * 5];
for (j = 0; j < D_86E04B24; j++) {
func_86E0103C(miniMetapodRockPtr, i);
func_86E0103C(miniRockPtr, i);
miniMetapodRockPtr->unk_23E = 1;
miniMetapodRockPtr->unk_29E = var_s1;
miniRockPtr->unk_23E = 1;
miniRockPtr->unk_29E = var_s1;
var_s1 += var_s5;
miniMetapodRockPtr++;
miniRockPtr++;
}
}
}
@@ -1129,7 +1129,7 @@ void func_86E01188(void) {
void func_86E01310(MiniActor* rock) {
s16 temp_v1 = (D_86E04B20 * 4) + 0x28;
s16 temp_a1 = rock->unk_266;
s16 temp_a1 = rock->playerId;
rock->unk_29E = temp_v1 - 1;
rock->localOrigin.y += D_86E04BFC[temp_a1].unk_00.y + miniMetapods[temp_a1].unk_28C;
@@ -1153,7 +1153,7 @@ void func_86E01414(MiniActor* rock) {
void func_86E01428(MiniActor* rock) {
UNUSED s32 pad[3];
s16 temp_a1 = rock->unk_266;
s16 temp_a1 = rock->playerId;
Vec3f sp3C;
if ((D_87903DA8 != 0) || (miniMetapods[temp_a1].unk_258 == 0)) {
@@ -1250,11 +1250,11 @@ void func_86E0172C(MiniActor* rock) {
void func_86E017C0(void) {
s32 i;
miniMetapodRockPtr = miniMetapodRocks;
miniRockPtr = miniMetapodRocks;
for (i = 0; i < 20; i++) {
func_86E01428(miniMetapodRockPtr);
func_86E0172C(miniMetapodRockPtr);
miniMetapodRockPtr++;
func_86E01428(miniRockPtr);
func_86E0172C(miniRockPtr);
miniRockPtr++;
}
}
@@ -1277,13 +1277,13 @@ void func_86E0182C(MiniActor* arg0) {
void func_86E01898(void) {
s32 var_s1;
miniMetapodRockPtr = miniMetapodRocks;
miniRockPtr = miniMetapodRocks;
var_s1 = 0;
do {
func_86E016EC(miniMetapodRockPtr);
func_86E0182C(miniMetapodRockPtr);
func_86E016EC(miniRockPtr);
func_86E0182C(miniRockPtr);
var_s1 += 1;
miniMetapodRockPtr = &miniMetapodRockPtr[1];
miniRockPtr = &miniRockPtr[1];
} while (var_s1 != 0x14);
}
@@ -1301,12 +1301,12 @@ void func_86E01904(void) {
minigameCameraCoords.y = 0x2A;
minigameCameraCoords.z = 0;
func_87900B64();
miniUpdateCamera();
}
void func_86E01990(void) {
minigameDebuggModeControll();
func_87900B64();
minigameDebuggModeControl();
miniUpdateCamera();
}
void initMetapodMinigameAssets(void) {
@@ -1321,7 +1321,7 @@ void func_86E019F4(void) {
s32 i;
s32 var_a2;
miniMetapodRockPtr = miniMetapodRocks;
miniRockPtr = miniMetapodRocks;
switch (D_86E04B28) {
case 1:
func_86E01188();
@@ -1331,11 +1331,11 @@ void func_86E019F4(void) {
case 2:
var_a2 = 1;
for (i = 0; i < 20; i++) {
if (miniMetapodRockPtr->unk_23E != 0) {
if (miniRockPtr->unk_23E != 0) {
var_a2 = 0;
break;
}
miniMetapodRockPtr++;
miniRockPtr++;
}
if (var_a2 != 0) {
@@ -1697,7 +1697,7 @@ void func_86E02880(s32 arg0) {
func_80015094(&D_87906050->unk_00);
func_87901C98();
if (minigameDebuggMode == false) {
if (miniDebugMode == false) {
if (D_8780FC98 == 0) {
miniMetapodDrawPlayerHUBs(arg0);
}
@@ -1714,14 +1714,14 @@ void metapodMinigameInit(void) {
func_800077B4(0xA);
func_80006C6C(0x10);
miniTutoScreenState = 3;
D_87906046 = D_8780FA38;
D_87906046 = D_8780FA38; // difficulty ?
}
void func_86E0296C(void) {
}
void miniMetapodTutoScreenControls(void) {
if ((minigameDebuggMode == false) && (miniShowHUB == false) && (func_80007604() == 0)) {
if ((miniDebugMode == false) && (miniShowHUB == false) && (func_80007604() == 0)) {
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_START)) {
miniTutoScreenState = 1;
minigameState = 1;

View File

@@ -1667,12 +1667,12 @@ void func_86F003FC(MiniActor* actor, s32 animID) {
func_80017454(&actor->unk_000, 0x10000);
}
void func_86F00450(MiniActor* arg0, f32 arg1) {
arg0->unk_280 -= arg1;
if (arg0->unk_280 < 1.0f) {
arg0->unk_280 = 1.0f;
void func_86F00450(MiniActor* sandshrew, f32 arg1) {
sandshrew->unk_280 -= arg1;
if (sandshrew->unk_280 < 1.0f) {
sandshrew->unk_280 = 1.0f;
}
arg0->unk_27C = arg0->unk_280;
sandshrew->unk_27C = sandshrew->unk_280;
}
void func_86F0048C(MiniActor* sandshrew, s32 arg1) {
@@ -2066,7 +2066,7 @@ void func_86F0132C(void) {
minigameCameraCoords.y = -2;
minigameCameraCoords.z = 0;
func_87900B64();
miniUpdateCamera();
}
void func_86F013B8(void) {
@@ -2091,8 +2091,8 @@ void func_86F013B8(void) {
void func_86F01488(void) {
func_86F013B8();
minigameDebuggModeControll();
func_87900B64();
minigameDebuggModeControl();
miniUpdateCamera();
}
void sandshrewMinigameInitObjects(void) {
@@ -2351,7 +2351,7 @@ void func_86F01F58(s32 arg0) {
func_80015094(&D_87906050->unk_00);
func_87901C98();
if (minigameDebuggMode == 0) {
if (miniDebugMode == 0) {
if (D_8780FC98 == 0) {
func_86F01EF4(arg0);
}
@@ -2369,7 +2369,7 @@ void sandshrewMinigameInit(void) {
func_800077B4(0xA);
func_80006C6C(0x10);
miniTutoScreenState = 3;
D_87906046 = D_8780FA38;
D_87906046 = D_8780FA38; // difficulty ?
}
void func_86F0204C(void) {
@@ -2388,7 +2388,7 @@ void func_86F0204C(void) {
}
}
if ((minigameDebuggMode == false) && (miniShowHUB == false) && (func_80007604() == 0)) {
if ((miniDebugMode == false) && (miniShowHUB == false) && (func_80007604() == 0)) {
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_START)) {
miniTutoScreenState = 1;
minigameState = 1;
@@ -2410,7 +2410,7 @@ void func_86F0204C(void) {
func_86F01488();
}
if ((minigameDebuggMode == 0) && ((D_87903DAC != 0) || (D_8780FC92 != 0))) {
if ((miniDebugMode == 0) && ((D_87903DAC != 0) || (D_8780FC92 != 0))) {
var_s5 = 0;
}

View File

@@ -7,7 +7,7 @@
#include "src/controller.h"
typedef struct MiniActor {
/* 0x000 */ unk_D_86002F58_004_000 unk_000; // collider ?
/* 0x000 */ unk_D_86002F58_004_000 unk_000; // collider ? model ?
/* 0x168 */ unk_D_86002F30* unk_168;
/* 0x16C */ Vec3f scale;
/* 0x178 */ char unk178[0x18]; // unused ?
@@ -65,10 +65,10 @@ typedef struct MiniActor {
/* 0x25A */ s16 unk_25A; // something animation on metapod ** metapod only
/* 0x25C */ s16 unk_25C; // max health on metapod, different on sandshrew and ekans
/* 0x25E */ s16 ekansAbbleToHoop; // ** ekans only
/* 0x260 */ s16 unk_260;
/* 0x260 */ s16 unk_260; // rock got blocked on metapod ;
/* 0x262 */ s16 unk_262; // can ekans peg a digglet ? ** ekans only
/* 0x264 */ s16 unk_264;
/* 0x266 */ s16 unk_266; // player id on metapod ?
/* 0x264 */ s16 unk_264; // always zero
/* 0x266 */ s16 playerId;
/* 0x268 */ s16 unk_268;
/* 0x26A */ s16 unk_26A; // some flag related to collisions
/* 0x26C */ s16 unk_26C; // animation id or state?
@@ -77,8 +77,8 @@ typedef struct MiniActor {
/* 0x272 */ s16 unk_272; // colliding with a rock on metapod's minigame ?
/* 0x274 */ f32 unk_274; //
/* 0x278 */ char unk278[0x4];
/* 0x27C */ f32 unk_27C;
/* 0x280 */ f32 unk_280; // x rotation speed? stick magnitude on ekans?
/* 0x27C */ f32 unk_27C; //
/* 0x280 */ f32 unk_280; // stick magnitude on ekans? digging/animation speed on sandshrew
/* 0x284 */ f32 unk_284;
/* 0x288 */ f32 unk_288; // bottom of the hitbox / bounding box ?
/* 0x28C */ f32 unk_28C; // top of the hitbox ? / bounding box ? ; double of 1E4
@@ -176,7 +176,7 @@ extern s16 D_879060A6;
extern s16 D_879060A8;
extern Vec3s D_879060AC;
extern s16 minigameDebuggMode;
extern s16 miniDebugMode;
extern s16 D_87903DB8;
extern Controller* miniControllerPtr;
extern s16 D_879060C0;
@@ -214,8 +214,8 @@ void func_87900920(void);
void func_879009B4(void);
void func_87900A50(void);
void func_87900B64(void);
s32 minigameDebuggModeControll(void);
void miniUpdateCamera(void);
s32 minigameDebuggModeControl(void);
void showDebuggCameraInfo(void);
void showDebuggJoystickInfo(void);
void func_87901200(void);

View File

@@ -12,7 +12,7 @@ s16 minigameState = 0;
s16 minigameInputLock = 0;
s16 D_87903DA8 = 0;
s16 D_87903DAC = 0;
s16 minigameDebuggMode = 0;
s16 miniDebugMode = 0;
s32 pad_D_87903DB4 = 0;
s16 D_87903DB8 = 0;
s16 D_87903DBC = 0;
@@ -274,7 +274,7 @@ void func_8790060C(MiniActor* actor) {
actor->unk_27C = 0.0f;
actor->unk_274 = 0.0f;
actor->unk_260 = actor->unk_262 = actor->unk_264 = actor->unk_266 = 0;
actor->unk_260 = actor->unk_262 = actor->unk_264 = actor->playerId = 0;
actor->unk_290 = actor->unk_292 = actor->unk_294 = 0;
}

View File

@@ -74,7 +74,7 @@ void func_87900A50(void) {
}
}
void func_87900B64(void) { // fix the camera on minigames ?
void miniUpdateCamera(void) {
D_87906054->unk_24.fovy = minigameCameraFOV;
D_87906054->unk_24.near = minigameCameraNear;
D_87906054->unk_24.far = minigameCameraFar;
@@ -87,10 +87,10 @@ void func_87900B64(void) { // fix the camera on minigames ?
minigameCameraYRot);
}
s32 minigameDebuggModeControll(void) {
s32 minigameDebuggModeControl(void) {
s16 sp6;
if (minigameDebuggMode == 0) {
if (miniDebugMode == 0) {
return;
}

View File

@@ -57,7 +57,7 @@ void func_87903778(MiniActor* arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s16
arg0->unk_21A = arg5;
arg0->unk_21C = arg6;
arg0->unk_21E = arg7;
arg0->unk_266 = arg8;
arg0->playerId = arg8;
arg0->unk_23E = 1;
}