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
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 1292 additions and 793 deletions

View File

@ -425,7 +425,7 @@ extract:
assets:
@echo "Extracting assets from ROM..."
@$(TORCH) code $(BASEROM_UNCOMPRESSED) -v
@$(TORCH) code $(BASEROM_UNCOMPRESSED)
@$(TORCH) header $(BASEROM_UNCOMPRESSED)
@$(TORCH) modding export $(BASEROM_UNCOMPRESSED)

View File

@ -20,15 +20,16 @@ D_KA_6000000:
D_KA_6001260:
{ type: TEXTURE, format: IA8, width: 8, height: 8, offset: 0x6001260, ctype: u8, symbol: D_KA_6001260 }
D_KA_60012A0:
{ type: GFX, offset: 0x60012A0, symbol: D_KA_60012A0 }
aDestroyedHatch1DL:
{ type: GFX, offset: 0x60012A0, symbol: aDestroyedHatch1DL }
D_KA_6001530:
{ type: GFX, offset: 0x6001530, symbol: D_KA_6001530 }
aKaEnemy1DL:
{ type: GFX, offset: 0x6001530, symbol: aKaEnemy1DL }
D_KA_6001968:
{ type: TEXTURE, format: RGBA16, width: 32, height: 32, offset: 0x6001968, ctype: u16, symbol: D_KA_6001968 }
# Mothership model
D_KA_6002170:
{ type: GFX, offset: 0x6002170, symbol: D_KA_6002170 }
@ -56,8 +57,8 @@ D_KA_60062F8:
D_KA_6006AF8:
{ type: TEXTURE, format: RGBA16, width: 32, height: 32, offset: 0x6006AF8, ctype: u16, symbol: D_KA_6006AF8 }
D_KA_6007300:
{ type: GFX, offset: 0x6007300, symbol: D_KA_6007300 }
aDestroyedMothershipDL:
{ type: GFX, offset: 0x6007300, symbol: aDestroyedMothershipDL }
D_KA_6009250:
{ type: GFX, offset: 0x6009250, symbol: D_KA_6009250 }
@ -71,8 +72,8 @@ D_KA_6009CB0:
D_KA_600ABD0:
{ type: TEXTURE, format: RGBA16, width: 44, height: 44, offset: 0x600ABD0, ctype: u16, symbol: D_KA_600ABD0 }
D_KA_600BAF0:
{ type: GFX, offset: 0x600BAF0, symbol: D_KA_600BAF0 }
aKaFLBaseDL:
{ type: GFX, offset: 0x600BAF0, symbol: aKaFLBaseDL }
D_KA_600BDB0:
{ type: TEXTURE, format: RGBA16, width: 16, height: 16, offset: 0x600BDB0, ctype: u16, symbol: D_KA_600BDB0 }
@ -80,8 +81,8 @@ D_KA_600BDB0:
D_KA_600C2D8:
{ type: TEXTURE, format: RGBA16, width: 16, height: 16, offset: 0x600C2D8, ctype: u16, symbol: D_KA_600C2D8 }
D_KA_600C4E0:
{ type: GFX, offset: 0x600C4E0, symbol: D_KA_600C4E0 }
aKaFLBaseDestroyedDL:
{ type: GFX, offset: 0x600C4E0, symbol: aKaFLBaseDestroyedDL }
D_KA_600C760:
{ type: TEXTURE, format: RGBA16, width: 16, height: 16, offset: 0x600C760, ctype: u16, symbol: D_KA_600C760 }
@ -89,23 +90,24 @@ D_KA_600C760:
D_KA_600C960:
{ type: TEXTURE, format: RGBA16, width: 16, height: 16, offset: 0x600C960, ctype: u16, symbol: D_KA_600C960 }
# Mothership Core
D_KA_600CB60:
{ type: GFX, offset: 0x600CB60, symbol: D_KA_600CB60 }
D_KA_600BFB0:
{ type: GFX, offset: 0x600BFB0, symbol: D_KA_600BFB0 }
D_KA_600CDC0:
{ type: GFX, offset: 0x600CDC0, symbol: D_KA_600CDC0 }
aDestroyedHatch2DL:
{ type: GFX, offset: 0x600CDC0, symbol: aDestroyedHatch2DL }
D_KA_600D090:
{ type: GFX, offset: 0x600D090, symbol: D_KA_600D090 }
aDestroyedCoreDL:
{ type: GFX, offset: 0x600D090, symbol: aDestroyedCoreDL }
D_KA_600D290:
{ type: GFX, offset: 0x600D290, symbol: D_KA_600D290 }
aDestroyedHatch4DL:
{ type: GFX, offset: 0x600D290, symbol: aDestroyedHatch4DL }
D_KA_600D4E0:
{ type: GFX, offset: 0x600D4E0, symbol: D_KA_600D4E0 }
aDestroyedHatch3DL:
{ type: GFX, offset: 0x600D4E0, symbol: aDestroyedHatch3DL }
D_KA_600D730:
{ type: GFX, offset: 0x600D730, symbol: D_KA_600D730 }
@ -119,8 +121,8 @@ D_KA_600DBC0:
D_KA_600DC48:
{ type: TEXTURE, format: IA8, width: 32, height: 32, offset: 0x600DC48, ctype: u8, symbol: D_KA_600DC48 }
D_KA_600E050:
{ type: GFX, offset: 0x600E050, symbol: D_KA_600E050 }
aKaCornerianFighterDL:
{ type: GFX, offset: 0x600E050, symbol: aKaCornerianFighterDL }
D_KA_600E7E8:
{ type: TEXTURE, format: RGBA16, width: 16, height: 16, offset: 0x600E7E8, ctype: u16, symbol: D_KA_600E7E8 }
@ -134,8 +136,8 @@ D_KA_600EBE8:
D_KA_600EDE8:
{ type: TEXTURE, format: RGBA16, width: 16, height: 16, offset: 0x600EDE8, ctype: u16, symbol: D_KA_600EDE8 }
D_KA_600EFF0:
{ type: GFX, offset: 0x600EFF0, symbol: D_KA_600EFF0 }
aKaEnemy1LowPolyDL:
{ type: GFX, offset: 0x600EFF0, symbol: aKaEnemy1LowPolyDL }
D_KA_600F1D0:
{ type: GFX, offset: 0x600F1D0, symbol: D_KA_600F1D0 }

View File

@ -14,7 +14,7 @@ void Bolse_LevelStart(Player*);
void Bolse_LevelComplete(Player*);
void Katina_LevelStart(Player*);
void Katina_LevelComplete(Player*);
void Katina_80197F10(Actor*);
void Katina_SFTeamFlyTowardsCamera(Actor*);
void SectorZ_LevelStart(Player*);
void SectorZ_LevelComplete(Player*);
void SectorZ_8019DD20(Actor*);
@ -25,9 +25,9 @@ void Fortuna_8018BA2C(void);
void Bolse_UpdateEventHandler(Actor*);
void Bolse_80191ED8(void);
void Bolse_DrawDynamicGround(void);
void Katina_Boss316_Init(Boss *);
void Katina_BossSetup(Boss *);
void Katina_UpdateEvents(Actor*);
void Katina_80198930(void);
void Katina_BossInit(void);
void SectorZ_80199900(Actor *, s32);
void SectorZ_Missile_Update(Actor*);
void SectorZ_UpdateEvents(Actor*);
@ -39,12 +39,12 @@ void Bolse_80191054(Effect*);
void Bolse_80191180(Effect*);
void Bolse_801912FC(Boss*);
void Bolse_80191AFC(Boss*);
void Katina_80192984(Effect*);
void Katina_80192A68(Effect*);
void Katina_80193718(Boss*);
void Katina_80193B1C(Boss*);
void Katina_801946C4(Boss*);
void Katina_801968F4(Boss*);
void Katina_LaserEnergyParticlesUpdate(Effect*);
void Katina_LaserEnergyParticlesDraw(Effect*);
void Katina_BaseUpdate(Boss*);
void Katina_Base_Draw(Boss*);
void Katina_BossUpdate(Boss*);
void Katina_BossDraw(Boss*);
void SectorZ_8019E234(Actor*);
void SectorZ_8019E3A8(Actor*);
void SectorZ_8019E454(Boss*);

View File

@ -652,7 +652,7 @@ typedef enum ObjectId {
/* 336 */ OBJ_ITEM_GOLD_RING,
/* 337 */ OBJ_ITEM_WING_REPAIR,
/* 338 */ OBJ_ITEM_TRAINING_RING,
/* 339 */ OBJ_EFFECT_339,
/* 339 */ OBJ_EFFECT_FIRE_SMOKE,
/* 340 */ OBJ_EFFECT_340,
/* 341 */ OBJ_EFFECT_341,
/* 342 */ OBJ_EFFECT_342,
@ -1244,8 +1244,8 @@ typedef Boss Boss312;
typedef Boss Boss313;
typedef Boss Boss314;
typedef Boss BossSO;
typedef Boss Boss316;
typedef Boss Boss317;
typedef Boss Saucerer;
typedef Boss Frontlinebase;
typedef Boss BossAQ;
typedef Boss Boss319;
typedef Boss Boss320;
@ -1267,7 +1267,7 @@ typedef Item Item1UP;
typedef Item ItemGoldRing;
typedef Item ItemWingRepair;
typedef Item ItemTrainingRing;
typedef Effect Effect339;
typedef Effect EffectFireSmoke;
typedef Effect Effect340;
typedef Effect Effect341;
typedef Effect Effect342;

View File

@ -108,7 +108,7 @@ extern u8 gKaAllyKillCount;
extern s32 gAllRangeCheckpoint;
extern s32 gAllRangeEventTimer;
extern s32 gAllRangeCountdown[3];
extern s32 gShowAllRangeCountdown;
extern bool gShowAllRangeCountdown;
extern s32 gAllRangeFrameCount;
extern f32 gAllRangeCountdownScale;

View File

@ -38,7 +38,7 @@ D_i4_8019F2BC = 0x8019F2BC; // type:f32 segment:ovl_i4 force_migration:True
D_i4_8019F2CC = 0x8019F2CC; // type:f32 segment:ovl_i4 force_migration:True
D_i4_8019F2DC = 0x8019F2DC; // type:f32 segment:ovl_i4 force_migration:True
D_i4_8019F2F0 = 0x8019F2F0; // type:s32 segment:ovl_i4 force_migration:True
D_i4_8019F340 = 0x8019F340; // type:f32 segment:ovl_i4 force_migration:True
sCsLevelCompleteActorPos = 0x8019F340; // type:f32 segment:ovl_i4 force_migration:True
sOptionCardPosY = 0x801AE570; // type:f32 size:0x18 force_migration:True segment:ovl_menu
sOptionCardTextPosX = 0x801AE588; // type:f32 size:0x18 force_migration:True segment:ovl_menu
sOptionCardTextPosY = 0x801AE5A0; // type:f32 size:0x18 force_migration:True segment:ovl_menu
@ -155,7 +155,7 @@ D_i3_801C2768 = 0x801C2768; //segment:ovl_i3 size:0x38
D_i3_801C27A0 = 0x801C27A0; //segment:ovl_i3 size:0x20
Katina_UpdateEvents = 0x80198594;//segment:ovl_i4
Katina_Boss316_Init = 0x80193CA4;//segment:ovl_i4
Katina_BossSetup = 0x80193CA4;//segment:ovl_i4
SectorZ_Missile_Update = 0x80199C60;//segment:ovl_i4
SectorZ_80199900 = 0x80199900;//segment:ovl_i4
D_i4_801A03C0 = 0x801A03C0;//segment:ovl_i4

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;

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:

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 },

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;

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]);

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)) {

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();
}

File diff suppressed because it is too large Load Diff

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();

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);
}

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);

@ -1 +1 @@
Subproject commit f24e7ec63b81bfe24e4daa795cc1e1d690e789cd
Subproject commit 45e6853e315933d57a0e7213a2d5590fb74f628a