This commit is contained in:
shy
2025-07-28 01:49:04 -04:00
parent 546e4c45b0
commit 1133717c81
10 changed files with 252 additions and 252 deletions

View File

@@ -74,15 +74,15 @@ gEepromMesgBuf = 0x800A73FC;
D_8780FA30 = 0x8780FA30; // size:0x8
miniShowHUB = 0x87906044;
D_87906048 = 0x87906048;
minigameCameraXRot = 0x87906060;
minigameCameraDistance = 0x87906064;
minigameCameraNear = 0x87906068;
miniCameraXRot = 0x87906060;
miniCameraDistance = 0x87906064;
miniCameraNear = 0x87906068;
D_87906070 = 0x87906070;
D_87906094 = 0x87906094;
D_87906098 = 0x87906098;
D_879060A4 = 0x879060A4;
D_879060C4 = 0x879060C4;
minigameHUDTransparency = 0x879060C8;
miniHudTransparency = 0x879060C8;
gShowCPUProfiler = 0x80068BC0;
gShowMEMProfiler = 0x80068BC4;
gDisplayListHead = 0x800A7420;
@@ -308,7 +308,7 @@ gGeoLayoutStackIndex = 0x800ABDFA; // size:0x2
gGeoLayoutReturnIndex = 0x800ABDFE; // size:0x2
gCurGraphNodeList = 0x800ABD78; // size:0x80
gCurGraphNodeIndex = 0x800ABDF8; // size:0x2
minigameCameraCoords = 0x8790606C; // size:0x6
miniCameraCoords = 0x8790606C; // size:0x6
D_87906088 = 0x87906088; // size:0xC
D_8790609C = 0x8790609C; // size:0x6
D_879060AC = 0x879060AC; // size:0x6

View File

@@ -2096,9 +2096,9 @@ MinigameGetVec3Distance_3d = 0x87900070; // type:func
func_879000C4 = 0x879000C4; // type:func
metapodRockCollisionCheck = 0x879001A4; // type:func
miniChangeActorAnim = 0x879002B8; // type:func
func_879002FC = 0x879002FC; // type:func
func_87900344 = 0x87900344; // type:func
miniIddleAnimCheck = 0x87900384; // type:func
miniChangeActorAnim_alt1 = 0x879002FC; // type:func
miniChangeActorAnim_alt2 = 0x87900344; // type:func
miniPokeIsIdleCheck = 0x87900384; // type:func
func_879003A0 = 0x879003A0; // type:func
func_879004F8 = 0x879004F8; // type:func
func_87900528 = 0x87900528; // type:func
@@ -2754,7 +2754,7 @@ func_86C02804 = 0x86C02804; // type:func
miniEkansChooseRandDiglett = 0x86C028C0; // type:func
func_86C02A1C = 0x86C02A1C; // type:func
miniEkansRecolorDiglet = 0x86C02B78; // type:func
func_86C02C28 = 0x86C02C28; // type:func
miniDiglettStateMachine = 0x86C02C28; // type:func
func_86C03008 = 0x86C03008; // type:func
ekansMinigameInitObjects = 0x86C03080; // type:func
func_86C030EC = 0x86C030EC; // type:func

View File

@@ -1728,9 +1728,9 @@ void func_86C003AC(MiniActor* arg0) {
arg0->localOrigin.y = arg0->unk_1D8.y = skansActorInfo[idx].pos.y;
arg0->localOrigin.z = arg0->unk_1D8.z = skansActorInfo[idx].pos.z;
arg0->unk_1C0.x = 0.0f;
arg0->unk_1C0.y = -30.0f;
arg0->unk_1C0.z = 0.0f;
arg0->globalPos.x = 0.0f;
arg0->globalPos.y = -30.0f;
arg0->globalPos.z = 0.0f;
}
void initEkans(MiniActor* ekans, s16 player) {
@@ -1745,13 +1745,13 @@ void initEkans(MiniActor* ekans, s16 player) {
ekans->localOrigin.y = ekans->unk_1D8.y = skansActorInfo[player].pos.y;
ekans->localOrigin.z = ekans->unk_1D8.z = skansActorInfo[player].pos.z;
ekans->unk_1C0.y = 10.0f;
ekans->globalPos.y = 10.0f;
ekans->unk_288 = 50.0f;
ekans->unk_28C = 140.0f;
ekans->unk_21C = -0x8000;
ekans->unk_25C = 0x64;
ekans->unk_258 = ekans->unk_25C;
ekans->health = ekans->unk_25C;
func_8001BD04(&ekans->unk_000, 0);
@@ -1931,8 +1931,8 @@ void humanEkansControls(MiniActor* ekans) {
ekans->unk_274 = var_ft4;
ekans->unk_22E = 0;
ekans->unk_280 = 0.0f;
ekans->unk_1C0.x = 0.0f;
ekans->unk_1C0.z = 0.0f;
ekans->globalPos.x = 0.0f;
ekans->globalPos.z = 0.0f;
ekans->unk_23E = 1;
}
@@ -2266,7 +2266,7 @@ void compEkansControls(MiniActor* ekans) {
case 4: // comp launch (only y speed)
if (func_81400760(&ekans->unk_274, ekans->unk_280, 8.0f) != 0) {
ekans->unk_1C0.z = ekans->unk_1C0.x = 0.0f;
ekans->globalPos.z = ekans->globalPos.x = 0.0f;
ekans->unk_280 = 0;
ekans->unk_23E = 1;
ekans->unk_242++;
@@ -2322,7 +2322,7 @@ void ekansFixDirToDiglett(MiniActor* ekans, UNUSED s32 nPlayer, s32 nActiveDigle
ekans->unk_1FC = -ekans->unk_1FC * 0.75f;
}
ekans->unk_1C0.y += ekans->unk_1FC;
ekans->globalPos.y += ekans->unk_1FC;
func_86C00368(5, nActiveDiglett);
@@ -2356,7 +2356,7 @@ 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->playerId;
ekans->playerIdBuffer = ekans->playerId;
ekans->playerId = i;
} else if (ekans->unk_260 == 0) {
ekans->unk_260 = 1;
@@ -2440,7 +2440,7 @@ void func_86C01D2C(MiniActor* ekans, s32 nPlayer) {
ekans->unk_1B4.x = diglettColl.x;
ekans->unk_1B4.z = diglettColl.z;
ekans->unk_1C0.x = ekans->unk_1C0.z = 0.0f;
ekans->globalPos.x = ekans->globalPos.z = 0.0f;
ekans->unk_22E = 0x2000;
ekans->unk_000.unk_000.unk_02 &= 0xFFDF;
@@ -2492,8 +2492,8 @@ void func_86C01FAC(MiniActor* ekans, s32 nPlayer) {
}
if (ekans->unk_260 < 5) {
if (ekans->unk_1C0.y <= -50.0f) {
ekans->unk_1C0.y = -50.0f;
if (ekans->globalPos.y <= -50.0f) {
ekans->globalPos.y = -50.0f;
ekans->unk_1F8 = 0.0f;
ekans->unk_200 = 0.0f;
if (ekans->unk_260 == 3) {
@@ -2512,8 +2512,8 @@ void func_86C01FAC(MiniActor* ekans, s32 nPlayer) {
ekans->ekansDiglettHitScore = 0;
}
} else {
if ((ekans->unk_1C0.y <= -50.0f) && (ekans->unk_260 >= 5)) {
ekans->unk_1C0.y = -50.0f;
if ((ekans->globalPos.y <= -50.0f) && (ekans->unk_260 >= 5)) {
ekans->globalPos.y = -50.0f;
ekans->unk_210 = 0.0f;
ekans->unk_1FC = 0.0f;
func_81400550(&ekans->unk_22E, 0, 0x100);
@@ -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->playerId) {
if (ekans->playerIdBuffer == ekans->playerId) {
ekans->playerId = -1;
} else {
ekans->playerId = ekans->unk_268;
ekans->playerId = ekans->playerIdBuffer;
}
}
@@ -2552,11 +2552,11 @@ void func_86C01FAC(MiniActor* ekans, s32 nPlayer) {
void func_86C021FC(MiniActor* ekans) {
if (ekans->unk_280 > 5.0f) {
func_81400760(&ekans->unk_1C0.x, (-SINS(ekans->totalRot.y) * ekans->unk_280) / 3.0f, 4.0f);
func_81400760(&ekans->unk_1C0.z, (-COSS(ekans->totalRot.y) * ekans->unk_280) / 3.0f, 4.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);
} else {
ekans->unk_1C0.x = 0.0f;
ekans->unk_1C0.z = 0.0f;
ekans->globalPos.x = 0.0f;
ekans->globalPos.z = 0.0f;
}
}
@@ -2606,14 +2606,14 @@ void miniEkansCompStateMachine(MiniActor* ekans, s32 nPlayer) {
break;
case 0x5:
if (func_81400760(&ekans->unk_1C0.y, 10.0f, 4.0f) != 0) {
if (func_81400760(&ekans->globalPos.y, 10.0f, 4.0f) != 0) {
ekans->unk_23E = 0;
}
break;
case 0x64:
func_81400760(&ekans->unk_1C0.x, 0.0f, 4.0f);
func_81400760(&ekans->unk_1C0.z, 0.0f, 4.0f);
func_81400760(&ekans->globalPos.x, 0.0f, 4.0f);
func_81400760(&ekans->globalPos.z, 0.0f, 4.0f);
if (func_81400550(&ekans->unk_228, -0x8000, 0x400) != 0) {
ekans->unk_23E++;
func_8001BD04(&ekans->unk_000, 2);
@@ -2676,7 +2676,7 @@ void initDiglett(MiniActor* diglett, s32 nDiglett) {
diglett->unk_288 = diglettActorInfo[nDiglett].unk_12;
diglett->unk_28C = diglettActorInfo[nDiglett].unk_14;
diglett->unk_258 = diglett->unk_25C = 0x64;
diglett->health = diglett->unk_25C = 0x64;
diglett->unk_1E4 = diglett->unk_28C * 0.5f;
func_8001BD04(&diglett->unk_000, 1);
@@ -2806,24 +2806,24 @@ void func_86C02A1C(MiniActor* diglett) {
D_86C12038 = 0;
sp18 = 1;
} else if (ekansMinigameCountdownStarted == false) {
if ((ekansMinigameCountdown < 0xA) && (D_86C12034 == 0)) {
if ((miniEkansCountdown < 0xA) && (D_86C12034 == 0)) {
sp18 = 1;
} else {
sp18 = 0;
temp_v0 = func_878001E8(0x64);
if ((ekansMinigameCountdown < 0xA) && (temp_v0 < 0x14)) {
if ((miniEkansCountdown < 0xA) && (temp_v0 < 0x14)) {
sp18 = 1;
} else if ((ekansMinigameCountdown < 0x14) && (temp_v0 < 0xF)) {
} else if ((miniEkansCountdown < 0x14) && (temp_v0 < 0xF)) {
sp18 = 1;
} else if ((ekansMinigameCountdown < 0x1E) && (temp_v0 < 0xA)) {
} else if ((miniEkansCountdown < 0x1E) && (temp_v0 < 0xA)) {
sp18 = 1;
} else if ((ekansMinigameCountdown < 0x28) && (temp_v0 < 5)) {
} else if ((miniEkansCountdown < 0x28) && (temp_v0 < 5)) {
sp18 = 1;
}
}
} else {
temp_v0 = func_878001E8(0x64);
if ((ekansMinigameCountdown < 0x2D) && (temp_v0 < 5)) {
if ((miniEkansCountdown < 0x2D) && (temp_v0 < 5)) {
sp18 = 1;
}
}
@@ -2867,7 +2867,7 @@ void miniEkansRecolorDiglet(MiniActor* diglett, s32 nActiveDiglett) {
func_8001BE34(&diglett->unk_000, r, g, b, 0x80);
}
void func_86C02C28(void) {
void miniDiglettStateMachine(void) {
s32 i;
for (i = 0; i < 3; i++) {
@@ -2881,19 +2881,19 @@ void func_86C02C28(void) {
case 2:
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
if ( miniIddleAnimCheck(miniDiglettPtr) ) {
if ( miniPokeIsIdleCheck(miniDiglettPtr) ) {
activeDigletts[i].diglettId = -1;
activeDigletts[i].state = 0;
}
break;
case 3:
case 3: // get random time delay
activeDigletts[i].state = 4;
activeDigletts[i].timer = func_878001E8(0x14); // get random
activeDigletts[i].timer = func_878001E8(0x14);
break;
case 4: // pre-spawn
activeDigletts[i].timer--; // spawn delay
activeDigletts[i].timer--; // spawn delay
if (activeDigletts[i].timer < 0) {
activeDigletts[i].state = 5;
activeDigletts[i].timer = 0xD;
@@ -2902,7 +2902,7 @@ void func_86C02C28(void) {
miniDiglettPtr->unk_000.unk_000.unk_01 |= 1;
func_86C00368(7, i);
func_86C02A1C(miniDiglettPtr);
func_87900344(miniDiglettPtr, 1, -1, 1);
miniChangeActorAnim_alt2(miniDiglettPtr, 1, -1, 1);
}
break;
@@ -2927,7 +2927,7 @@ void func_86C02C28(void) {
case 7: // reset active diglet
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
if ( miniIddleAnimCheck(miniDiglettPtr) ) {
if ( miniPokeIsIdleCheck(miniDiglettPtr) ) {
// recolor diglett to white
func_8001BE34(&miniDiglettPtr->unk_000, 0xFF, 0xFF, 0xFF, 0);
miniChangeActorAnim(miniDiglettPtr, 1, -1, 0);
@@ -2938,7 +2938,7 @@ void func_86C02C28(void) {
case 8:
miniDiglettPtr = &miniDigletts[activeDigletts[i].diglettId];
if (miniIddleAnimCheck(miniDiglettPtr) != false) {
if ( miniPokeIsIdleCheck(miniDiglettPtr) ) {
miniDiglettPtr->unk_000.unk_000.unk_01 &= ~1;
activeDigletts[i].timer = 1;
activeDigletts[i].state = 9;
@@ -2961,7 +2961,7 @@ void func_86C02C28(void) {
void func_86C03008(void) {
s32 i;
func_86C02C28();
miniDiglettStateMachine();
miniDiglettPtr = miniDigletts;
for (i = 0; i < 9; i++) {
@@ -2979,8 +2979,8 @@ void ekansMinigameInitObjects(void) {
initDigletts();
miniEkansInitCam();
ekansMinigameCountdown = 0x3C;
D_879060C0 = ekansMinigameCountdown * 0x1E;
miniEkansCountdown = 0x3C;
D_879060C0 = miniEkansCountdown * 0x1E;
D_86C12038 = 0;
D_86C12034 = 0;
}
@@ -3046,18 +3046,18 @@ s32 func_86C03258(void) {
D_879060C0--;
if (D_879060C0 == 0) {
ekansMinigameCountdown = 0;
miniEkansCountdown = 0;
func_86C00368(0xB, 0);
sp1C = 1;
} else {
ekansMinigameCountdown = (D_879060C0 / 30) + 1;
miniEkansCountdown = (D_879060C0 / 30) + 1;
if ((D_879060C0 % 30) == 0) {
if (ekansMinigameCountdown == 0xB) {
if (miniEkansCountdown == 0xB) {
sp1C = 0;
func_86C00368(0xC, 0);
}
if (ekansMinigameCountdown < 7) {
if (miniEkansCountdown < 7) {
sp1C = 0;
func_86C00368(0xA, 0);
}
@@ -3069,13 +3069,13 @@ s32 func_86C03258(void) {
void miniEkansStateMachine(void) {
switch (minigameState) {
case 1: // after pressing start
minigameInputLockTimer = 0xF;
miniInputLockTimer = 0xF;
minigameState++;
break;
case 2: // waits for some frames before starting the main countdown
minigameInputLockTimer -= 1;
if (minigameInputLockTimer < 0) {
miniInputLockTimer -= 1;
if (miniInputLockTimer < 0) {
func_8780295C(1);
minigameState++;
}
@@ -3093,18 +3093,18 @@ void miniEkansStateMachine(void) {
case 4: // main countdown ends, adds a little wait
if (func_86C03258() != 0) {
miniTutoScreenState = 4;
minigameInputLockTimer = 0x32;
miniInputLockTimer = 0x32;
minigameInputLock = 0;
minigameState++;
}
break;
case 5: // state 5: after the wait, ends the minigame
minigameInputLockTimer--;
if (minigameInputLockTimer < 0) {
minigameInputLockTimer = 0;
miniInputLockTimer--;
if (miniInputLockTimer < 0) {
miniInputLockTimer = 0;
}
if ((func_86C030EC() != 0) && (minigameInputLockTimer == 0)) {
if ((func_86C030EC() != 0) && (miniInputLockTimer == 0)) {
func_86C03128();
func_87802EB8(1);
func_87903294();
@@ -3129,16 +3129,16 @@ void func_86C034F8(void) {
void miniEkansInitCam(void) {
D_87906054 = D_87906050->unk_00.unk_0C;
minigameCameraXRot = 0x1800;
minigameCameraYRot = 0;
minigameCameraDistance = 0xF0;
minigameCameraFOV = 0x1E;
minigameCameraNear = 0x32;
minigameCameraFar = 0x7D0;
miniCameraXRot = 0x1800;
miniCameraYRot = 0;
miniCameraDistance = 0xF0;
miniCameraFov = 0x1E;
miniCameraNear = 0x32;
miniCameraFar = 0x7D0;
minigameCameraCoords.x = 0;
minigameCameraCoords.y = 0x56;
minigameCameraCoords.z = 0;
miniCameraCoords.x = 0;
miniCameraCoords.y = 0x56;
miniCameraCoords.z = 0;
miniUpdateCamera();
@@ -3241,7 +3241,7 @@ void miniEkansDrawCountdown(void) {
func_8001F324(0xFF, 0xC8, 0x32, 0xFF); // set color
func_8001EBE0(8, 0); // set style
func_8001F1E8(0x80, 0x14, func_8002D7C0(NULL, 0, D_87806330, 0x5D)); // TIME text
func_8001F1E8(0xAA, 0x14, "%d", ekansMinigameCountdown);
func_8001F1E8(0xAA, 0x14, "%d", miniEkansCountdown);
}
void fixSkansMinigameHUD(void) {
@@ -3255,7 +3255,7 @@ void fixSkansMinigameHUD(void) {
func_8001F444();
gSPDisplayList(gDisplayListHead++, D_8006F518);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, minigameHUDTransparency);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, miniHudTransparency);
if (ekansMinigameCountdownStarted) {
func_878021B4(0x1E, 0x17);
@@ -3380,7 +3380,7 @@ void showTutorialScreenEkansMinigame(void) {
if ((miniDebugMode == 0) && (func_80007604() == 0)) {
if (ekansMinigameCountdownStarted) {
if ((gPlayer1Controller->buttonPressed != 0) || (ekansMinigameCountdown == 0x28)) {
if ((gPlayer1Controller->buttonPressed != 0) || (miniEkansCountdown == 0x28)) {
func_87802EB8(2); // D_8780FC92 = 1
}
} else if (miniShowHUB == 0) {

View File

@@ -48,7 +48,7 @@ void initDigletts(void);
s16 miniEkansChooseRandDiglett(s16 arg0);
void func_86C02A1C(MiniActor* arg0);
void miniEkansRecolorDiglet(MiniActor* arg0, s32 arg1);
void func_86C02C28(void);
void miniDiglettStateMachine(void);
void func_86C03008(void);
void ekansMinigameInitObjects(void);
s32 func_86C030EC(void);

View File

@@ -21,16 +21,16 @@ static u32 D_86D00530[] = {
void func_86D00020(void) {
D_87906054 = D_87906050->unk_00.unk_0C;
minigameCameraXRot = 0xA00;
minigameCameraYRot = 0;
minigameCameraDistance = 0x17C;
minigameCameraFOV = 0x1E;
minigameCameraNear = 0x32;
minigameCameraFar = 0x1900;
miniCameraXRot = 0xA00;
miniCameraYRot = 0;
miniCameraDistance = 0x17C;
miniCameraFov = 0x1E;
miniCameraNear = 0x32;
miniCameraFar = 0x1900;
minigameCameraCoords.x = 0;
minigameCameraCoords.y = 0x1E;
minigameCameraCoords.z = 0;
miniCameraCoords.x = 0;
miniCameraCoords.y = 0x1E;
miniCameraCoords.z = 0;
miniUpdateCamera();
}

View File

@@ -587,7 +587,7 @@ void func_86E001E4(MiniActor* metapod, s32 arg1) {
metapod->unk_21C = 0;
metapod->unk_21E = 0;
metapod->unk_25C = 0x190;
metapod->unk_258 = metapod->unk_25C;
metapod->health = metapod->unk_25C;
metapod->unk_2A6 = 5;
metapod->unk_1E4 = metapod->unk_28C * 0.5f;
@@ -966,22 +966,22 @@ void func_86E00CAC(UNUSED MiniActor* metapod, s32 nPlayer) {
void func_86E00D78(MiniActor* metapod, s32 nPlayer) {
if ((miniMetapodPtr->unk_25A > 0) && (metapod->unk_2A8 == 0)) {
if (miniMetapodPtr->unk_25A >= 0x28) {
miniMetapodPtr->unk_258 -= miniMetapodPtr->unk_25A;
miniMetapodPtr->health -= miniMetapodPtr->unk_25A;
miniMetapodPtr->unk_25A = 0;
} else {
miniMetapodPtr->unk_25A--;
miniMetapodPtr->unk_258--;
miniMetapodPtr->health--;
}
if (miniMetapodPtr->unk_258 < 0) {
miniMetapodPtr->unk_258 = 0;
if (miniMetapodPtr->health < 0) {
miniMetapodPtr->health = 0;
}
}
if (miniMetapodPtr->unk_258 == 0) {
if (miniMetapodPtr->health == 0) {
if (miniMetapodPtr->unk_2A4 == 0) {
func_86E001A0(9, nPlayer);
miniChangeActorAnim(miniMetapodPtr, 3, 1, 0);
miniChangeActorAnim(miniMetapodPtr, 3, 1, 0); // dead animation
miniMetapodPtr->unk_2A4 = 1;
miniMetapodPtr->unk_2AA = 1;
}
@@ -1156,7 +1156,7 @@ void func_86E01428(MiniActor* rock) {
s16 temp_a1 = rock->playerId;
Vec3f sp3C;
if ((D_87903DA8 != 0) || (miniMetapods[temp_a1].unk_258 == 0)) {
if ((D_87903DA8 != 0) || (miniMetapods[temp_a1].health == 0)) {
switch (rock->unk_23E) {
case 1:
rock->unk_23E = 0;
@@ -1229,9 +1229,9 @@ void func_86E016EC(MiniActor* arg0) {
UNUSED f32 temp_fv0_2;
UNUSED f32 temp_fv0_3;
arg0->unk_190.x = arg0->unk_19C.x = arg0->localOrigin.x + arg0->unk_1C0.x;
arg0->unk_190.y = arg0->unk_19C.y = arg0->localOrigin.y + arg0->unk_1C0.y;
arg0->unk_190.z = arg0->unk_19C.z = arg0->localOrigin.z + arg0->unk_1C0.z;
arg0->unk_190.x = arg0->unk_19C.x = arg0->localOrigin.x + arg0->globalPos.x;
arg0->unk_190.y = arg0->unk_19C.y = arg0->localOrigin.y + arg0->globalPos.y;
arg0->unk_190.z = arg0->unk_19C.z = arg0->localOrigin.z + arg0->globalPos.z;
}
void func_86E0172C(MiniActor* rock) {
@@ -1239,9 +1239,9 @@ void func_86E0172C(MiniActor* rock) {
rock->unk_1F8 += rock->unk_204;
rock->unk_1FC += rock->unk_208 - rock->unk_210;
rock->unk_200 += rock->unk_20C;
rock->unk_1C0.x += rock->unk_1F8;
rock->unk_1C0.y += rock->unk_1FC;
rock->unk_1C0.z += rock->unk_200;
rock->globalPos.x += rock->unk_1F8;
rock->globalPos.y += rock->unk_1FC;
rock->globalPos.z += rock->unk_200;
}
func_86E016EC(rock);
@@ -1290,16 +1290,16 @@ void func_86E01898(void) {
void func_86E01904(void) {
D_87906054 = D_87906050->unk_00.unk_0C;
minigameCameraXRot = -0x200;
minigameCameraYRot = 0;
minigameCameraDistance = 0xBE;
minigameCameraFOV = 0x23;
minigameCameraNear = 0x32;
minigameCameraFar = 0x1900;
miniCameraXRot = -0x200;
miniCameraYRot = 0;
miniCameraDistance = 0xBE;
miniCameraFov = 0x23;
miniCameraNear = 0x32;
miniCameraFar = 0x1900;
minigameCameraCoords.x = 0;
minigameCameraCoords.y = 0x2A;
minigameCameraCoords.z = 0;
miniCameraCoords.x = 0;
miniCameraCoords.y = 0x2A;
miniCameraCoords.z = 0;
miniUpdateCamera();
}
@@ -1511,13 +1511,13 @@ s32 func_86E01F50(void) {
void func_86E01F8C(void) {
switch (minigameState) {
case 1:
minigameInputLockTimer = 0xF;
miniInputLockTimer = 0xF;
minigameState++;
break;
case 2:
minigameInputLockTimer--;
if (minigameInputLockTimer < 0) {
miniInputLockTimer--;
if (miniInputLockTimer < 0) {
func_8780295C(1);
minigameState++;
}
@@ -1544,14 +1544,14 @@ void func_86E01F8C(void) {
case 5:
if (func_86E01F50() != 0) {
minigameInputLockTimer = 0xA;
miniInputLockTimer = 0xA;
minigameState++;
}
break;
case 6:
minigameInputLockTimer--;
if (minigameInputLockTimer < 0) {
miniInputLockTimer--;
if (miniInputLockTimer < 0) {
func_86E01E34();
func_87802EB8(1);
minigameState++;
@@ -1578,7 +1578,7 @@ void miniDrawMetapodHealth(void) {
s32 i;
for (i = 0; i < 4; i++) {
func_8780024C(0x1A + i * 0x4A, 0xD0, 0x32, miniMetapods[i].unk_258, miniMetapods[i].unk_25C);
func_8780024C(0x1A + i * 0x4A, 0xD0, 0x32, miniMetapods[i].health, miniMetapods[i].unk_25C);
}
}
@@ -1587,7 +1587,7 @@ void miniDrawMetapodHeads(void) {
s32 tmp;
gSPDisplayList(gDisplayListHead++, D_8006F518);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, minigameHUDTransparency);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, miniHudTransparency);
for (i = 0, tmp = 0x26; i < 4; tmp += 0x4A, i++) {
if (D_879060C4[i] == 0) {

View File

@@ -1599,9 +1599,9 @@ void initSandshrew(MiniActor* sandshrew, s32 player) {
sandshrew->localOrigin.y = sandshrewPositions[player].y;
sandshrew->localOrigin.z = sandshrewPositions[player].z;
sandshrew->unk_1C0.x = 0.0f;
sandshrew->unk_1C0.y = 0.0f;
sandshrew->unk_1C0.z = 0.0f;
sandshrew->globalPos.x = 0.0f;
sandshrew->globalPos.y = 0.0f;
sandshrew->globalPos.z = 0.0f;
if (true) {}
@@ -1620,7 +1620,7 @@ void initSandshrew(MiniActor* sandshrew, s32 player) {
sandshrew->totalRot.y = sandshrew->unk_21C = 0;
sandshrew->totalRot.z = sandshrew->unk_21E = 0;
sandshrew->unk_258 = sandshrew->unk_25C = 0x64;
sandshrew->health = sandshrew->unk_25C = 0x64;
sandshrew->unk_238 = sandshrew->unk_23A = 0;
func_8001BD04(&sandshrew->unk_000, 0);
@@ -1830,7 +1830,7 @@ void func_86F00920(MiniActor* sandshrew) {
holeDeepeness = sandshrew->unk_274 / 5000.0f;
if (holeDeepeness > 0.2f) {
sandshrew->unk_1C0.y -= holeDeepeness;
sandshrew->globalPos.y -= holeDeepeness;
}
func_86F00188(3, sandshrew - miniSandshrews);
@@ -1861,12 +1861,12 @@ void func_86F00920(MiniActor* sandshrew) {
func_80017464(&sandshrew->unk_000, 0);
func_80017454(&sandshrew->unk_000, 0x10000);
sandshrew->unk_23E++;
sandshrew->unk_1C0.y += 15.0f;
sandshrew->globalPos.y += 15.0f;
break;
case 0x65:
minigameActorLocalOriginToZero(sandshrew);
func_80015390(&miniSandshrewGeiserPtr->unk_000, 0xA, &sandshrew->unk_1C0);
func_80015390(&miniSandshrewGeiserPtr->unk_000, 0xA, &sandshrew->globalPos);
break;
}
}
@@ -1919,11 +1919,11 @@ void initSandshrewHole(MiniActor* a0, s32 arg1) {
sandshrewHole->totalRot.z = sandshrewHole->unk_21E = sandshrewHole->unk_224 = sandshrewHole->unk_22A =
sandshrewHole->unk_230 = 0;
sandshrewHole->unk_1C0.x = 0.0f;
sandshrewHole->unk_1C0.y = 0.0f;
sandshrewHole->unk_1C0.z = 0.0f;
sandshrewHole->globalPos.x = 0.0f;
sandshrewHole->globalPos.y = 0.0f;
sandshrewHole->globalPos.z = 0.0f;
sandshrewHole->unk_258 = sandshrewHole->unk_25C = 0x64;
sandshrewHole->health = sandshrewHole->unk_25C = 0x64;
sandshrewHole->unk_272 = 0;
sandshrewHole->unk_2A4 = 0;
@@ -1993,11 +1993,11 @@ void initSandshrewWaterGeiser(MiniActor* arg0, s32 arg1) {
geiser->totalRot.y = geiser->unk_21C = geiser->unk_222 = geiser->unk_228 = geiser->unk_22E = 0;
geiser->totalRot.z = geiser->unk_21E = geiser->unk_224 = geiser->unk_22A = geiser->unk_230 = 0;
geiser->unk_1C0.x = 0.0f;
geiser->unk_1C0.y = 0.0f;
geiser->unk_1C0.z = 0.0f;
geiser->globalPos.x = 0.0f;
geiser->globalPos.y = 0.0f;
geiser->globalPos.z = 0.0f;
geiser->unk_258 = geiser->unk_25C = 0x64;
geiser->health = geiser->unk_25C = 0x64;
geiser->unk_272 = 0;
geiser->unk_2A4 = 0;
@@ -2055,16 +2055,16 @@ void func_86F012B8(void) {
void func_86F0132C(void) {
D_87906054 = D_87906050->unk_00.unk_0C;
minigameCameraXRot = 0x1600;
minigameCameraYRot = 0;
minigameCameraDistance = 0x10E;
minigameCameraFOV = 0x23;
minigameCameraNear = 0x32;
minigameCameraFar = 0x1900;
miniCameraXRot = 0x1600;
miniCameraYRot = 0;
miniCameraDistance = 0x10E;
miniCameraFov = 0x23;
miniCameraNear = 0x32;
miniCameraFar = 0x1900;
minigameCameraCoords.x = 0;
minigameCameraCoords.y = -2;
minigameCameraCoords.z = 0;
miniCameraCoords.x = 0;
miniCameraCoords.y = -2;
miniCameraCoords.z = 0;
miniUpdateCamera();
}
@@ -2080,7 +2080,7 @@ void func_86F013B8(void) {
func_81400760(&D_8790607C, 250.0f, 1.0f);
func_81400760(&D_87906088.y, 34.0f, 1.8f);
func_81400550(&D_87906076, 0x600, 0xCC);
func_81400550(&minigameHUDTransparency, 0, 0x30);
func_81400550(&miniHudTransparency, 0, 0x30);
break;
}
@@ -2172,13 +2172,13 @@ s32 func_86F016D8(void) {
void func_86F0174C(void) {
switch (minigameState) {
case 1: // after pressing start
minigameInputLockTimer = 0xF;
miniInputLockTimer = 0xF;
minigameState++;
break;
case 2: // waits for some frames before starting the main countdown
minigameInputLockTimer--;
if (minigameInputLockTimer < 0) {
miniInputLockTimer--;
if (miniInputLockTimer < 0) {
func_8780295C(1);
minigameState++;
}
@@ -2199,13 +2199,13 @@ void func_86F0174C(void) {
minigameInputLock = 0;
D_87906072 = 1;
minigameState++;
minigameInputLockTimer = 0x28;
miniInputLockTimer = 0x28;
}
break;
case 5:
minigameInputLockTimer--;
if (minigameInputLockTimer == 0) {
miniInputLockTimer--;
if (miniInputLockTimer == 0) {
func_87802EB8(1);
func_87903294();
func_86F00188(0xC, 0xB4);
@@ -2298,7 +2298,7 @@ void fixSandshrewMinigameHUD(void) {
s32 i;
gSPDisplayList(gDisplayListHead++, D_8006F518);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, minigameHUDTransparency);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, miniHudTransparency);
for (i = 0; i < 4; i++) {
s16 xPos = playerIconsScreenXPos[i];

View File

@@ -15,11 +15,11 @@ typedef struct MiniActor {
/* 0x19C */ Vec3f unk_19C; // position ? ** metapod only
/* 0x1A8 */ Vec3f localOrigin; // origin position
/* 0x1B4 */ Vec3f unk_1B4; // related to angle ** ekans only
/* 0x1C0 */ Vec3f unk_1C0; // maybe global position ?
/* 0x1C0 */ Vec3f globalPos;
/* 0x1CC */ f32 unk_1CC; // ??? ** ekans only
/* 0x1D0 */ f32 unk_1D0; // unused ?
/* 0x1D4 */ f32 unk_1D4; // ??? ** ekans only
/* 0x1D8 */ Vec3f unk_1D8; // also position on skans' minigame? never used
/* 0x1D8 */ Vec3f unk_1D8; // also position, never used
/* 0x1E4 */ f32 unk_1E4; // botton of the hitbox ? half of 28C
/* 0x1E8 */ char unk1E8[0x4]; // unused ?
/* 0x1EC */ f32 unk_1EC; // always zero
@@ -58,10 +58,10 @@ typedef struct MiniActor {
/* 0x246 */ char unk246[0x2]; // unused
/* 0x248 */ s16 unk_248; // 0,1,2 - is colliding? visibility?
/* 0x24A */ s16 unk_24A; // animation id ?
/* 0x24C */ s16 unk_24C; //
/* 0x24C */ s16 unk_24C; // texture animation ?
/* 0x24E */ char unk24E[0x6]; // unused
/* 0x254 */ s32 unk_254; // always zero
/* 0x258 */ s16 unk_258; // health on metapod ; ??? on ekans and sandsrew
/* 0x258 */ s16 health; // health on metapod ; ??? on ekans and sandsrew
/* 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
@@ -69,16 +69,16 @@ typedef struct MiniActor {
/* 0x262 */ s16 unk_262; // can ekans peg a digglet ? ** ekans only
/* 0x264 */ s16 unk_264; // always zero
/* 0x266 */ s16 playerId;
/* 0x268 */ s16 unk_268;
/* 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;
/* 0x26E */ s16 unk_26E; // animation something, always zero
/* 0x270 */ s16 unk_270;
/* 0x272 */ s16 unk_272; // colliding with a rock on metapod's minigame ?
/* 0x274 */ f32 unk_274; //
/* 0x278 */ char unk278[0x4];
/* 0x278 */ char unk278[0x4]; // unused
/* 0x27C */ f32 unk_27C; //
/* 0x280 */ f32 unk_280; // stick magnitude on ekans? digging/animation speed on sandshrew
/* 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
@@ -143,7 +143,7 @@ extern unk_D_87903E10 D_87903E10;
extern unk_D_87903E10 D_87903E28;
extern unk_D_87903E10 D_87903E40;
extern unk_D_87903E10 D_87903E58;
extern s16 minigameInputLockTimer;
extern s16 miniInputLockTimer;
extern s16 D_87906042;
extern s16 miniShowHUB;
extern s16 D_87906046;
@@ -151,13 +151,13 @@ extern s16 D_87906048;
extern s16 D_8790604A;
extern unk_D_86002F34_00C* D_87906050; // geo layout
extern unk_D_86002F34_00C* D_87906054;
extern s16 minigameCameraXRot;
extern s16 minigameCameraYRot;
extern s16 minigameCameraDistance;
extern s16 minigameCameraFOV;
extern s16 minigameCameraNear;
extern s16 minigameCameraFar;
extern Vec3s minigameCameraCoords;
extern s16 miniCameraXRot;
extern s16 miniCameraYRot;
extern s16 miniCameraDistance;
extern s16 miniCameraFov;
extern s16 miniCameraNear;
extern s16 miniCameraFar;
extern Vec3s miniCameraCoords;
extern s16 D_87906072;
extern s16 D_87906076;
extern s16 D_87906078;
@@ -180,9 +180,9 @@ extern s16 miniDebugMode;
extern s16 D_87903DB8;
extern Controller* miniControllerPtr;
extern s16 D_879060C0;
extern s16 ekansMinigameCountdown;
extern s16 miniEkansCountdown;
extern s8 D_879060C4[4];
extern s16 minigameHUDTransparency;
extern s16 miniHudTransparency;
extern s16 D_879060CA;
extern Vec3f D_879060E0;
@@ -195,9 +195,9 @@ void MinigameGetVec3Distance_3d(MiniActor* arg0, MiniActor* arg1);
s32 func_879000C4(MiniActor* arg0, MiniActor* arg1);
s32 metapodRockCollisionCheck(MiniActor* arg0, MiniActor* arg1);
void miniChangeActorAnim(MiniActor* arg0, s16 arg1, s16 arg2, s16 arg3);
void func_879002FC(MiniActor* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4);
void func_87900344(MiniActor* arg0, s16 arg1, s16 arg2, s16 arg3);
s32 miniIddleAnimCheck(MiniActor* arg0);
void miniChangeActorAnim_alt1(MiniActor* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4);
void miniChangeActorAnim_alt2(MiniActor* arg0, s16 arg1, s16 arg2, s16 arg3);
s32 miniPokeIsIdleCheck(MiniActor* arg0);
void func_879003A0(MiniActor* arg0);
void func_879004F8(unk_D_86002F58_004_000* arg0);
void func_87900528(void);

View File

@@ -17,7 +17,7 @@ s32 pad_D_87903DB4 = 0;
s16 D_87903DB8 = 0;
s16 D_87903DBC = 0;
s16 D_87903DC0 = 0;
s16 miniTutoScreenState = 0; // related to tutorial screen on minigames
s16 miniTutoScreenState = 0;
s16 D_87903DC8 = 0;
s16 D_87903DCC = 0;
s16 D_87903DD0 = 0;
@@ -99,7 +99,6 @@ s32 metapodRockCollisionCheck(MiniActor* fallingRock, MiniActor* metapod) {
return ret;
}
// change animation on ekans' and metapod's minigames ?
void miniChangeActorAnim(MiniActor* poke, s16 anim, s16 arg2, s16 arg3) {
poke->unk_248 = 1; // animation flag ?
poke->unk_24A = anim;
@@ -110,7 +109,7 @@ void miniChangeActorAnim(MiniActor* poke, s16 anim, s16 arg2, s16 arg3) {
}
// unused
void func_879002FC(MiniActor* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
void miniChangeActorAnim_alt1(MiniActor* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
arg0->unk_248 = 1;
arg0->unk_24A = arg1;
arg0->unk_24C = arg2;
@@ -119,16 +118,15 @@ void func_879002FC(MiniActor* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
arg0->unk_26E = arg4;
}
// diglett's pop out the ground on diglett's minigame
void func_87900344(MiniActor* diglett, s16 anim, s16 arg2, s16 arg3) {
diglett->unk_248 = 1; // visibility ?
diglett->unk_24A = anim; // 1
diglett->unk_24C = arg2; // -1
diglett->unk_26A = arg3; // 1
diglett->unk_26C = 1; // animation id?
void miniChangeActorAnim_alt2(MiniActor* diglett, s16 anim, s16 arg2, s16 arg3) {
diglett->unk_248 = 1;
diglett->unk_24A = anim;
diglett->unk_24C = arg2;
diglett->unk_26A = arg3;
diglett->unk_26C = 1;
}
s32 miniIddleAnimCheck(MiniActor* arg0) {
s32 miniPokeIsIdleCheck(MiniActor* arg0) {
s32 var_v1 = 0;
if (arg0->unk_248 == 0) {
@@ -192,13 +190,15 @@ void hideMiniGameHUD(void) {
}
void func_87900564(MiniActor* actor) {
actor->unk_1C0.x = 0.0f;
actor->globalPos.x = 0.0f;
actor->localOrigin.x = 0.0f;
actor->unk_190.x = 0.0f;
actor->unk_1C0.y = 0.0f;
actor->globalPos.y = 0.0f;
actor->localOrigin.y = 0.0f;
actor->unk_190.y = 0.0f;
actor->unk_1C0.z = 0.0f;
actor->globalPos.z = 0.0f;
actor->localOrigin.z = 0.0f;
actor->unk_190.z = 0.0f;
}
@@ -210,16 +210,16 @@ void minigameActorLocalOriginToZero(MiniActor* arg0) {
}
void func_879005AC(MiniActor* arg0) {
arg0->unk_1C0.x = 0.0f;
arg0->unk_1C0.y = 0.0f;
arg0->unk_1C0.z = 0.0f;
arg0->globalPos.x = 0.0f;
arg0->globalPos.y = 0.0f;
arg0->globalPos.z = 0.0f;
}
void func_879005C4(MiniActor* ekans) {
ekans->unk_1FC = ekans->unk_1FC - ekans->unk_210;
ekans->unk_1C0.x = ekans->unk_1C0.x + ekans->unk_1F8;
ekans->unk_1C0.y = ekans->unk_1C0.y + (ekans->unk_1FC - ekans->unk_210);
ekans->unk_1C0.z = ekans->unk_1C0.z + ekans->unk_200;
ekans->globalPos.x = ekans->globalPos.x + ekans->unk_1F8;
ekans->globalPos.y = ekans->globalPos.y + (ekans->unk_1FC - ekans->unk_210);
ekans->globalPos.z = ekans->globalPos.z + ekans->unk_200;
}
void func_8790060C(MiniActor* actor) {
@@ -253,7 +253,7 @@ void func_8790060C(MiniActor* actor) {
actor->unk_1B4.z = 0.0f;
actor->unk_1B4.y = 0.0f;
actor->unk_1B4.x = 0.0f;
actor->unk_1C0.x = actor->unk_1C0.y = actor->unk_1C0.z = 0.0f;
actor->globalPos.x = actor->globalPos.y = actor->globalPos.z = 0.0f;
actor->unk_1D4 = 0.0f;
actor->unk_1D0 = 0.0f;
@@ -279,9 +279,9 @@ void func_8790060C(MiniActor* actor) {
}
void miniActorUpdateTransform(MiniActor* poke) {
poke->unk_190.x = poke->unk_19C.x = poke->localOrigin.x + poke->unk_1C0.x;
poke->unk_190.y = poke->unk_19C.y = poke->localOrigin.y + poke->unk_1C0.y;
poke->unk_190.z = poke->unk_19C.z = poke->localOrigin.z + poke->unk_1C0.z;
poke->unk_190.x = poke->unk_19C.x = poke->localOrigin.x + poke->globalPos.x;
poke->unk_190.y = poke->unk_19C.y = poke->localOrigin.y + poke->globalPos.y;
poke->unk_190.z = poke->unk_19C.z = poke->localOrigin.z + poke->globalPos.z;
poke->unk_19C.y = poke->unk_19C.y + poke->unk_1E4;
@@ -311,7 +311,7 @@ void func_87900854(void) {
minigameInputLock = 0;
D_87903DA8 = 0;
D_87903DAC = 0;
minigameInputLockTimer = 0;
miniInputLockTimer = 0;
D_87906048 = 0;
D_8790604A = 0;
D_87903DC0 = 0;
@@ -329,29 +329,29 @@ void func_87900854(void) {
D_879060C4[2] = ptr[2];
D_879060C4[3] = ptr[3];
minigameHUDTransparency = 0xFF;
miniHudTransparency = 0xFF;
}
void func_87900920(void) {
D_8790607C = minigameCameraDistance;
D_87906080 = minigameCameraFOV;
D_8790607C = miniCameraDistance;
D_87906080 = miniCameraFov;
D_87906088.x = minigameCameraCoords.x;
D_87906088.y = minigameCameraCoords.y;
D_87906088.z = minigameCameraCoords.z;
D_87906088.x = miniCameraCoords.x;
D_87906088.y = miniCameraCoords.y;
D_87906088.z = miniCameraCoords.z;
D_87906076 = minigameCameraXRot;
D_87906078 = minigameCameraYRot;
D_87906076 = miniCameraXRot;
D_87906078 = miniCameraYRot;
}
void func_879009B4(void) {
minigameCameraDistance = D_8790607C;
minigameCameraFOV = D_87906080;
miniCameraDistance = D_8790607C;
miniCameraFov = D_87906080;
minigameCameraCoords.x = D_87906088.x;
minigameCameraCoords.y = D_87906088.y;
minigameCameraCoords.z = D_87906088.z;
miniCameraCoords.x = D_87906088.x;
miniCameraCoords.y = D_87906088.y;
miniCameraCoords.z = D_87906088.z;
minigameCameraXRot = D_87906076;
minigameCameraYRot = D_87906078;
miniCameraXRot = D_87906076;
miniCameraYRot = D_87906078;
}

View File

@@ -3,7 +3,7 @@
#include "src/20470.h"
#include "src/F420.h"
s16 minigameInputLockTimer;
s16 miniInputLockTimer;
s16 D_87906042;
s16 miniShowHUB;
s16 D_87906046;
@@ -13,13 +13,13 @@ s32 pad_D_8790604C; // unused?
unk_D_86002F34_00C* D_87906050;
unk_D_86002F34_00C* D_87906054;
s32 pad_D_87906058[2]; // unused?
s16 minigameCameraXRot;
s16 minigameCameraYRot;
s16 minigameCameraDistance;
s16 minigameCameraFOV;
s16 minigameCameraNear;
s16 minigameCameraFar;
Vec3s minigameCameraCoords;
s16 miniCameraXRot;
s16 miniCameraYRot;
s16 miniCameraDistance;
s16 miniCameraFov;
s16 miniCameraNear;
s16 miniCameraFar;
Vec3s miniCameraCoords;
s16 D_87906072;
s16 pad_D_87906074;
s16 D_87906076;
@@ -42,9 +42,9 @@ s32 pad_D_879060B4;
s32 pad_D_879060B8;
Controller* miniControllerPtr;
s16 D_879060C0;
s16 ekansMinigameCountdown;
s16 miniEkansCountdown;
s8 D_879060C4[4];
s16 minigameHUDTransparency;
s16 miniHudTransparency;
s16 D_879060CA;
s32 pad_D_879060D0[4];
Vec3f D_879060E0;
@@ -53,38 +53,38 @@ Vec3f D_87906100;
Vec3f D_87906110;
void func_87900A50(void) {
minigameCameraXRot = D_879060A2 + D_87906094;
minigameCameraYRot = D_879060A4 + D_87906096;
miniCameraXRot = D_879060A2 + D_87906094;
miniCameraYRot = D_879060A4 + D_87906096;
minigameCameraCoords.x = D_879060AC.x + D_8790609C.x;
minigameCameraCoords.y = D_879060AC.y + D_8790609C.y;
minigameCameraCoords.z = D_879060AC.z + D_8790609C.z;
miniCameraCoords.x = D_879060AC.x + D_8790609C.x;
miniCameraCoords.y = D_879060AC.y + D_8790609C.y;
miniCameraCoords.z = D_879060AC.z + D_8790609C.z;
minigameCameraDistance = D_879060A6 + D_87906098;
minigameCameraFOV = D_879060A8 + D_8790609A;
miniCameraDistance = D_879060A6 + D_87906098;
miniCameraFov = D_879060A8 + D_8790609A;
if (minigameCameraDistance < 0x32) {
minigameCameraDistance = 0x32;
D_87906098 = minigameCameraDistance - D_879060A6;
if (miniCameraDistance < 0x32) {
miniCameraDistance = 0x32;
D_87906098 = miniCameraDistance - D_879060A6;
}
if (minigameCameraFOV < 0xA) {
minigameCameraFOV = 0xA;
D_8790609A = minigameCameraFOV - D_879060A8;
if (miniCameraFov < 0xA) {
miniCameraFov = 0xA;
D_8790609A = miniCameraFov - D_879060A8;
}
}
void miniUpdateCamera(void) {
D_87906054->unk_24.fovy = minigameCameraFOV;
D_87906054->unk_24.near = minigameCameraNear;
D_87906054->unk_24.far = minigameCameraFar;
D_87906054->unk_24.fovy = miniCameraFov;
D_87906054->unk_24.near = miniCameraNear;
D_87906054->unk_24.far = miniCameraFar;
D_87906054->unk_60.at.x = minigameCameraCoords.x;
D_87906054->unk_60.at.y = minigameCameraCoords.y;
D_87906054->unk_60.at.z = minigameCameraCoords.z;
D_87906054->unk_60.at.x = miniCameraCoords.x;
D_87906054->unk_60.at.y = miniCameraCoords.y;
D_87906054->unk_60.at.z = miniCameraCoords.z;
func_80010354(&D_87906054->unk_60.at, &D_87906054->unk_60.eye, minigameCameraDistance, minigameCameraXRot,
minigameCameraYRot);
func_80010354(&D_87906054->unk_60.at, &D_87906054->unk_60.eye, miniCameraDistance, miniCameraXRot,
miniCameraYRot);
}
s32 minigameDebuggModeControl(void) {
@@ -122,27 +122,27 @@ s32 minigameDebuggModeControl(void) {
if (D_87903DB8 == 0) {
if (BTN_IS_DOWN(gPlayer1Controller, 0xCF00)) {
if (BTN_IS_DOWN(gPlayer1Controller, BTN_DUP)) {
sp6 = minigameCameraYRot + 0x8000;
sp6 = miniCameraYRot + 0x8000;
}
if (BTN_IS_DOWN(gPlayer1Controller, BTN_DDOWN)) {
sp6 = minigameCameraYRot;
sp6 = miniCameraYRot;
}
if (BTN_IS_DOWN(gPlayer1Controller, BTN_DLEFT)) {
sp6 = minigameCameraYRot + 0xC000;
sp6 = miniCameraYRot + 0xC000;
}
if (BTN_IS_DOWN(gPlayer1Controller, BTN_DRIGHT)) {
sp6 = minigameCameraYRot + 0x4000;
sp6 = miniCameraYRot + 0x4000;
}
if (BTN_IS_DOWN(gPlayer1Controller, BTN_A)) {
sp6 = minigameCameraYRot + 0x8000;
sp6 = miniCameraYRot + 0x8000;
}
if (BTN_IS_DOWN(gPlayer1Controller, BTN_B)) {
sp6 = minigameCameraYRot;
sp6 = miniCameraYRot;
}
D_8790609C.x += SINS(sp6) * 16.0f;
@@ -183,12 +183,12 @@ void showDebuggCameraInfo(void) {
func_8001F1E8(0x19, 0x1C, "TRANSRATE");
}
func_8001F1E8(0x19, 0x28, "CAMERA X:%d", minigameCameraCoords.x);
func_8001F1E8(0x19, 0x34, "CAMERA Y:%d", minigameCameraCoords.y);
func_8001F1E8(0x19, 0x40, "CAMERA Z:%d", minigameCameraCoords.z);
func_8001F1E8(0xA7, 0x28, "CAMERA D:%d", minigameCameraDistance);
func_8001F1E8(0xA7, 0x34, "CAMERA F:%d", minigameCameraFOV);
func_8001F1E8(0xA7, 0x40, "X:%04hX Y:%04hX", minigameCameraXRot, minigameCameraYRot);
func_8001F1E8(0x19, 0x28, "CAMERA X:%d", miniCameraCoords.x);
func_8001F1E8(0x19, 0x34, "CAMERA Y:%d", miniCameraCoords.y);
func_8001F1E8(0x19, 0x40, "CAMERA Z:%d", miniCameraCoords.z);
func_8001F1E8(0xA7, 0x28, "CAMERA D:%d", miniCameraDistance);
func_8001F1E8(0xA7, 0x34, "CAMERA F:%d", miniCameraFov);
func_8001F1E8(0xA7, 0x40, "X:%04hX Y:%04hX", miniCameraXRot, miniCameraYRot);
func_8001F444();
}