1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-04 15:04:31 +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
parent 84195fcef6
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;