Match z_effect.c (#176)

This commit is contained in:
engineer124 2021-06-10 22:13:43 +10:00 committed by GitHub
parent aae3c6f895
commit e9eb4d4e0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 239 additions and 234 deletions

View File

@ -547,16 +547,16 @@ s32 EffectBlure_Update(EffectBlure* params);
// void func_800AA498(void); // void func_800AA498(void);
// void func_800AA700(void); // void func_800AA700(void);
// void func_800AABE0(void); // void func_800AABE0(void);
void EffectBlure_Draw(EffectBlure* params, GraphicsContext* gCtxt); void EffectBlure_Draw(EffectBlure* params, GraphicsContext* gfxCtx);
void EffectShieldParticle_Init(EffShieldParticleParams* params, EffShieldParticleInit* init); void EffectShieldParticle_Init(EffShieldParticleParams* params, EffShieldParticleInit* init);
void EffectShieldParticle_Destroy(EffShieldParticleParams* params); void EffectShieldParticle_Destroy(EffShieldParticleParams* params);
s32 EffectShieldParticle_Update(EffShieldParticleParams* params); s32 EffectShieldParticle_Update(EffShieldParticleParams* params);
void EffectShieldParticle_CalculateColors(EffShieldParticleParams* params, Color_RGBA8* primColor, Color_RGBA8* envColor); void EffectShieldParticle_CalculateColors(EffShieldParticleParams* params, Color_RGBA8* primColor, Color_RGBA8* envColor);
void EffectShieldParticle_Draw(EffShieldParticleParams* params, GraphicsContext* gCtxt); void EffectShieldParticle_Draw(EffShieldParticleParams* params, GraphicsContext* gfxCtx);
void EffectSpark_Init(EffSparkParams* params, EffSparkParams* init); void EffectSpark_Init(EffSparkParams* params, EffSparkParams* init);
void EffectSpark_Destroy(EffSparkParams* params); void EffectSpark_Destroy(EffSparkParams* params);
s32 EffectSpark_Update(EffSparkParams* params); s32 EffectSpark_Update(EffSparkParams* params);
void EffectSpark_Draw(EffSparkParams* params, GraphicsContext* gCtxt); void EffectSpark_Draw(EffSparkParams* params, GraphicsContext* gfxCtx);
// void func_800AE2A0(void); // void func_800AE2A0(void);
void func_800AE434(GlobalContext* globalCtx, Color_RGBA8* color, s16 sParm3, s16 sParm4); void func_800AE434(GlobalContext* globalCtx, Color_RGBA8* color, s16 sParm3, s16 sParm4);
void func_800AE5A0(GlobalContext* globalCtx); void func_800AE5A0(GlobalContext* globalCtx);
@ -570,13 +570,13 @@ void EffectTireMark_Init(EffTireMarkParams* params, EffTireMarkInit* init);
void EffectTireMark_Destroy(EffTireMarkParams* params); void EffectTireMark_Destroy(EffTireMarkParams* params);
s32 EffectTireMark_Update(EffTireMarkParams* params); s32 EffectTireMark_Update(EffTireMarkParams* params);
void EffectTireMark_InitVertices(F3DVertexColor* vertices, EffTireMarkParticle* particle, s32 index, s32 alpha); void EffectTireMark_InitVertices(F3DVertexColor* vertices, EffTireMarkParticle* particle, s32 index, s32 alpha);
void EffectTireMark_Draw(EffTireMarkParams* params, GraphicsContext* gCtxt); void EffectTireMark_Draw(EffTireMarkParams* params, GraphicsContext* gfxCtx);
GlobalContext* Effect_GetContext(void); GlobalContext* Effect_GetContext(void);
void* Effect_GetParams(s32 index); void* Effect_GetParams(s32 index);
void Effect_InitCommon(EffCommon* common); void Effect_InitCommon(EffCommon* common);
void Effect_Init(GlobalContext* globalCtx); void Effect_Init(GlobalContext* globalCtx);
void Effect_Add(GlobalContext* globalCtx, s32* index, s32 type, u8 param_4, u8 param_5, void* initParams); void Effect_Add(GlobalContext* globalCtx, s32* index, s32 type, u8 param_4, u8 param_5, void* initParams);
void Effect_DrawAll(GraphicsContext* gCtxt); void Effect_DrawAll(GraphicsContext* gfxCtx);
void Effect_UpdateAll(GlobalContext* globalCtx); void Effect_UpdateAll(GlobalContext* globalCtx);
void Effect_Destroy(GlobalContext* globalCtx, s32 index); void Effect_Destroy(GlobalContext* globalCtx, s32 index);
void Effect_DestroyAll(GlobalContext* globalCtx); void Effect_DestroyAll(GlobalContext* globalCtx);
@ -785,7 +785,7 @@ void func_800B75A0(CollisionPoly* param_1, Vec3f* param_2, s16* param_3);
// UNK_TYPE4 func_800B7678(GlobalContext* globalCtx, Actor* param_2, s32 param_3, u32 param_4); // UNK_TYPE4 func_800B7678(GlobalContext* globalCtx, Actor* param_2, s32 param_3, u32 param_4);
void func_800B78B8(GlobalContext* globalCtx, Actor* actor, f32 uParm3, f32 uParm4, f32 param_5, u32 param_6); void func_800B78B8(GlobalContext* globalCtx, Actor* actor, f32 uParm3, f32 uParm4, f32 param_5, u32 param_6);
// void func_800B7E04(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6); // void func_800B7E04(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
s32 func_800B7FE0(f32* param_1, f32* param_2, f32* param_3, GraphicsContext* gCtxt); s32 func_800B7FE0(f32* param_1, f32* param_2, f32* param_3, GraphicsContext* gfxCtx);
// void func_800B8018(void); // void func_800B8018(void);
void func_800B8050(Actor* actor, GlobalContext* globalCtx, s32 iParm3); void func_800B8050(Actor* actor, GlobalContext* globalCtx, s32 iParm3);
void func_800B8118(Actor* actor, GlobalContext* globalCtx, s32 iParm3); void func_800B8118(Actor* actor, GlobalContext* globalCtx, s32 iParm3);
@ -1553,7 +1553,7 @@ void DebugDisplay_DrawObjects(GlobalContext* globalCtx);
// void func_800E9CFC(void); // void func_800E9CFC(void);
// void func_800E9DBC(void); // void func_800E9DBC(void);
// void func_800E9E94(void); // void func_800E9E94(void);
void func_800E9F78(GraphicsContext* gCtxt); void func_800E9F78(GraphicsContext* gfxCtx);
void Cutscene_Init(GlobalContext* globalCtx, CutsceneContext* csCtx); void Cutscene_Init(GlobalContext* globalCtx, CutsceneContext* csCtx);
void func_800EA0D4(GlobalContext* globalCtx, CutsceneContext* csCtx); void func_800EA0D4(GlobalContext* globalCtx, CutsceneContext* csCtx);
void func_800EA0EC(GlobalContext* globalCtx, CutsceneContext* csCtx); void func_800EA0EC(GlobalContext* globalCtx, CutsceneContext* csCtx);
@ -2339,49 +2339,49 @@ void Gfx_CallSetupDLAtPtr(Gfx** gfxp, u32 i);
Gfx* func_8012BFC4(Gfx* gfx); Gfx* func_8012BFC4(Gfx* gfx);
Gfx* func_8012BFEC(Gfx* gfx); Gfx* func_8012BFEC(Gfx* gfx);
Gfx* func_8012C014(Gfx* gfx); Gfx* func_8012C014(Gfx* gfx);
void func_8012C058(GraphicsContext* gCtxt); void func_8012C058(GraphicsContext* gfxCtx);
void func_8012C080(GraphicsContext* gCtxt); void func_8012C080(GraphicsContext* gfxCtx);
void func_8012C0A8(GraphicsContext* gCtxt); void func_8012C0A8(GraphicsContext* gfxCtx);
void func_8012C0D0(GraphicsContext* gCtxt); void func_8012C0D0(GraphicsContext* gfxCtx);
void func_8012C0F8(GraphicsContext* gCtxt); void func_8012C0F8(GraphicsContext* gfxCtx);
void func_8012C120(GraphicsContext* gCtxt); void func_8012C120(GraphicsContext* gfxCtx);
void func_8012C148(GraphicsContext* gCtxt); void func_8012C148(GraphicsContext* gfxCtx);
void func_8012C170(GraphicsContext* gCtxt); void func_8012C170(GraphicsContext* gfxCtx);
Gfx* func_8012C198(Gfx* gfx); Gfx* func_8012C198(Gfx* gfx);
void func_8012C1C0(GraphicsContext* gCtxt); void func_8012C1C0(GraphicsContext* gfxCtx);
Gfx* func_8012C1EC(Gfx* gfx); Gfx* func_8012C1EC(Gfx* gfx);
void func_8012C214(GraphicsContext* gCtxt); void func_8012C214(GraphicsContext* gfxCtx);
void func_8012C240(GraphicsContext* gCtxt); void func_8012C240(GraphicsContext* gfxCtx);
void func_8012C268(GlobalContext* globalCtx); void func_8012C268(GlobalContext* globalCtx);
void func_8012C28C(GraphicsContext* gCtxt); void func_8012C28C(GraphicsContext* gfxCtx);
Gfx* func_8012C2B4(Gfx* gfx); Gfx* func_8012C2B4(Gfx* gfx);
void func_8012C2DC(GraphicsContext* gCtxt); void func_8012C2DC(GraphicsContext* gfxCtx);
Gfx* func_8012C304(Gfx* gfx); Gfx* func_8012C304(Gfx* gfx);
void func_8012C32C(GraphicsContext* gCtxt); void func_8012C32C(GraphicsContext* gfxCtx);
void func_8012C354(GraphicsContext* gCtxt); void func_8012C354(GraphicsContext* gfxCtx);
void func_8012C37C(GraphicsContext* gCtxt); void func_8012C37C(GraphicsContext* gfxCtx);
Gfx* func_8012C3A4(Gfx* gfx); Gfx* func_8012C3A4(Gfx* gfx);
Gfx* func_8012C3CC(Gfx* gfx); Gfx* func_8012C3CC(Gfx* gfx);
void func_8012C3F4(GraphicsContext* gCtxt); void func_8012C3F4(GraphicsContext* gfxCtx);
void func_8012C420(GraphicsContext* gCtxt); void func_8012C420(GraphicsContext* gfxCtx);
void func_8012C448(GraphicsContext* gCtxt); void func_8012C448(GraphicsContext* gfxCtx);
void func_8012C470(GraphicsContext* gCtxt); void func_8012C470(GraphicsContext* gfxCtx);
Gfx* func_8012C498(Gfx* gfx); Gfx* func_8012C498(Gfx* gfx);
void func_8012C4C0(GraphicsContext* gCtxt); void func_8012C4C0(GraphicsContext* gfxCtx);
void func_8012C4E8(GraphicsContext* gCtxt); void func_8012C4E8(GraphicsContext* gfxCtx);
void func_8012C510(GraphicsContext* gCtxt); void func_8012C510(GraphicsContext* gfxCtx);
void func_8012C538(GraphicsContext* gCtxt); void func_8012C538(GraphicsContext* gfxCtx);
void func_8012C560(GraphicsContext* gCtxt); void func_8012C560(GraphicsContext* gfxCtx);
void func_8012C588(GraphicsContext* gCtxt); void func_8012C588(GraphicsContext* gfxCtx);
void func_8012C5B0(GraphicsContext* gCtxt); void func_8012C5B0(GraphicsContext* gfxCtx);
void func_8012C5D8(GraphicsContext* gCtxt); void func_8012C5D8(GraphicsContext* gfxCtx);
Gfx* func_8012C600(Gfx* gfx); Gfx* func_8012C600(Gfx* gfx);
void func_8012C628(GraphicsContext* gCtxt); void func_8012C628(GraphicsContext* gfxCtx);
void func_8012C654(GraphicsContext* gCtxt); void func_8012C654(GraphicsContext* gfxCtx);
void func_8012C680(Gfx** gfxp); void func_8012C680(Gfx** gfxp);
void func_8012C6AC(GraphicsContext* gCtxt); void func_8012C6AC(GraphicsContext* gfxCtx);
void func_8012C6D4(GraphicsContext* gCtxt); void func_8012C6D4(GraphicsContext* gfxCtx);
void func_8012C6FC(GraphicsContext* gCtxt); void func_8012C6FC(GraphicsContext* gfxCtx);
Gfx* func_8012C724(Gfx* gfx); Gfx* func_8012C724(Gfx* gfx);
Gfx* func_8012C74C(Gfx* gfx); Gfx* func_8012C74C(Gfx* gfx);
Gfx* func_8012C774(Gfx* gfx); Gfx* func_8012C774(Gfx* gfx);
@ -2389,16 +2389,16 @@ Gfx* func_8012C7B8(Gfx* gfx);
Gfx* func_8012C7FC(Gfx* gfx); Gfx* func_8012C7FC(Gfx* gfx);
Gfx* func_8012C840(Gfx* gfx); Gfx* func_8012C840(Gfx* gfx);
Gfx* func_8012C868(Gfx* gfx); Gfx* func_8012C868(Gfx* gfx);
void func_8012C8AC(GraphicsContext* gCtxt); void func_8012C8AC(GraphicsContext* gfxCtx);
void func_8012C8D4(GraphicsContext* gCtxt); void func_8012C8D4(GraphicsContext* gfxCtx);
void func_8012C8FC(GraphicsContext* gCtxt); void func_8012C8FC(GraphicsContext* gfxCtx);
void func_8012C924(GraphicsContext* gCtxt); void func_8012C924(GraphicsContext* gfxCtx);
void func_8012C94C(GraphicsContext* gCtxt); void func_8012C94C(GraphicsContext* gfxCtx);
void func_8012C974(GraphicsContext* gCtxt); void func_8012C974(GraphicsContext* gfxCtx);
void func_8012C9BC(GraphicsContext* gCtxt); void func_8012C9BC(GraphicsContext* gfxCtx);
void func_8012C9E4(GraphicsContext* gCtxt); void func_8012C9E4(GraphicsContext* gfxCtx);
void func_8012CA0C(Gfx** gfxp); void func_8012CA0C(Gfx** gfxp);
void func_8012CA38(GraphicsContext* gCtxt); void func_8012CA38(GraphicsContext* gfxCtx);
Gfx* Gfx_BranchTexScroll(Gfx** gfxp, u32 x, u32 y, s32 width, s32 height); Gfx* Gfx_BranchTexScroll(Gfx** gfxp, u32 x, u32 y, s32 width, s32 height);
void func_8012CB04(Gfx** gfxp, u32 x, u32 y); void func_8012CB04(Gfx** gfxp, u32 x, u32 y);
Gfx* func_8012CB28(GraphicsContext* gfxCtx, u32 x, u32 y); Gfx* func_8012CB28(GraphicsContext* gfxCtx, u32 x, u32 y);
@ -2407,8 +2407,8 @@ Gfx* Gfx_TwoTexScroll(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 wi
Gfx* Gfx_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2, s32 r, s32 g, s32 b, s32 a); Gfx* Gfx_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2, s32 r, s32 g, s32 b, s32 a);
Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a); Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a);
Gfx* Gfx_PrimColor(GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s32 a); Gfx* Gfx_PrimColor(GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s32 a);
void func_8012CF0C(GraphicsContext* gCtxt, s32 iParm2, s32 iParm3, u8 r, u8 g, u8 b); void func_8012CF0C(GraphicsContext* gfxCtx, s32 iParm2, s32 iParm3, u8 r, u8 g, u8 b);
void func_8012D374(GraphicsContext* gCtxt, u8 r, u8 g, u8 b); void func_8012D374(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b);
void func_8012D40C(f32* param_1, f32* param_2, s16* param_3); void func_8012D40C(f32* param_1, f32* param_2, s16* param_3);
void Room_nop8012D510(GlobalContext* globalCtx, Room* room, UNK_PTR param_3, UNK_TYPE1 param_4); void Room_nop8012D510(GlobalContext* globalCtx, Room* room, UNK_PTR param_3, UNK_TYPE1 param_4);
void Room_DrawType3Mesh(GlobalContext* globalCtx, Room* room, u32 flags); void Room_DrawType3Mesh(GlobalContext* globalCtx, Room* room, u32 flags);
@ -2738,7 +2738,7 @@ void func_8013EDD0(void);
// void func_8013EE38(void); // void func_8013EE38(void);
// void func_8013EE48(void); // void func_8013EE48(void);
void View_ViewportToVp(Vp* dest, Viewport* src); void View_ViewportToVp(Vp* dest, Viewport* src);
void View_Init(View* view, GraphicsContext* gCtxt); void View_Init(View* view, GraphicsContext* gfxCtx);
void View_SetViewOrientation(View* view, Vec3f* eye, Vec3f* focalPoint, Vec3f* upDir); void View_SetViewOrientation(View* view, Vec3f* eye, Vec3f* focalPoint, Vec3f* upDir);
void func_8013F050(View* view, Vec3f* eye, Vec3f* focalPoint, Vec3f* upDir); void func_8013F050(View* view, Vec3f* eye, Vec3f* focalPoint, Vec3f* upDir);
void View_SetScale(View* view, f32 scale); void View_SetScale(View* view, f32 scale);
@ -3139,15 +3139,15 @@ void Game_UpdateFramerateVariables(s32 divisor);
void Game_SetFramerateDivisor(GameState* gameState, s32 divisor); void Game_SetFramerateDivisor(GameState* gameState, s32 divisor);
void GameState_SetFBFilter(Gfx** gfx, u32 arg1); void GameState_SetFBFilter(Gfx** gfx, u32 arg1);
void Game_Nop80173534(GameState* ctxt); void Game_Nop80173534(GameState* ctxt);
void GameState_Draw(GameState* ctxt, GraphicsContext* gCtxt); void GameState_Draw(GameState* ctxt, GraphicsContext* gfxCtx);
void Game_ResetSegments(GraphicsContext* gCtxt); void Game_ResetSegments(GraphicsContext* gfxCtx);
void func_801736DC(GraphicsContext* gCtxt); void func_801736DC(GraphicsContext* gfxCtx);
void Game_UpdateInput(GameState* ctxt); void Game_UpdateInput(GameState* ctxt);
void Game_Update(GameState* ctxt); void Game_Update(GameState* ctxt);
void Game_IncrementFrameCount(GameState* ctxt); void Game_IncrementFrameCount(GameState* ctxt);
void Game_InitHeap(GameState* ctxt, u32 size); void Game_InitHeap(GameState* ctxt, u32 size);
void Game_ResizeHeap(GameState* ctxt, u32 size); void Game_ResizeHeap(GameState* ctxt, u32 size);
void Game_StateInit(GameState* ctxt, GameStateFunc gameStateInit, GraphicsContext* gCtxt); void Game_StateInit(GameState* ctxt, GameStateFunc gameStateInit, GraphicsContext* gfxCtx);
void Game_StateFini(GameState* ctxt); void Game_StateFini(GameState* ctxt);
GameStateFunc Game_GetNextStateInit(GameState* ctxt); GameStateFunc Game_GetNextStateInit(GameState* ctxt);
u32 Game_GetNextStateSize(GameState* ctxt); u32 Game_GetNextStateSize(GameState* ctxt);
@ -3161,15 +3161,15 @@ void Gamealloc_FreeAll(GameAlloc* heap);
void Gamealloc_Init(GameAlloc* iParm1); void Gamealloc_Init(GameAlloc* iParm1);
// void Graph_FaultClient(void); // void Graph_FaultClient(void);
void Graph_DlAlloc(TwoHeadGfxArena* dl, void* memoryBlock, u32 size); void Graph_DlAlloc(TwoHeadGfxArena* dl, void* memoryBlock, u32 size);
void Graph_InitTHGA(GraphicsContext* gCtxt); void Graph_InitTHGA(GraphicsContext* gfxCtx);
GameStateOverlay* Graph_GetNextGameState(GameState* ctxt); GameStateOverlay* Graph_GetNextGameState(GameState* ctxt);
void* Graph_FaultAddrConvFunc(void* addr); void* Graph_FaultAddrConvFunc(void* addr);
void Graph_Init(GraphicsContext* gCtxt); void Graph_Init(GraphicsContext* gfxCtx);
// void Graph_Destroy(void); // void Graph_Destroy(void);
void Graph_Render(GraphicsContext* gCtxt, GameState* ctxt); void Graph_Render(GraphicsContext* gfxCtx, GameState* ctxt);
void Graph_FrameSetup(GameState* ctxt); void Graph_FrameSetup(GameState* ctxt);
void Graph_RenderFrame(GraphicsContext* gCtxt, GameState* ctxt); void Graph_RenderFrame(GraphicsContext* gfxCtx, GameState* ctxt);
void Graph_DoFrame(GraphicsContext* gCtxt, GameState* ctxt); void Graph_DoFrame(GraphicsContext* gfxCtx, GameState* ctxt);
void Graph_ThreadEntry(void* arg); void Graph_ThreadEntry(void* arg);
Gfx* Graph_GfxPlusOne(Gfx* gfx); Gfx* Graph_GfxPlusOne(Gfx* gfx);
Gfx* Graph_BranchDlist(Gfx* gfx, Gfx* dst); Gfx* Graph_BranchDlist(Gfx* gfx, Gfx* dst);
@ -3393,8 +3393,8 @@ void SysMatrix_SetStateRotationAndTranslation(f32 x, f32 y, f32 z, Vec3s* rotati
RSPMatrix* SysMatrix_ToRSPMatrix(MtxF* src, RSPMatrix* dst); RSPMatrix* SysMatrix_ToRSPMatrix(MtxF* src, RSPMatrix* dst);
RSPMatrix* SysMatrix_GetStateAsRSPMatrix(RSPMatrix* matrix); RSPMatrix* SysMatrix_GetStateAsRSPMatrix(RSPMatrix* matrix);
Mtx* Matrix_NewMtx(GraphicsContext* gfxCtx); Mtx* Matrix_NewMtx(GraphicsContext* gfxCtx);
RSPMatrix* SysMatrix_AppendStateToPolyOpaDisp(GraphicsContext* gCtxt); RSPMatrix* SysMatrix_AppendStateToPolyOpaDisp(GraphicsContext* gfxCtx);
void SysMatrix_AppendToPolyOpaDisp(MtxF* ctxt, GraphicsContext* gCtxt); void SysMatrix_AppendToPolyOpaDisp(MtxF* ctxt, GraphicsContext* gfxCtx);
void SysMatrix_MultiplyVector3fByState(Vec3f* src, Vec3f* dst); void SysMatrix_MultiplyVector3fByState(Vec3f* src, Vec3f* dst);
void SysMatrix_GetStateTranslation(Vec3f* dst); void SysMatrix_GetStateTranslation(Vec3f* dst);
void SysMatrix_GetStateTranslationAndScaledX(f32 scale, Vec3f* dst); void SysMatrix_GetStateTranslationAndScaledX(f32 scale, Vec3f* dst);

View File

@ -253,7 +253,7 @@ typedef struct {
/* 0x04 */ UNK_TYPE1 pad4[0x40]; /* 0x04 */ UNK_TYPE1 pad4[0x40];
} GlobalContext17D98; // size = 0x44 } GlobalContext17D98; // size = 0x44
typedef struct { typedef struct GraphicsContext {
/* 0x000 */ Gfx* polyOpaBuffer; /* 0x000 */ Gfx* polyOpaBuffer;
/* 0x004 */ Gfx* polyXluBuffer; /* 0x004 */ Gfx* polyXluBuffer;
/* 0x008 */ UNK_TYPE1 pad8[0x8]; /* 0x008 */ UNK_TYPE1 pad8[0x8];

View File

@ -13,12 +13,19 @@ struct EffectSs;
typedef void(*eff_destroy_func)(void* params); typedef void(*eff_destroy_func)(void* params);
typedef void(*eff_draw_func)(void* params, struct GraphicsContext* gCtxt); typedef void(*eff_draw_func)(void* params, struct GraphicsContext* gfxCtx);
typedef void(*eff_init_func)(void* params, void* init); typedef void(*eff_init_func)(void* params, void* init);
typedef s32(*eff_update_func)(void* params); typedef s32(*eff_update_func)(void* params);
#define SPARK_COUNT 3
#define BLURE_COUNT 25
#define SHIELD_PARTICLE_COUNT 3
#define TIRE_MARK_COUNT 15
#define TOTAL_EFFECT_COUNT SPARK_COUNT + BLURE_COUNT + SHIELD_PARTICLE_COUNT + TIRE_MARK_COUNT
/* G Effect Regs */ /* G Effect Regs */
#define rgTexIdx regs[0] #define rgTexIdx regs[0]
@ -210,10 +217,10 @@ typedef struct {
typedef struct { typedef struct {
/* 0x0000 */ struct GlobalContext* globalCtx; /* 0x0000 */ struct GlobalContext* globalCtx;
/* 0x0004 */ EffSpark sparks[3]; /* 0x0004 */ EffSpark sparks[SPARK_COUNT];
/* 0x0E5C */ EffBlure blures[25]; /* 0x0E5C */ EffBlure blures[BLURE_COUNT];
/* 0x388C */ EffShieldParticle shieldParticles[3]; /* 0x388C */ EffShieldParticle shieldParticles[SHIELD_PARTICLE_COUNT];
/* 0x3DF0 */ EffTireMark tireMarks[15]; /* 0x3DF0 */ EffTireMark tireMarks[TIRE_MARK_COUNT];
} EffTables; // size = 0x98E0 } EffTables; // size = 0x98E0
typedef struct { typedef struct {

View File

@ -353,7 +353,7 @@ SECTIONS
build/asm/code/z_eff_spark.o(.text) build/asm/code/z_eff_spark.o(.text)
build/asm/code/z_eff_ss_dead.o(.text) build/asm/code/z_eff_ss_dead.o(.text)
build/asm/code/z_eff_tire_mark.o(.text) build/asm/code/z_eff_tire_mark.o(.text)
build/src/code/code_0x800AF710.o(.text) build/src/code/z_effect.o(.text)
build/src/code/z_effect_soft_sprite.o(.text) build/src/code/z_effect_soft_sprite.o(.text)
build/src/code/z_effect_soft_sprite_old_init.o(.text) build/src/code/z_effect_soft_sprite_old_init.o(.text)
build/asm/code/flg_set.o(.text) build/asm/code/flg_set.o(.text)
@ -493,7 +493,7 @@ SECTIONS
build/src/code/z_en_item00.o(.data) build/src/code/z_en_item00.o(.data)
build/asm/code/code_data_z_eff_blure.o(.data) build/asm/code/code_data_z_eff_blure.o(.data)
build/asm/code/code_data_z_eff_shield_particle.o(.data) build/asm/code/code_data_z_eff_shield_particle.o(.data)
build/src/code/code_0x800AF710.o(.data) build/src/code/z_effect.o(.data)
build/asm/code/code_data_z_effect_soft_sprite.o(.data) build/asm/code/code_data_z_effect_soft_sprite.o(.data)
build/asm/code/code_data_z_effect_soft_sprite_old_init.o(.data) build/asm/code/code_data_z_effect_soft_sprite_old_init.o(.data)
build/asm/code/code_data_flg_set_table.o(.data) build/asm/code/code_data_flg_set_table.o(.data)
@ -571,7 +571,7 @@ SECTIONS
build/asm/code/code_rodata_z_eff_shield_particle.o(.rodata) build/asm/code/code_rodata_z_eff_shield_particle.o(.rodata)
build/asm/code/code_rodata_z_eff_spark.o(.rodata) build/asm/code/code_rodata_z_eff_spark.o(.rodata)
build/asm/code/code_rodata_z_eff_ss_dead.o(.rodata) build/asm/code/code_rodata_z_eff_ss_dead.o(.rodata)
build/src/code/code_0x800AF710.o(.rodata) build/src/code/z_effect.o(.rodata)
build/asm/code/code_rodata_z_effect_soft_sprite_old_init.o(.rodata) build/asm/code/code_rodata_z_effect_soft_sprite_old_init.o(.rodata)
build/asm/code/code_rodata_flg_set.o(.rodata) build/asm/code/code_rodata_flg_set.o(.rodata)
. += 0x10; . += 0x10;
@ -654,7 +654,7 @@ SECTIONS
code_bss_start = .; code_bss_start = .;
. += 0x10; . += 0x10;
. += 0x98F0; /* code_0x800AF710 */ . += 0x98F0; /* z_effect */
. += 0x90; /* z_actor */ . += 0x90; /* z_actor */
. += 0x20; /* z_actor_dlftbls */ . += 0x20; /* z_actor_dlftbls */
. += 0x2A0; /* z_bgcheck */ . += 0x2A0; /* z_bgcheck */

View File

@ -67,19 +67,19 @@ void Game_Nop80173534(GameState* ctxt) {
; ;
} }
void GameState_Draw(GameState* ctxt, GraphicsContext* gCtxt) { void GameState_Draw(GameState* ctxt, GraphicsContext* gfxCtx) {
Gfx* nextDisplayList; Gfx* nextDisplayList;
Gfx* _polyOpa; Gfx* _polyOpa;
// Unused vars impact regalloc // Unused vars impact regalloc
Gfx* temp_t2; Gfx* temp_t2;
u32 temp_v1; u32 temp_v1;
_polyOpa = gCtxt->polyOpa.p; _polyOpa = gfxCtx->polyOpa.p;
nextDisplayList = Graph_GfxPlusOne(gCtxt->polyOpa.p); nextDisplayList = Graph_GfxPlusOne(gfxCtx->polyOpa.p);
gSPDisplayList(gCtxt->overlay.p++, nextDisplayList); gSPDisplayList(gfxCtx->overlay.p++, nextDisplayList);
if (R_FB_FILTER_TYPE && R_FB_FILTER_ENV_COLOR(3) == 0) { if (R_FB_FILTER_TYPE && R_FB_FILTER_ENV_COLOR(3) == 0) {
GameState_SetFBFilter(&nextDisplayList, (u32)gCtxt->zbuffer); GameState_SetFBFilter(&nextDisplayList, (u32)gfxCtx->zbuffer);
} }
if (R_ENABLE_ARENA_DBG < 0) { if (R_ENABLE_ARENA_DBG < 0) {
@ -88,36 +88,36 @@ void GameState_Draw(GameState* ctxt, GraphicsContext* gCtxt) {
gSPEndDisplayList(nextDisplayList++); gSPEndDisplayList(nextDisplayList++);
Graph_BranchDlist(_polyOpa, nextDisplayList); Graph_BranchDlist(_polyOpa, nextDisplayList);
gCtxt->polyOpa.p = nextDisplayList; gfxCtx->polyOpa.p = nextDisplayList;
lblUnk:; // Label prevents reordering, if(1) around the above block don't seem to help unlike in OoT lblUnk:; // Label prevents reordering, if(1) around the above block don't seem to help unlike in OoT
func_800E9F78(gCtxt); func_800E9F78(gfxCtx);
if (R_ENABLE_ARENA_DBG != 0) { if (R_ENABLE_ARENA_DBG != 0) {
SpeedMeter_DrawTimeEntries(&D_801F7FF0, gCtxt); SpeedMeter_DrawTimeEntries(&D_801F7FF0, gfxCtx);
SpeedMeter_DrawAllocEntries(&D_801F7FF0, gCtxt, ctxt); SpeedMeter_DrawAllocEntries(&D_801F7FF0, gfxCtx, ctxt);
} }
} }
void Game_ResetSegments(GraphicsContext* gCtxt) { void Game_ResetSegments(GraphicsContext* gfxCtx) {
gSPSegment(gCtxt->polyOpa.p++, 0, 0); gSPSegment(gfxCtx->polyOpa.p++, 0, 0);
gSPSegment(gCtxt->polyOpa.p++, 0xF, gCtxt->framebuffer); gSPSegment(gfxCtx->polyOpa.p++, 0xF, gfxCtx->framebuffer);
gSPSegment(gCtxt->polyXlu.p++, 0, 0); gSPSegment(gfxCtx->polyXlu.p++, 0, 0);
gSPSegment(gCtxt->polyXlu.p++, 0xF, gCtxt->framebuffer); gSPSegment(gfxCtx->polyXlu.p++, 0xF, gfxCtx->framebuffer);
gSPSegment(gCtxt->overlay.p++, 0, 0); gSPSegment(gfxCtx->overlay.p++, 0, 0);
gSPSegment(gCtxt->overlay.p++, 0xF, gCtxt->framebuffer); gSPSegment(gfxCtx->overlay.p++, 0xF, gfxCtx->framebuffer);
} }
void func_801736DC(GraphicsContext* gCtxt) { void func_801736DC(GraphicsContext* gfxCtx) {
Gfx* nextDisplayList; Gfx* nextDisplayList;
Gfx* _polyOpa; Gfx* _polyOpa;
nextDisplayList = Graph_GfxPlusOne(_polyOpa = gCtxt->polyOpa.p); nextDisplayList = Graph_GfxPlusOne(_polyOpa = gfxCtx->polyOpa.p);
gSPDisplayList(gCtxt->overlay.p++, nextDisplayList); gSPDisplayList(gfxCtx->overlay.p++, nextDisplayList);
gSPEndDisplayList(nextDisplayList++); gSPEndDisplayList(nextDisplayList++);
Graph_BranchDlist(_polyOpa, nextDisplayList); Graph_BranchDlist(_polyOpa, nextDisplayList);
gCtxt->polyOpa.p = nextDisplayList; gfxCtx->polyOpa.p = nextDisplayList;
} }
void Game_UpdateInput(GameState* ctxt) { void Game_UpdateInput(GameState* ctxt) {
@ -185,16 +185,16 @@ void Game_ResizeHeap(GameState* ctxt, u32 size) {
} }
} }
void Game_StateInit(GameState* ctxt, GameStateFunc gameStateInit, GraphicsContext* gCtxt) { void Game_StateInit(GameState* ctxt, GameStateFunc gameStateInit, GraphicsContext* gfxCtx) {
ctxt->gfxCtx = gCtxt; ctxt->gfxCtx = gfxCtx;
ctxt->frames = 0U; ctxt->frames = 0U;
ctxt->main = NULL; ctxt->main = NULL;
ctxt->destroy = NULL; ctxt->destroy = NULL;
ctxt->running = 1; ctxt->running = 1;
gCtxt->unk274 = D_801FBB88; gfxCtx->unk274 = D_801FBB88;
gCtxt->viConfigFeatures = gViConfigFeatures; gfxCtx->viConfigFeatures = gViConfigFeatures;
gCtxt->viConfigXScale = gViConfigXScale; gfxCtx->viConfigXScale = gViConfigXScale;
gCtxt->viConfigYScale = gViConfigYScale; gfxCtx->viConfigYScale = gViConfigYScale;
ctxt->nextGameStateInit = NULL; ctxt->nextGameStateInit = NULL;
ctxt->nextGameStateSize = 0U; ctxt->nextGameStateSize = 0U;

View File

@ -44,11 +44,11 @@ GlobalContext* Effect_GetContext(void) {
} }
void* Effect_GetParams(s32 index) { void* Effect_GetParams(s32 index) {
if (index == 46) { if (index == TOTAL_EFFECT_COUNT) {
return NULL; return NULL;
} }
if (index < 3) { if (index < SPARK_COUNT) {
if (sEffTable.sparks[index].base.active == 1) { if (sEffTable.sparks[index].base.active == 1) {
return &sEffTable.sparks[index].params; return &sEffTable.sparks[index].params;
} else { } else {
@ -56,8 +56,8 @@ void* Effect_GetParams(s32 index) {
} }
} }
index -= 3; index -= SPARK_COUNT;
if (index < 25) { if (index < BLURE_COUNT) {
if (sEffTable.blures[index].base.active == 1) { if (sEffTable.blures[index].base.active == 1) {
return &sEffTable.blures[index].params; return &sEffTable.blures[index].params;
} else { } else {
@ -65,8 +65,8 @@ void* Effect_GetParams(s32 index) {
} }
} }
index -= 25; index -= BLURE_COUNT;
if (index < 3) { if (index < SHIELD_PARTICLE_COUNT) {
if (sEffTable.shieldParticles[index].base.active == 1) { if (sEffTable.shieldParticles[index].base.active == 1) {
return &sEffTable.shieldParticles[index].params; return &sEffTable.shieldParticles[index].params;
} else { } else {
@ -74,8 +74,8 @@ void* Effect_GetParams(s32 index) {
} }
} }
index -= 3; index -= SHIELD_PARTICLE_COUNT;
if (index < 15) { if (index < TIRE_MARK_COUNT) {
if (sEffTable.tireMarks[index].base.active == 1) { if (sEffTable.tireMarks[index].base.active == 1) {
return &sEffTable.tireMarks[index].params; return &sEffTable.tireMarks[index].params;
} else { } else {
@ -95,20 +95,20 @@ void Effect_InitCommon(EffCommon* common) {
void Effect_Init(GlobalContext* globalCtx) { void Effect_Init(GlobalContext* globalCtx) {
s32 i; s32 i;
for (i = 0; i < 3; i++) { for (i = 0; i < SPARK_COUNT; i++) {
Effect_InitCommon(&sEffTable.sparks[i].base); Effect_InitCommon(&sEffTable.sparks[i].base);
} }
for (i = 0; i < 25; i++) { for (i = 0; i < BLURE_COUNT; i++) {
Effect_InitCommon(&sEffTable.blures[i].base); Effect_InitCommon(&sEffTable.blures[i].base);
} }
//! @bug This is probably supposed to loop over shieldParticles, not blures again //! @bug This is probably supposed to loop over shieldParticles, not blures again
for (i = 0; i < 3; i++) { for (i = 0; i < SHIELD_PARTICLE_COUNT; i++) {
Effect_InitCommon(&sEffTable.blures[i].base); Effect_InitCommon(&sEffTable.blures[i].base);
} }
for (i = 0; i < 15; i++) { for (i = 0; i < TIRE_MARK_COUNT; i++) {
Effect_InitCommon(&sEffTable.tireMarks[i].base); Effect_InitCommon(&sEffTable.tireMarks[i].base);
} }
@ -122,14 +122,14 @@ void Effect_Add(GlobalContext* globalCtx, s32* index, s32 type, u8 param_4, u8 p
EffCommon* common; EffCommon* common;
params = NULL; params = NULL;
*index = 46; *index = TOTAL_EFFECT_COUNT;
common = NULL; common = NULL;
if (func_8016A01C(globalCtx) != 1) { if (func_8016A01C(globalCtx) != 1) {
slotFound = 0; slotFound = 0;
switch (type) { switch (type) {
case 0: case 0:
for (i = 0; i < 3; i++) { for (i = 0; i < SPARK_COUNT; i++) {
if (sEffTable.sparks[i].base.active == 0) { if (sEffTable.sparks[i].base.active == 0) {
slotFound = 1; slotFound = 1;
*index = i; *index = i;
@ -141,7 +141,7 @@ void Effect_Add(GlobalContext* globalCtx, s32* index, s32 type, u8 param_4, u8 p
break; break;
case 1: case 1:
case 2: case 2:
for (i = 0; i < 25; i++) { for (i = 0; i < BLURE_COUNT; i++) {
if (sEffTable.blures[i].base.active == 0) { if (sEffTable.blures[i].base.active == 0) {
slotFound = 1; slotFound = 1;
*index = i + 3; *index = i + 3;
@ -152,7 +152,7 @@ void Effect_Add(GlobalContext* globalCtx, s32* index, s32 type, u8 param_4, u8 p
} }
break; break;
case 3: case 3:
for (i = 0; i < 3; i++) { for (i = 0; i < SHIELD_PARTICLE_COUNT; i++) {
if (sEffTable.shieldParticles[i].base.active == 0) { if (sEffTable.shieldParticles[i].base.active == 0) {
slotFound = 1; slotFound = 1;
*index = i + 28; *index = i + 28;
@ -163,7 +163,7 @@ void Effect_Add(GlobalContext* globalCtx, s32* index, s32 type, u8 param_4, u8 p
} }
break; break;
case 4: case 4:
for (i = 0; i < 15; i++) { for (i = 0; i < TIRE_MARK_COUNT; i++) {
if (sEffTable.tireMarks[i].base.active == 0) { if (sEffTable.tireMarks[i].base.active == 0) {
slotFound = 1; slotFound = 1;
*index = i + 31; *index = i + 31;
@ -184,45 +184,43 @@ void Effect_Add(GlobalContext* globalCtx, s32* index, s32 type, u8 param_4, u8 p
} }
} }
#ifdef NON_MATCHING void Effect_DrawAll(GraphicsContext* gfxCtx) {
// Contents of s2 and s3 swapped
void Effect_DrawAll(GraphicsContext* gCtxt) {
s32 i; s32 i;
for (i = 0; i < 3; i++) { for (i = 0; i < SPARK_COUNT; i++) {
if (1) {} // necessary to match
if (sEffTable.sparks[i].base.active) { if (sEffTable.sparks[i].base.active) {
sEffInfoTable[0].draw(&sEffTable.sparks[i].params, gCtxt); sEffInfoTable[0].draw(&sEffTable.sparks[i].params, gfxCtx);
} }
} }
for (i = 0; i < 25; i++) { for (i = 0; i < BLURE_COUNT; i++) {
if (1) { if (gfxCtx) {} } // necessary to match
if (sEffTable.blures[i].base.active) { if (sEffTable.blures[i].base.active) {
sEffInfoTable[1].draw(&sEffTable.blures[i].params, gCtxt); sEffInfoTable[1].draw(&sEffTable.blures[i].params, gfxCtx);
} }
} }
for (i = 0; i < 3; i++) { for (i = 0; i < SHIELD_PARTICLE_COUNT; i++) {
if (1) {} // necessary to match
if (sEffTable.shieldParticles[i].base.active) { if (sEffTable.shieldParticles[i].base.active) {
sEffInfoTable[3].draw(&sEffTable.shieldParticles[i].params, gCtxt); sEffInfoTable[3].draw(&sEffTable.shieldParticles[i].params, gfxCtx);
} }
} }
for (i = 0; i < 15; i++) { if (1) {} // necessary to match
for (i = 0; i < TIRE_MARK_COUNT; i++) {
if (sEffTable.tireMarks[i].base.active) { if (sEffTable.tireMarks[i].base.active) {
sEffInfoTable[4].draw(&sEffTable.tireMarks[i].params, gCtxt); sEffInfoTable[4].draw(&sEffTable.tireMarks[i].params, gfxCtx);
} }
} }
} }
#else
#pragma GLOBAL_ASM("./asm/non_matchings/code/code_0x800AF710/Effect_DrawAll.asm")
#endif
#ifdef NON_MATCHING
// 15 is being placed in s5 instead of at
void Effect_UpdateAll(GlobalContext* globalCtx) { void Effect_UpdateAll(GlobalContext* globalCtx) {
s32 i; s32 i;
for (i = 0; i < 3; i++) { for (i = 0; i < SPARK_COUNT; i++) {
if (1) {} // necessary to match
if (sEffTable.sparks[i].base.active) { if (sEffTable.sparks[i].base.active) {
if (sEffInfoTable[0].update(&sEffTable.sparks[i].params) == 1) { if (sEffInfoTable[0].update(&sEffTable.sparks[i].params) == 1) {
Effect_Destroy(globalCtx, i); Effect_Destroy(globalCtx, i);
@ -230,7 +228,8 @@ void Effect_UpdateAll(GlobalContext* globalCtx) {
} }
} }
for (i = 0; i < 25; i++) { for (i = 0; i < BLURE_COUNT; i++) {
if (1) {} // necessary to match
if (sEffTable.blures[i].base.active) { if (sEffTable.blures[i].base.active) {
if (sEffInfoTable[1].update(&sEffTable.blures[i].params) == 1) { if (sEffInfoTable[1].update(&sEffTable.blures[i].params) == 1) {
Effect_Destroy(globalCtx, i + 3); Effect_Destroy(globalCtx, i + 3);
@ -238,7 +237,8 @@ void Effect_UpdateAll(GlobalContext* globalCtx) {
} }
} }
for (i = 0; i < 3; i++) { for (i = 0; i < SHIELD_PARTICLE_COUNT; i++) {
if (1) {} // necessary to match
if (sEffTable.shieldParticles[i].base.active) { if (sEffTable.shieldParticles[i].base.active) {
if (sEffInfoTable[3].update(&sEffTable.shieldParticles[i].params) == 1) { if (sEffInfoTable[3].update(&sEffTable.shieldParticles[i].params) == 1) {
Effect_Destroy(globalCtx, i + 28); Effect_Destroy(globalCtx, i + 28);
@ -246,7 +246,8 @@ void Effect_UpdateAll(GlobalContext* globalCtx) {
} }
} }
for (i = 0; i < 15; i++) { for (i = 0; i < TIRE_MARK_COUNT; i++) {
if (1) {} // necessary to match
if (sEffTable.tireMarks[i].base.active) { if (sEffTable.tireMarks[i].base.active) {
if (sEffInfoTable[4].update(&sEffTable.tireMarks[i].params) == 1) { if (sEffInfoTable[4].update(&sEffTable.tireMarks[i].params) == 1) {
Effect_Destroy(globalCtx, i + 31); Effect_Destroy(globalCtx, i + 31);
@ -254,37 +255,34 @@ void Effect_UpdateAll(GlobalContext* globalCtx) {
} }
} }
} }
#else
#pragma GLOBAL_ASM("./asm/non_matchings/code/code_0x800AF710/Effect_UpdateAll.asm")
#endif
void Effect_Destroy(GlobalContext* globalCtx, s32 index) { void Effect_Destroy(GlobalContext* globalCtx, s32 index) {
if (index == 46) { if (index == TOTAL_EFFECT_COUNT) {
return; return;
} }
if (index < 3) { if (index < SPARK_COUNT) {
sEffTable.sparks[index].base.active = 0; sEffTable.sparks[index].base.active = 0;
sEffInfoTable[0].destroy(&sEffTable.sparks[index].params); sEffInfoTable[0].destroy(&sEffTable.sparks[index].params);
return; return;
} }
index -= 3; index -= SPARK_COUNT;
if (index < 25) { if (index < BLURE_COUNT) {
sEffTable.blures[index].base.active = 0; sEffTable.blures[index].base.active = 0;
sEffInfoTable[1].destroy(&sEffTable.blures[index].params); sEffInfoTable[1].destroy(&sEffTable.blures[index].params);
return; return;
} }
index -= 25; index -= BLURE_COUNT;
if (index < 3) { if (index < SHIELD_PARTICLE_COUNT) {
sEffTable.shieldParticles[index].base.active = 0; sEffTable.shieldParticles[index].base.active = 0;
sEffInfoTable[3].destroy(&sEffTable.shieldParticles[index].params); sEffInfoTable[3].destroy(&sEffTable.shieldParticles[index].params);
return; return;
} }
index -= 3; index -= SHIELD_PARTICLE_COUNT;
if (index < 15) { if (index < TIRE_MARK_COUNT) {
sEffTable.tireMarks[index].base.active = 0; sEffTable.tireMarks[index].base.active = 0;
sEffInfoTable[4].destroy(&sEffTable.tireMarks[index].params); sEffInfoTable[4].destroy(&sEffTable.tireMarks[index].params);
return; return;
@ -294,22 +292,22 @@ void Effect_Destroy(GlobalContext* globalCtx, s32 index) {
void Effect_DestroyAll(GlobalContext* globalCtx) { void Effect_DestroyAll(GlobalContext* globalCtx) {
s32 i; s32 i;
for (i = 0; i < 3; i++) { for (i = 0; i < SPARK_COUNT; i++) {
sEffTable.sparks[i].base.active = 0; sEffTable.sparks[i].base.active = 0;
sEffInfoTable[0].destroy(&sEffTable.sparks[i].params); sEffInfoTable[0].destroy(&sEffTable.sparks[i].params);
} }
for (i = 0; i < 25; i++) { for (i = 0; i < BLURE_COUNT; i++) {
sEffTable.blures[i].base.active = 0; sEffTable.blures[i].base.active = 0;
sEffInfoTable[1].destroy(&sEffTable.blures[i].params); sEffInfoTable[1].destroy(&sEffTable.blures[i].params);
} }
for (i = 0; i < 3; i++) { for (i = 0; i < SHIELD_PARTICLE_COUNT; i++) {
sEffTable.shieldParticles[i].base.active = 0; sEffTable.shieldParticles[i].base.active = 0;
sEffInfoTable[3].destroy(&sEffTable.shieldParticles[i].params); sEffInfoTable[3].destroy(&sEffTable.shieldParticles[i].params);
} }
for (i = 0; i < 15; i++) { for (i = 0; i < TIRE_MARK_COUNT; i++) {
sEffTable.tireMarks[i].base.active = 0; sEffTable.tireMarks[i].base.active = 0;
sEffInfoTable[4].destroy(&sEffTable.tireMarks[i].params); sEffInfoTable[4].destroy(&sEffTable.tireMarks[i].params);
} }

View File

@ -843,36 +843,36 @@ Gfx* func_8012C014(Gfx* gfx) {
return gfx; return gfx;
} }
void func_8012C058(GraphicsContext* gCtxt) { void func_8012C058(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x3A]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x3A]);
} }
void func_8012C080(GraphicsContext* gCtxt) { void func_8012C080(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x39]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x39]);
} }
void func_8012C0A8(GraphicsContext* gCtxt) { void func_8012C0A8(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x32]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x32]);
} }
void func_8012C0D0(GraphicsContext* gCtxt) { void func_8012C0D0(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x33]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x33]);
} }
void func_8012C0F8(GraphicsContext* gCtxt) { void func_8012C0F8(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyXlu.p++, &sSetupDL[6 * 0x34]); gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x34]);
} }
void func_8012C120(GraphicsContext* gCtxt) { void func_8012C120(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x35]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x35]);
} }
void func_8012C148(GraphicsContext* gCtxt) { void func_8012C148(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x36]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x36]);
} }
void func_8012C170(GraphicsContext* gCtxt) { void func_8012C170(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyXlu.p++, &sSetupDL[6 * 0x37]); gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x37]);
} }
Gfx* func_8012C198(Gfx* gfx) { Gfx* func_8012C198(Gfx* gfx) {
@ -880,8 +880,8 @@ Gfx* func_8012C198(Gfx* gfx) {
return gfx; return gfx;
} }
void func_8012C1C0(GraphicsContext* gCtxt) { void func_8012C1C0(GraphicsContext* gfxCtx) {
gCtxt->polyOpa.p = func_8012C198(gCtxt->polyOpa.p); gfxCtx->polyOpa.p = func_8012C198(gfxCtx->polyOpa.p);
} }
Gfx* func_8012C1EC(Gfx* gfx) { Gfx* func_8012C1EC(Gfx* gfx) {
@ -889,20 +889,20 @@ Gfx* func_8012C1EC(Gfx* gfx) {
return gfx; return gfx;
} }
void func_8012C214(GraphicsContext* gCtxt) { void func_8012C214(GraphicsContext* gfxCtx) {
gCtxt->polyOpa.p = func_8012C1EC(gCtxt->polyOpa.p); gfxCtx->polyOpa.p = func_8012C1EC(gfxCtx->polyOpa.p);
} }
void func_8012C240(GraphicsContext* gCtxt) { void func_8012C240(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyXlu.p++, &sSetupDL[6 * 0x19]); gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x19]);
} }
void func_8012C268(GlobalContext* globalCtx) { void func_8012C268(GlobalContext* globalCtx) {
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
} }
void func_8012C28C(GraphicsContext* gCtxt) { void func_8012C28C(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x19]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x19]);
} }
Gfx* func_8012C2B4(Gfx* gfx) { Gfx* func_8012C2B4(Gfx* gfx) {
@ -910,8 +910,8 @@ Gfx* func_8012C2B4(Gfx* gfx) {
return gfx; return gfx;
} }
void func_8012C2DC(GraphicsContext* gCtxt) { void func_8012C2DC(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyXlu.p++, &sSetupDL[6 * 0x19]); gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x19]);
} }
Gfx* func_8012C304(Gfx* gfx) { Gfx* func_8012C304(Gfx* gfx) {
@ -919,16 +919,16 @@ Gfx* func_8012C304(Gfx* gfx) {
return gfx; return gfx;
} }
void func_8012C32C(GraphicsContext* gCtxt) { void func_8012C32C(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x1F]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x1F]);
} }
void func_8012C354(GraphicsContext* gCtxt) { void func_8012C354(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x20]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x20]);
} }
void func_8012C37C(GraphicsContext* gCtxt) { void func_8012C37C(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x21]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x21]);
} }
Gfx* func_8012C3A4(Gfx* gfx) { Gfx* func_8012C3A4(Gfx* gfx) {
@ -941,20 +941,20 @@ Gfx* func_8012C3CC(Gfx* gfx) {
return gfx; return gfx;
} }
void func_8012C3F4(GraphicsContext* gCtxt) { void func_8012C3F4(GraphicsContext* gfxCtx) {
gCtxt->polyOpa.p = func_8012C3CC(gCtxt->polyOpa.p); gfxCtx->polyOpa.p = func_8012C3CC(gfxCtx->polyOpa.p);
} }
void func_8012C420(GraphicsContext* gCtxt) { void func_8012C420(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x23]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x23]);
} }
void func_8012C448(GraphicsContext* gCtxt) { void func_8012C448(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyXlu.p++, &sSetupDL[6 * 0x2C]); gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x2C]);
} }
void func_8012C470(GraphicsContext* gCtxt) { void func_8012C470(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x24]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x24]);
} }
Gfx* func_8012C498(Gfx* gfx) { Gfx* func_8012C498(Gfx* gfx) {
@ -962,36 +962,36 @@ Gfx* func_8012C498(Gfx* gfx) {
return gfx; return gfx;
} }
void func_8012C4C0(GraphicsContext* gCtxt) { void func_8012C4C0(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x1C]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x1C]);
} }
void func_8012C4E8(GraphicsContext* gCtxt) { void func_8012C4E8(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x2B]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x2B]);
} }
void func_8012C510(GraphicsContext* gCtxt) { void func_8012C510(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x2D]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x2D]);
} }
void func_8012C538(GraphicsContext* gCtxt) { void func_8012C538(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->overlay.p++, &sSetupDL[6 * 0x2E]); gSPDisplayList(gfxCtx->overlay.p++, &sSetupDL[6 * 0x2E]);
} }
void func_8012C560(GraphicsContext* gCtxt) { void func_8012C560(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyXlu.p++, &sSetupDL[6 * 0x26]); gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x26]);
} }
void func_8012C588(GraphicsContext* gCtxt) { void func_8012C588(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyXlu.p++, &sSetupDL[6 * 0x4]); gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x4]);
} }
void func_8012C5B0(GraphicsContext* gCtxt) { void func_8012C5B0(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x25]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x25]);
} }
void func_8012C5D8(GraphicsContext* gCtxt) { void func_8012C5D8(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x2]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x2]);
} }
Gfx* func_8012C600(Gfx* gfx) { Gfx* func_8012C600(Gfx* gfx) {
@ -999,12 +999,12 @@ Gfx* func_8012C600(Gfx* gfx) {
return gfx; return gfx;
} }
void func_8012C628(GraphicsContext* gCtxt) { void func_8012C628(GraphicsContext* gfxCtx) {
gCtxt->polyOpa.p = func_8012C600(gCtxt->polyOpa.p); gfxCtx->polyOpa.p = func_8012C600(gfxCtx->polyOpa.p);
} }
void func_8012C654(GraphicsContext* gCtxt) { void func_8012C654(GraphicsContext* gfxCtx) {
gCtxt->overlay.p = func_8012C600(gCtxt->overlay.p); gfxCtx->overlay.p = func_8012C600(gfxCtx->overlay.p);
} }
void func_8012C680(Gfx** gfxp) { void func_8012C680(Gfx** gfxp) {
@ -1013,16 +1013,16 @@ void func_8012C680(Gfx** gfxp) {
*gfxp = gfx; *gfxp = gfx;
} }
void func_8012C6AC(GraphicsContext* gCtxt) { void func_8012C6AC(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x28]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x28]);
} }
void func_8012C6D4(GraphicsContext* gCtxt) { void func_8012C6D4(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyOpa.p++, &sSetupDL[6 * 0x29]); gSPDisplayList(gfxCtx->polyOpa.p++, &sSetupDL[6 * 0x29]);
} }
void func_8012C6FC(GraphicsContext* gCtxt) { void func_8012C6FC(GraphicsContext* gfxCtx) {
gSPDisplayList(gCtxt->polyXlu.p++, &sSetupDL[6 * 0x2F]); gSPDisplayList(gfxCtx->polyXlu.p++, &sSetupDL[6 * 0x2F]);
} }
Gfx* func_8012C724(Gfx* gfx) { Gfx* func_8012C724(Gfx* gfx) {
@ -1225,20 +1225,20 @@ Gfx* Gfx_PrimColor(GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s3
#ifdef NON_MATCHING #ifdef NON_MATCHING
// regalloc, some reorderings // regalloc, some reorderings
void func_8012CF0C(GraphicsContext* gCtxt, s32 iParm2, s32 iParm3, u8 r, u8 g, u8 b) { void func_8012CF0C(GraphicsContext* gfxCtx, s32 iParm2, s32 iParm3, u8 r, u8 g, u8 b) {
s32 i; s32 i;
Gfx* gfx; Gfx* gfx;
gSegments[0] = 0; gSegments[0] = 0;
gSegments[14] = (u32)graphDlEntry; gSegments[14] = (u32)graphDlEntry;
gSegments[15] = (u32)gCtxt->framebuffer; gSegments[15] = (u32)gfxCtx->framebuffer;
gfx = graphDlEntry + 0x16; gfx = graphDlEntry + 0x16;
gSPDisplayList(gfx + 0, &D_0E000140); gSPDisplayList(gfx + 0, &D_0E000140);
gSPDisplayList(gfx + 1, D_801C1CA0); gSPDisplayList(gfx + 1, D_801C1CA0);
gDPSetColorImage(gfx + 2, G_IM_FMT_RGBA, G_IM_SIZ_16b, D_801FBBCC, 0x0F000000); gDPSetColorImage(gfx + 2, G_IM_FMT_RGBA, G_IM_SIZ_16b, D_801FBBCC, 0x0F000000);
if (gCtxt->zbuffer != NULL) { if (gfxCtx->zbuffer != NULL) {
gDPSetDepthImage(gfx + 3, gCtxt->zbuffer); gDPSetDepthImage(gfx + 3, gfxCtx->zbuffer);
} else { } else {
gDPSetDepthImage(gfx + 3, 0x0F000000); gDPSetDepthImage(gfx + 3, 0x0F000000);
} }
@ -1249,16 +1249,16 @@ void func_8012CF0C(GraphicsContext* gCtxt, s32 iParm2, s32 iParm3, u8 r, u8 g, u
gSPEndDisplayList(gfx + 1); gSPEndDisplayList(gfx + 1);
gfx = graphDlEntry + 0x9; gfx = graphDlEntry + 0x9;
if (gCtxt->zbuffer == NULL) { if (gfxCtx->zbuffer == NULL) {
gSPEndDisplayList(gfx + 0); gSPEndDisplayList(gfx + 0);
} else { } else {
gDPSetColorImage(gfx + 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, D_801FBBCC, gCtxt->zbuffer); gDPSetColorImage(gfx + 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, D_801FBBCC, gfxCtx->zbuffer);
gDPPipeSync(gfx + 1); gDPPipeSync(gfx + 1);
gDPSetCycleType(gfx + 2, G_CYC_FILL); gDPSetCycleType(gfx + 2, G_CYC_FILL);
gDPSetRenderMode(gfx + 3, G_RM_NOOP, G_RM_NOOP2); gDPSetRenderMode(gfx + 3, G_RM_NOOP, G_RM_NOOP2);
gDPSetFillColor(gfx + 4, (GPACK_RGBA5551(0xFF, 0xFF, 0xF0, 0) << 16) | GPACK_RGBA5551(0xFF, 0xFF, 0xF0, 0)); gDPSetFillColor(gfx + 4, (GPACK_RGBA5551(0xFF, 0xFF, 0xF0, 0) << 16) | GPACK_RGBA5551(0xFF, 0xFF, 0xF0, 0));
gSPDisplayList(gfx + 5, &D_0E0002C8); gSPDisplayList(gfx + 5, &D_0E0002C8);
gDPSetColorImage(gfx + 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, D_801FBBCC, gCtxt->zbuffer); gDPSetColorImage(gfx + 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, D_801FBBCC, gfxCtx->zbuffer);
gSPEndDisplayList(gfx + 7); gSPEndDisplayList(gfx + 7);
} }
@ -1289,27 +1289,27 @@ void func_8012CF0C(GraphicsContext* gCtxt, s32 iParm2, s32 iParm3, u8 r, u8 g, u
} }
gSPEndDisplayList(gfx + i); gSPEndDisplayList(gfx + i);
gSPDisplayList(gCtxt->polyOpa.p++, graphDlEntry + 0x16); gSPDisplayList(gfxCtx->polyOpa.p++, graphDlEntry + 0x16);
gSPDisplayList(gCtxt->polyXlu.p++, graphDlEntry + 0x16); gSPDisplayList(gfxCtx->polyXlu.p++, graphDlEntry + 0x16);
gSPDisplayList(gCtxt->overlay.p++, graphDlEntry + 0x16); gSPDisplayList(gfxCtx->overlay.p++, graphDlEntry + 0x16);
gSPDisplayList(gCtxt->unk1B8.p++, graphDlEntry + 0x16); gSPDisplayList(gfxCtx->unk1B8.p++, graphDlEntry + 0x16);
if (iParm3) { if (iParm3) {
gSPDisplayList(gCtxt->polyOpa.p++, &D_0E000048); gSPDisplayList(gfxCtx->polyOpa.p++, &D_0E000048);
} }
if (iParm2) { if (iParm2) {
gSPDisplayList(gCtxt->polyOpa.p++, &D_0E000088); gSPDisplayList(gfxCtx->polyOpa.p++, &D_0E000088);
} }
} }
#else #else
#pragma GLOBAL_ASM("./asm/non_matchings/code/z_rcp/func_8012CF0C.asm") #pragma GLOBAL_ASM("./asm/non_matchings/code/z_rcp/func_8012CF0C.asm")
#endif #endif
void func_8012D374(GraphicsContext* gCtxt, u8 r, u8 g, u8 b) { void func_8012D374(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b) {
if ((R_PAUSE_MENU_MODE < 2) && (D_801F6D10 < 2)) { if ((R_PAUSE_MENU_MODE < 2) && (D_801F6D10 < 2)) {
func_8012CF0C(gCtxt, 1, 1, r, g, b); func_8012CF0C(gfxCtx, 1, 1, r, g, b);
} else { } else {
func_8012CF0C(gCtxt, 0, 0, r, g, b); func_8012CF0C(gfxCtx, 0, 0, r, g, b);
} }
} }