Initial Katina documentation (#228)

* initial docs

* func names

* docs

* more docs

* more katina docs

* format

* format

* yRot

* more docs

* more docs

* this

* some fixes

* fixes

* ActorAllRange

* These should not be used here

* corrections

* some renamings

* more docs

* format

* Merge remote-tracking branch 'origin' into fox_ka_docs

* ActorCutscene

* PR review

* comment

* bump torch

* PR review

* review
This commit is contained in:
Alejandro Asenjo Nitti
2024-05-05 17:23:49 -03:00
committed by GitHub
parent 9303fba359
commit 455aa0aa2c
18 changed files with 1292 additions and 793 deletions
+6 -5
View File
@@ -45,7 +45,7 @@ u8 gKaAllyKillCount;
s32 gAllRangeCheckpoint;
s32 gAllRangeEventTimer;
s32 gAllRangeCountdown[3];
s32 gShowAllRangeCountdown;
bool gShowAllRangeCountdown;
s32 gAllRangeFrameCount;
f32 gAllRangeCountdownScale;
@@ -1171,8 +1171,9 @@ bool func_360_80031900(Actor* actor) {
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &sp18);
if (sp18.z > 0.0f) {
return true;
} else {
return false;
}
return false;
}
static Vec3f sSectorZRetreatPath[6] = {
@@ -2279,15 +2280,15 @@ void ActorAllRange_Draw(ActorAllRange* this) {
} else if (gCurrentLevel == LEVEL_KATINA) {
switch (this->unk_0B6) {
case 0:
gSPDisplayList(gMasterDisp++, D_KA_600EFF0);
gSPDisplayList(gMasterDisp++, aKaEnemy1LowPolyDL);
break;
case 1:
gSPDisplayList(gMasterDisp++, D_KA_600E050);
gSPDisplayList(gMasterDisp++, aKaCornerianFighterDL);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, MTXF_APPLY);
Actor_DrawEngineGlow(this, 0);
break;
case 3:
gSPDisplayList(gMasterDisp++, D_KA_6001530);
gSPDisplayList(gMasterDisp++, aKaEnemy1DL);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 30.0f, MTXF_APPLY);
ActorAllRange_DrawShield(this);
break;
+3 -3
View File
@@ -2374,7 +2374,7 @@ void ActorCutscene_Update(ActorCutscene* this) {
break;
case LEVEL_KATINA:
Katina_80197F10(this);
Katina_SFTeamFlyTowardsCamera(this);
break;
case LEVEL_SECTOR_Z:
@@ -2745,14 +2745,14 @@ void ActorCutscene_Draw(Actor* actor) {
if ((actor->index == 3) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) {
gSPDisplayList(gMasterDisp++, D_D00B880);
} else {
gSPDisplayList(gMasterDisp++, D_KA_600E050);
gSPDisplayList(gMasterDisp++, aKaCornerianFighterDL);
}
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, MTXF_APPLY);
Actor_DrawEngineGlow(actor, 0);
break;
case 34:
gSPDisplayList(gMasterDisp++, D_KA_6001530);
gSPDisplayList(gMasterDisp++, aKaEnemy1DL);
break;
case 35:
+5 -5
View File
@@ -247,7 +247,7 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_SCENERY_151 */ {(void*) D_FO_60066E0, 0, (ObjectFunc) NULL, D_FO_600FEB8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_152 */ {(void*) D_BO_600F4C0, 0, (ObjectFunc) NULL, D_BO_6011C10, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_153 */ {(void*) D_BO_600B8B0, 0, (ObjectFunc) NULL, D_BO_6011C48, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_154 */ {(void*) D_KA_600BAF0, 0, (ObjectFunc) NULL, D_KA_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_154 */ {(void*) aKaFLBaseDL, 0, (ObjectFunc) NULL, D_KA_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_155 */ {(void*) NULL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_156 */ {(void*) SectorY_80197CB8, 1, (ObjectFunc) NULL, D_SY_6034368, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_157 */ {(void*) D_SZ_6001DA0, 0, (ObjectFunc) NULL, D_SZ_600924C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
@@ -409,8 +409,8 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_BOSS_313 */ {(void*) SectorZ_8019E98C, 1, (ObjectFunc) SectorZ_8019E454, D_SZ_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_314 */ {(void*) SectorY_8019E2C4, 2, (ObjectFunc) SectorY_8019C888, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_SO */ {(void*) Solar_801A71B8, 2, (ObjectFunc) Solar_801A5B3C, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_316 */ {(void*) Katina_801968F4, 1, (ObjectFunc) Katina_801946C4, D_KA_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_317 */ {(void*) Katina_80193B1C, 1, (ObjectFunc) Katina_80193718, D_KA_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_316 */ {(void*) Katina_BossDraw, 1, (ObjectFunc) Katina_BossUpdate, D_KA_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_317 */ {(void*) Katina_Base_Draw, 1, (ObjectFunc) Katina_BaseUpdate, D_KA_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_AQ */ {(void*) Aquas_801B4D84, 2, (ObjectFunc) Aquas_801B134C, D_AQ_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_319 */ {(void*) Venom1_801985E4, 1, (ObjectFunc) Venom1_80194398,D_VE1_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_320 */ {(void*) Andross_801928C8, 2, (ObjectFunc) Andross_8018DBF0, D_ANDROSS_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
@@ -432,7 +432,7 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_ITEM_GOLD_RING */ {(void*) ItemGoldRing_Draw, 1, (ObjectFunc) ItemGoldRing_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_WING_REPAIR */ {(void*) D_arwing_3007650, 0, (ObjectFunc) ItemWingRepair_Update, gItemLasersHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_TRAINING_RING */ {(void*) gItemTrainingRingDL, 0, (ObjectFunc) Training_ItemRing_Update, D_TR_6009CFC, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_339 */ {(void*) func_effect_8007D55C, 1, (ObjectFunc) func_effect_8007D2F4, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_FIRE_SMOKE */ {(void*) func_effect_8007D55C, 1, (ObjectFunc) func_effect_8007D2F4, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_340 */ {(void*) func_effect_8007D55C, 1, (ObjectFunc) func_effect_8007D748, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_341 */ {(void*) func_effect_8007D55C, 1, (ObjectFunc) func_effect_8007D8A8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_342 */ {(void*) func_effect_8007E330, 1, (ObjectFunc) func_effect_8007E298, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
@@ -451,7 +451,7 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_EFFECT_355 */ {(void*) func_effect_80078AEC, 1, (ObjectFunc) func_effect_800802B8, NULL, 100.0f, 1, 0, 20, 1, 0.0f, 0 },
/* OBJ_EFFECT_356 */ {(void*) func_effect_80078C84, 1, (ObjectFunc) func_effect_800802F8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_357 */ {(void*) func_effect_800798F0, 1, (ObjectFunc) func_effect_8007968C, NULL, 100.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_358 */ {(void*) Katina_80192A68, 1, (ObjectFunc) Katina_80192984, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_358 */ {(void*) Katina_LaserEnergyParticlesDraw, 1, (ObjectFunc) Katina_LaserEnergyParticlesUpdate, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_359 */ {(void*) func_effect_8007AA60, 1, (ObjectFunc) func_effect_8007A994, NULL, -100.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_360 */ {(void*) func_effect_8007BEE8, 1, (ObjectFunc) func_effect_8007BE54, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_361 */ {(void*) func_effect_8007BEE8, 1, (ObjectFunc) func_effect_8007BDE0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+4 -2
View File
@@ -167,7 +167,7 @@ Effect* func_effect_8007783C(ObjectId objId) {
void func_effect_800778C4(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2) {
Effect_Initialize(effect);
effect->obj.status = OBJ_INIT;
effect->obj.id = OBJ_EFFECT_339;
effect->obj.id = OBJ_EFFECT_FIRE_SMOKE;
effect->obj.pos.x = xPos;
effect->obj.pos.y = yPos;
@@ -628,6 +628,7 @@ void func_effect_800794CC(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
}
}
// Broken pieces and debris effect
void func_effect_8007953C(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
@@ -1226,6 +1227,7 @@ void func_effect_8007B2BC(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 scal
Object_SetInfo(&effect->info, effect->obj.id);
}
// Orange-yellowish light effect simulating an explosion
void func_effect_8007B344(f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg4) {
s32 i;
@@ -1791,7 +1793,7 @@ void func_effect_8007CAF0(Effect* effect) {
void func_effect_8007CC00(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
Effect_Initialize(effect);
effect->obj.status = OBJ_INIT;
effect->obj.id = OBJ_EFFECT_339;
effect->obj.id = OBJ_EFFECT_FIRE_SMOKE;
effect->obj.pos.x = xPos;
effect->obj.pos.y = yPos;
effect->obj.pos.z = zPos;
+3 -3
View File
@@ -458,7 +458,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) {
}
}
}
if ((objInit->id >= OBJ_ITEM_LASERS) && (objInit->id < OBJ_EFFECT_339)) {
if ((objInit->id >= OBJ_ITEM_LASERS) && (objInit->id < OBJ_EFFECT_FIRE_SMOKE)) {
for (i = 0; i < ARRAY_COUNT(gItems); i++) {
if (gItems[i].obj.status == OBJ_FREE) {
Item_Load(&gItems[i], objInit);
@@ -466,7 +466,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) {
}
}
}
if (objInit->id >= OBJ_EFFECT_339 && objInit->id <= OBJ_UNK_406) {
if (objInit->id >= OBJ_EFFECT_FIRE_SMOKE && objInit->id <= OBJ_UNK_406) {
switch (objInit->id) {
case OBJ_UNK_403:
D_MA_801BA1E8 = 99;
@@ -1188,7 +1188,7 @@ void Object_Init(s32 index, ObjectId objId) {
Andross_Boss320_Init(&gBosses[index]);
break;
case OBJ_BOSS_316:
Katina_Boss316_Init(&gBosses[index]);
Katina_BossSetup(&gBosses[index]);
break;
case OBJ_BOSS_314:
SectorY_Boss314_Init(&gBosses[index]);
+3 -3
View File
@@ -5417,7 +5417,7 @@ void func_hud_80094D20(f32 x, f32 y) {
temp4 = gDisplayedHitCount;
}
boolTemp = 0;
boolTemp = false;
i = 1000;
temp3 %= i;
temp4 %= i;
@@ -5430,7 +5430,7 @@ void func_hud_80094D20(f32 x, f32 y) {
temp = temp3 / i;
temp2 = temp4 / i;
if ((temp != 0) || (boolTemp == 1)) {
if ((temp != 0) || (boolTemp == true)) {
if (temp != temp2) {
D_hud_80161720[j] += 0.4f;
if (D_hud_80161720[j] <= 0.9f) {
@@ -5466,7 +5466,7 @@ void func_hud_80094D20(f32 x, f32 y) {
if (xScale != 0.0f) {
TextureRect_8bIA(&gMasterDisp, D_800D24DC[temp], 16, 15, x1, y1, xScale, 1.0f);
}
boolTemp = 1;
boolTemp = true;
}
if ((!boolTemp) && (xScale != 0.0f)) {
+1 -1
View File
@@ -2666,7 +2666,7 @@ void Play_Init(void) {
ActorAllRange_SpawnTeam();
break;
case LEVEL_KATINA:
Katina_80198930();
Katina_BossInit();
if (!D_ctx_8017782C) {
ActorAllRange_SpawnTeam();
}
+1221 -728
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -67,7 +67,7 @@ void SectorZ_80199900(Actor* actor, s32 arg1) {
void SectorZ_80199B18(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale) {
Effect_Initialize(effect);
effect->obj.status = OBJ_INIT;
effect->obj.id = OBJ_EFFECT_339;
effect->obj.id = OBJ_EFFECT_FIRE_SMOKE;
effect->obj.pos.x = xPos;
effect->obj.pos.y = yPos;
@@ -1240,7 +1240,7 @@ void SectorZ_LevelComplete(Player* player) {
player->csState = 10;
player->csTimer = 1000;
Audio_StopPlayerNoise(0U);
Audio_StopPlayerNoise(0);
Audio_KillSfxBySource(player->sfxSource);
Play_ClearObjectData();
+1
View File
@@ -6265,6 +6265,7 @@ void Macbeth_LevelComplete2(Player* player) {
Math_SmoothStepToF(&gCsCamEyeX, player->pos.x - 2000.0f, 0.1f, D_ctx_80177A48[8], 0.0f);
gCsCamEyeZ -= 1.0f;
}
//! @BUG: The following condition is always true:
if ((gCsFrameCount >= 2120) || (gCsFrameCount < 2175)) {
Math_SmoothStepToF(&gCsCamAtY, player->pos.y + 70.0f, 0.1f, 8.0f, 0.0f);
}
+1 -1
View File
@@ -243,7 +243,7 @@ void Fault_ThreadEntry(void* arg0) {
func_8000762C(300, 10, "-");
gControllerPlugged[0] = 1;
#if MODS_AUTO_DEBUGGER == 0 // Turn this off for instant crash debugger (no button combination needed)
#if MODS_AUTO_DEBUGGER == 0 // Instant crash debugger (no button combination needed)
while (var_s5 == 0) {
osSendMesg(&gSerialThreadMesgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_NOBLOCK);
MQ_WAIT_FOR_MESG(&gControllerMesgQueue, NULL);