1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-30 18:55:54 +00:00

Decompile Gameplay_Keep and fix all existing decompiled objects (#595)

* First batch of files

* Add missing folders back

* Fix missing folders again

* Finish fixing existing texture files

* Gameplay_Keep XML finished

* Most actor gameplay_keep undefined syms removed

* Only ~200 gkeep symbols remain

* All gkeep symbols that ZAP supports are fixed

* Cleanup, and make gkeep names more accurate

* Starting to figure out what some unknown blobs are, merge zeldaret in

* fix a few more things

* refactor gkeep

* Change how gitkeep is handled

* gkeep xml cleanup

* Gkeep finished, now just waiting up ZAP updates

* 100 link animations finished

* 150 link animations finished

* 200 link animations finished

* 250 link animations finished

* 350 link animations finished

* 400 link animations finished

* 450 link animations finished

* 500 link animations finished

* 550 link animations finished

* All Link animations finished

cannot build yet because ZAP doesn't have LinkAnimationHeader yet

* xml changes for new zap stuff

* finish gameplay_keep

* fixing existing objects

* ready for pr besides zap padding issue

* mostly ready for pr

* format all c files

* all conflicts fixed

* make changes that roman requested

* fix thing i didn't mean to change

* some animation symbols renamed

* fixed roman's stuff

* lifemeter hardcoded pointers removed

* fix issue with incorrect data in gameplay_keep

* removed unused asm

* fixed most of fig's comments

* fix all of fig's comments

* reformat files

* Update assets/xml/textures/icon_item_static.xml

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update assets/xml/textures/icon_item_static.xml

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* fixed stuff

* fixed most of roman's comments

* remove leading zeroes

* should build now

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "f84d8337b"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "f84d8337b"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* all of gkeep symbols fixed

* compiler error fixed

* format files

* final changes

Co-authored-by: Zelllll <elijah@DESKTOP-NMP1I89.localdomain>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
Zelllll 2021-01-24 18:36:40 -06:00 committed by GitHub
commit 20c1f4e648
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
198 changed files with 4775 additions and 4232 deletions

View file

@ -41,7 +41,7 @@ void ActorShadow_Draw(Actor* actor, Lights* lights, GlobalContext* globalCtx, Gf
func_80038A28(actor->floorPoly, actor->world.pos.x, actor->floorHeight, actor->world.pos.z, &sp60);
Matrix_Put(&sp60);
if (dlist != D_04049210) {
if (dlist != gCircleShadowDL) {
Matrix_RotateY(actor->shape.rot.y * (M_PI / 32768), MTXMODE_APPLY);
}
@ -58,17 +58,17 @@ void ActorShadow_Draw(Actor* actor, Lights* lights, GlobalContext* globalCtx, Gf
}
void ActorShadow_DrawCircle(Actor* actor, Lights* lights, GlobalContext* globalCtx) {
ActorShadow_Draw(actor, lights, globalCtx, D_04049210, NULL);
ActorShadow_Draw(actor, lights, globalCtx, gCircleShadowDL, NULL);
}
void ActorShadow_DrawWhiteCircle(Actor* actor, Lights* lights, GlobalContext* globalCtx) {
static Color_RGBA8 white = { 255, 255, 255, 255 };
ActorShadow_Draw(actor, lights, globalCtx, D_04049210, &white);
ActorShadow_Draw(actor, lights, globalCtx, gCircleShadowDL, &white);
}
void ActorShadow_DrawHorse(Actor* actor, Lights* lights, GlobalContext* globalCtx) {
ActorShadow_Draw(actor, lights, globalCtx, D_04049AD0, NULL);
ActorShadow_Draw(actor, lights, globalCtx, gHorseShadowDL, NULL);
}
void ActorShadow_DrawFoot(GlobalContext* globalCtx, Light* light, MtxF* arg2, s32 arg3, f32 arg4, f32 arg5, f32 arg6) {
@ -90,7 +90,7 @@ void ActorShadow_DrawFoot(GlobalContext* globalCtx, Light* light, MtxF* arg2, s3
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 1687),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_OPA_DISP++, &D_04048180);
gSPDisplayList(POLY_OPA_DISP++, gFootShadowDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 1693);
}
@ -386,7 +386,7 @@ void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx) {
Matrix_Translate(entry->unk_0C, entry->unk_0C, 0.0f, MTXMODE_APPLY);
gSPMatrix(OVERLAY_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 2116),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(OVERLAY_DISP++, D_0404D450);
gSPDisplayList(OVERLAY_DISP++, gZTargetLockOnTriangleDL);
Matrix_Pull();
}
}
@ -413,7 +413,7 @@ void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx) {
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, naviColor->inner.r, naviColor->inner.g, naviColor->inner.b, 255);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 2153),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, &D_0400CB70);
gSPDisplayList(POLY_XLU_DISP++, &gZTargetArrowDL);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 2158);
@ -1919,7 +1919,7 @@ void func_8002FBAC(GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 5458),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, &gGameKeepMoteDL0);
gSPDisplayList(POLY_XLU_DISP++, &gEffFlash1DL);
Matrix_Pull();
phi_f6 = ~((globalCtx->gameplayFrames * 1200) & 0xFFFF);
@ -1927,7 +1927,7 @@ void func_8002FBAC(GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 5463),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, &gGameKeepMoteDL0);
gSPDisplayList(POLY_XLU_DISP++, &gEffFlash1DL);
}
lightPos.x = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.x;
@ -2245,8 +2245,8 @@ void func_80030ED8(Actor* actor) {
void func_80030FA8(GraphicsContext* gfxCtx) {
OPEN_DISPS(gfxCtx, "../z_actor.c", 6161);
gDPLoadTextureBlock(POLY_XLU_DISP++, &D_0401E370, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, G_TX_MIRROR | G_TX_CLAMP,
G_TX_MIRROR | G_TX_CLAMP, 6, 6, G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(POLY_XLU_DISP++, gUnknownCircle5Tex, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0,
G_TX_MIRROR | G_TX_CLAMP, G_TX_MIRROR | G_TX_CLAMP, 6, 6, G_TX_NOLOD, G_TX_NOLOD);
gDPSetTileSize(POLY_XLU_DISP++, G_TX_RENDERTILE, 384, 224, 892, 732);
gSPTextureRectangle(POLY_XLU_DISP++, 0, 0, 1280, 960, G_TX_RENDERTILE, 2240, 1600, 576, 597);
@ -3457,7 +3457,7 @@ void func_80033C30(Vec3f* arg0, Vec3f* arg1, u8 alpha, GlobalContext* globalCtx)
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 8149),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_OPA_DISP++, &D_04049210);
gSPDisplayList(POLY_OPA_DISP++, &gCircleShadowDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 8155);
}

View file

@ -1,4 +1,5 @@
#include "global.h"
#include "objects/gameplay_keep/gameplay_keep.h"
typedef struct {
/* 0x00 */ s16 drawType; // indicates which draw function to use when displaying the object
@ -16,12 +17,8 @@ static DebugDispObject_DrawFunc sDebugObjectDrawFuncTable[] = {
};
static DebugDispObjectInfo sDebugObjectInfoTable[] = {
{ 0, 0x040035F0 }, // Circle
{ 0, 0x040038F0 }, // Cross
{ 0, 0x040036F0 }, // Ball
{ 0, 0x040037F0 }, // Cursor
{ 1, 0x040039F0 }, // Arrow
{ 1, 0x04003C90 }, // Camera
{ 0, gDebugCircleTex }, { 0, gDebugCrossTex }, { 0, gDebugBallTex },
{ 0, gDebugCursorTex }, { 1, gDebugArrowDL }, { 1, gDebugCameraDL },
};
static Lights1 sDebugObjectLights = gdSPDefLights1(0x80, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49);
@ -86,7 +83,7 @@ void DebugDisplay_DrawSpriteI8(DebugDispObject* dispObj, u32 texture, GlobalCont
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_debug_display.c", 189),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, &D_04004298);
gSPDisplayList(POLY_XLU_DISP++, &gDebugSpriteDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_debug_display.c", 192);
}

View file

@ -1,4 +1,5 @@
#include "global.h"
#include "objects/gameplay_keep/gameplay_keep.h"
void EffectBlure_AddVertex(EffectBlure* this, Vec3f* p1, Vec3f* p2) {
EffectBlureElement* elem;
@ -755,8 +756,8 @@ void EffectBlure_SetupSimpleAlt(GraphicsContext* gfxCtx, EffectBlure* this, Vtx*
gDPSetTextureLUT(POLY_XLU_DISP++, G_TT_NONE);
gSPTexture(POLY_XLU_DISP++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gDPLoadTextureBlock(POLY_XLU_DISP++, D_04006020, G_IM_FMT_I, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_WRAP, 6, 5, G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(POLY_XLU_DISP++, gUnknownEffBlureTex, G_IM_FMT_I, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_WRAP, 6, 5, G_TX_NOLOD, G_TX_NOLOD);
gDPSetCombineLERP(POLY_XLU_DISP++, TEXEL0, PRIMITIVE, PRIM_LOD_FRAC, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE,
ENVIRONMENT, COMBINED, ENVIRONMENT, 0, 0, 0, COMBINED);

View file

@ -1,5 +1,6 @@
#include "global.h"
#include "vt.h"
#include "objects/gameplay_keep/gameplay_keep.h"
static Vtx sVertices[5] = {
VTX(-32, -32, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
@ -163,8 +164,8 @@ void EffectShieldParticle_Draw(void* thisx, GraphicsContext* gfxCtx) {
gDPPipeSync(POLY_XLU_DISP++);
gSPTexture(POLY_XLU_DISP++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gDPLoadTextureBlock(POLY_XLU_DISP++, D_04038FB0, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(POLY_XLU_DISP++, gUnknownCircle6Tex, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
if (1) {} // Necessary to match

View file

@ -1,4 +1,5 @@
#include "global.h"
#include "objects/gameplay_keep/gameplay_keep.h"
// original name: "spark"
void EffectSpark_Init(void* thisx, void* initParamsx) {
@ -166,8 +167,8 @@ void EffectSpark_Draw(void* thisx, GraphicsContext* gfxCtx) {
gDPPipeSync(POLY_XLU_DISP++);
gSPTexture(POLY_XLU_DISP++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gDPLoadTextureBlock(POLY_XLU_DISP++, D_04038FB0, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(POLY_XLU_DISP++, gUnknownCircle6Tex, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
gDPSetCombineMode(POLY_XLU_DISP++, G_CC_SHADEDECALA, G_CC_PASS2);
gDPSetRenderMode(POLY_XLU_DISP++, G_RM_PASS, G_RM_ZB_CLD_SURF2);

View file

@ -1,5 +1,6 @@
#include "global.h"
#include "vt.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -53,19 +54,25 @@ static ColliderCylinderInit sCylinderInit = {
{ 25, 60, 0, { 0, 0, 0 } },
};
extern CollisionHeader D_040394B0;
extern CollisionHeader D_0403A120;
extern CollisionHeader D_0403A480;
extern CollisionHeader D_0403A7F0;
extern CollisionHeader D_06000730;
static CollisionHeader* D_8011546C[] = {
&D_040394B0, &D_040394B0, &D_0403A120, &D_0403A480, &D_0403A7F0, &D_06000730,
&gUnknown1Col, &gUnknown1Col, &gUnknown4Col, &gUnknown5Col, &gUnknown6Col, &D_06000730,
};
static Gfx* D_80115484[] = {
0x04039C00, 0x04039C00, 0x04039C00, 0x0403A2D0, 0x0403A2D0, 0x0403A630,
0x06000210, 0x0403AB80, 0x0403A9B0, 0x0403C050, 0x0403C5B0, 0x0400D340,
gUnusedRockRectangularPrism2DL,
gUnusedRockRectangularPrism2DL,
gUnusedRockRectangularPrism2DL,
gUnusedRockRectangularPrism4DL,
gUnusedRockRectangularPrism4DL,
gUnusedRockRectangularPrism5DL,
0x06000210,
gUnusedGrassBladesDL,
gUnusedTreeStumpDL,
gSignRectangularDL,
gSignDirectionalDL,
gBoulderFragmentsDL,
};
void EnAObj_SetupAction(EnAObj* this, EnAObjActionFunc actionFunc) {

View file

@ -1,6 +1,7 @@
#include "global.h"
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -753,7 +754,7 @@ void func_8001EF30(EnItem00* this, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80115530[iconNb]));
gSPDisplayList(POLY_OPA_DISP++, &D_04042440);
gSPDisplayList(POLY_OPA_DISP++, &gRupeeDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1568);
}
@ -782,7 +783,7 @@ void func_8001F080(EnItem00* this, GlobalContext* globalCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_item00.c", 1607),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_OPA_DISP++, D_0403F070);
gSPDisplayList(POLY_OPA_DISP++, gItemDropDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1611);
}
@ -799,13 +800,13 @@ void func_8001F1F4(EnItem00* this, GlobalContext* globalCtx) {
func_8002EBCC(&this->actor, globalCtx, 0);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_item00.c", 1634),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_OPA_DISP++, &D_0403BBA0);
gSPDisplayList(POLY_OPA_DISP++, &gHeartPieceExteriorDL);
func_80093D84(globalCtx->state.gfxCtx);
func_8002ED80(&this->actor, globalCtx, 0);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_item00.c", 1644),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, &D_0403BCD8);
gSPDisplayList(POLY_XLU_DISP++, &gHeartContainerInteriorDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1647);
}
@ -822,7 +823,7 @@ void func_8001F334(EnItem00* this, GlobalContext* globalCtx) {
func_8002ED80(&this->actor, globalCtx, 0);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_item00.c", 1670),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, &D_0403B030);
gSPDisplayList(POLY_XLU_DISP++, &gHeartPieceInteriorDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1673);
}

View file

@ -1,4 +1,5 @@
#include "global.h"
#include "textures/parameter_static/parameter_static.h"
/*
* These are the colors for the hearts in the interface. The prim color is the red color of the heart
@ -256,15 +257,23 @@ s32 func_80078E84(GlobalContext* globalCtx) {
return 0;
}
u64* sHeartTextures[] = {
gHUDHeartFullTex, gHUDHeartQuarterTex, gHUDHeartQuarterTex, gHUDHeartQuarterTex,
gHUDHeartQuarterTex, gHUDHeartQuarterTex, gHUDHeartHalfTex, gHUDHeartHalfTex,
gHUDHeartHalfTex, gHUDHeartHalfTex, gHUDHeartHalfTex, gHUDHeartThreeQuarterTex,
gHUDHeartThreeQuarterTex, gHUDHeartThreeQuarterTex, gHUDHeartThreeQuarterTex, gHUDHeartThreeQuarterTex,
};
u64* sDDHeartTextures[] = {
gHUDDefenseHeartFullTex, gHUDDefenseHeartQuarterTex, gHUDDefenseHeartQuarterTex,
gHUDDefenseHeartQuarterTex, gHUDDefenseHeartQuarterTex, gHUDDefenseHeartQuarterTex,
gHUDDefenseHeartHalfTex, gHUDDefenseHeartHalfTex, gHUDDefenseHeartHalfTex,
gHUDDefenseHeartHalfTex, gHUDDefenseHeartHalfTex, gHUDDefenseHeartThreeQuarterTex,
gHUDDefenseHeartThreeQuarterTex, gHUDDefenseHeartThreeQuarterTex, gHUDDefenseHeartThreeQuarterTex,
gHUDDefenseHeartThreeQuarterTex,
};
void HealthMeter_Draw(GlobalContext* globalCtx) {
static UNK_PTR sHeartTextures[] = {
0x02000400, 0x02000100, 0x02000100, 0x02000100, 0x02000100, 0x02000100, 0x02000200, 0x02000200,
0x02000200, 0x02000200, 0x02000200, 0x02000300, 0x02000300, 0x02000300, 0x02000300, 0x02000300,
};
static UNK_PTR sDDHeartTextures[] = {
0x02000900, 0x02000600, 0x02000600, 0x02000600, 0x02000600, 0x02000600, 0x02000700, 0x02000700,
0x02000700, 0x02000700, 0x02000700, 0x02000800, 0x02000800, 0x02000800, 0x02000800, 0x02000800,
};
s32 pad[5];
UNK_PTR heartBgImg;
u32 curColorSet;

View file

@ -1,4 +1,5 @@
#include "global.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define LIGHTS_BUFFER_SIZE 32
@ -366,7 +367,7 @@ void Lights_DrawGlow(GlobalContext* globalCtx) {
POLY_XLU_DISP = func_800947AC(POLY_XLU_DISP++);
gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_NOISE);
gDPSetColorDither(POLY_XLU_DISP++, G_CD_MAGICSQ);
gSPDisplayList(POLY_XLU_DISP++, D_04015720);
gSPDisplayList(POLY_XLU_DISP++, gGlowCircleTextureLoadDL);
while (node != NULL) {
LightInfo* info;
@ -385,7 +386,7 @@ void Lights_DrawGlow(GlobalContext* globalCtx) {
Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_lights.c", 918),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_04015760);
gSPDisplayList(POLY_XLU_DISP++, gGlowCircleDL);
}
node = node->next;

View file

@ -1,5 +1,6 @@
#include "global.h"
#include "vt.h"
#include "objects/gameplay_keep/gameplay_keep.h"
MapData* gMapData;
@ -339,7 +340,7 @@ void Minimap_DrawCompassIcons(GlobalContext* globalCtx) {
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 255, 0, 255);
gSPDisplayList(OVERLAY_DISP++, D_0400C820);
gSPDisplayList(OVERLAY_DISP++, gCompassArrowDL);
tempX = sPlayerInitialPosX;
tempZ = sPlayerInitialPosZ;
@ -353,7 +354,7 @@ void Minimap_DrawCompassIcons(GlobalContext* globalCtx) {
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, 200, 0, 0, 255);
gSPDisplayList(OVERLAY_DISP++, D_0400C820);
gSPDisplayList(OVERLAY_DISP++, gCompassArrowDL);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_map_exp.c", 607);

View file

@ -1,4 +1,5 @@
#include "global.h"
#include "objects/gameplay_keep/gameplay_keep.h"
typedef struct {
/* 0x00 */ u8 flag;
@ -1365,7 +1366,7 @@ u32 func_80091738(GlobalContext* globalCtx, u8* segment, SkelAnime* skelAnime) {
gSegments[4] = VIRTUAL_TO_PHYSICAL(segment + 0x3800);
gSegments[6] = VIRTUAL_TO_PHYSICAL(segment + 0x8800);
SkelAnime_InitLink(globalCtx, skelAnime, gPlayerSkelHeaders[(void)0, gSaveContext.linkAge], &D_04003238, 9, ptr,
SkelAnime_InitLink(globalCtx, skelAnime, gPlayerSkelHeaders[(void)0, gSaveContext.linkAge], &gPlayer488Anim, 9, ptr,
ptr, PLAYER_LIMB_MAX);
return size + 0x8890;

View file

@ -96,7 +96,7 @@ void SkinMatrix_MtxFMtxFMult(MtxF* mfB, MtxF* mfA, MtxF* dest) {
rw = mfA->ww;
dest->wx = (cx * rx) + (cy * ry) + (cz * rz) + (cw * rw);
//---COL2---
//---2Col---
cx = mfB->xy;
cy = mfB->yy;
cz = mfB->zy;
@ -126,7 +126,7 @@ void SkinMatrix_MtxFMtxFMult(MtxF* mfB, MtxF* mfA, MtxF* dest) {
rw = mfA->ww;
dest->wy = (cx * rx) + (cy * ry) + (cz * rz) + (cw * rw);
//---COL3---
//---3Col---
cx = mfB->xz;
cy = mfB->yz;
cz = mfB->zz;
@ -156,7 +156,7 @@ void SkinMatrix_MtxFMtxFMult(MtxF* mfB, MtxF* mfA, MtxF* dest) {
rw = mfA->ww;
dest->wz = (cx * rx) + (cy * ry) + (cz * rz) + (cw * rw);
//---COL4---
//---4Col---
cx = mfB->xw;
cy = mfB->yw;
cz = mfB->zw;

View file

@ -5,6 +5,7 @@
*/
#include "z_bg_haka_gate.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -46,7 +47,6 @@ void BgHakaGate_GateOpen(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_SkullOfTruth(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_FalseSkull(BgHakaGate* this, GlobalContext* globalCtx);
extern Gfx D_0404D4E0[];
extern CollisionHeader D_0600A938;
extern Gfx D_0600F1B0[];
extern Gfx D_06010A10[];
@ -338,7 +338,7 @@ void BgHakaGate_DrawFlame(BgHakaGate* this, GlobalContext* globalCtx) {
Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 744),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 749);
}
}

View file

@ -5,6 +5,7 @@
*/
#include "z_bg_haka_tubo.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -78,8 +79,6 @@ static InitChainEntry sInitChain[] = {
extern CollisionHeader D_060108B8;
extern Gfx D_0600FE40[];
extern Gfx D_0400CD80[];
extern Gfx D_040184B0[];
void BgHakaTubo_Init(Actor* thisx, GlobalContext* globalCtx) {
BgHakaTubo* this = THIS;
@ -133,7 +132,8 @@ void BgHakaTubo_Idle(BgHakaTubo* this, GlobalContext* globalCtx) {
pos.y = this->dyna.actor.world.pos.y + 80.0f;
EffectSsBomb2_SpawnLayered(globalCtx, &pos, &sZeroVector, &sZeroVector, 100, 45);
Audio_PlaySoundAtPosition(globalCtx, &this->dyna.actor.world.pos, 50, NA_SE_EV_BOX_BREAK);
EffectSsHahen_SpawnBurst(globalCtx, &pos, 20.0f, 0, 350, 100, 50, OBJECT_HAKA_OBJECTS, 40, D_0400CD80);
EffectSsHahen_SpawnBurst(globalCtx, &pos, 20.0f, 0, 350, 100, 50, OBJECT_HAKA_OBJECTS, 40,
gEffFragments2DL);
this->dropTimer = 5;
this->dyna.actor.draw = NULL;
Actor_SetScale(&this->dyna.actor, 0.0f);
@ -240,7 +240,7 @@ void BgHakaTubo_DrawFlameCircle(BgHakaTubo* this, GlobalContext* globalCtx) {
(this->fireScroll * -15) & 0xFF, 32, 64));
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka_tubo.c", 497),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_040184B0);
gSPDisplayList(POLY_XLU_DISP++, gEffFireCircleDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_haka_tubo.c", 501);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_bg_hidan_curtain.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -22,8 +23,6 @@ void BgHidanCurtain_TurnOn(BgHidanCurtain* this, GlobalContext* globalCtx);
void BgHidanCurtain_TurnOff(BgHidanCurtain* this, GlobalContext* globalCtx);
void BgHidanCurtain_WaitForTimer(BgHidanCurtain* this, GlobalContext* globalCtx);
extern Gfx D_040184B0[];
typedef struct {
/* 0x00 */ s16 radius;
/* 0x02 */ s16 height;
@ -257,7 +256,7 @@ void BgHidanCurtain_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_curtain.c", 698),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_040184B0);
gSPDisplayList(POLY_XLU_DISP++, gEffFireCircleDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_curtain.c", 702);
}

View file

@ -1,4 +1,5 @@
#include "z_bg_hidan_fwbig.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -25,8 +26,6 @@ void BgHidanFwbig_WaitForPlayer(BgHidanFwbig* this, GlobalContext* globalCtx);
void BgHidanFwbig_Move(BgHidanFwbig* this, GlobalContext* globalCtx);
extern Gfx D_0600DB20[];
extern Gfx D_040173D0[];
extern Gfx D_04017BD0[];
const ActorInit Bg_Hidan_Fwbig_InitVars = {
ACTOR_BG_HIDAN_FWBIG,
@ -250,9 +249,9 @@ void BgHidanFwbig_Draw(Actor* thisx, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_fwbig.c", 630);
func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(D_040173D0));
gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gEffUnknown4Tex));
gSPSegment(POLY_XLU_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(D_04017BD0));
gSPSegment(POLY_XLU_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(gEffUnknown5Tex));
height = thisx->scale.y * 2400.0f;
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 220, 0,

View file

@ -5,6 +5,7 @@
*/
#include "z_bg_mori_hineri.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000030
@ -51,7 +52,6 @@ extern CollisionHeader D_060054B8;
extern CollisionHeader D_06003490;
extern CollisionHeader D_060043D0;
extern CollisionHeader D_06006078;
extern Gfx D_04049FE0[]; // display list for studded dungeon door
extern Gfx D_06000AE8[];
extern Gfx D_06001678[];
@ -252,7 +252,7 @@ void BgMoriHineri_DrawHallAndRoom(Actor* thisx, GlobalContext* globalCtx) {
Matrix_Translate(0.0f, -50.0f, 0.0f, MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_mori_hineri.c", 652),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_04049FE0);
gSPDisplayList(POLY_OPA_DISP++, gDoorMetalBarsDL);
}
if ((this->boxObjIdx > 0) && ((this->boxObjIdx = Object_GetIndex(&globalCtx->objectCtx, OBJECT_BOX)) > 0) &&
(Object_IsLoaded(&globalCtx->objectCtx, this->boxObjIdx))) {

View file

@ -5,6 +5,7 @@
*/
#include "z_bg_po_syokudai.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -75,7 +76,6 @@ static InitChainEntry sInitChain[] = {
};
extern Gfx D_060003A0[];
extern Gfx D_0404D4E0[];
void BgPoSyokudai_Init(Actor* thisx, GlobalContext* globalCtx) {
BgPoSyokudai* this = THIS;
@ -186,7 +186,7 @@ void BgPoSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 368),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 373);
}

View file

@ -1,4 +1,5 @@
#include "z_bg_spot00_hanebasi.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -9,7 +10,6 @@ void BgSpot00Hanebasi_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgSpot00Hanebasi_Update(Actor* thisx, GlobalContext* globalCtx);
void BgSpot00Hanebasi_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_0404D4E0;
extern UNK_TYPE D_060000C0;
extern UNK_TYPE D_06000280;
extern UNK_TYPE D_06000430;

View file

@ -32,7 +32,9 @@ const ActorInit Bg_Spot09_Obj_InitVars = {
(ActorFunc)BgSpot09Obj_Draw,
};
static CollisionHeader* D_808B1F90[] = { NULL, gBgSpot09Col1, gBgSpot09Col2, gBgSpot09Col3, gBgSpot09Col4 };
static CollisionHeader* D_808B1F90[] = {
NULL, &gValleyObjects1Col, &gValleyObjects2Col, &gValleyObjects3Col, &gValleyObjects4Col,
};
static s32 (*D_808B1FA4[])(BgSpot09Obj* this, GlobalContext* globalCtx) = {
func_808B1BEC,
@ -52,7 +54,9 @@ static InitChainEntry sInitChain2[] = {
ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP),
};
static Gfx* sDLists[] = { gBgSpot09DL1, gBgSpot09DL2, gBgSpot09DL3, gBgSpot09DL4, gBgSpot09DL5 };
static Gfx* sDLists[] = {
gValleyBridgeSidesDL, gValleyBrokenBridgeDL, gValleyBridgeChildDL, gCarpentersTentDL, gValleyRepairedBridgeDL,
};
s32 func_808B1AE0(BgSpot09Obj* this, GlobalContext* globalCtx) {
s32 carpentersRescued;
@ -175,7 +179,7 @@ void BgSpot09Obj_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot09_obj.c", 391),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gBgSpot09DL6);
gSPDisplayList(POLY_XLU_DISP++, gCarpentersTentEntranceDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot09_obj.c", 396);
}

View file

@ -121,7 +121,7 @@ void BgSpot11Bakudankabe_Init(Actor* thisx, GlobalContext* globalCtx) {
return;
}
func_808B2180(this, globalCtx);
CollisionHeader_GetVirtual(&gBgSpot11Col, &colHeader);
CollisionHeader_GetVirtual(&gDesertColossusBombableWallCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
Actor_SetScale(&this->dyna.actor, 1.0f);
osSyncPrintf("(spot11 爆弾壁)(arg_data 0x%04x)\n", this->dyna.actor.params);
@ -151,5 +151,5 @@ void BgSpot11Bakudankabe_Update(Actor* thisx, GlobalContext* globalCtx) {
void BgSpot11Bakudankabe_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgSpot11Bakudankabe* this = THIS;
Gfx_DrawDListOpa(globalCtx, gBgSpot11DL1);
Gfx_DrawDListOpa(globalCtx, gDesertColossusBombableWallDL);
}

View file

@ -1,5 +1,12 @@
/*
* File: z_bg_spot11_oasis.c
* Overlay: ovl_Bg_Spot11_Oasis
* Description: Refilling Oasis (Desert Colossus)
*/
#include "z_bg_spot11_oasis.h"
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#include "objects/object_spot11_obj/object_spot11_obj.h"
#define FLAGS 0x00000010
@ -43,8 +50,6 @@ static Vec3f D_808B2E34[] = {
{ -75.0f, -90.0f, 90.0f }, { 30.0f, -100.0f, 40.0f },
};
extern Gfx D_06000870[];
void func_808B27F0(GlobalContext* globalCtx, s16 waterSurface) {
WaterBox* waterBox = &globalCtx->colCtx.colHeader->waterBoxes[0];
@ -154,6 +159,6 @@ void BgSpot11Oasis_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - (gameplayFrames % 128), (gameplayFrames * 1) % 128,
32, 32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPDisplayList(POLY_XLU_DISP++, D_06000870);
gSPDisplayList(POLY_XLU_DISP++, gDesertColossusOasisDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot11_oasis.c", 346);
}

View file

@ -6,6 +6,7 @@
#include "z_bg_spot17_bakudankabe.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "objects/object_spot17_obj/object_spot17_obj.h"
#define FLAGS 0x00000000
@ -35,9 +36,6 @@ static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
};
extern CollisionHeader D_06000A38;
extern Gfx D_060008A0[];
extern Gfx D_06000960[];
extern Gfx D_0500A880[];
void func_808B6BC0(BgSpot17Bakudankabe* this, GlobalContext* globalCtx) {
@ -105,7 +103,8 @@ void BgSpot17Bakudankabe_Init(Actor* thisx, GlobalContext* globalCtx) {
Actor_Kill(&this->dyna.actor);
return;
}
CollisionHeader_GetVirtual(&D_06000A38, &colHeader);
CollisionHeader_GetVirtual(&gCraterBombableWallCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
}
@ -143,7 +142,7 @@ void BgSpot17Bakudankabe_Draw(Actor* thisx, GlobalContext* globalCtx) {
gDPSetEnvColor(POLY_OPA_DISP++, r, g, 255, 128);
gSPDisplayList(POLY_OPA_DISP++, D_060008A0);
gSPDisplayList(POLY_OPA_DISP++, gCraterBombableWallDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot17_bakudankabe.c", 283);
@ -153,7 +152,7 @@ void BgSpot17Bakudankabe_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot17_bakudankabe.c", 290),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_06000960);
gSPDisplayList(POLY_XLU_DISP++, gCraterBombableWallCracksDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot17_bakudankabe.c", 295);
}

View file

@ -67,7 +67,7 @@ void func_808B7478(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (0 - globalCtx->gameplayFrames) & 0x7F, 0x20, 0x20, 1, 0,
(0 - globalCtx->gameplayFrames) & 0x7F, 0x20, 0x20));
gSPDisplayList(POLY_XLU_DISP++, gBgSpot17DL1);
gSPDisplayList(POLY_XLU_DISP++, gCraterSmokeConeDL);
if (1) {}

View file

@ -1,4 +1,5 @@
#include "z_boss_fd.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000035

View file

@ -1,4 +1,5 @@
#include "z_boss_tw.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000035

View file

@ -1,4 +1,5 @@
#include "z_boss_va.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000035
@ -9,7 +10,6 @@ void BossVa_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BossVa_Update(Actor* thisx, GlobalContext* globalCtx);
void BossVa_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_04055DB0;
extern UNK_TYPE D_06000024;
extern UNK_TYPE D_06000FA0;
extern UNK_TYPE D_06001230;

View file

@ -1,4 +1,5 @@
#include "z_demo_6k.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -8,8 +9,6 @@ void Demo6K_Init(Actor* thisx, GlobalContext* globalCtx);
void Demo6K_Destroy(Actor* thisx, GlobalContext* globalCtx);
void Demo6K_Update(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_040101A8;
extern UNK_TYPE D_04015780;
extern UNK_TYPE D_06001040;
extern UNK_TYPE D_06001190;
extern UNK_TYPE D_060022B0;

View file

@ -1880,7 +1880,7 @@ void DemoEffect_DrawLightEffect(Actor* thisx, GlobalContext* globalCtx) {
if (this->light.flicker == 0) {
this->light.flicker = 1;
} else {
disp = (u32)gGameKeepMoteDL0; // necessary to match, should be able to remove after fake matches are fixed
disp = (u32)gEffFlash1DL; // necessary to match, should be able to remove after fake matches are fixed
alpha = &this->light.alpha;
func_80093D84(globalCtx->state.gfxCtx);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 128, this->primXluColor[0], this->primXluColor[1],
@ -1923,7 +1923,7 @@ void DemoEffect_DrawBlueOrb(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2901),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
this->blueOrb.rotation += 0x01F4;
gSPDisplayList(POLY_XLU_DISP++, gGameKeepMoteDL0);
gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2907);
}

View file

@ -1,4 +1,5 @@
#include "z_demo_kankyo.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000030
@ -10,8 +11,6 @@ void DemoKankyo_Update(Actor* thisx, GlobalContext* globalCtx);
void DemoKankyo_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_01000000;
extern UNK_TYPE D_04010050;
extern UNK_TYPE D_04052DB0;
extern UNK_TYPE D_06000080;
extern UNK_TYPE D_06000DE0;
extern UNK_TYPE D_06007440;

View file

@ -1,4 +1,5 @@
#include "z_door_killer.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010

View file

@ -6,6 +6,7 @@
#include "z_door_shutter.h"
#include "overlays/actors/ovl_Boss_Goma/z_boss_goma.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -80,16 +81,26 @@ typedef struct {
} ShutterInfo;
static ShutterInfo D_80998134[] = {
{ 0x060067A0, 0x0404B0D0, 130, 12, 20, 15 }, { 0x06006910, 0x0404B0D0, 130, 12, 20, 15 },
{ 0x060000C0, 0x060001F0, 240, 14, 70, 15 }, { 0x06000590, 0x06006460, 0, 110, 50, 15 },
{ 0x06012AB0, NULL, 130, 12, 50, 15 }, { 0x0601EC20, NULL, 130, 12, 50, 15 },
{ 0x06000100, 0x060001F0, 240, 14, 50, 15 }, { 0x060010C0, NULL, 130, 12, 50, 15 },
{ 0x04049FE0, 0x0404B0D0, 130, 12, 20, 15 }, { 0x06010CB0, 0x0404B0D0, 130, 12, 20, 15 },
{ 0x06011F20, 0x0404B0D0, 130, 12, 20, 15 }, { 0x060000C0, 0x0404B0D0, 130, 12, 20, 15 },
{ 0x06005D90, 0x0404B0D0, 130, 12, 20, 15 }, { 0x06007000, 0x0404B0D0, 130, 12, 20, 15 },
{ 0x06002620, 0x0404B0D0, 130, 12, 20, 15 }, { 0x06003890, 0x0404B0D0, 130, 12, 20, 15 },
{ 0x06001D10, 0x0404B0D0, 130, 12, 20, 15 }, { 0x060010D0, 0x0404B0D0, 130, 12, 20, 15 },
{ 0x060020D0, 0x0404B0D0, 130, 12, 20, 15 }, { 0x060000C0, 0x0404B0D0, 130, 12, 20, 15 },
{ 0x060067A0, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x06006910, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x060000C0, 0x060001F0, 240, 14, 70, 15 },
{ 0x06000590, 0x06006460, 0, 110, 50, 15 },
{ 0x06012AB0, NULL, 130, 12, 50, 15 },
{ 0x0601EC20, NULL, 130, 12, 50, 15 },
{ 0x06000100, 0x060001F0, 240, 14, 50, 15 },
{ 0x060010C0, NULL, 130, 12, 50, 15 },
{ gDoorMetalBarsDL, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x06010CB0, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x06011F20, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x060000C0, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x06005D90, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x06007000, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x06002620, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x06003890, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x06001D10, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x060010D0, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x060020D0, gDungeonDoorDL, 130, 12, 20, 15 },
{ 0x060000C0, gDungeonDoorDL, 130, 12, 20, 15 },
};
static s8 D_80998224[] = {

View file

@ -1,4 +1,5 @@
#include "z_eff_dust.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000030
@ -9,8 +10,6 @@ void EffDust_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EffDust_Update(Actor* thisx, GlobalContext* globalCtx);
void EffDust_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_04037880;
/*
const ActorInit Eff_Dust_InitVars = {
ACTOR_EFF_DUST,

View file

@ -5,6 +5,7 @@
*/
#include "z_en_anubice_fire.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010

View file

@ -5,6 +5,7 @@
*/
#include "z_en_arrow.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000030
@ -15,11 +16,6 @@ void EnArrow_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnArrow_Update(Actor* thisx, GlobalContext* globalCtx);
void EnArrow_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_04004310;
extern UNK_TYPE D_0400436C;
extern UNK_TYPE D_04006010;
extern UNK_TYPE D_04037880;
/*
const ActorInit En_Arrow_InitVars = {
ACTOR_EN_ARROW,

View file

@ -5,6 +5,7 @@
*/
#include "z_en_bb.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x01000015
@ -90,7 +91,6 @@ void EnBb_Green(EnBb* this, GlobalContext* globalCtx);
void EnBb_Stunned(EnBb* this, GlobalContext* globalCtx);
extern Gfx D_0404D4E0[];
extern AnimationHeader D_06000184;
extern AnimationHeader D_06000444;
extern SkeletonHeader D_06001A30;
@ -1336,7 +1336,7 @@ void EnBb_Draw(Actor* thisx, GlobalContext* globalCtx) {
Matrix_Scale(this->flameScaleX * 0.01f, this->flameScaleY * 0.01f, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bb.c", 2106),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
} else {
Matrix_MultVec3f(&blureBase1, &blureVtx1);
Matrix_MultVec3f(&blureBase2, &blureVtx2);

View file

@ -6,6 +6,7 @@
#include "z_en_bom.h"
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000030
@ -84,9 +85,6 @@ static InitChainEntry sInitChain[] = {
ICHAIN_F32_DIV1000(gravity, -4000, ICHAIN_STOP),
};
extern Gfx D_04007A50[]; // gold fuse cap
extern Gfx D_04007860[]; // bomb
void EnBom_SetupAction(EnBom* this, EnBomActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
@ -369,14 +367,14 @@ void EnBom_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bom.c", 928),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_04007A50);
gSPDisplayList(POLY_OPA_DISP++, gBombCapDL);
Matrix_RotateRPY(0x4000, 0, 0, MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bom.c", 934),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, (s16)this->flashIntensity, 0, 40, 255);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, (s16)this->flashIntensity, 0, 40, 255);
gSPDisplayList(POLY_OPA_DISP++, D_04007860);
gSPDisplayList(POLY_OPA_DISP++, gBombBodyDL);
Collider_UpdateSpheres(0, &this->explosionCollider);
}

View file

@ -1,4 +1,5 @@
#include "z_en_bom_chu.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -9,8 +10,6 @@ void EnBomChu_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnBomChu_Update(Actor* thisx, GlobalContext* globalCtx);
void EnBomChu_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_04007E10;
/*
const ActorInit En_Bom_Chu_InitVars = {
ACTOR_EN_BOM_CHU,

View file

@ -5,6 +5,7 @@
*/
#include "z_en_boom.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000030
@ -54,8 +55,6 @@ static InitChainEntry sInitChain[] = {
ICHAIN_VEC3S(shape.rot, 0, ICHAIN_STOP),
};
extern Gfx D_0400C808[];
void EnBoom_SetupAction(EnBoom* this, EnBoomActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
@ -274,7 +273,7 @@ void EnBoom_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_boom.c", 601),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_0400C808);
gSPDisplayList(POLY_OPA_DISP++, gBoomerangRefDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_boom.c", 604);
}

View file

@ -135,7 +135,7 @@ void EnButte_DrawTransformationEffect(EnButte* this, GlobalContext* globalCtx) {
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 200, 200, 180, alpha);
gDPSetEnvColor(POLY_XLU_DISP++, 200, 200, 210, 255);
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&gGameKeepMoteDL0));
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&gEffFlash1DL));
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_choo.c", 326);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_en_bw.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000015
@ -33,7 +34,6 @@ void func_809D0268(EnBw* this, GlobalContext* globalCtx);
void func_809D03CC(EnBw* this);
void func_809D0424(EnBw* this, GlobalContext* globalCtx);
extern Gfx D_0404D4E0[];
extern AnimationHeader D_06000228;
extern SkeletonHeader D_060020F0;
extern AnimationHeader D_060021A0;
@ -889,7 +889,7 @@ void EnBw_Draw(Actor* thisx, GlobalContext* globalCtx2) {
func_800D1FD4(&globalCtx->mf_11DA0);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bw.c", 1500),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
if (this->iceTimer != 0) {
thisx->colorFilterTimer++;

View file

@ -1,4 +1,5 @@
#include "z_en_dekubaba.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000005

View file

@ -5,6 +5,7 @@
*/
#include "z_en_door.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -59,23 +60,17 @@ static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_STOP),
};
AnimationHeader* D_809FCECC[] = { 0x0400E758, 0x0400E5B4, 0x04010038, 0x0400E6A0 };
AnimationHeader* D_809FCECC[] = { &gDoor3Anim, &gDoor1Anim, &gDoor4Anim, &gDoor2Anim };
static u8 sDoorAnimOpenFrames[] = { 25, 25, 25, 25 };
static u8 sDoorAnimCloseFrames[] = { 60, 70, 60, 70 };
static Gfx* D_809FCEE4[5][2] = {
{ 0x0400ECB8, 0x0400EE00 }, { 0x0600F998, 0x0600F938 }, { 0x06004958, 0x06004A10 },
{ 0x060013B8, 0x06001420 }, { 0x050047A0, 0x05004978 },
{ gDoorLeftDL, gDoorRightDL }, { 0x0600F998, 0x0600F938 }, { 0x06004958, 0x06004A10 },
{ 0x060013B8, 0x06001420 }, { 0x050047A0, 0x05004978 },
};
extern Gfx D_0400ECB8[];
extern Gfx D_0400EE00[];
extern AnimationHeader D_0400E758;
extern SkeletonHeader D_0400FF78;
void EnDoor_Init(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx = globalCtx2;
EnDoor* this = THIS;
@ -87,7 +82,7 @@ void EnDoor_Init(Actor* thisx, GlobalContext* globalCtx2) {
objectInfo = &sDoorInfo[0];
Actor_ProcessInitChain(&this->actor, sInitChain);
SkelAnime_Init(globalCtx, &this->skelAnime, &D_0400FF78, &D_0400E758, this->jointTable, this->morphTable, 5);
SkelAnime_Init(globalCtx, &this->skelAnime, &gDoorSkel, &gDoor3Anim, this->jointTable, this->morphTable, 5);
for (i = 0; i < ARRAY_COUNT(sDoorInfo) - 2; i++, objectInfo++) {
if (globalCtx->sceneNum == objectInfo->sceneNum) {
break;
@ -335,9 +330,9 @@ void EnDoor_Draw(Actor* thisx, GlobalContext* globalCtx) {
if (this->actor.world.rot.y != 0) {
if (1) {}
if (this->actor.world.rot.y > 0) {
gSPDisplayList(POLY_OPA_DISP++, D_0400EE00);
gSPDisplayList(POLY_OPA_DISP++, gDoorRightDL);
} else {
gSPDisplayList(POLY_OPA_DISP++, D_0400ECB8);
gSPDisplayList(POLY_OPA_DISP++, gDoorLeftDL);
}
}
if (this->lockTimer != 0) {

View file

@ -5,6 +5,7 @@
*/
#include "z_en_elf.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x02000030
@ -90,9 +91,6 @@ static FairyColorFlags sColorFlags[] = {
{ 0, 0, 1 }, { 2, 0, 1 }, { 0, 2, 1 }, { 1, 1, 0 }, { 1, 0, 1 }, { 0, 1, 1 },
};
extern SkeletonHeader D_04016A48;
extern AnimationHeader D_04014BA4;
void EnElf_SetupAction(EnElf* this, EnElfActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
@ -323,7 +321,7 @@ void EnElf_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 i;
Actor_ProcessInitChain(thisx, sInitChain);
SkelAnime_Init(globalCtx, &this->skelAnime, &D_04016A48, &D_04014BA4, this->jointTable, this->morphTable, 15);
SkelAnime_Init(globalCtx, &this->skelAnime, &gFairySkel, &gFairyAnim, this->jointTable, this->morphTable, 15);
ActorShape_Init(&thisx->shape, 0.0f, NULL, 15.0f);
thisx->shape.shadowAlpha = 0xFF;

View file

@ -5,8 +5,9 @@
*/
#include "z_en_ex_item.h"
#include "vt.h"
#include "overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "vt.h"
#define FLAGS 0x00000030
@ -504,7 +505,7 @@ void EnExItem_DrawKey(EnExItem* this, GlobalContext* globalCtx, s32 index) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ex_item.c", 887),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(keySegments[index]));
gSPDisplayList(POLY_OPA_DISP++, D_0403F070);
gSPDisplayList(POLY_OPA_DISP++, gItemDropDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ex_item.c", 893);
}

View file

@ -1,6 +1,7 @@
#include "z_en_ex_ruppy.h"
#include "vt.h"
#include "../ovl_En_Diving_Game/z_en_diving_game.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -376,7 +377,9 @@ void EnExRuppy_Update(Actor* thisx, GlobalContext* globalCtx) {
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 20.0f, 20.0f, 50.0f, 0x1C);
}
UNK_PTR D_80A0B3B8[] = { 0x04042140, 0x04042160, 0x04042180, 0x040421C0, 0x040421A0 };
UNK_PTR D_80A0B3B8[] = {
gRupeeGreenTex, gRupeeBlueTex, gRupeeRedTex, gRupeePinkTex, gRupeeOrangeTex,
};
void EnExRuppy_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
@ -390,7 +393,7 @@ void EnExRuppy_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ex_ruppy.c", 780),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80A0B3B8[this->colorIdx]));
gSPDisplayList(POLY_OPA_DISP++, D_04042440);
gSPDisplayList(POLY_OPA_DISP++, gRupeeDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ex_ruppy.c", 784);
}

View file

@ -1,4 +1,5 @@
#include "z_en_fd.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000215
@ -863,8 +864,8 @@ void EnFd_UpdateDots(EnFd* this) {
}
void EnFd_DrawFlames(EnFd* this, GlobalContext* globalCtx) {
static Gfx* D_80A0E0F8[] = {
0x040539B0, 0x040535B0, 0x040531B0, 0x04052DB0, 0x040529B0, 0x040525B0, 0x040521B0, 0x04051DB0,
static UNK_PTR D_80A0E0F8[] = {
gDust8Tex, gDust7Tex, gDust6Tex, gDust5Tex, gDust4Tex, gDust3Tex, gDust2Tex, gDust1Tex,
};
s32 firstDone;
s16 i;

View file

@ -1,4 +1,5 @@
#include "z_en_fd_fire.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000015
@ -13,8 +14,6 @@ void func_80A0E70C(EnFdFire* this, GlobalContext* globalCtx);
void EnFdFire_DanceTowardsPlayer(EnFdFire* this, GlobalContext* globalCtx);
void EnFdFire_WaitToDie(EnFdFire* this, GlobalContext* globalCtx);
extern Gfx D_0404D4E0[];
const ActorInit En_Fd_Fire_InitVars = {
ACTOR_EN_FD_FIRE,
ACTORCAT_ENEMY,
@ -283,7 +282,7 @@ void EnFdFire_Draw(Actor* thisx, GlobalContext* globalCtx) {
envColors[((this->actor.params & 0x8000) >> 0xF)].b,
envColors[((this->actor.params & 0x8000) >> 0xF)].a);
gDPPipeSync(POLY_XLU_DISP++);
gSPDisplayList(POLY_XLU_DISP++, &D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, &gEffFire1DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_fd_fire.c", 672);
}

View file

@ -1,4 +1,5 @@
#include "z_en_fish.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -9,10 +10,6 @@ void EnFish_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnFish_Update(Actor* thisx, GlobalContext* globalCtx);
void EnFish_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_040185FC;
extern UNK_TYPE D_04018FE0;
extern UNK_TYPE D_0401909C;
/*
const ActorInit En_Fish_InitVars = {
ACTOR_EN_FISH,

View file

@ -1,5 +1,6 @@
#include "z_en_fw.h"
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000215
@ -440,8 +441,8 @@ void EnFw_UpdateDust(EnFw* this) {
}
void EnFw_DrawDust(EnFw* this, GlobalContext* globalCtx) {
static Gfx* D_80A1FC18[] = {
0x040539B0, 0x040535B0, 0x040531B0, 0x04052DB0, 0x040529B0, 0x040525B0, 0x040521B0, 0x04051DB0,
static UNK_PTR D_80A1FC18[] = {
gDust8Tex, gDust7Tex, gDust6Tex, gDust5Tex, gDust4Tex, gDust3Tex, gDust2Tex, gDust1Tex,
};
EnFwEffect* eff = this->effects;
s16 firstDone;

View file

@ -9,6 +9,7 @@
#include "overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000030
@ -466,7 +467,8 @@ void EnGSwitch_DrawPot(Actor* thisx, GlobalContext* globalCtx) {
}
}
static u8* sRupeeTex[] = { 0x04042140, 0x04042160, 0x04042180, 0x040421C0, 0x040421A0, 0x040421E0 };
static UNK_PTR sRupeeTex[] = { gRupeeGreenTex, gRupeeBlueTex, gRupeeRedTex,
gRupeePinkTex, gRupeeOrangeTex, gRupeeSilverTex };
void EnGSwitch_DrawRupee(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
@ -480,7 +482,7 @@ void EnGSwitch_DrawRupee(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_g_switch.c", 957),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sRupeeTex[this->colorIdx]));
gSPDisplayList(POLY_OPA_DISP++, D_04042440);
gSPDisplayList(POLY_OPA_DISP++, gRupeeDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_g_switch.c", 961);
}
if (this->type == ENGSWITCH_TARGET_RUPEE) {
@ -564,7 +566,7 @@ void EnGSwitch_DrawEffects(EnGSwitch* this, GlobalContext* globalCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_g_switch.c", 1088),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sRupeeTex[effect->colorIdx]));
gSPDisplayList(POLY_OPA_DISP++, D_04042440);
gSPDisplayList(POLY_OPA_DISP++, gRupeeDL);
}
}
CLOSE_DISPS(gfxCtx, "../z_en_g_switch.c", 1095);

View file

@ -1,4 +1,5 @@
#include "z_en_go.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000039

View file

@ -1,4 +1,5 @@
#include "z_en_go2.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000039

View file

@ -6,7 +6,7 @@
#include "z_en_goroiwa.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "vt.h"
#define FLAGS 0x00000010
@ -76,7 +76,6 @@ static CollisionCheckInfoInit sColChkInfoInit = { 0, 12, 60, MASS_HEAVY };
// Unused
static f32 D_80A4DEBC[] = { 10.0f, 9.2f };
extern Gfx D_0400D340[];
extern Gfx D_060006B0[];
void func_80A4BCA0(EnGoroiwa* this) {
@ -501,7 +500,7 @@ void func_80A4D0FC(EnGoroiwa* this, GlobalContext* globalCtx) {
fragmentVelocity.z = effectPos.z * 0.2f;
Math_Vec3f_Sum(&effectPos, thisPos, &effectPos);
EffectSsKakera_Spawn(globalCtx, &effectPos, &fragmentVelocity, &effectPos, -340, 33, 28, 2, 0,
(Rand_ZeroOne() * 7.0f) + 1.0f, 1, 0, 70, KAKERA_COLOR_NONE, 1, D_0400D340);
(Rand_ZeroOne() * 7.0f) + 1.0f, 1, 0, 70, KAKERA_COLOR_NONE, 1, gBoulderFragmentsDL);
}
effectPos.x = thisPos->x;

View file

@ -6,6 +6,7 @@
#include "z_en_gs.h"
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x02000009
@ -21,7 +22,6 @@ void func_80A4F700(EnGs* this, GlobalContext* globalCtx);
void func_80A4F77C(EnGs* this);
extern Gfx D_0404D4E0[];
extern Gfx D_06000950[];
extern Gfx D_060009D0[];
extern Gfx D_06000A60[];
@ -614,7 +614,7 @@ void EnGs_Draw(Actor* thisx, GlobalContext* globalCtx) {
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 0x20, 0x40, 1, 0, -frames * 0x14, 0x20, 0x80));
gDPSetPrimColor(POLY_XLU_DISP++, 128, 128, 255, 255, 0, 255);
gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 0);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_gs.c", 1101);

View file

@ -5,6 +5,7 @@
*/
#include "z_en_honotrap.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -47,7 +48,6 @@ void EnHonotrap_FlameChase(EnHonotrap* this, GlobalContext* globalCtx);
void EnHonotrap_SetupFlameVanish(EnHonotrap* this);
void EnHonotrap_FlameVanish(EnHonotrap* this, GlobalContext* globalCtx);
extern Gfx D_0404D4E0[];
extern Gfx D_05006810[];
const ActorInit En_Honotrap_InitVars = {
@ -519,7 +519,7 @@ void EnHonotrap_DrawFlame(Actor* thisx, GlobalContext* globalCtx) {
MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_honotrap.c", 1024),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_honotrap.c", 1028);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_en_horse_normal.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -715,7 +716,7 @@ void EnHorseNormal_Draw(Actor* thisx, GlobalContext* globalCtx) {
mtx2 = Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_horse_normal.c", 2329);
if (mtx2 != NULL) {
gSPMatrix(POLY_XLU_DISP++, mtx2, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_04049AD0);
gSPDisplayList(POLY_XLU_DISP++, gHorseShadowDL);
}
}

View file

@ -1,4 +1,5 @@
#include "z_en_ice_hono.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -19,8 +20,6 @@ void EnIceHono_SetupActionDroppedFlame(EnIceHono* this);
void EnIceHono_SetupActionSpreadFlames(EnIceHono* this);
void EnIceHono_SetupActionSmallFlame(EnIceHono* this);
extern Gfx D_0404D4E0[];
const ActorInit En_Ice_Hono_InitVars = {
ACTOR_EN_ICE_HONO,
ACTORCAT_ITEMACTION,
@ -387,7 +386,7 @@ void EnIceHono_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ice_hono.c", 718),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ice_hono.c", 722);
}

View file

@ -1,5 +1,6 @@
#include "z_en_insect.h"
#include "vt.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -26,9 +27,6 @@ void func_80A7D26C(EnInsect* this, GlobalContext* globalCtx);
void func_80A7D39C(EnInsect* this);
void func_80A7D460(EnInsect* this, GlobalContext* globalCtx);
extern SkeletonHeader D_04035590;
extern AnimationHeader D_040341FC;
static f32 D_80A7DEB0 = 0.0f;
static s16 D_80A7DEB4 = 0;
static s16 D_80A7DEB8 = 0;
@ -108,7 +106,7 @@ s32 func_80A7BE6C(EnInsect* this, GlobalContext* globalCtx) {
}
void func_80A7BF58(EnInsect* this) {
Animation_Change(&this->skelAnime, &D_040341FC, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP_INTERP, 0.0f);
Animation_Change(&this->skelAnime, &gBugCrawlAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP_INTERP, 0.0f);
}
/**
@ -168,7 +166,7 @@ void EnInsect_Init(Actor* thisx, GlobalContext* globalCtx) {
temp_s2 = this->actor.params & 3;
SkelAnime_Init(globalCtx, &this->skelAnime, &D_04035590, &D_040341FC, this->jointTable, this->morphTable, 24);
SkelAnime_Init(globalCtx, &this->skelAnime, &gBugSkel, &gBugCrawlAnim, this->jointTable, this->morphTable, 24);
Collider_InitJntSph(globalCtx, &this->collider);
Collider_SetJntSph(globalCtx, &this->collider, &this->actor, &sColliderInit, &this->colliderItem);

View file

@ -5,6 +5,7 @@
*/
#include "z_en_kanban.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "vt.h"
#define FLAGS 0x00000019
@ -75,7 +76,6 @@ void EnKanban_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnKanban_Update(Actor* thisx, GlobalContext* globalCtx);
void EnKanban_Draw(Actor* thisx, GlobalContext* globalCtx);
extern Gfx D_0403C050[];
extern Gfx D_06000C30[];
extern Gfx D_06001630[];
@ -842,7 +842,7 @@ void EnKanban_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_kanban.c", 1725),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (this->partFlags == 0xFFFF) {
gSPDisplayList(POLY_OPA_DISP++, D_0403C050);
gSPDisplayList(POLY_OPA_DISP++, gSignRectangularDL);
} else {
for (i = 0; i < ARRAY_COUNT(sPartFlags); i++) {
if (sPartFlags[i] & this->partFlags) {

View file

@ -6,6 +6,7 @@
#include "z_en_karebaba.h"
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000005
@ -459,7 +460,7 @@ void EnKarebaba_DrawCenterShadow(EnKarebaba* this, GlobalContext* globalCtx) {
Matrix_Scale(0.15f, 1.0f, 0.15f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_karebaba.c", 1029),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_04049210);
gSPDisplayList(POLY_XLU_DISP++, gCircleShadowDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_karebaba.c", 1034);
}

View file

@ -6,6 +6,7 @@
#include "z_en_kusa.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "vt.h"
#define FLAGS 0x00800010
@ -91,8 +92,6 @@ static InitChainEntry sInitChain[] = {
};
extern Gfx D_060002E0[];
extern Gfx D_040355E0[]; // bush fragments 1
extern Gfx D_040356A0[]; // bush fragments 2
void EnKusa_SetupAction(EnKusa* this, EnKusaActionFunc actionFunc) {
this->timer = 0;
@ -191,7 +190,7 @@ void EnKusa_SpawnFragments(EnKusa* this, GlobalContext* globalCtx) {
index = (s32)(Rand_ZeroOne() * 111.1f) & 7;
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &pos, -100, 64, 40, 3, 0, D_80A9C26C[index], 0, 0, 80,
KAKERA_COLOR_NONE, OBJECT_GAMEPLAY_KEEP, D_040355E0);
KAKERA_COLOR_NONE, OBJECT_GAMEPLAY_KEEP, gCuttableShrubStalkDL);
pos.x = this->actor.world.pos.x + (scale->x * this->actor.scale.x * 40.0f);
pos.y = this->actor.world.pos.y + (scale->y * this->actor.scale.y * 40.0f) + 10.0f;
@ -204,7 +203,7 @@ void EnKusa_SpawnFragments(EnKusa* this, GlobalContext* globalCtx) {
index = (s32)(Rand_ZeroOne() * 111.1f) % 7;
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &pos, -100, 64, 40, 3, 0, D_80A9C26C[index], 0, 0, 80,
KAKERA_COLOR_NONE, OBJECT_GAMEPLAY_KEEP, D_040356A0);
KAKERA_COLOR_NONE, OBJECT_GAMEPLAY_KEEP, gCuttableShrubTipDL);
}
}

View file

@ -5,6 +5,7 @@
*/
#include "z_en_light.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -45,7 +46,6 @@ static FlameParams D_80A9E840[] = {
{ { 170, 255, 255, 255 }, { 0, 0, 255 }, 75 }, { { 170, 255, 255, 255 }, { 0, 150, 255 }, 75 },
};
extern Gfx D_0404D4E0[];
extern Gfx D_05000440[];
void EnLight_Init(Actor* thisx, GlobalContext* globalCtx) {
@ -171,7 +171,7 @@ void EnLight_Draw(Actor* thisx, GlobalContext* globalCtx) {
POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 64, 1, 0, (this->timer * -20) & 511, 32, 128));
dList = D_0404D4E0;
dList = gEffFire1DL;
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, flameParams->primColor.r, flameParams->primColor.g,
flameParams->primColor.b, flameParams->primColor.a);
gDPSetEnvColor(POLY_XLU_DISP++, flameParams->envColor.r, flameParams->envColor.g, flameParams->envColor.b, 0);

View file

@ -1,4 +1,5 @@
#include "z_en_m_thunder.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -51,12 +52,6 @@ static u32 D_80AA0458[] = { 0x08000000, 0x02000000, 0x04000000 };
static u16 sSfxIds[] = { NA_SE_IT_ROLLING_CUT_LV2, NA_SE_IT_ROLLING_CUT_LV1, NA_SE_IT_ROLLING_CUT_LV2,
NA_SE_IT_ROLLING_CUT_LV1 };
extern Gfx D_04012570[];
extern Gfx D_04012690[];
extern Gfx D_04012AF0[];
extern Gfx D_04012C10[];
extern Gfx D_04013610[];
// Setup action
void func_80A9EFE0(EnMThunder* this, EnMThunderActionFunc actionFunc) {
this->actionFunc = actionFunc;
@ -345,13 +340,13 @@ void EnMThunder_Draw(Actor* thisx, GlobalContext* globalCtx2) {
switch (this->unk_1C6) {
case 0:
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 170, (u8)((u32)(this->unk_1B0 * 255) & 0xFF));
gSPDisplayList(POLY_XLU_DISP++, D_04012AF0);
gSPDisplayList(POLY_XLU_DISP++, D_04012C10);
gSPDisplayList(POLY_XLU_DISP++, gSpinAttack3DL);
gSPDisplayList(POLY_XLU_DISP++, gSpinAttack4DL);
break;
case 1:
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 170, 255, 255, (u8)((u32)(this->unk_1B0 * 255) & 0xFF));
gSPDisplayList(POLY_XLU_DISP++, D_04012570);
gSPDisplayList(POLY_XLU_DISP++, D_04012690);
gSPDisplayList(POLY_XLU_DISP++, gSpinAttack1DL);
gSPDisplayList(POLY_XLU_DISP++, gSpinAttack2DL);
break;
}
@ -404,7 +399,7 @@ void EnMThunder_Draw(Actor* thisx, GlobalContext* globalCtx2) {
(globalCtx->gameplayFrames * 0x14) & 0xFF,
(u8)(globalCtx->gameplayFrames * phi_t1) & 0xFF, 8, 8));
gSPDisplayList(POLY_XLU_DISP++, D_04013610);
gSPDisplayList(POLY_XLU_DISP++, gSpinAttackChargingDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_m_thunder.c", 1031);
}

View file

@ -1,4 +1,5 @@
#include "z_en_ossan.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000019
@ -8,9 +9,6 @@ void EnOssan_Init(Actor* thisx, GlobalContext* globalCtx);
void EnOssan_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnOssan_Update(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_0400CDC0;
extern UNK_TYPE D_0400CE40;
extern UNK_TYPE D_0400CF40;
extern UNK_TYPE D_060000F0;
extern UNK_TYPE D_060000FC;
extern UNK_TYPE D_060002E4;

View file

@ -5,6 +5,7 @@
*/
#include "z_en_po_field.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00001035
@ -151,7 +152,6 @@ extern AnimationHeader D_06000F9C;
extern AnimationHeader D_06000608;
extern AnimationHeader D_06000454;
extern AnimationHeader D_06001360;
extern Gfx D_0404D4E0[];
extern Gfx D_060059F0[];
extern Gfx D_06005900[];
extern Gfx D_06005620[];
@ -810,7 +810,7 @@ void EnPoField_DrawFlame(EnPoField* this, GlobalContext* globalCtx) {
}
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_po_field.c", 1709),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_po_field.c", 1712);
}
}

View file

@ -5,6 +5,7 @@
*/
#include "z_en_po_sisters.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00005215
@ -175,8 +176,6 @@ extern AnimationHeader D_06000680;
extern Gfx D_060027B0[];
extern Gfx D_060046E0[];
extern Gfx D_0404D4E0[];
void EnPoSisters_Init(Actor* thisx, GlobalContext* globalCtx) {
EnPoSisters* this = THIS;
s32 pad;
@ -1414,7 +1413,7 @@ void EnPoSisters_Draw(Actor* thisx, GlobalContext* globalCtx) {
Matrix_Scale(phi_f20, phi_f20, phi_f20, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_po_sisters.c", 3132),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_po_sisters.c", 3139);
}

View file

@ -57,7 +57,7 @@ void EnPubox_Init(Actor* thisx, GlobalContext* globalCtx) {
this->dyna.unk_15C = DPM_UNK;
thisx->targetMode = 1;
thisx->gravity = -2.0f;
CollisionHeader_GetVirtual(&gPuBoxCol, &colHeader);
CollisionHeader_GetVirtual(&gUnknownUnusedBox2Col, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
}
@ -87,5 +87,5 @@ void EnPubox_Update(Actor* thisx, GlobalContext* globalCtx) {
}
void EnPubox_Draw(Actor* thisx, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, gPuBoxDL2);
Gfx_DrawDListOpa(globalCtx, gUnknownUnusedBox2DL);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_en_tk.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000009
@ -20,14 +21,6 @@ void EnTk_Rest(EnTk* this, GlobalContext* globalCtx);
void EnTk_Walk(EnTk* this, GlobalContext* globalCtx);
void EnTk_Dig(EnTk* this, GlobalContext* globalCtx);
extern UNK_TYPE D_04051DB0;
extern UNK_TYPE D_040521B0;
extern UNK_TYPE D_040525B0;
extern UNK_TYPE D_040529B0;
extern UNK_TYPE D_04052DB0;
extern UNK_TYPE D_040531B0;
extern UNK_TYPE D_040535B0;
extern UNK_TYPE D_040539B0;
extern AnimationHeader D_06001144;
extern AnimationHeader D_06001FA8;
extern AnimationHeader D_06002F84;
@ -96,8 +89,8 @@ void EnTkEff_Update(EnTk* this) {
}
void EnTkEff_Draw(EnTk* this, GlobalContext* globalCtx) {
static UNK_PTR images[] = {
&D_040539B0, &D_040535B0, &D_040531B0, &D_04052DB0, &D_040529B0, &D_040525B0, &D_040521B0, &D_04051DB0,
static UNK_PTR dustImages[] = {
&gDust8Tex, &gDust7Tex, &gDust6Tex, &gDust5Tex, &gDust4Tex, &gDust3Tex, &gDust2Tex, &gDust1Tex,
};
EnTkEff* eff = this->eff;
@ -133,8 +126,8 @@ void EnTkEff_Draw(EnTk* this, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_tk_eff.c", 140),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
imageIdx = eff->timeLeft * ((f32)ARRAY_COUNT(images) / eff->timeTotal);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(images[imageIdx]));
imageIdx = eff->timeLeft * ((f32)ARRAY_COUNT(dustImages) / eff->timeTotal);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(dustImages[imageIdx]));
gSPDisplayList(POLY_XLU_DISP++, D_0600BCA0);
}

View file

@ -39,5 +39,5 @@ void EnVase_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
void EnVase_Draw(Actor* thisx, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, &gVaseDL);
Gfx_DrawDListOpa(globalCtx, &gUnusedVaseDL);
}

View file

@ -6,6 +6,7 @@
#include "z_en_viewer.h"
#include "overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -37,7 +38,6 @@ void func_80B2BA38(EnViewer* this, GlobalContext* globalCtx);
void func_80B2C130(EnViewer* this, GlobalContext* globalCtx);
extern Mtx D_01000000;
extern Gfx D_0404D4E0[];
extern AnimationHeader D_06000450;
extern AnimationHeader D_060005B4;
extern AnimationHeader D_060008A0;
@ -874,7 +874,7 @@ void func_80B2C8AC(EnViewer* this2, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_viewer.c", 2027),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_viewer.c", 2034);
}

View file

@ -6,6 +6,7 @@
#include "z_en_vm.h"
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000011
@ -121,12 +122,14 @@ static Vec3f D_80B2EB70 = { -500.0f, 0.0f, 0.0f };
static Vec3f D_80B2EB7C = { 0.4f, 0.4f, 0.4f };
static UNK_PTR D_80B2EB88[] = { 0x0402CFE0, 0x0402D7E0, 0x0402DFE0, 0x0402E7E0, 0x0402EFE0,
0x0402F7E0, 0x0402FFE0, 0x040307E0, 0x04030FE0, 0x040317E0 };
static UNK_PTR D_80B2EB88[] = {
gEffEnemyDeathFlame1Tex, gEffEnemyDeathFlame2Tex, gEffEnemyDeathFlame3Tex, gEffEnemyDeathFlame4Tex,
gEffEnemyDeathFlame5Tex, gEffEnemyDeathFlame6Tex, gEffEnemyDeathFlame7Tex, gEffEnemyDeathFlame8Tex,
gEffEnemyDeathFlame9Tex, gEffEnemyDeathFlame10Tex,
};
extern SkeletonHeader D_06003F60;
extern AnimationHeader D_06000068;
extern Gfx D_04031FE0[];
extern Gfx D_06002728[];
void EnVm_SetupAction(EnVm* this, EnVmActionFunc actionFunc) {
@ -539,12 +542,12 @@ void EnVm_Draw(Actor* thisx, GlobalContext* globalCtx) {
func_80094BC4(globalCtx->state.gfxCtx);
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 255, 0);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80B2EB88[globalCtx2->gameplayFrames % 8]));
gSPDisplayList(POLY_XLU_DISP++, D_04031FE0);
gSPDisplayList(POLY_XLU_DISP++, gEffEnemyDeathFlameDL);
Matrix_RotateY(32767.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_vm.c", 1044),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80B2EB88[(globalCtx2->gameplayFrames + 4) % 8]));
gSPDisplayList(POLY_XLU_DISP++, D_04031FE0);
gSPDisplayList(POLY_XLU_DISP++, gEffEnemyDeathFlameDL);
}
gSPSegment(POLY_OPA_DISP++, 0x08, func_80094E78(globalCtx->state.gfxCtx, 0, this->beamTexScroll));
Matrix_Translate(this->beamPos1.x, this->beamPos1.y, this->beamPos1.z, MTXMODE_NEW);

View file

@ -5,6 +5,7 @@
*/
#include "z_en_wallmas.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000015
@ -613,7 +614,7 @@ void EnWallmas_DrawXlu(EnWallmas* this, GlobalContext* globalCtx) {
Matrix_Scale(xzScale, 1.0f, xzScale, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_wallmas.c", 1421), G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, &D_04049210);
gSPDisplayList(POLY_XLU_DISP++, &gCircleShadowDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_wallmas.c", 1426);
}

View file

@ -221,7 +221,7 @@ void MagicDark_DiamondDraw(Actor* thisx, GlobalContext* globalCtx) {
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 170, 255, 255, (s32)(this->primAlpha * 0.6f) & 0xFF);
gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, 128);
gSPDisplayList(POLY_XLU_DISP++, sDiamondTextureDList);
gSPDisplayList(POLY_XLU_DISP++, sDiamondTexDList);
gSPDisplayList(POLY_XLU_DISP++,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames * 2, gameplayFrames * -4, 32, 32, 1,
0, gameplayFrames * -16, 64, 32));
@ -270,12 +270,12 @@ void MagicDark_OrbDraw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_magic_dark.c", 632),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
Matrix_RotateZ(sp6C * (M_PI / 32), MTXMODE_APPLY);
gSPDisplayList(POLY_XLU_DISP++, gGameKeepMoteDL0);
gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL);
Matrix_Pull();
Matrix_RotateZ(-sp6C * (M_PI / 32), MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_magic_dark.c", 639),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gGameKeepMoteDL0);
gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_magic_dark.c", 643);
}

View file

@ -1,11 +1,10 @@
#include "z_magic_dark.h"
#include "objects/gameplay_keep/gameplay_keep.h"
static u64 sDiamondTexture[] = {
static u64 sDiamondTex[] = {
#include "assets/overlays/ovl_Magic_Dark/diamond_texture.i8.inc.c"
};
extern UNK_TYPE D_04032490[];
static Vtx sDiamondVerts[] = {
VTX(0, 0, 64, 1024, 512, 0x00, 0x00, 0x78, 0xFF), VTX(55, 0, 32, 1707, 512, 0x67, 0x00, 0x3C, 0xFF),
VTX(0, 108, 0, 1365, 0, 0x00, 0x78, 0x00, 0xFF), VTX(55, 0, -32, 2389, 512, 0x67, 0x00, 0xC4, 0xFF),
@ -19,13 +18,13 @@ static Vtx sDiamondVerts[] = {
VTX(-55, 0, 32, 2389, 512, 0x98, 0x00, 0x3C, 0xFF), VTX(-55, 0, -32, 1707, 512, 0x99, 0x00, 0xC4, 0xFF),
};
static Gfx sDiamondTextureDList[] = {
static Gfx sDiamondTexDList[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(D_04032490, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP,
gsDPLoadTextureBlock(gEffUnknown10Tex, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, 1),
gsDPLoadMultiBlock(sDiamondTexture, 0x0100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP,
gsDPLoadMultiBlock(sDiamondTex, 0x0100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_MIRROR | G_TX_WRAP, 5, 6, 13, 13),
gsDPSetCombineLERP(TEXEL1, PRIMITIVE, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE,
ENVIRONMENT, COMBINED, ENVIRONMENT, COMBINED, 0, PRIMITIVE, 0),

View file

@ -5,6 +5,7 @@
*/
#include "z_obj_bean.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00400000

View file

@ -5,6 +5,7 @@
*/
#include "z_obj_ice_poly.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010
@ -18,8 +19,6 @@ void ObjIcePoly_Draw(Actor* thisx, GlobalContext* globalCtx);
void ObjIcePoly_Idle(ObjIcePoly* this, GlobalContext* globalCtx);
void ObjIcePoly_Melt(ObjIcePoly* this, GlobalContext* globalCtx);
extern Gfx* D_04033EE0[];
const ActorInit Obj_Ice_Poly_InitVars = {
ACTOR_OBJ_ICE_POLY,
ACTORCAT_PROP,
@ -206,7 +205,7 @@ void ObjIcePoly_Draw(Actor* thisx, GlobalContext* globalCtx) {
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, globalCtx->gameplayFrames % 0x100, 0x20, 0x10, 1, 0,
(globalCtx->gameplayFrames * 2) % 0x100, 0x40, 0x20));
gDPSetEnvColor(POLY_XLU_DISP++, 0, 50, 100, this->alpha);
gSPDisplayList(POLY_XLU_DISP++, D_04033EE0);
gSPDisplayList(POLY_XLU_DISP++, gEffIceFragment3DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_obj_ice_poly.c", 444);
}

View file

@ -6,6 +6,7 @@
#include "z_obj_syokudai.h"
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000410
@ -16,8 +17,6 @@ void ObjSyokudai_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ObjSyokudai_Update(Actor* thisx, GlobalContext* globalCtx);
void ObjSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx);
extern Gfx D_0404D4E0[];
const ActorInit Obj_Syokudai_InitVars = {
ACTOR_OBJ_SYOKUDAI,
ACTORCAT_PROP,
@ -302,7 +301,7 @@ void ObjSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_obj_syokudai.c", 745),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_obj_syokudai.c", 749);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_object_kankyo.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x02000030
@ -16,12 +17,6 @@ void ObjectKankyo_Update(Actor* thisx, GlobalContext* globalCtx);
void ObjectKankyo_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_01000000;
extern UNK_TYPE D_04010050;
extern UNK_TYPE D_0402CF30;
extern UNK_TYPE D_0404C160;
extern UNK_TYPE D_0404D160;
extern UNK_TYPE D_0404D1A8;
extern UNK_TYPE D_04052DB0;
extern UNK_TYPE D_06005FF0;
extern UNK_TYPE D_06009620;

View file

@ -1,7 +1,5 @@
#include "z_oceff_storm.h"
extern u32 D_04032490[];
extern u32 D_04032890[];
#include "objects/gameplay_keep/gameplay_keep.h"
static u32 tex0[] = {
0x2F6E6F59, 0x6197B3CC, 0xC8AD8E6C, 0x5333170A, 0x17366173, 0x86ABC7C6, 0xA9928C7E, 0x55496341, 0x40705B59,
@ -157,9 +155,9 @@ static Gfx sCylinderTexDl[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(D_04032490, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
gsDPLoadTextureBlock(gEffUnknown10Tex, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 5, 2, 13),
gsDPLoadMultiBlock(D_04032890, 0x100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
gsDPLoadMultiBlock(gEffUnknown11Tex, 0x100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 5, 1, 12),
gsDPSetCombineLERP(TEXEL1, TEXEL0, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE, ENVIRONMENT,
COMBINED, ENVIRONMENT, COMBINED, 0, SHADE, 0),

View file

@ -98,12 +98,12 @@ void OceffWipe4_Draw(Actor* thisx, GlobalContext* globalCtx) {
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (this->actor.params == OCEFF_WIPE4_UNUSED) {
gSPDisplayList(POLY_XLU_DISP++, sTextureDL1);
gSPDisplayList(POLY_XLU_DISP++, sTexture1DL);
} else {
gSPDisplayList(POLY_XLU_DISP++, sTextureDL0);
gSPDisplayList(POLY_XLU_DISP++, sTexture0DL);
}
gSPDisplayList(POLY_XLU_DISP++, sTextureDL2);
gSPDisplayList(POLY_XLU_DISP++, sTexture2DL);
gSPDisplayList(POLY_XLU_DISP++, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, scroll * 2, scroll * (-2), 32, 64, 1,
scroll * (-1), scroll, 32, 32));
gSPDisplayList(POLY_XLU_DISP++, sFrustrumDl);

View file

@ -1,6 +1,5 @@
#include "z_oceff_wipe4.h"
extern u8 D_04032C90[];
#include "objects/gameplay_keep/gameplay_keep.h"
static u32 tex0[] = {
0x00061507, 0x00000000, 0x295a2b08, 0x10030f03, 0x0d070006, 0x00031625, 0x3f230012, 0x79590000, 0x00102c2a,
@ -76,29 +75,29 @@ static Vtx vertices[] = {
VTX(143, -46, 0, 410, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(243, -176, 1000, 307, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx sTextureDL0[] = {
static Gfx sTexture0DL[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadMultiBlock(D_04032C90, 0x100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
gsDPLoadMultiBlock(gEffUnknown12Tex, 0x100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 5, 1, 15),
gsDPSetPrimColor(0x00, 0x00, 170, 255, 255, 255),
gsDPSetEnvColor(0, 150, 0, 128),
gsSPEndDisplayList(),
};
static Gfx sTextureDL1[] = {
static Gfx sTexture1DL[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadMultiBlock(D_04032C90, 0x100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
gsDPLoadMultiBlock(gEffUnknown12Tex, 0x100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 5, 1, 0),
gsDPSetPrimColor(0x00, 0x00, 255, 170, 255, 255),
gsDPSetEnvColor(120, 0, 100, 128),
gsSPEndDisplayList(),
};
static Gfx sTextureDL2[] = {
static Gfx sTexture2DL[] = {
gsDPPipeSync(),
gsDPLoadTextureBlock(tex0, G_IM_FMT_I, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 6, 14, 1),

File diff suppressed because it is too large Load diff

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_blast.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rPrimColorR regs[0]
#define rPrimColorG regs[1]
@ -28,8 +29,6 @@ EffectSsInit Effect_Ss_Blast_InitVars = {
EffectSsBlast_Init,
};
extern Gfx D_0401A0B0[];
u32 EffectSsBlast_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsBlastParams* initParams = (EffectSsBlastParams*)initParamsx;
@ -37,7 +36,7 @@ u32 EffectSsBlast_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void
this->pos.y += 5.0f;
this->velocity = initParams->velocity;
this->accel = initParams->accel;
this->gfx = SEGMENTED_TO_VIRTUAL(D_0401A0B0);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffShockwaveDL);
this->life = initParams->life;
this->draw = EffectSsBlast_Draw;
this->update = EffectSsBlast_Update;

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_bomb.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rScale regs[0]
#define rTexIdx regs[1]
@ -18,15 +19,13 @@ EffectSsInit Effect_Ss_Bomb_InitVars = {
EffectSsBomb_Init,
};
extern Gfx D_0400BF80[];
u32 EffectSsBomb_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsBombInitParams* initParams = (EffectSsBombInitParams*)initParamsx;
Math_Vec3f_Copy(&this->pos, &initParams->pos);
Math_Vec3f_Copy(&this->velocity, &initParams->velocity);
Math_Vec3f_Copy(&this->accel, &initParams->accel);
this->gfx = SEGMENTED_TO_VIRTUAL(D_0400BF80);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffBombExplosion1DL);
this->life = 20;
this->draw = EffectSsBomb_Draw;
this->update = EffectSsBomb_Update;
@ -36,11 +35,11 @@ u32 EffectSsBomb_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void*
return 1;
}
static void* sTextures[] = {
0x04007F80,
0x04008780,
0x04008F80,
0x04009780,
static UNK_PTR sTextures[] = {
gEffBombExplosion1Tex,
gEffBombExplosion2Tex,
gEffBombExplosion3Tex,
gEffBombExplosion4Tex,
};
void EffectSsBomb_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_bomb2.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rScale regs[0]
#define rTexIdx regs[1]
@ -33,10 +34,6 @@ static EffectSsDrawFunc sDrawFuncs[] = {
EffectSsBomb2_DrawLayered,
};
extern Gfx D_0400BF80[];
extern Gfx D_0400BFE8[];
extern Gfx D_0400C040[];
u32 EffectSsBomb2_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsBomb2InitParams* initParams = (EffectSsBomb2InitParams*)initParamsx;
@ -44,7 +41,7 @@ u32 EffectSsBomb2_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void
Math_Vec3f_Copy(&this->pos, &initParams->pos);
Math_Vec3f_Copy(&this->velocity, &initParams->velocity);
Math_Vec3f_Copy(&this->accel, &initParams->accel);
this->gfx = SEGMENTED_TO_VIRTUAL(D_0400BF80);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffBombExplosion1DL);
this->life = 24;
this->update = EffectSsBomb2_Update;
this->draw = sDrawFuncs[initParams->drawMode];
@ -63,8 +60,9 @@ u32 EffectSsBomb2_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void
// unused in the original game. looks like EffectSsBomb but with color
void EffectSsBomb2_DrawFade(GlobalContext* globalCtx, u32 index, EffectSs* this) {
static void* textures[] = {
0x04007F80, 0x04008780, 0x04008F80, 0x04009780, 0x04009F80, 0x0400A780, 0x0400AF80, 0x0400B780,
static UNK_PTR textures[] = {
gEffBombExplosion1Tex, gEffBombExplosion2Tex, gEffBombExplosion3Tex, gEffBombExplosion4Tex,
gEffBombExplosion5Tex, gEffBombExplosion6Tex, gEffBombExplosion7Tex, gEffBombExplosion8Tex,
};
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
MtxF mfTrans;
@ -102,8 +100,9 @@ void EffectSsBomb2_DrawFade(GlobalContext* globalCtx, u32 index, EffectSs* this)
}
void EffectSsBomb2_DrawLayered(GlobalContext* globalCtx, u32 index, EffectSs* this) {
static void* textures[] = {
0x04007F80, 0x04008780, 0x04008F80, 0x04009780, 0x04009F80, 0x0400A780, 0x0400AF80, 0x0400B780,
static UNK_PTR textures[] = {
gEffBombExplosion1Tex, gEffBombExplosion2Tex, gEffBombExplosion3Tex, gEffBombExplosion4Tex,
gEffBombExplosion5Tex, gEffBombExplosion6Tex, gEffBombExplosion7Tex, gEffBombExplosion8Tex,
};
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
MtxF mfTrans;
@ -141,8 +140,8 @@ void EffectSsBomb2_DrawLayered(GlobalContext* globalCtx, u32 index, EffectSs* th
this->rPrimColorA);
gDPSetEnvColor(POLY_XLU_DISP++, this->rEnvColorR, this->rEnvColorG, this->rEnvColorB, 0);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(textures[this->rTexIdx]));
gSPDisplayList(POLY_XLU_DISP++, D_0400BFE8);
gSPDisplayList(POLY_XLU_DISP++, D_0400C040);
gSPDisplayList(POLY_XLU_DISP++, gEffBombExplosion2DL);
gSPDisplayList(POLY_XLU_DISP++, gEffBombExplosion3DL);
Matrix_MtxToMtxF(mtx2, &mtx2F);
Matrix_Put(&mtx2F);
@ -153,7 +152,7 @@ void EffectSsBomb2_DrawLayered(GlobalContext* globalCtx, u32 index, EffectSs* th
Matrix_Scale(layer2Scale, layer2Scale, layer2Scale, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_eff_ss_bomb2.c", 448),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0400C040);
gSPDisplayList(POLY_XLU_DISP++, gEffBombExplosion3DL);
layer2Scale -= 0.15f;
}
}

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_bubble.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rScale regs[0]
@ -17,17 +18,13 @@ EffectSsInit Effect_Ss_Bubble_InitVars = {
EffectSsBubble_Init,
};
extern void* D_04055DB0;
extern void* D_04055EB0;
extern Gfx D_0401A160[];
u32 EffectSsBubble_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsBubbleInitParams* initParams = (EffectSsBubbleInitParams*)initParamsx;
// @bug Rand_ZeroOne in the macro means a random number is generated for both parts of the macro.
// In the base game this works out because both addresses are segment 4, but it may break if
// the addresses were changed to refer to different segments
this->gfx = SEGMENTED_TO_VIRTUAL(Rand_ZeroOne() < 0.5f ? &D_04055DB0 : &D_04055EB0);
this->gfx = SEGMENTED_TO_VIRTUAL(Rand_ZeroOne() < 0.5f ? &gEffBubble1Tex : &gEffBubble2Tex);
this->pos.x = ((Rand_ZeroOne() - 0.5f) * initParams->xzPosRandScale) + initParams->pos.x;
this->pos.y = (((Rand_ZeroOne() - 0.5f) * initParams->yPosRandScale) + initParams->yPosOffset) + initParams->pos.y;
this->pos.z = ((Rand_ZeroOne() - 0.5f) * initParams->xzPosRandScale) + initParams->pos.z;
@ -54,7 +51,7 @@ void EffectSsBubble_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
gDPSetEnvColor(POLY_OPA_DISP++, 150, 150, 150, 0);
gSPSegment(POLY_OPA_DISP++, 0x08, this->gfx);
gSPDisplayList(POLY_OPA_DISP++, SEGMENTED_TO_VIRTUAL(D_0401A160));
gSPDisplayList(POLY_OPA_DISP++, SEGMENTED_TO_VIRTUAL(gEffBubbleDL));
CLOSE_DISPS(gfxCtx, "../z_eff_ss_bubble.c", 179);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_dead_db.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rScale regs[0]
#define rTextIdx regs[1]
@ -28,15 +29,13 @@ EffectSsInit Effect_Ss_Dead_Db_InitVars = {
EffectSsDeadDb_Init,
};
extern Gfx D_04031FE0[];
u32 EffectSsDeadDb_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsDeadDbInitParams* initParams = (EffectSsDeadDbInitParams*)initParamsx;
this->pos = initParams->pos;
this->velocity = initParams->velocity;
this->accel = initParams->accel;
this->gfx = SEGMENTED_TO_VIRTUAL(D_04031FE0);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffEnemyDeathFlameDL);
this->life = initParams->unk_34;
this->flags = 4;
this->rScaleStep = initParams->scaleStep;
@ -57,9 +56,10 @@ u32 EffectSsDeadDb_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, voi
return 1;
}
static void* sTextures[] = {
0x0402CFE0, 0x0402D7E0, 0x0402DFE0, 0x0402E7E0, 0x0402EFE0,
0x0402F7E0, 0x0402FFE0, 0x040307E0, 0x04030FE0, 0x040317E0,
static UNK_PTR sTextures[] = {
gEffEnemyDeathFlame1Tex, gEffEnemyDeathFlame2Tex, gEffEnemyDeathFlame3Tex, gEffEnemyDeathFlame4Tex,
gEffEnemyDeathFlame5Tex, gEffEnemyDeathFlame6Tex, gEffEnemyDeathFlame7Tex, gEffEnemyDeathFlame8Tex,
gEffEnemyDeathFlame9Tex, gEffEnemyDeathFlame10Tex,
};
void EffectSsDeadDb_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_dead_dd.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rScale regs[0]
#define rPrimColorR regs[2]
@ -115,7 +116,7 @@ void EffectSsDeadDd_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0,
PRIMITIVE, 0);
gSPDisplayList(POLY_XLU_DISP++, D_04037730);
gSPDisplayList(POLY_XLU_DISP++, gEffBurnMark1DL);
}
CLOSE_DISPS(gfxCtx, "../z_eff_ss_dead_dd.c", 259);

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_dead_ds.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rScale regs[0]
#define rTimer regs[1]
@ -25,8 +26,6 @@ EffectSsInit Effect_Ss_Dead_Ds_InitVars = {
EffectSsDeadDs_Init,
};
extern Gfx D_04037730[];
u32 EffectSsDeadDs_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsDeadDsInitParams* initParams = (EffectSsDeadDsInitParams*)initParamsx;
@ -104,7 +103,7 @@ void EffectSsDeadDs_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0,
PRIMITIVE, 0);
gSPDisplayList(POLY_XLU_DISP++, D_04037730);
gSPDisplayList(POLY_XLU_DISP++, gEffBurnMark1DL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead_ds.c", 255);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_dt_bubble.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rPrimColorR regs[0]
#define rPrimColorG regs[1]
@ -30,17 +31,13 @@ EffectSsInit Effect_Ss_Dt_Bubble_InitVars = {
EffectSsDtBubble_Init,
};
extern void* D_04055DB0;
extern void* D_04055EB0;
extern Gfx D_0401A160[];
u32 EffectSsDtBubble_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsDtBubbleInitParams* initParams = (EffectSsDtBubbleInitParams*)initParamsx;
// @bug Rand_ZeroOne in the macro means a random number is generated for both parts of the macro.
// In the base game this works out because both addresses are segment 4, but it may break if
// the addresses were changed to refer to different segments
this->gfx = SEGMENTED_TO_VIRTUAL(Rand_ZeroOne() < 0.5f ? &D_04055DB0 : &D_04055EB0);
this->gfx = SEGMENTED_TO_VIRTUAL(Rand_ZeroOne() < 0.5f ? &gEffBubble1Tex : &gEffBubble2Tex);
this->pos = initParams->pos;
this->velocity = initParams->velocity;
this->accel = initParams->accel;
@ -92,7 +89,7 @@ void EffectSsDtBubble_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this)
gDPSetEnvColor(POLY_XLU_DISP++, this->rEnvColorR, this->rEnvColorG, this->rEnvColorB,
(this->rEnvColorA * this->life) / this->rLifespan);
gSPSegment(POLY_XLU_DISP++, 0x08, this->gfx);
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(D_0401A160));
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gEffBubbleDL));
CLOSE_DISPS(gfxCtx, "../z_eff_ss_dt_bubble.c", 236);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_dust.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rPrimColorR regs[0]
#define rPrimColorG regs[1]
@ -35,8 +36,6 @@ static EffectSsUpdateFunc sUpdateFuncs[] = {
EffectSsBlast_UpdateFire,
};
extern Gfx D_04010050[];
u32 EffectSsDust_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
s32 randColorOffset;
EffectSsDustInitParams* initParams = (EffectSsDustInitParams*)initParamsx;
@ -44,7 +43,7 @@ u32 EffectSsDust_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void*
Math_Vec3f_Copy(&this->pos, &initParams->pos);
Math_Vec3f_Copy(&this->velocity, &initParams->velocity);
Math_Vec3f_Copy(&this->accel, &initParams->accel);
this->gfx = SEGMENTED_TO_VIRTUAL(D_04010050);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffDustDL);
this->life = initParams->life;
this->update = sUpdateFuncs[initParams->updateMode];
this->draw = EffectSsDust_Draw;
@ -78,7 +77,7 @@ u32 EffectSsDust_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void*
}
static UNK_PTR sTextures[] = {
0x04051DB0, 0x040521B0, 0x040525B0, 0x040529B0, 0x04052DB0, 0x040531B0, 0x040535B0, 0x040539B0,
gDust1Tex, gDust2Tex, gDust3Tex, gDust4Tex, gDust5Tex, gDust6Tex, gDust7Tex, gDust8Tex,
};
void EffectSsDust_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_en_fire.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rScaleMax regs[0]
#define rScale regs[1]
@ -26,9 +27,6 @@ EffectSsInit Effect_Ss_En_Fire_InitVars = {
EffectSsEnFire_Init,
};
extern Gfx D_0404D5A0[];
extern Gfx D_0404D4E0[];
u32 EffectSsEnFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsEnFireInitParams* initParams = (EffectSsEnFireInitParams*)initParamsx;
Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
@ -97,9 +95,9 @@ void EffectSsEnFire_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
0x20, 0x80));
if (((this->rFlags & 0x7FFF) != 0) || (this->life < 18)) {
gSPDisplayList(POLY_XLU_DISP++, D_0404D5A0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire2DL);
} else {
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
}
CLOSE_DISPS(gfxCtx, "../z_eff_en_fire.c", 213);

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_en_ice.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rLifespan regs[0]
#define rYaw regs[1]
@ -30,8 +31,6 @@ EffectSsInit Effect_Ss_En_Ice_InitVars = {
EffectSsEnIce_Init,
};
extern Gfx D_04033818[];
u32 EffectSsEnIce_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsEnIceInitParams* initParams = (EffectSsEnIceInitParams*)initParamsx;
@ -129,7 +128,7 @@ void EffectSsEnIce_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, this->rPrimColorR, this->rPrimColorG, this->rPrimColorB,
this->rPrimColorA);
gDPSetEnvColor(POLY_XLU_DISP++, this->rEnvColorR, this->rEnvColorG, this->rEnvColorB, (u32)alpha);
gSPDisplayList(POLY_XLU_DISP++, D_04033818);
gSPDisplayList(POLY_XLU_DISP++, gEffIceFragment2DL);
CLOSE_DISPS(gfxCtx, "../z_eff_en_ice.c", 294);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_fcircle.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rUnused regs[3] // probably supposed to be an alpha
#define rRadius regs[8]
@ -21,8 +22,6 @@ EffectSsInit Effect_Ss_Fcircle_InitVars = {
EffectSsFcircle_Init,
};
extern Gfx D_040184B0[];
u32 EffectSsFcircle_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsFcircleInitParams* initParams = (EffectSsFcircleInitParams*)initParamsx;
@ -31,7 +30,7 @@ u32 EffectSsFcircle_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, vo
this->vec.x = initParams->pos.x - initParams->actor->world.pos.x;
this->vec.y = initParams->pos.y - initParams->actor->world.pos.y;
this->vec.z = initParams->pos.z - initParams->actor->world.pos.z;
this->gfx = D_040184B0;
this->gfx = gEffFireCircleDL;
this->life = 20;
this->draw = EffectSsFcircle_Draw;
this->update = EffectSsFcircle_Update;

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_fire_tail.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rScale regs[0]
#define rLifespan regs[1]
@ -29,9 +30,6 @@ EffectSsInit Effect_Ss_Fire_Tail_InitVars = {
EffectSsFireTail_Init,
};
extern Gfx D_0404D5A0[];
extern Gfx D_0404D4E0[];
u32 EffectSsFireTail_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsFireTailInitParams* initParams = (EffectSsFireTailInitParams*)initParamsx;
@ -129,9 +127,9 @@ void EffectSsFireTail_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this)
(globalCtx->state.frames * -0x14) & 0x1FF, 32, 128));
if (this->rType != 0) {
gSPDisplayList(POLY_XLU_DISP++, D_0404D5A0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire2DL);
} else {
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL);
}
CLOSE_DISPS(gfxCtx, "../z_eff_fire_tail.c", 273);

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_g_fire.h"
#include "objects/gameplay_keep/gameplay_keep.h"
u32 EffectSsGFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
void EffectSsGFire_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
@ -15,8 +16,6 @@ EffectSsInit Effect_Ss_G_Fire_InitVars = {
EffectSsGFire_Init,
};
extern Gfx D_0401C220[];
u32 EffectSsGFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsGFireInitParams* initParams = (EffectSsGFireInitParams*)initParamsx;
Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
@ -25,7 +24,7 @@ u32 EffectSsGFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void
this->pos = initParams->pos;
this->draw = EffectSsGFire_Draw;
this->update = EffectSsGFire_Update;
this->gfx = SEGMENTED_TO_VIRTUAL(D_0401C220);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffFireFootprintDL);
this->life = 8;
this->flags = 0;
this->rgScale = 200;
@ -44,8 +43,9 @@ u32 EffectSsGFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void
}
void EffectSsGFire_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
void* textures[] = {
0x0401A220, 0x0401A620, 0x0401AA20, 0x0401AE20, 0x0401B220, 0x0401B620, 0x0401BA20, 0x0401BE20,
UNK_PTR textures[] = {
gEffFireFootprint1Tex, gEffFireFootprint2Tex, gEffFireFootprint3Tex, gEffFireFootprint4Tex,
gEffFireFootprint5Tex, gEffFireFootprint6Tex, gEffFireFootprint7Tex, gEffFireFootprint8Tex,
};
s16 texIdx = (this->rgTexIdx / 100) % 7;

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_g_magma.h"
#include "objects/gameplay_keep/gameplay_keep.h"
u32 EffectSsGMagma_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
void EffectSsGMagma_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
@ -15,8 +16,6 @@ EffectSsInit Effect_Ss_G_Magma_InitVars = {
EffectSsGMagma_Init,
};
extern Gfx D_04024410[];
u32 EffectSsGMagma_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsGMagmaInitParams* initParams = (EffectSsGMagmaInitParams*)initParamsx;
Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
@ -25,7 +24,7 @@ u32 EffectSsGMagma_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, voi
this->pos = initParams->pos;
this->draw = EffectSsGMagma_Draw;
this->update = EffectSsGMagma_Update;
this->gfx = SEGMENTED_TO_VIRTUAL(D_04024410);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffMagmaBubbleDL);
this->life = 16;
this->rgScale = (s16)(Rand_ZeroOne() * 100.0f) + 200;
this->rgTexIdx = 0;
@ -42,8 +41,10 @@ u32 EffectSsGMagma_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, voi
return 1;
}
static void* sTextures[] = { 0x04023810, 0x04023990, 0x04023B10, 0x04023C90,
0x04023E10, 0x04023F90, 0x04024110, 0x04024290 };
static void* sTextures[] = {
gEffMagmaBubble1Tex, gEffMagmaBubble2Tex, gEffMagmaBubble3Tex, gEffMagmaBubble4Tex,
gEffMagmaBubble5Tex, gEffMagmaBubble6Tex, gEffMagmaBubble7Tex, gEffMagmaBubble8Tex,
};
void EffectSsGMagma_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
s16 texIdx = this->rgTexIdx / 100;

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_g_ripple.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rWaterBoxNum regs[0]
#define rRadius regs[1]
@ -28,9 +29,6 @@ EffectSsInit Effect_Ss_G_Ripple_InitVars = {
EffectSsGRipple_Init,
};
extern Gfx D_040254B0[];
extern Gfx D_040244B0[];
u32 EffectSsGRipple_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
s32 pad;
Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
@ -40,7 +38,7 @@ u32 EffectSsGRipple_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, vo
waterBox = NULL;
this->velocity = this->accel = zeroVec;
this->pos = initParams->pos;
this->gfx = SEGMENTED_TO_VIRTUAL(D_040254B0);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffWaterRippleDL);
this->life = initParams->life + 20;
this->flags = 0;
this->draw = EffectSsGRipple_Draw;
@ -105,7 +103,7 @@ void EffectSsGRipple_DrawRipple(GlobalContext* globalCtx, EffectSs* this, UNK_PT
void EffectSsGRipple_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
if (this->rLifespan == 0) {
EffectSsGRipple_DrawRipple(globalCtx, this, D_040244B0);
EffectSsGRipple_DrawRipple(globalCtx, this, gEffWaterRippleTex);
}
}

View file

@ -5,6 +5,7 @@
*/
#include "z_eff_ss_g_spk.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define rPrimColorR regs[0]
#define rPrimColorG regs[1]
@ -28,15 +29,13 @@ EffectSsInit Effect_Ss_G_Spk_InitVars = {
EffectSsGSpk_Init,
};
extern Gfx D_04025550[];
u32 EffectSsGSpk_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
EffectSsGSpkInitParams* initParams = (EffectSsGSpkInitParams*)initParamsx;
Math_Vec3f_Copy(&this->pos, &initParams->pos);
Math_Vec3f_Copy(&this->velocity, &initParams->velocity);
Math_Vec3f_Copy(&this->accel, &initParams->accel);
this->gfx = SEGMENTED_TO_VIRTUAL(D_04025550);
this->gfx = SEGMENTED_TO_VIRTUAL(gEffSparkDL);
if (initParams->updateMode == 0) {
this->life = 10;
@ -66,11 +65,11 @@ u32 EffectSsGSpk_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void*
return 1;
}
static void* sTextures[] = {
0x04055FB0,
0x040561B0,
0x040563B0,
0x040565B0,
static UNK_PTR sTextures[] = {
gEffSpark1Tex,
gEffSpark2Tex,
gEffSpark3Tex,
gEffSpark4Tex,
};
void EffectSsGSpk_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {

Some files were not shown because too many files have changed in this diff Show more