1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-15 20:35:13 +00:00

Updated Texture Asset Handling (#478)

* Auto stash before rebase of "upstream/master"

* A large number of scenes have been decompiled.

* Fixed makefile

* Decompiled around 40 scenes.

* Removed old file

* Finished matching remaining scenes.

* Removed old commented out spec lines

* Decompiled a few object files.

* Reorganized xmls a bit. Updated pu_box overlay to use proper symbol.

* Updated texture and object file decomp

* Fixed newline issue with ZAPD

* Moved scenes/ into the assets/ folder

* Fixed a few compile errors

* Auto stash before rebase of "upstream/master"

* A large number of scenes have been decompiled.

* Fixed makefile

* Decompiled around 40 scenes.

* Removed old file

* Finished matching remaining scenes.

* Removed old commented out spec lines

* Decompiled a few object files.

* Reorganized xmls a bit. Updated pu_box overlay to use proper symbol.

* Updated texture and object file decomp

* Moved scenes/ into the assets/ folder

* Fixed a few compile errors

* Fixed merge issues.

* Fixed makefile merge error

* Fixed additional merge error

* Fixed several more merge issues

* Commented out gameplay_keep and sk2 extraction, since currently unused.

* Reenabled gameplay_keep extraction since it's used in the spec

* Fixed build error

* Removed test struct

* Fixed makefile error that would happen on fresh builds

* Fixed merge issue

* Removed relative paths

* Multithreading on extraction, spec uses numbers, few changes to XMLs

* Removed redundant code from the extract_assets script

* object_sk2 and object_spot09_obj OK

* object_spot11_obj OK

* object_spot17_obj OK

* Test: One of the gameplay_keep dlists given a proper symbol

* Updated asset symbol names based on new naming scheme

* XMLs use "Offset" instead of "Address" now

* Fixed merge issues, updated ovl_Magic_Dark xml and gfx file

* Updated to use latest build of ZAPD

* Updated ZAPD again

* Updated ZAP to remove assimp dependency

* Jenkins Test: Added .gitkeep file

* Updated ZAP once more

* Updated png file name to comply with new naming scheme.

* Fixed bad include

Co-authored-by: Jack Walker <7463599+Jack-Walker@users.noreply.github.com>
This commit is contained in:
Nicholas Estelami 2020-12-26 06:39:52 -05:00 committed by GitHub
parent 8fa6cb6ff9
commit b95643b397
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
182 changed files with 2249 additions and 1472 deletions

View file

@ -3,6 +3,7 @@
#include "overlays/actors/ovl_Arms_Hook/z_arms_hook.h"
#include "overlays/actors/ovl_En_Part/z_en_part.h"
#include "objects/gameplay_keep/gameplay_keep.h"
void ActorShape_Init(ActorShape* shape, f32 arg1, void* shadowDrawFunc, f32 arg3) {
shape->unk_08 = arg1;
@ -1909,7 +1910,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++, &D_04010130);
gSPDisplayList(POLY_XLU_DISP++, &gGameKeepMoteDL0);
Matrix_Pull();
phi_f6 = ~((globalCtx->gameplayFrames * 1200) & 0xFFFF);
@ -1917,7 +1918,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++, &D_04010130);
gSPDisplayList(POLY_XLU_DISP++, &gGameKeepMoteDL0);
}
lightPos.x = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.x;

View file

@ -437,8 +437,8 @@ s32 func_80042108(CollisionContext* a0, CollisionPoly* a1, u32 a2) {
#pragma GLOBAL_ASM("asm/non_matchings/code/z_bgcheck/func_80042244.s")
u32 func_80042538(CollisionContext* colCtx, WaterBox* arg1) {
u32 unk0C = arg1->unk_0C;
return unk0C & 0xFF;
u32 properties = arg1->properties;
return properties & 0xFF;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_bgcheck/func_80042548.s")

View file

@ -107,7 +107,7 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
thisx->params &= 0xFF;
if (thisx->params == 2) {
thisx->flags |= 0x30;
globalCtx->colCtx.stat.colHeader->waterBoxes[7].unk_02 = thisx->posRot.pos.y;
globalCtx->colCtx.stat.colHeader->waterBoxes[7].ySurface = thisx->posRot.pos.y;
this->actionFunc = func_8086C9A8;
return;
}
@ -394,7 +394,7 @@ void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx) {
}
func_8002F948(this, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG);
}
globalCtx->colCtx.stat.colHeader->waterBoxes[7].unk_02 = this->dyna.actor.posRot.pos.y;
globalCtx->colCtx.stat.colHeader->waterBoxes[7].ySurface = this->dyna.actor.posRot.pos.y;
}
void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx) {

View file

@ -60,7 +60,7 @@ void func_80881D94(BgHakaWater* this, GlobalContext* globalCtx) {
s32 i;
for (i = 0; i < 9; i++) {
globalCtx->colCtx.stat.colHeader->waterBoxes[i].unk_02 = (s16)this->actor.posRot.pos.y - 8;
globalCtx->colCtx.stat.colHeader->waterBoxes[i].ySurface = (s16)this->actor.posRot.pos.y - 8;
}
}

View file

@ -87,7 +87,7 @@ void BgMizuWater_SetWaterBoxesHeight(WaterBox* waterBoxes, s16 height) {
u32 i;
for (i = 0; i < 8; i++) {
waterBoxes[sWaterBoxIndexes[i]].unk_02 = height;
waterBoxes[sWaterBoxIndexes[i]].ySurface = height;
}
}
@ -139,7 +139,7 @@ void BgMizuWater_Init(Actor* thisx, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->actor.posRot.pos.y = this->baseY + 85.0f;
}
waterBoxes[6].unk_02 = this->actor.posRot.pos.y;
waterBoxes[6].ySurface = this->actor.posRot.pos.y;
break;
case 3:
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
@ -147,7 +147,7 @@ void BgMizuWater_Init(Actor* thisx, GlobalContext* globalCtx) {
if (1) {}
this->targetY = this->actor.posRot.pos.y;
}
waterBoxes[8].unk_02 = this->actor.posRot.pos.y;
waterBoxes[8].ySurface = this->actor.posRot.pos.y;
break;
case 4:
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
@ -155,7 +155,7 @@ void BgMizuWater_Init(Actor* thisx, GlobalContext* globalCtx) {
if (1) {}
this->targetY = this->actor.posRot.pos.y;
}
waterBoxes[16].unk_02 = this->actor.posRot.pos.y;
waterBoxes[16].ySurface = this->actor.posRot.pos.y;
break;
}
@ -255,7 +255,7 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, GlobalContext* globalCtx) {
globalCtx->unk_11D30[0] = 0;
this->actionFunc = BgMizuWater_WaitForAction;
}
waterBoxes[6].unk_02 = this->actor.posRot.pos.y;
waterBoxes[6].ySurface = this->actor.posRot.pos.y;
break;
case 3:
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
@ -267,7 +267,7 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, GlobalContext* globalCtx) {
globalCtx->unk_11D30[0] = 0;
this->actionFunc = BgMizuWater_WaitForAction;
}
waterBoxes[8].unk_02 = this->actor.posRot.pos.y;
waterBoxes[8].ySurface = this->actor.posRot.pos.y;
break;
case 4:
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
@ -279,7 +279,7 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, GlobalContext* globalCtx) {
globalCtx->unk_11D30[0] = 0;
this->actionFunc = BgMizuWater_WaitForAction;
}
waterBoxes[16].unk_02 = this->actor.posRot.pos.y;
waterBoxes[16].ySurface = this->actor.posRot.pos.y;
break;
}

View file

@ -43,9 +43,9 @@ void BgMoriIdomizu_SetupAction(BgMoriIdomizu* this, BgMoriIdomizuActionFunc acti
void BgMoriIdomizu_SetWaterLevel(GlobalContext* globalCtx, s16 waterLevel) {
WaterBox* waterBox = globalCtx->colCtx.stat.colHeader->waterBoxes;
waterBox[2].unk_02 = waterLevel;
waterBox[3].unk_02 = waterLevel;
waterBox[4].unk_02 = waterLevel;
waterBox[2].ySurface = waterLevel;
waterBox[3].ySurface = waterLevel;
waterBox[4].ySurface = waterLevel;
}
void BgMoriIdomizu_Init(Actor* thisx, GlobalContext* globalCtx) {

View file

@ -55,7 +55,7 @@ void func_808ABB84(BgSpot01Idomizu* this, GlobalContext* globalCtx) {
if (gSaveContext.eventChkInf[6] & 0x80) {
this->waterHeight = -550.0f;
}
globalCtx->colCtx.stat.colHeader->waterBoxes[0].unk_02 = this->actor.posRot.pos.y;
globalCtx->colCtx.stat.colHeader->waterBoxes[0].ySurface = this->actor.posRot.pos.y;
if (this->waterHeight < this->actor.posRot.pos.y) {
Audio_PlaySoundGeneral(NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG, &D_801333D4, 4, &D_801333E0, &D_801333E0,
&D_801333E8);

View file

@ -5,6 +5,7 @@
*/
#include "z_bg_spot09_obj.h"
#include "objects/object_spot09_obj/object_spot09_obj.h"
#define FLAGS 0x00000000
@ -31,7 +32,7 @@ const ActorInit Bg_Spot09_Obj_InitVars = {
(ActorFunc)BgSpot09Obj_Draw,
};
static UNK_PTR D_808B1F90[] = { NULL, 0x06005520, 0x0600283C, 0x06008458, 0x06007580 };
static UNK_PTR D_808B1F90[] = { NULL, gBgSpot09Col1, gBgSpot09Col2, gBgSpot09Col3, gBgSpot09Col4 };
static s32 (*D_808B1FA4[])(BgSpot09Obj* this, GlobalContext* globalCtx) = {
func_808B1BEC,
@ -51,9 +52,7 @@ static InitChainEntry sInitChain2[] = {
ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP),
};
static Gfx* sDLists[] = { 0x06000100, 0x06003970, 0x06001120, 0x06007D40, 0x06006210 };
extern Gfx D_06008010[];
static Gfx* sDLists[] = { gBgSpot09DL1, gBgSpot09DL2, gBgSpot09DL3, gBgSpot09DL4, gBgSpot09DL5 };
s32 func_808B1AE0(BgSpot09Obj* this, GlobalContext* globalCtx) {
s32 carpentersRescued;
@ -176,7 +175,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++, D_06008010);
gSPDisplayList(POLY_XLU_DISP++, gBgSpot09DL6);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot09_obj.c", 396);
}

View file

@ -6,6 +6,7 @@
#include "z_bg_spot11_bakudankabe.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "objects/object_spot11_obj/object_spot11_obj.h"
#define FLAGS 0x00000030
@ -37,8 +38,6 @@ static ColliderCylinderInit sCylinderInit = {
static Vec3f D_808B272C = { 2259.0f, 108.0f, -1550.0f };
static Vec3f D_808B2738 = { 2259.0f, 108.0f, -1550.0f };
extern UNK_TYPE D_06001A58;
extern Gfx D_06001980[];
extern Gfx D_0500A880[];
void func_808B2180(BgSpot11Bakudankabe* this, GlobalContext* globalCtx) {
@ -109,7 +108,7 @@ void BgSpot11Bakudankabe_Init(Actor* thisx, GlobalContext* globalCtx) {
return;
}
func_808B2180(this, globalCtx);
DynaPolyInfo_Alloc(&D_06001A58, &sp24);
DynaPolyInfo_Alloc(gBgSpot11Col, &sp24);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, sp24);
Actor_SetScale(&this->dyna.actor, 1.0f);
osSyncPrintf("(spot11 爆弾壁)(arg_data 0x%04x)\n", this->dyna.actor.params);
@ -139,5 +138,5 @@ void BgSpot11Bakudankabe_Update(Actor* thisx, GlobalContext* globalCtx) {
void BgSpot11Bakudankabe_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgSpot11Bakudankabe* this = THIS;
Gfx_DrawDListOpa(globalCtx, D_06001980);
Gfx_DrawDListOpa(globalCtx, gBgSpot11DL1);
}

View file

@ -48,7 +48,7 @@ extern Gfx D_06000870[];
void func_808B27F0(GlobalContext* globalCtx, s16 arg1) {
WaterBox* waterBox = &globalCtx->colCtx.stat.colHeader->waterBoxes[0];
waterBox->unk_02 = arg1;
waterBox->ySurface = arg1;
}
s32 func_808B280C(GlobalContext* globalCtx) {

View file

@ -5,6 +5,7 @@
*/
#include "z_bg_spot17_funen.h"
#include "objects/object_spot17_obj/object_spot17_obj.h"
#define FLAGS 0x00000030
@ -32,8 +33,6 @@ static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
extern Gfx D_06000B40[];
void BgSpot17Funen_Init(Actor* thisx, GlobalContext* globalCtx) {
BgSpot17Funen* this = THIS;
@ -68,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++, D_06000B40);
gSPDisplayList(POLY_XLU_DISP++, gBgSpot17DL1);
if (1) {}

View file

@ -60,7 +60,7 @@ void BgYdanHasi_Init(Actor* thisx, GlobalContext* globalCtx) {
// Water the moving platform floats on in B1. Never runs in Master Quest
thisx->initPosRot.pos.y = (thisx->initPosRot.pos.y + -5.0f);
thisx->posRot.pos.y = thisx->initPosRot.pos.y;
waterBox->unk_02 = thisx->initPosRot.pos.y;
waterBox->ySurface = thisx->initPosRot.pos.y;
this->actionFunc = BgYdanHasi_InitWater;
} else {
if (thisx->params == 0) {
@ -68,7 +68,7 @@ void BgYdanHasi_Init(Actor* thisx, GlobalContext* globalCtx) {
DynaPolyInfo_Alloc(&D_06007798, &localConst);
thisx->scale.z = 0.15f;
thisx->scale.x = 0.15f;
thisx->posRot.pos.y = (waterBox->unk_02 + 20.0f);
thisx->posRot.pos.y = (waterBox->ySurface + 20.0f);
this->actionFunc = BgYdanHasi_UpdateFloatingBlock;
} else {
// 3 platforms on 2F
@ -100,7 +100,7 @@ void BgYdanHasi_UpdateFloatingBlock(BgYdanHasi* this, GlobalContext* globalCtx)
this->dyna.actor.posRot.pos.z =
((Math_CosS(this->dyna.actor.posRot.rot.y) * framesAfterMath) + this->dyna.actor.initPosRot.pos.z);
waterBox = &globalCtx->colCtx.stat.colHeader->waterBoxes[1];
this->dyna.actor.posRot.pos.y = waterBox->unk_02 + 20.0f;
this->dyna.actor.posRot.pos.y = waterBox->ySurface + 20.0f;
if (this->timer != 0) {
this->timer--;
}
@ -134,7 +134,7 @@ WaterBox* BgYdanHasi_MoveWater(BgYdanHasi* this, GlobalContext* globalCtx) {
func_8002F948(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG);
}
waterBox = globalCtx->colCtx.stat.colHeader->waterBoxes;
globalCtx->colCtx.stat.colHeader->waterBoxes[1].unk_02 = this->dyna.actor.posRot.pos.y;
globalCtx->colCtx.stat.colHeader->waterBoxes[1].ySurface = this->dyna.actor.posRot.pos.y;
if (1) {}
return waterBox + 0x1;
}

View file

@ -1,5 +1,6 @@
#include "z_demo_effect.h"
#include "vt.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000030
@ -55,8 +56,6 @@ void DemoEffect_InitPositionFromCsAction(DemoEffect* this, GlobalContext* global
void DemoEffect_MoveToCsEndpoint(DemoEffect* this, GlobalContext* globalCtx, s32 csActionId, s32 shouldUpdateFacing);
void DemoEffect_MoveGetItem(DemoEffect* this, GlobalContext* globalCtx, s32 csActionId, f32 speed);
extern Gfx D_04010130[]; // lightBall
extern Gfx D_06001240[]; // kokiriJewel
extern Gfx D_060010E0[]; // kokiriJewelHolder
extern Gfx D_060020A0[]; // goronJewel
@ -1882,7 +1881,7 @@ void DemoEffect_DrawLightEffect(Actor* thisx, GlobalContext* globalCtx) {
if (this->light.flicker == 0) {
this->light.flicker = 1;
} else {
disp = (u32)D_04010130; // necessary to match, should be able to remove after fake matches are fixed
disp = (u32)gGameKeepMoteDL0; // 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],
@ -1925,7 +1924,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++, D_04010130);
gSPDisplayList(POLY_XLU_DISP++, gGameKeepMoteDL0);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2907);
}

View file

@ -6,6 +6,7 @@
#include "z_en_butte.h"
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000000
@ -122,7 +123,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(&D_04010130));
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&gGameKeepMoteDL0));
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_choo.c", 326);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_en_pu_box.h"
#include "objects/object_pu_box/object_pu_box.h"
#define FLAGS 0x00000010
@ -27,9 +28,6 @@ const ActorInit En_Pu_box_InitVars = {
(ActorFunc)EnPubox_Draw,
};
extern Gfx D_06000380[];
extern UNK_TYPE D_060006D0;
void EnPubox_Init(Actor* thisx, GlobalContext* globalCtx) {
u32 local_c = 0;
EnPubox* this = THIS;
@ -59,7 +57,7 @@ void EnPubox_Init(Actor* thisx, GlobalContext* globalCtx) {
this->dyna.unk_15C = 0;
thisx->unk_1F = 1;
thisx->gravity = -2.0f;
DynaPolyInfo_Alloc(&D_060006D0, &local_c);
DynaPolyInfo_Alloc(&gPuBoxCol, &local_c);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, local_c);
}
@ -88,5 +86,5 @@ void EnPubox_Update(Actor* thisx, GlobalContext* globalCtx) {
}
void EnPubox_Draw(Actor* thisx, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, &D_06000380);
Gfx_DrawDListOpa(globalCtx, gPuBoxDL2);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_en_vase.h"
#include "objects/object_vase/object_vase.h"
#define FLAGS 0x00000010
@ -26,8 +27,6 @@ const ActorInit En_Vase_InitVars = {
(ActorFunc)EnVase_Draw,
};
extern Gfx D_06000000[];
void EnVase_Init(Actor* thisx, GlobalContext* globalCtx) {
EnVase* this = THIS;
@ -40,5 +39,5 @@ void EnVase_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
void EnVase_Draw(Actor* thisx, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, &D_06000000);
Gfx_DrawDListOpa(globalCtx, &gVaseDL);
}

View file

@ -5,6 +5,7 @@
*/
#include "z_magic_dark.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x02000010
@ -269,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++, D_04010130);
gSPDisplayList(POLY_XLU_DISP++, gGameKeepMoteDL0);
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++, D_04010130);
gSPDisplayList(POLY_XLU_DISP++, gGameKeepMoteDL0);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_magic_dark.c", 643);
}

View file

@ -1,67 +1,11 @@
#include "z_magic_dark.h"
extern UNK_TYPE D_04032490[];
static UNK_TYPE sDiamondTexture[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000000, 0x00000102, 0x01000001, 0x00000000, 0x00000000, 0x00010000, 0x00000000,
0x00000001, 0x00000000, 0x00000204, 0x02000101, 0x00000000, 0x00000000, 0x00010101, 0x00000001, 0x00000001,
0x00000000, 0x00000307, 0x03010102, 0x00000000, 0x00000000, 0x01010102, 0x00000002, 0x01010001, 0x00000000,
0x00010509, 0x04010103, 0x01000000, 0x00000000, 0x01020202, 0x00000104, 0x03020101, 0x00000000, 0x0001060C,
0x06010103, 0x01000000, 0x00000000, 0x02020202, 0x00000206, 0x05040101, 0x00000000, 0x0001080F, 0x07010103,
0x01000001, 0x00000000, 0x03030202, 0x00010408, 0x07060201, 0x00000000, 0x00010911, 0x08010103, 0x01000001,
0x00000001, 0x04040303, 0x0101050B, 0x0A080301, 0x00000000, 0x00020B14, 0x0A010103, 0x01000001, 0x00010102,
0x06060403, 0x0203070D, 0x0C0A0401, 0x00000000, 0x00030D17, 0x0B020103, 0x01010001, 0x00010205, 0x09080503,
0x0205090E, 0x0E0D0501, 0x00000000, 0x01050F18, 0x0C020102, 0x01010001, 0x00010408, 0x0D0B0502, 0x03070B0F,
0x0F0F0601, 0x00000000, 0x02081219, 0x0D030102, 0x00010001, 0x0001050B, 0x130F0702, 0x04080B0F, 0x10110801,
0x00000000, 0x030C1419, 0x0E040101, 0x00010001, 0x0001070F, 0x19140A03, 0x05090B0E, 0x10130A02, 0x00000001,
0x05121719, 0x0E040100, 0x00010102, 0x01020A13, 0x1F1A0F06, 0x06090A0C, 0x10150B03, 0x01000001, 0x08181B19,
0x0F050201, 0x01020102, 0x02040D18, 0x2721140A, 0x080A0A0C, 0x11160D04, 0x02020001, 0x0B1E1E19, 0x10070403,
0x02030202, 0x0408111D, 0x2F2A1B0F, 0x0A0B0B0D, 0x12180F06, 0x04040101, 0x0E242119, 0x11090606, 0x04040304,
0x070C1623, 0x38322214, 0x0E0D0E10, 0x141A1108, 0x06060102, 0x112A241A, 0x120B0909, 0x06050507, 0x0B111C29,
0x413B291B, 0x13101216, 0x181B1209, 0x08080304, 0x152F271B, 0x140E0C0C, 0x0907080B, 0x10172230, 0x4A433223,
0x1813161D, 0x1D1E140B, 0x0A0A0608, 0x1A342B1E, 0x17110F0F, 0x0C0B0D11, 0x171F2A38, 0x534C3B2B, 0x1E161C25,
0x2221160D, 0x0B0C0A0E, 0x21393023, 0x1B151211, 0x0F0F1217, 0x1E273240, 0x5C564534, 0x251B242F, 0x2924190F,
0x0E0E0F17, 0x293E372B, 0x21181513, 0x1113181E, 0x26303B48, 0x655F4E3E, 0x2D222D3A, 0x30271C13, 0x11111520,
0x32453F35, 0x281D1714, 0x14181E25, 0x2F3A4551, 0x6F695746, 0x362B3744, 0x372A1F17, 0x15151D2A, 0x3D4D483F,
0x31231A14, 0x171E252E, 0x38444F5B, 0x7974614F, 0x4036404C, 0x3C2D231D, 0x1A1A2637, 0x4957524A, 0x3A2A1D15,
0x1A252E37, 0x43505B66, 0x837F6C59, 0x4A414750, 0x3F2E2723, 0x21213245, 0x57625D54, 0x43312216, 0x1F2D3741,
0x4D5B6671, 0x8E8B7662, 0x544B4D51, 0x3F302C2C, 0x2B2D4054, 0x656D675E, 0x4C3A281A, 0x2536414B, 0x5867717B,
0x9896816C, 0x5E545150, 0x3F323337, 0x383C5063, 0x71777168, 0x56432F21, 0x2C3F4B56, 0x63727C86, 0xA2A08B76,
0x685D5651, 0x3F343A43, 0x484D5F70, 0x7D827B71, 0x5F4C3829, 0x34465462, 0x6F7C8690, 0xACA99581, 0x72655B53,
0x42394450, 0x585E6D7C, 0x878C8479, 0x68574334, 0x3D4E5E6E, 0x7B88919A, 0xB4B09E8C, 0x7C6E6155, 0x46414F5F,
0x676E7B87, 0x92958C80, 0x71625041, 0x4857697A, 0x86929BA3, 0xBBB7A796, 0x86776658, 0x4D4B5C6E, 0x777D8791,
0x9C9F9487, 0x7A6D5C4F, 0x54617486, 0x919CA4AB, 0xC2BBAFA1, 0x907F6C5D, 0x55576A7E, 0x8589929A, 0xA5A99D90,
0x8478695E, 0x5F697F93, 0x9DA6ACB2, 0xC8BFB6AC, 0x9A877465, 0x6064788D, 0x92949BA1, 0xADB2A89C, 0x8F83766C,
0x6A718AA1, 0xA9AFB2B8, 0xCEC3BDB6, 0xA4907E70, 0x6C72879B, 0x9C9CA2A8, 0xB5BBB3A9, 0x9B8E8279, 0x737693AE,
0xB4B6B9BE, 0xD5C9C5BF, 0xAF9C8B7E, 0x7A8094A5, 0xA4A0A7B0, 0xBDC5C0B7, 0xA8998E85, 0x7B7B9AB7, 0xBDBEC0C5,
0xDBCFCCC8, 0xBAA9998E, 0x898E9FAD, 0xA8A1ACB8, 0xC6CECCC5, 0xB6A4988F, 0x8381A0BE, 0xC4C6C8CD, 0xE0D4D3D1,
0xC5B7A89D, 0x989CA8B3, 0xABA2B0C0, 0xCED8D8D2, 0xC2AEA298, 0x8C89A6C3, 0xCACED1D5, 0xE5DBDAD8, 0xD0C4B6AB,
0xA6A8B1B8, 0xAEA4B5C7, 0xD6E0E3DE, 0xCDB7ABA2, 0x9590ACC9, 0xD0D5D9DC, 0xEBE1E0DE, 0xDAD1C4B9, 0xB2B2B8BC,
0xB1A7B9CE, 0xDEE8ECE8, 0xD6BDB3AC, 0x9E98B3CE, 0xD6DBE0E3, 0xF0E9E6E3, 0xE3DDD2C6, 0xBCBABEC0, 0xB4AABED5,
0xE5EFF3F0, 0xDDC2BBB6, 0xA79FB9D4, 0xDCE2E7E9, 0xF5F0ECE7, 0xEAE8DED2, 0xC6C1C2C3, 0xB7ADC4DD, 0xEBF3F8F5,
0xE1C6C2C1, 0xB1A7BFD8, 0xE1E7EDF0, 0xF9F5F1EB, 0xF0F0E9DD, 0xCFC7C7C6, 0xBBB1CBE5, 0xF0F5FBF7, 0xE3CACACC,
0xBBB0C5DC, 0xE5ECF4F6, 0xFCF9F5EE, 0xF5F7F0E7, 0xD7CDCCCB, 0xBFB7D2EB, 0xF4F7FBF6, 0xE4CDD2D6, 0xC6B9CBE0,
0xE9F1F9FB, 0xFDFCF8F2, 0xF9FAF6EE, 0xDFD5D3D0, 0xC5BDD9F0, 0xF7F9FBF4, 0xE5D0D9E0, 0xD1C2D2E4, 0xEDF5FCFE,
0xFEFDFAF4, 0xFBFCF9F3, 0xE6DDDAD7, 0xCBC3DEF4, 0xFAFBFCF3, 0xE5D3DEE8, 0xDBCDDAE9, 0xF2F8FEFF, 0xFEFDFCF6,
0xFCFDFCF7, 0xECE4E2DF, 0xD2C9E3F7, 0xFCFDFBF3, 0xE5D6E4EF, 0xE3D6E1EE, 0xF6FAFEFF, 0xFEFDFDF8, 0xFCFDFDFA,
0xF1EAE9E7, 0xD9CFE7F9, 0xFEFEFBF3, 0xE7DBE9F4, 0xEBDFE8F3, 0xF9FCFFFF, 0xFEFDFDFA, 0xFDFDFEFC, 0xF5EFEFEE,
0xE0D5ECFB, 0xFFFEFBF3, 0xE9E1EEF8, 0xF0E6EEF6, 0xFCFDFFFF, 0xFEFDFEFC, 0xFEFDFEFE, 0xF8F4F4F3, 0xE7DDF1FD,
0xFFFEFBF3, 0xECE7F3FC, 0xF5ECF2F9, 0xFDFEFFFF, 0xFEFDFFFE, 0xFFFDFEFE, 0xFAF7F8F7, 0xEDE5F5FE, 0xFFFEFBF5,
0xF0EDF7FD, 0xF9F1F5FA, 0xFEFFFFFF, 0xFEFDFFFF, 0xFFFEFEFF, 0xFCFAFAFA, 0xF2ECF8FE, 0xFFFEFCF7, 0xF4F3FAFE,
0xFBF6F8FB, 0xFEFFFFFF, 0xFEFDFFFF, 0xFFFEFEFF, 0xFDFCFCFC, 0xF7F2FBFF, 0xFFFEFCFA, 0xF8F7FCFF, 0xFEFAFBFC,
0xFFFFFFFF, 0xFEFEFFFF, 0xFFFFFFFF, 0xFEFDFEFD, 0xFAF7FCFF, 0xFFFEFDFC, 0xFCFBFDFF, 0xFFFDFDFD, 0xFFFFFFFF,
0xFFFEFFFF, 0xFFFFFFFF, 0xFFFEFEFE, 0xFCFAFDFF, 0xFFFEFEFE, 0xFEFDFEFF, 0xFFFFFEFD, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFDFCFEFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFEFEFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
static u64 sDiamondTexture[] = {
#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),

View file

@ -78,7 +78,7 @@ void EffectSsGRipple_DrawRipple(GlobalContext* globalCtx, EffectSs* this, UNK_PT
radius = this->rRadius * 0.0025f;
if ((this->rWaterBoxNum != -1) && (this->rWaterBoxNum < globalCtx->colCtx.stat.colHeader->nbWaterBoxes)) {
yPos = (this->rWaterBoxNum + globalCtx->colCtx.stat.colHeader->waterBoxes)->unk_02;
yPos = (this->rWaterBoxNum + globalCtx->colCtx.stat.colHeader->waterBoxes)->ySurface;
} else {
yPos = this->pos.y;
}