Cleanup 3 (#778)

* lights

* D_801D88A0 -> gScarecrowSpawnSongPtr

* Misc fixes

* CHECK_FLAG_ALL

* Trailing commas in enums

* matches

* Remove todo from lights bss

* Update src/overlays/actors/ovl_En_In/z_en_in.c

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>

* thisx -> this2

* fix

* Todos

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
This commit is contained in:
Derek Hensley 2022-04-07 12:39:11 -07:00 committed by GitHub
parent c2f4572d13
commit 06412c070f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 93 additions and 100 deletions

View File

@ -1736,7 +1736,7 @@ extern UNK_PTR D_801D84F0;
// extern UNK_TYPE2 D_801D853E;
// extern UNK_TYPE1 D_801D8544;
extern UNK_PTR D_801D889C;
extern UNK_PTR D_801D88A0;
extern u8* gScarecrowSpawnSongPtr;
extern UNK_PTR D_801D88A4;
// extern UNK_TYPE1 D_801D88A8;
// extern UNK_TYPE1 D_801D88B8;
@ -3200,7 +3200,7 @@ extern s16 D_801F4E7A;
// extern UNK_TYPE1 D_801F4F66;
// extern UNK_TYPE1 D_801F4F68;
// extern UNK_TYPE1 D_801F4F6A;
extern LightsBuffer sLightsBuffer;
// extern LightsBuffer sLightsBuffer;
// extern UNK_TYPE1 D_801F5130;
// extern UNK_TYPE1 D_801F5270;
// extern UNK_TYPE1 D_801F528E;

View File

@ -1156,7 +1156,7 @@ typedef struct {
typedef enum {
/* 0 */ DISTORTION_INACTIVE,
/* 1 */ DISTORTION_ACTIVE,
/* 2 */ DISTORTION_SETUP,
/* 2 */ DISTORTION_SETUP
} DistortionState;
typedef struct {

View File

@ -32,7 +32,7 @@ typedef enum {
/* 1 */ AUDIO_MODE_HEADSET,
/* 2 */ AUDIO_MODE_UNK,
/* 3 */ AUDIO_MODE_MONO,
/* 4 */ AUDIO_MODE_SURROUND,
/* 4 */ AUDIO_MODE_SURROUND
} AudioSoundMode;
typedef enum {

View File

@ -386,7 +386,7 @@ typedef enum {
/* 0x6A */ GID_6A = 0x6A,
/* 0x6B */ GID_6B,
/* 0x70 */ GID_70 = 0x70,
/* 0x71 */ GID_71,
/* 0x71 */ GID_71
} GetItemDrawID;
// TODO: fill

View File

@ -63,7 +63,6 @@ typedef struct LightNode {
/* 0x8 */ struct LightNode* next;
} LightNode; // size = 0xC
// TODO move LightsBuffer to .c file once .bss has been split
#define LIGHTS_BUFFER_SIZE 32
typedef struct LightsBuffer {

View File

@ -81,7 +81,7 @@ typedef enum {
/* 13 */ OCARINA_INSTRUMENT_PIANO,
/* 14 */ OCARINA_INSTRUMENT_BASS_GUITAR,
/* 15 */ OCARINA_INSTRUMENT_BABY_SINGING,
/* 16 */ OCARINA_INSTRUMENT_AMPLIFIED_GUITAR, // Related to (gSaveContext.weekEventReg[41] & 0x20)
/* 16 */ OCARINA_INSTRUMENT_AMPLIFIED_GUITAR // Related to (gSaveContext.weekEventReg[41] & 0x20)
} OcarinaInstrumentId;
typedef enum {

1
spec
View File

@ -486,7 +486,6 @@ beginseg
include "build/src/code/z_lib.o"
include "build/src/code/z_lifemeter.o"
include "build/src/code/z_lights.o"
include "build/data/code/z_lights.bss.o"
include "build/src/code/z_malloc.o"
include "build/src/code/z_map_disp.o"
include "build/data/code/z_map_disp.data.o"

View File

@ -1,6 +1,8 @@
#include "global.h"
#include "objects/gameplay_keep/gameplay_keep.h"
LightsBuffer sLightsBuffer;
void Lights_PointSetInfo(LightInfo* info, s16 x, s16 y, s16 z, u8 r, u8 g, u8 b, s16 radius, s32 type) {
info->type = type;
info->params.point.x = x;
@ -128,6 +130,7 @@ void Lights_BindPoint(Lights* lights, LightParams* params, GlobalContext* global
Vec3f posF;
Vec3f adjustedPos;
u32 pad;
if (radiusF > 0) {
posF.x = params->point.x;
posF.y = params->point.y;
@ -373,7 +376,7 @@ void Lights_GlowCheck(GlobalContext* globalCtx) {
LightNode* light = globalCtx->lightCtx.listHead;
while (light != NULL) {
LightPoint* params = (LightPoint*)&light->info->params;
LightPoint* params = &light->info->params.point;
if (light->info->type == LIGHT_POINT_GLOW) {
Vec3f pos;
@ -422,7 +425,7 @@ void Lights_DrawGlow(GlobalContext* globalCtx) {
do {
if (light->info->type == LIGHT_POINT_GLOW) {
params = (LightPoint*)&light->info->params;
params = &light->info->params.point;
if (params->drawGlow) {
f32 scale = SQ((f32)params->radius) * 2e-6f;

View File

@ -979,7 +979,8 @@ void Sram_OpenSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
}
if (gSaveContext.save.unk_F65) {
Lib_MemCpy(D_801D88A0, gSaveContext.save.scarecrowsSong, sizeof(gSaveContext.save.scarecrowsSong));
Lib_MemCpy(gScarecrowSpawnSongPtr, gSaveContext.save.scarecrowsSong,
sizeof(gSaveContext.save.scarecrowsSong));
for (i = 0; i != ARRAY_COUNT(gSaveContext.save.scarecrowsSong); i++) {}
}

View File

@ -164,7 +164,7 @@ void func_80953F14(BgIngate* this, GlobalContext* globalCtx) {
player->actor.focus.rot.y = player->actor.shape.rot.y;
this->unk160 |= 0x10;
func_80953DA8(this, globalCtx);
if (this->unk164 != 0) {
if (this->unk164 != NULL) {
func_80953B40(this);
}
this->unk16E = -1;
@ -259,7 +259,7 @@ void func_809542A0(BgIngate* this, GlobalContext* globalCtx) {
void func_80954340(BgIngate* this, GlobalContext* globalCtx) {
if (!DECR(this->unk16A)) {
if (this->unk164 != 0) {
if (this->unk164 != NULL) {
func_800B7298(globalCtx, &this->dyna.actor, 6);
this->unk164 = &globalCtx->setupPathList[this->unk164->unk1];
func_80953F14(this, globalCtx);
@ -285,7 +285,7 @@ void func_809543D4(BgIngate* this, GlobalContext* globalCtx) {
func_800FE498();
func_8019F208();
} else {
if (this->unk164 != 0) {
if (this->unk164 != NULL) {
this->unk164 = &globalCtx->setupPathList[this->unk164->unk1];
}
func_80953F14(this, globalCtx);
@ -351,7 +351,7 @@ void BgIngate_Init(Actor* thisx, GlobalContext* globalCtx2) {
}
}
this->unk164 = SubS_GetAdditionalPath(globalCtx, BGINGATE_GET_FF(&this->dyna.actor), phi_a2);
if (this->unk164 != 0) {
if (this->unk164 != NULL) {
sp38 = Lib_SegmentedToVirtual(this->unk164->points);
Math_Vec3s_ToVec3f(&sp2C, &sp38[0]);
Math_Vec3s_ToVec3f(&sp20, &sp38[1]);

View File

@ -633,7 +633,7 @@ void DemoKankyo_DrawMoonAndGiant(Actor* thisx, GlobalContext* globalCtx2) {
Matrix_Scale(this->particles[i].scale * alphaScale, this->particles[i].scale * alphaScale,
this->particles[i].scale * alphaScale, MTXMODE_APPLY);
alphaScale = Math_Vec3f_DistXYZ(&worldPos, &globalCtx->view.eye) / 300.0f;
alphaScale = (alphaScale > 1.0f) ? 0.0f : (1.0f - alphaScale) > 1.0f ? 1.0f : 1.0f - alphaScale;
alphaScale = CLAMP(1.0f - alphaScale, 0.0f, 1.0f);
if (this->actor.params == DEMO_KANKYO_TYPE_GIANTS) {
this->particles[i].alpha = 255.0f * alphaScale;

View File

@ -1014,7 +1014,6 @@ void EnBigpo_RevealedFireIdle(EnBigpo* this, GlobalContext* globalCtx) {
if (this->idleTimer == 0) {
//! @bug: unreachable code
this->actor.params = ENBIGPO_UNK5;
return;
}
} else {
if (Math_StepToF(&this->actor.scale.x, 0.0f, 0.001f)) {
@ -1089,7 +1088,7 @@ void EnBigpo_UpdateColor(EnBigpo* this) {
// this might be a triple ternary but it matches and is easier to read spread out
bplus5 = this->mainColor.b + 5;
if (this->mainColor.b >= 211) {
if (this->mainColor.b > 210) {
bminus5 = this->mainColor.b - 5;
if (bminus5 < 210) {
this->mainColor.b = 210;
@ -1097,7 +1096,7 @@ void EnBigpo_UpdateColor(EnBigpo* this) {
this->mainColor.b = bminus5;
}
} else {
if (bplus5 >= 211) {
if (bplus5 > 210) {
this->mainColor.b = 210;
} else {
this->mainColor.b = bplus5;
@ -1153,7 +1152,7 @@ void EnBigpo_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
ColliderCylinder* thisCollider;
if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_2000) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_2000)) {
this->hoverHeightCycleTimer = 0;
this->savedHeight = this->actor.world.pos.y;
}
@ -1265,25 +1264,20 @@ void EnBigpo_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
if (limbByte != -1) {
if (limbByte < 3) {
Matrix_GetStateTranslation(&this->limbPos[limbByte]);
return;
}
if (limbByte == 3) {
} else if (limbByte == 3) {
Matrix_GetStateTranslationAndScaledX(3000.0f, &this->limbPos[limbByte]);
return;
}
if (limbByte == 4) {
} else if (limbByte == 4) {
Matrix_GetStateTranslationAndScaledY(-2000.0f, &this->limbPos[limbByte]);
return;
}
} else {
v2ptr = &this->limbPos[limbByte + 1];
v1ptr = D_80B65084;
Matrix_GetStateTranslationAndScaledX(-4000.0f, &this->limbPos[limbByte]);
v2ptr = &this->limbPos[limbByte + 1];
v1ptr = D_80B65084;
Matrix_GetStateTranslationAndScaledX(-4000.0f, &this->limbPos[limbByte]);
for (i = limbByte + 1; i < ARRAY_COUNT(this->limbPos); i++) {
Matrix_MultiplyVector3fByState(v1ptr, v2ptr);
v2ptr++;
v1ptr++;
for (i = limbByte + 1; i < ARRAY_COUNT(this->limbPos); i++) {
Matrix_MultiplyVector3fByState(v1ptr, v2ptr);
v2ptr++;
v1ptr++;
}
}
}
CLOSE_DISPS(globalCtx->state.gfxCtx);
@ -1443,6 +1437,7 @@ void EnBigpo_DrawCircleFlames(Actor* thisx, GlobalContext* globalCtx) {
for (i = 0; i < ARRAY_COUNT(this->fires); i++) {
EnBigpoFireEffect* firePtr = &this->fires[i];
Lights_PointNoGlowSetInfo(&this->fires[i].info, this->fires[i].pos.x, this->fires[i].pos.y,
this->fires[i].pos.z, 170, 255, 255, fireRadius);
mtfxPtr->wx = firePtr->pos.x;

View File

@ -2176,7 +2176,7 @@ void EnBigslime_SetupDamageGekko(EnBigslime* this, s32 isNotFrozen) {
}
EnBigslime_GekkoSfxOutsideBigslime(this, NA_SE_EN_FROG_DAMAGE);
if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_2000) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_2000)) {
this->actor.flags &= ~ACTOR_FLAG_2000;
}

View File

@ -514,7 +514,7 @@ s32 EnDoor_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList
*dList = dl[dlIndex];
}
}
return 0;
return false;
}
void EnDoor_Draw(Actor* thisx, GlobalContext* globalCtx) {

View File

@ -558,7 +558,7 @@ void func_808D19D4(EnFloormas* this) {
this->drawDmgEffAlpha = 0.0f;
Actor_SetScale(&this->actor, 0.004f);
this->actor.flags |= ACTOR_FLAG_10;
if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_80) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_80)) {
this->actor.draw = func_808D3754;
} else {
this->actor.draw = EnFloormas_Draw;

View File

@ -230,7 +230,7 @@ void func_80B35450(EnGg* this, GlobalContext* globalCtx) {
}
if (Actor_ProcessTalkRequest(&this->actor, &globalCtx->state)) {
if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_80) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_80)) {
func_800B90F4(globalCtx);
}
this->unk_308 = 1;
@ -239,7 +239,7 @@ void func_80B35450(EnGg* this, GlobalContext* globalCtx) {
if (gSaveContext.save.weekEventReg[19] & 0x80) {
func_800B863C(&this->actor, globalCtx);
this->actor.textId = 0xCEE;
} else if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_80) {
} else if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_80)) {
func_800B863C(&this->actor, globalCtx);
this->actor.textId = 0xCE5;
}

View File

@ -261,7 +261,7 @@ void func_8095345C(EnHs* this, GlobalContext* globalCtx) {
} else if (this->actor.home.rot.x >= 20) {
this->actionFunc = func_80953354;
this->unk_2A2 = 40;
} else if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_10000) {
} else if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_10000)) {
func_800B8500(&this->actor, globalCtx, 1000.0f, 1000.0f, -1);
this->unk_2A0 |= 1;
} else if ((this->actor.xzDistToPlayer < 120.0f) && Player_IsFacingActor(&this->actor, 0x2000, globalCtx)) {

View File

@ -295,9 +295,10 @@ void func_808F3690(EnIn* this, GlobalContext* globalCtx) {
}
void func_808F374C(EnIn* this, GlobalContext* globalCtx) {
AnimationHeader* animations[] = { &object_in_Anim_015E38, &object_in_Anim_016A60, &object_in_Anim_0177AC,
&object_in_Anim_016484, &object_in_Anim_0170DC, &object_in_Anim_018240,
&object_in_Anim_0187C8, &object_in_Anim_0198A8 };
AnimationHeader* sAnimations[] = {
&object_in_Anim_015E38, &object_in_Anim_016A60, &object_in_Anim_0177AC, &object_in_Anim_016484,
&object_in_Anim_0170DC, &object_in_Anim_018240, &object_in_Anim_0187C8, &object_in_Anim_0198A8,
};
if (this->skelAnime.animation == &object_in_Anim_016484 || this->skelAnime.animation == &object_in_Anim_0170DC) {
if (Animation_OnFrame(&this->skelAnime, 8.0f)) {
@ -312,9 +313,10 @@ void func_808F374C(EnIn* this, GlobalContext* globalCtx) {
Actor_PlaySfxAtPos(&this->actor, NA_SE_VO_IN_CRY_0);
}
if (SkelAnime_Update(&this->skelAnime)) {
this->unk486 = this->unk488 %= 8;
Animation_Change(&this->skelAnime, animations[this->unk488], 1.0f, 0.0f,
Animation_GetLastFrame(animations[this->unk488]), 2, -10.0f);
this->unk488 %= ARRAY_COUNT(sAnimations);
this->unk486 = this->unk488;
Animation_Change(&this->skelAnime, sAnimations[this->unk488], 1.0f, 0.0f,
Animation_GetLastFrame(sAnimations[this->unk488]), 2, -10.0f);
}
}
@ -1365,7 +1367,7 @@ void EnIn_Init(Actor* thisx, GlobalContext* globalCtx) {
this->unk4AC = 0;
type = ENIN_GET_TYPE(thisx);
this->unk4B0 = GET_RACE_FLAGS;
if (type == ENIN_HORSE_RIDER_BLUE_SHIRT || type == 4) {
if (type == ENIN_HORSE_RIDER_BLUE_SHIRT || type == ENIN_BLUE_SHIRT) {
this->unk4AC |= 8;
}
if (type == ENIN_HORSE_RIDER_YELLOW_SHIRT || type == ENIN_HORSE_RIDER_BLUE_SHIRT) {
@ -1385,7 +1387,7 @@ void EnIn_Init(Actor* thisx, GlobalContext* globalCtx) {
this->path = SubS_GetPathByIndex(globalCtx, ENIN_GET_PATH(&this->actor), 0x3F);
this->unk23D = 0;
if (type == ENIN_YELLOW_SHIRT || type == ENIN_BLUE_SHIRT) {
if (GET_RACE_FLAGS == RACE_FLAG_2 || (GET_RACE_FLAGS) == RACE_FLAG_3) {
if (GET_RACE_FLAGS == RACE_FLAG_2 || GET_RACE_FLAGS == RACE_FLAG_3) {
gSaveContext.save.weekEventReg[56] &= (u8)~8;
this->unk4A8 = 0;
this->unk4AC |= 2;

View File

@ -506,7 +506,7 @@ void EnMinislime_SetupMoveToBigslime(EnMinislime* this) {
}
this->frozenAlpha = 0;
if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_2000) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_2000)) {
this->actor.flags &= ~ACTOR_FLAG_2000;
}
this->actionFunc = EnMinislime_MoveToBigslime;
@ -562,7 +562,7 @@ void EnMinislime_SetupDefeatIdle(EnMinislime* this) {
}
this->frozenAlpha = 0;
if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_2000) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_2000)) {
this->actor.flags &= ~ACTOR_FLAG_2000;
}
@ -630,7 +630,7 @@ void EnMinislime_SetupMoveToGekko(EnMinislime* this) {
this->actor.velocity.y = 0.0f;
this->collider.base.acFlags &= ~AC_ON;
this->collider.base.ocFlags1 &= ~OC1_ON;
if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_2000) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_2000)) {
this->actor.flags &= ~ACTOR_FLAG_2000;
}
@ -720,7 +720,7 @@ void EnMinislime_Update(Actor* thisx, GlobalContext* globalCtx) {
} else if ((this->actor.params == MINISLIME_FORM_BIGSLIME) && (this->actionFunc != EnMinislime_MoveToBigslime)) {
EnMinislime_SetupMoveToBigslime(this);
} else {
if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_2000) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_2000)) {
this->collider.base.acFlags &= ~AC_HIT;
return;
}

View File

@ -807,42 +807,33 @@ s32 func_80A875AC(Actor* thisx, GlobalContext* globalCtx) {
}
s32 func_80A8777C(Actor* thisx, GlobalContext* globalCtx) {
s32 temp_v0;
EnTru* this = THIS;
s32 ret = 0;
temp_v0 = Message_GetState(&globalCtx->msgCtx);
s32 temp_v0 = Message_GetState(&globalCtx->msgCtx);
switch (temp_v0) {
default:
if (temp_v0 != 0x10) {
break;
}
if (0) {
case 4:
case 5:
if (!Message_ShouldAdvance(globalCtx)) {
break;
case 4:
case 5:
if (Message_ShouldAdvance(globalCtx)) {
case 16:
temp_v0 = func_80123810(globalCtx);
if ((temp_v0 == 35) || (temp_v0 == 36)) {
this->unk_34E |= 8;
if (temp_v0 == 35) {
this->unk_390 = 1;
} else {
this->unk_390 = 2;
}
this->unk_378 = func_80A87880;
this->unk_364 = 0;
ret = 1;
} else if (temp_v0 < 0) {
ret = 3;
} else if (temp_v0 != 0) {
ret = 2;
}
break;
}
temp_v0 = func_80123810(globalCtx);
if ((temp_v0 == 35) || (temp_v0 == 36)) {
((EnTru*)thisx)->unk_34E |= 8;
if (temp_v0 == 35) {
((EnTru*)thisx)->unk_390 = 1;
} else {
((EnTru*)thisx)->unk_390 = 2;
}
((EnTru*)thisx)->unk_378 = func_80A87880;
((EnTru*)thisx)->unk_364 = 0;
ret = 1;
} else if (temp_v0 < 0) {
ret = 3;
} else if (temp_v0 != 0) {
ret = 2;
}
break;
}
return ret;
@ -1127,7 +1118,7 @@ void EnTru_Init(Actor* thisx, GlobalContext* globalCtx) {
CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &sColChkInfoInit);
this->unk_37C = -1;
func_80A86924(this, 0);
this->path = SubS_GetDayDependentPath(globalCtx, this->actor.params & 0xFF, 255, &this->unk_384);
this->path = SubS_GetDayDependentPath(globalCtx, ENTRU_GET_PATH(&this->actor), 255, &this->unk_384);
if (this->path != NULL) {
this->unk_384 = 1;
}

View File

@ -8,6 +8,8 @@ struct EnTru;
typedef void (*EnTruActionFunc)(struct EnTru*, GlobalContext*);
typedef s32 (*EnTruUnkFunc)(Actor*, GlobalContext*);
#define ENTRU_GET_PATH(thisx) ((thisx)->params & 0xFF)
typedef struct {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;

View File

@ -465,7 +465,8 @@ void MirRay_SetupReflectionPolys(MirRay* this, GlobalContext* globalCtx, MirRayS
// Remove reflections that are in the same position and are sufficiently near to the same plane
void MirRay_RemoveSimilarReflections(MirRayShieldReflection* reflection) {
s32 i, j;
s32 i;
s32 j;
for (i = 0; i < 6; i++) {
for (j = i + 1; j < 6; j++) {

View File

@ -64,7 +64,7 @@ static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
void ObjChan_InitChandelier(ObjChan* this, GlobalContext* globalCtx);
void ObjChan_InitChandelier(ObjChan* this2, GlobalContext* globalCtx);
void ObjChan_InitPot(ObjChan* this, GlobalContext* globalCtx);
void ObjChan_CreateSmashParticles(ObjChan* this, GlobalContext* globalCtx);
void ObjChan_DrawPot(Actor* thisx, GlobalContext* globalCtx);
@ -150,8 +150,9 @@ void ObjChan_CalculatePotPosition(Vec3f* childPosOut, Vec3s* childRotOut, Vec3f*
childRotOut->y += childAngle;
}
void ObjChan_InitChandelier(ObjChan* this, GlobalContext* globalCtx) {
s32 j;
//! @TODO: Possibly takes actor and recasts
void ObjChan_InitChandelier(ObjChan* this2, GlobalContext* globalCtx) {
ObjChan* this = this2;
s32 i;
ObjChan* temp_v0;
Vec3f childPos;
@ -173,13 +174,11 @@ void ObjChan_InitChandelier(ObjChan* this, GlobalContext* globalCtx) {
}
for (i = 0; i < 5; i++) {
temp_v0 = (ObjChan*)&globalCtx->actorCtx; // strange cast needed for matching
ObjChan_CalculatePotPosition(&childPos, &childRot, &this->actor.world.pos, &this->actor.shape.rot,
(s32)(i * 360.0f / 5.0f * (65536.0f / 360.0f)) + this->rotation);
temp_v0 = (ObjChan*)Actor_SpawnAsChildAndCutscene((ActorContext*)temp_v0, globalCtx, ACTOR_OBJ_CHAN, childPos.x,
childPos.y, childPos.z, childRot.x, childRot.y, childRot.z,
(this->actor.params & 0xFFF) | 0x1000, this->actor.cutscene,
this->actor.unk20, &this->actor);
temp_v0 = (ObjChan*)Actor_SpawnAsChildAndCutscene(
&globalCtx->actorCtx, globalCtx, ACTOR_OBJ_CHAN, childPos.x, childPos.y, childPos.z, childRot.x, childRot.y,
childRot.z, (this->actor.params & 0xFFF) | 0x1000, this->actor.cutscene, this->actor.unk20, &this->actor);
if (temp_v0 != NULL) {
this->pots[i] = temp_v0;
temp_v0->myPotIndex = i;
@ -210,8 +209,9 @@ void ObjChan_InitChandelier(ObjChan* this, GlobalContext* globalCtx) {
this->actionFunc = ObjChan_ChandelierAction;
}
void ObjChan_ChandelierAction(ObjChan* thisx, GlobalContext* globalCtx) {
ObjChan* this = thisx;
//! @TODO: More descriptive name than Action?
void ObjChan_ChandelierAction(ObjChan* this2, GlobalContext* globalCtx) {
ObjChan* this = this2;
ObjChan* temp;
s32 i;
Vec3f sp60;

View File

@ -15376,11 +15376,11 @@
0x80BB99F0:("ObjChan_Destroy",),
0x80BB9A1C:("func_80BB9A1C",),
0x80BB9B40:("ObjChan_CalculatePotPosition",),
0x80BB9C08:("ObjChan_InitMain",),
0x80BB9F24:("ObjChan_MainAction",),
0x80BB9C08:("ObjChan_InitChandelier",),
0x80BB9F24:("ObjChan_ChandelierAction",),
0x80BBA2FC:("ObjChan_InitPot",),
0x80BBA314:("ObjChan_PotAction",),
0x80BBA488:("func_80BBA488",),
0x80BBA488:("ObjChan_CreateSmashParticles",),
0x80BBA738:("ObjChan_Update",),
0x80BBA78C:("ObjChan_Draw",),
0x80BBA894:("ObjChan_DrawPot",),