mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-07 06:40:15 +00:00
Decompile z_oceff_wipe (#122)
* Decompile z_oceff_wipe - z_oceff_wipe: OK - z_oceff_wipe2: OK - z_oceff_wipe3: OK - z_oceff_wipe4: OK - Add patched libmalloc to ido 7 to prevent segfaults - Add CUR_CAM macro * Rename CUR_CAM to ACTIVE_CAM * Fixes in PR #122
This commit is contained in:
parent
4c68c61df5
commit
40836f5d82
56 changed files with 978 additions and 1670 deletions
|
@ -220,7 +220,7 @@ void func_8086C29C(BgBdanObjects* this, GlobalContext* globalCtx) {
|
|||
if (this->unk_16A != 0) {
|
||||
this->unk_16A -= 1;
|
||||
if (this->unk_16A == 0) {
|
||||
temp = Quake_Add(globalCtx->cameraPtrs[globalCtx->activeCamera], 1);
|
||||
temp = Quake_Add(ACTIVE_CAM, 1);
|
||||
Quake_SetSpeed(temp, 0x3A98);
|
||||
Quake_SetQuakeValues(temp, 0, 1, 0xFA, 1);
|
||||
Quake_SetCountdown(temp, 0xA);
|
||||
|
@ -234,7 +234,7 @@ void func_8086C29C(BgBdanObjects* this, GlobalContext* globalCtx) {
|
|||
BgBdanObjects_SetContactRu1(this, 4);
|
||||
this->unk_16A = 0xA;
|
||||
this->actionFunc = func_8086C55C;
|
||||
func_8005B1A4(globalCtx->cameraPtrs[globalCtx->activeCamera]);
|
||||
func_8005B1A4(ACTIVE_CAM);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ void func_80899950(BgJyaKanaami* this, GlobalContext* globalCtx) {
|
|||
if (Math_ApproxUpdateScaledS(&this->actor.posRot.rot.x, 0x4000, this->unk_168)) {
|
||||
func_80899A08(this);
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_TRAP_BOUND);
|
||||
var = Quake_Add(globalCtx->cameraPtrs[globalCtx->activeCamera], 3);
|
||||
var = Quake_Add(ACTIVE_CAM, 3);
|
||||
Quake_SetSpeed(var, 25000);
|
||||
Quake_SetQuakeValues(var, 2, 0, 0, 0);
|
||||
Quake_SetCountdown(var, 0x10);
|
||||
|
|
|
@ -117,7 +117,7 @@ void func_808B318C(BgSpot12Gate* this, GlobalContext* globalCtx) {
|
|||
Math_ApproxF(&thisx->velocity.y, 1.6f, 0.03f);
|
||||
if (Math_ApproxF(&thisx->posRot.pos.y, thisx->initPosRot.pos.y + 200.0f, thisx->velocity.y)) {
|
||||
func_808B3274(this);
|
||||
var = Quake_Add(globalCtx->cameraPtrs[globalCtx->activeCamera], 3);
|
||||
var = Quake_Add(ACTIVE_CAM, 3);
|
||||
Quake_SetSpeed(var, -0x3CB0);
|
||||
Quake_SetQuakeValues(var, 3, 0, 0, 0);
|
||||
Quake_SetCountdown(var, 0xC);
|
||||
|
|
|
@ -60,9 +60,7 @@ void func_808B7478(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_spot17_funen.c", 153);
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
Matrix_RotateY((s16)(func_8005A9F4(globalCtx->cameraPtrs[globalCtx->activeCamera]) - thisx->shape.rot.y + 0x8000) *
|
||||
9.58738019108e-05f,
|
||||
MTXMODE_APPLY);
|
||||
Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) - thisx->shape.rot.y + 0x8000) * 9.58738019108e-05f, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot17_funen.c", 161),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
|
|
@ -159,7 +159,7 @@ void DoorAna_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
this->actionFunc(this, globalCtx);
|
||||
// changes the grottos facing angle based on camera angle
|
||||
this->actor.shape.rot.y = func_8005A9F4(globalCtx->cameraPtrs[globalCtx->activeCamera]) + 0x8000;
|
||||
this->actor.shape.rot.y = func_8005A9F4(ACTIVE_CAM) + 0x8000;
|
||||
}
|
||||
|
||||
void DoorAna_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
|
|
@ -436,7 +436,7 @@ void EnMa1_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Gfx* dispRefs[5];
|
||||
|
||||
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ma1.c", 1226);
|
||||
camera = globalCtx->cameraPtrs[globalCtx->activeCamera];
|
||||
camera = ACTIVE_CAM;
|
||||
someFloat = Math_Vec3f_DistXZ(&this->actor.posRot.pos, &camera->eye);
|
||||
func_800F6268(someFloat, 0x2F);
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
|
|
|
@ -401,7 +401,7 @@ void EnMa2_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Gfx* dispRefs[5];
|
||||
|
||||
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ma2.c", 955);
|
||||
camera = globalCtx->cameraPtrs[globalCtx->activeCamera];
|
||||
camera = ACTIVE_CAM;
|
||||
someFloat = Math_Vec3f_DistXZ(&this->actor.posRot.pos, &camera->eye);
|
||||
func_800F6268(someFloat, 0x2F);
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
|
|
|
@ -99,21 +99,16 @@ s32 D_80AF087C = 0;
|
|||
u32 D_80AF1938 = 0;
|
||||
|
||||
EnRu1ActionFunc D_80AF193C[] = {
|
||||
func_80AEC0B4, func_80AEC100, func_80AEC130, func_80AEC17C,
|
||||
func_80AEC1D4, func_80AEC244, func_80AEC2C0, func_80AECA94,
|
||||
func_80AECAB4, func_80AECAD4, func_80AECB18, func_80AECB60,
|
||||
func_80AECBB8, func_80AECC1C, func_80AECC84, func_80AED304,
|
||||
func_80AED324, func_80AED344, func_80AED374, func_80AED3A4,
|
||||
func_80AED3E0, func_80AED414, func_80AEF29C, func_80AEF2AC,
|
||||
func_80AEF2D0, func_80AEF354, func_80AEF3A8, func_80AEEBD4,
|
||||
func_80AEEC5C, func_80AEECF0, func_80AEED58, func_80AEEDCC,
|
||||
func_80AEEE34, func_80AEEE9C, func_80AEEF08, func_80AEEF5C,
|
||||
func_80AEF9D8, func_80AEFA2C, func_80AEFAAC, func_80AEFB04,
|
||||
func_80AEFB68, func_80AEFCE8, func_80AEFBC8, func_80AEFC24,
|
||||
func_80AEFECC, func_80AEFF40,
|
||||
func_80AEC0B4, func_80AEC100, func_80AEC130, func_80AEC17C, func_80AEC1D4, func_80AEC244, func_80AEC2C0,
|
||||
func_80AECA94, func_80AECAB4, func_80AECAD4, func_80AECB18, func_80AECB60, func_80AECBB8, func_80AECC1C,
|
||||
func_80AECC84, func_80AED304, func_80AED324, func_80AED344, func_80AED374, func_80AED3A4, func_80AED3E0,
|
||||
func_80AED414, func_80AEF29C, func_80AEF2AC, func_80AEF2D0, func_80AEF354, func_80AEF3A8, func_80AEEBD4,
|
||||
func_80AEEC5C, func_80AEECF0, func_80AEED58, func_80AEEDCC, func_80AEEE34, func_80AEEE9C, func_80AEEF08,
|
||||
func_80AEEF5C, func_80AEF9D8, func_80AEFA2C, func_80AEFAAC, func_80AEFB04, func_80AEFB68, func_80AEFCE8,
|
||||
func_80AEFBC8, func_80AEFC24, func_80AEFECC, func_80AEFF40,
|
||||
};
|
||||
|
||||
EnRu1PreLimbDrawFunc D_80AF19F4[]= {
|
||||
EnRu1PreLimbDrawFunc D_80AF19F4[] = {
|
||||
func_80AF0278,
|
||||
};
|
||||
|
||||
|
|
|
@ -61,11 +61,9 @@ static u32 D_80AF4118 = 0;
|
|||
#include "z_en_ru2_cutscene_data.c"
|
||||
|
||||
static EnRu2ActionFunc D_80AF50BC[] = {
|
||||
func_80AF2CB4, func_80AF2CD4, func_80AF2CF4, func_80AF2D2C,
|
||||
func_80AF2D6C, func_80AF2DAC, func_80AF2DEC, func_80AF3144,
|
||||
func_80AF3174, func_80AF31C8, func_80AF3604, func_80AF3624,
|
||||
func_80AF366C, func_80AF36AC, func_80AF3BC8, func_80AF3C04,
|
||||
func_80AF3C64, func_80AF3CB8, func_80AF3D0C, func_80AF3D60,
|
||||
func_80AF2CB4, func_80AF2CD4, func_80AF2CF4, func_80AF2D2C, func_80AF2D6C, func_80AF2DAC, func_80AF2DEC,
|
||||
func_80AF3144, func_80AF3174, func_80AF31C8, func_80AF3604, func_80AF3624, func_80AF366C, func_80AF36AC,
|
||||
func_80AF3BC8, func_80AF3C04, func_80AF3C64, func_80AF3CB8, func_80AF3D0C, func_80AF3D60,
|
||||
};
|
||||
|
||||
static EnRu2DrawFunc D_80AF510C[] = {
|
||||
|
@ -672,7 +670,7 @@ void func_80AF39DC(EnRu2* this, GlobalContext* globalCtx) {
|
|||
if (this->unk_2C2 % 6 == 3) {
|
||||
player = PLAYER;
|
||||
osSyncPrintf("うおりゃー! \n");
|
||||
func_8005B1A4(globalCtx->cameraPtrs[globalCtx->activeCamera]);
|
||||
func_8005B1A4(ACTIVE_CAM);
|
||||
player->actor.posRot.pos.x = 820.0f;
|
||||
player->actor.posRot.pos.y = 0.0f;
|
||||
player->actor.posRot.pos.z = 180.0f;
|
||||
|
@ -683,7 +681,7 @@ void func_80AF39DC(EnRu2* this, GlobalContext* globalCtx) {
|
|||
this->unk_2C3 = dialogState;
|
||||
if (func_8010BDBC(msgCtx) == 2) {
|
||||
this->action = 18;
|
||||
func_8005B1A4(globalCtx->cameraPtrs[globalCtx->activeCamera]);
|
||||
func_8005B1A4(ACTIVE_CAM);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -517,15 +517,12 @@ void EnWallmas_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
EnWallmas_ColUpdate(this, globalCtx);
|
||||
this->actionFunc(this, globalCtx);
|
||||
|
||||
if ((this->actionFunc == EnWallmas_WaitToDrop) ||
|
||||
(this->actionFunc == EnWallmas_WaitForProximity) ||
|
||||
(this->actionFunc == EnWallmas_TakePlayer) ||
|
||||
(this->actionFunc == EnWallmas_WaitForSwitchFlag)) {
|
||||
if ((this->actionFunc == EnWallmas_WaitToDrop) || (this->actionFunc == EnWallmas_WaitForProximity) ||
|
||||
(this->actionFunc == EnWallmas_TakePlayer) || (this->actionFunc == EnWallmas_WaitForSwitchFlag)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((this->actionFunc != EnWallmas_ReturnToCeiling) &&
|
||||
(this->actionFunc != EnWallmas_TakePlayer)) {
|
||||
if ((this->actionFunc != EnWallmas_ReturnToCeiling) && (this->actionFunc != EnWallmas_TakePlayer)) {
|
||||
Actor_MoveForward(&this->actor);
|
||||
}
|
||||
|
||||
|
@ -563,8 +560,7 @@ void EnWallmas_DrawXlu(EnWallmas* this, GlobalContext* globalCtx) {
|
|||
f32 xzScale;
|
||||
Gfx* dispRefs[3];
|
||||
|
||||
if ((this->actor.floorPoly == NULL) ||
|
||||
((this->timer >= 0x51) && (this->actionFunc != EnWallmas_Stun))) {
|
||||
if ((this->actor.floorPoly == NULL) || ((this->timer >= 0x51) && (this->actionFunc != EnWallmas_Stun))) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -578,10 +574,8 @@ void EnWallmas_DrawXlu(EnWallmas* this, GlobalContext* globalCtx) {
|
|||
func_80038A28(this->actor.floorPoly, this->actor.posRot.pos.x, this->actor.unk_80, this->actor.posRot.pos.z, &mf);
|
||||
Matrix_Mult(&mf, MTXMODE_NEW);
|
||||
|
||||
if ((this->actionFunc != EnWallmas_WaitToDrop) &&
|
||||
(this->actionFunc != EnWallmas_ReturnToCeiling) &&
|
||||
(this->actionFunc != EnWallmas_TakePlayer) &&
|
||||
(this->actionFunc != EnWallmas_WaitForSwitchFlag)) {
|
||||
if ((this->actionFunc != EnWallmas_WaitToDrop) && (this->actionFunc != EnWallmas_ReturnToCeiling) &&
|
||||
(this->actionFunc != EnWallmas_TakePlayer) && (this->actionFunc != EnWallmas_WaitForSwitchFlag)) {
|
||||
xzScale = this->actor.scale.x * 50.0f;
|
||||
} else {
|
||||
xzScale = ((0x50 - this->timer) >= 0x51 ? 0x50 : (0x50 - this->timer)) * TIMER_SCALE;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_oceff_wipe.h"
|
||||
#include <vt.h>
|
||||
|
||||
#define FLAGS 0x02000010
|
||||
|
||||
|
@ -15,7 +16,6 @@ void OceffWipe_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void OceffWipe_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void OceffWipe_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
const ActorInit Oceff_Wipe_InitVars = {
|
||||
ACTOR_OCEFF_WIPE,
|
||||
ACTORTYPE_ITEMACTION,
|
||||
|
@ -27,11 +27,104 @@ const ActorInit Oceff_Wipe_InitVars = {
|
|||
(ActorFunc)OceffWipe_Update,
|
||||
(ActorFunc)OceffWipe_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe/OceffWipe_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe/OceffWipe_Destroy.s")
|
||||
#include "z_oceff_wipe_gfx.c"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe/OceffWipe_Update.s")
|
||||
u8 sOceffWipeAlphaIndices[] = {
|
||||
0x01, 0x10, 0x22, 0x01, 0x20, 0x12, 0x01, 0x20, 0x12, 0x01,
|
||||
0x10, 0x22, 0x01, 0x20, 0x12, 0x01, 0x12, 0x21, 0x01, 0x02,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe/OceffWipe_Draw.s")
|
||||
void OceffWipe_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe* this = THIS;
|
||||
Actor_SetScale(&this->actor, 0.1f);
|
||||
this->counter = 0;
|
||||
this->actor.posRot.pos = ACTIVE_CAM->eye;
|
||||
osSyncPrintf(VT_FGCOL(CYAN) " WIPE arg_data = %d\n" VT_RST, this->actor.params);
|
||||
}
|
||||
|
||||
void OceffWipe_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe* this = THIS;
|
||||
Player* player = PLAYER;
|
||||
|
||||
func_800876C8(globalCtx);
|
||||
if (gSaveContext.nayrusLoveTimer) {
|
||||
player->unk_692 |= 0x40;
|
||||
}
|
||||
}
|
||||
|
||||
void OceffWipe_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe* this = THIS;
|
||||
this->actor.posRot.pos = ACTIVE_CAM->eye;
|
||||
if (this->counter < 100) {
|
||||
this->counter++;
|
||||
} else {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
void OceffWipe_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
u32 scroll;
|
||||
OceffWipe* this = THIS;
|
||||
f32 z;
|
||||
GraphicsContext* gfxCtx;
|
||||
u8 alphaTable[3];
|
||||
s32 i;
|
||||
Vec3f eye;
|
||||
Vtx(*vtxPtr)[2];
|
||||
Vec3f vec;
|
||||
Gfx* dispRefs[5];
|
||||
|
||||
scroll = globalCtx->state.frames & 0xFF;
|
||||
|
||||
eye = ACTIVE_CAM->eye;
|
||||
func_8005AFB4(&vec, ACTIVE_CAM);
|
||||
gfxCtx = globalCtx->state.gfxCtx;
|
||||
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_wipe.c", 346);
|
||||
if (this->counter < 32) {
|
||||
z = Math_Sins(this->counter << 9) * 1400;
|
||||
} else {
|
||||
z = 1400;
|
||||
}
|
||||
|
||||
if (this->counter >= 80) {
|
||||
alphaTable[0] = 0;
|
||||
alphaTable[1] = (0x64 - this->counter) * 8;
|
||||
alphaTable[2] = (0x64 - this->counter) * 12;
|
||||
} else {
|
||||
alphaTable[0] = 0;
|
||||
alphaTable[1] = 0xA0;
|
||||
alphaTable[2] = 0xFF;
|
||||
}
|
||||
|
||||
for (i = 0; i < 20; i++) {
|
||||
vtxPtr = (Vtx(*)[2])vertices;
|
||||
vtxPtr[i][0].v.cn[3] = alphaTable[((sOceffWipeAlphaIndices[i] & 0xF0) >> 4)];
|
||||
vtxPtr[i][1].v.cn[3] = alphaTable[sOceffWipeAlphaIndices[i] & 0xF];
|
||||
}
|
||||
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
|
||||
Matrix_Translate(eye.x + vec.x, eye.y + vec.y, eye.z + vec.z, MTXMODE_NEW);
|
||||
Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY);
|
||||
func_800D1FD4(&globalCtx->mf_11DA0);
|
||||
Matrix_Translate(0.0f, 0.0f, -z, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_oceff_wipe.c", 375),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
if (this->actor.params) {
|
||||
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0x00, 0x00, 0xAA, 0xFF, 0xFF, 0xFF);
|
||||
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0x00, 0x96, 0xFF, 0x80);
|
||||
} else {
|
||||
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0x00, 0x00, 0xFF, 0xFF, 0xC8, 0xFF);
|
||||
gDPSetEnvColor(gfxCtx->polyXlu.p++, 100, 0x00, 0xFF, 0x80);
|
||||
}
|
||||
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, textureDL);
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0 - scroll, scroll * (-2), 32, 32,
|
||||
1, 0 - scroll, scroll * (-2), 32, 32));
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, frustrumDl);
|
||||
|
||||
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_wipe.c", 398);
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ struct OceffWipe;
|
|||
|
||||
typedef struct OceffWipe {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x4];
|
||||
/* 0x014C */ s16 counter;
|
||||
} OceffWipe; // size = 0x0150
|
||||
|
||||
extern const ActorInit Oceff_Wipe_InitVars;
|
||||
|
|
101
src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe_gfx.c
Normal file
101
src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe_gfx.c
Normal file
|
@ -0,0 +1,101 @@
|
|||
#include "z_oceff_wipe.h"
|
||||
|
||||
static u32 tex0[] = {
|
||||
0x354D5AAC, 0xA5561C01, 0x124688B5, 0x74583231, 0x313D71D6, 0x9F5B3507, 0x104089AD, 0x748F440C, 0x408176AC,
|
||||
0xB4661301, 0x2261C0BE, 0x49392533, 0x2C497FC4, 0x80451D06, 0x2466BBD0, 0x9CB85411, 0x40A09DA3, 0xB37F210B,
|
||||
0x3D8AEAC7, 0x3F241930, 0x2F5591A7, 0x6441080F, 0x4191E8DB, 0xB7A76B18, 0x4094BAA0, 0x76532D22, 0x60BAFEE8,
|
||||
0x8253545F, 0x6078A896, 0x73540723, 0x66C2FEBB, 0x87888723, 0x4B87C79E, 0x33123048, 0x88E3FFFC, 0xD39F7E72,
|
||||
0x8DA2AE80, 0xA77B1940, 0x90EBFFA9, 0x6289973E, 0x6F9ACD83, 0x2D104B7F, 0xAEEBFDF3, 0xD8B26772, 0xA7C7AD77,
|
||||
0xB1B34A61, 0xB0F8FFD5, 0x9496986B, 0x9EC6D25D, 0x503E85B3, 0xC0C1E1EE, 0xBD9B618E, 0xBFE4A975, 0x86E18B86,
|
||||
0xABCFF7F2, 0xBC837E69, 0xB5EFE465, 0x5B66BACB, 0xC794AADC, 0xAC8982AE, 0xD3F59754, 0x65E2AAAD, 0x8C85D0E1,
|
||||
0xAF634D39, 0xC7E2EDA3, 0x527ECACF, 0xBF777FC0, 0xA284A5A5, 0xE3FE8A2F, 0x60CCAFBE, 0x7164B8BA, 0x97553A2B,
|
||||
0xE8BCBCDA, 0x76A1BBBA, 0x844D83BD, 0x9C6B875B, 0xD9FFAA3F, 0x6AC9B59B, 0x6592BD94, 0x956D3D3B, 0xFFA773D3,
|
||||
0xB5B9AB90, 0x4033A0BC, 0x873E3E1D, 0xB5FFE48D, 0x8CC9A761, 0x62CBAF79, 0x98883457, 0xF3766FAF, 0xD5B2A26B,
|
||||
0x44549D8B, 0x56232221, 0x7DFFF2DD, 0xC6B68840, 0x4ECCA267, 0x696D296E, 0xA8328AAD, 0xD3998447, 0x5E7D8C5B,
|
||||
0x391F1E35, 0x4EF6CDD3, 0xDD9B6C2D, 0x27A09571, 0x37443656, 0x4C1265C9, 0xCA91612E, 0x3B5A7A65, 0x2F4F3421,
|
||||
0x36EAC380, 0xB6814A1B, 0x0C607075, 0x5860803B, 0x27102CCD, 0xC9A87A47, 0x16204B80, 0x44B3860F, 0x28DAE042,
|
||||
0x7F773710, 0x0235616D, 0xA089BE60, 0x34161EBC, 0xBBAAA972, 0x172A3B91, 0x96F6C319, 0x21B7F02A, 0x618F662A,
|
||||
0x02327A8C, 0x97577B5C, 0x48171FB3, 0xA090AF87, 0x1F65609D, 0xD8FFD41E, 0x177CC522, 0x69A8A462, 0x0D3A93B6,
|
||||
0x4F0C1821, 0x39151CA7, 0x928EAA9A, 0x33919BAF, 0xEBFBDA23, 0x093B6937, 0x80AEA66C, 0x304491C7, 0x3A031710,
|
||||
0x16162197, 0x9B9FB5BA, 0x4C95CED8, 0xF8F0D425, 0x05144066, 0x84B17F5A, 0x725E8DCD, 0x5D376910, 0x19183886,
|
||||
0xA3A1C4C6, 0x6584D1F1, 0xFFFABF12, 0x0E123F77, 0x88AF6881, 0xB97F98BB, 0x879BBC23, 0x4A20557C, 0x9BA5D0BB,
|
||||
0x7583C6E0, 0xFEFFB322, 0x34283976, 0x95B06EB8, 0xE29B999F, 0xBDE9E582, 0x814C5C82, 0xA1C0ECBE, 0x789ED6B2,
|
||||
0xF4FFD78F, 0x73324087, 0xA0C26FAB, 0xE0B1A5B9, 0xF2FFFADE, 0xAC906A89, 0xB3DDFFCB, 0x86B8CD75, 0xDFFFF1D7,
|
||||
0x8F31579C, 0xAFDE7B87, 0xC8BAB4EB, 0xF0F2FFE4, 0xB29B798B, 0xC3F4FFD2, 0xA0A17C32, 0xA9FFE8BD, 0x784D7A91,
|
||||
0xC7F5AB9B, 0xBEBB86D9, 0xB0BCF9D4, 0x835C4C70, 0xD8FFFFD7, 0xA2682907, 0x68FFE29F, 0x61707B7A, 0xE5FFE7C8,
|
||||
0xCCC33C8E, 0x768CE0C7, 0x51281940, 0xCBFFFFCB, 0x87450C00, 0x4BF3D58E, 0x6D767B92, 0xFAFFFFC8, 0xC7BF175B,
|
||||
0x708BBA9A, 0x3A161542, 0xB4FFF5A9, 0x6D39090C, 0x50D8BC86, 0x897AA1C8, 0xFFFFF4A1, 0x8C880B50, 0x91A49762,
|
||||
0x2D0C1E78, 0xD4FFD97F, 0x58351E23, 0x6BB49283, 0x9B95C9EE, 0xFFFFD377, 0x4336075E, 0xBFB27641, 0x1B0224B5,
|
||||
0xFCF7AC55, 0x41384344, 0x8FA06468, 0x9FB5DBFD, 0xFFF1A553, 0x190B1275, 0xCCA75D3A, 0x0C042ED9, 0xFFD97C33,
|
||||
0x28405669, 0xB0914C3A, 0x9199C6FF, 0xFECF7835, 0x080C308B, 0xB38F6D47, 0x0A0D3DDB, 0xF3A75519, 0x1341558E,
|
||||
0xBE7B4321, 0x6B4D94F8, 0xE4AC591A, 0x02175096, 0x8E7A9145, 0x1D224BBF, 0xC1723508, 0x0D3E5FA5, 0xA568351E,
|
||||
0x422B6EE0, 0xBB85480B, 0x04256799, 0x716D6D21,
|
||||
};
|
||||
|
||||
static Vtx vertices[] = {
|
||||
VTX(-165, 227, 0, 1229, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-206, 283, 300, 1229, 512, 0xFF, 0xFF, 0xFF, 0xA0),
|
||||
VTX(0, 350, 300, 1024, 512, 0xFF, 0xFF, 0xFF, 0xA0), VTX(0, 280, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0x00),
|
||||
VTX(-294, 405, 1000, 1229, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, 500, 1000, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-266, 87, 0, 1434, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-333, 108, 300, 1434, 512, 0xFF, 0xFF, 0xFF, 0xA0),
|
||||
VTX(-476, 155, 1000, 1434, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-266, -87, 0, 1638, 1024, 0xFF, 0xFF, 0xFF, 0x00),
|
||||
VTX(-333, -108, 300, 1638, 512, 0xFF, 0xFF, 0xFF, 0xA0), VTX(-476, -155, 1000, 1638, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-165, -227, 0, 1843, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-206, -283, 300, 1843, 512, 0xFF, 0xFF, 0xFF, 0xA0),
|
||||
VTX(-294, -405, 1000, 1843, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, -280, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0x00),
|
||||
VTX(0, -350, 300, 2048, 512, 0xFF, 0xFF, 0xFF, 0xA0), VTX(0, -500, 1000, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(165, -227, 0, 205, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(206, -283, 300, 205, 512, 0xFF, 0xFF, 0xFF, 0xA0),
|
||||
VTX(0, -350, 300, 0, 512, 0xFF, 0xFF, 0xFF, 0xA0), VTX(0, -280, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0x00),
|
||||
VTX(294, -405, 1000, 205, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, -500, 1000, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(266, -87, 0, 410, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(333, -108, 300, 410, 512, 0xFF, 0xFF, 0xFF, 0xA0),
|
||||
VTX(476, -155, 1000, 410, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(266, 87, 0, 614, 1024, 0xFF, 0xFF, 0xFF, 0x00),
|
||||
VTX(333, 108, 300, 614, 512, 0xFF, 0xFF, 0xFF, 0xA0), VTX(476, 155, 1000, 614, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(165, 227, 0, 819, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(206, 283, 300, 819, 512, 0xFF, 0xFF, 0xFF, 0xA0),
|
||||
VTX(206, 283, 300, 819, 512, 0xFF, 0xFF, 0xFF, 0xA0), VTX(294, 405, 1000, 819, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(476, 155, 1000, 614, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(333, 108, 300, 614, 512, 0xFF, 0xFF, 0xFF, 0xA0),
|
||||
VTX(0, 280, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(0, 350, 300, 1024, 512, 0xFF, 0xFF, 0xFF, 0xA0),
|
||||
VTX(165, 227, 0, 819, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(0, 500, 1000, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
};
|
||||
|
||||
static Gfx textureDL[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPLoadTextureBlock(tex0, 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),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0x0, 1, 0, G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 15,
|
||||
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, (31 << 2), (31 << 2)),
|
||||
gsDPSetCombineLERP(TEXEL1, PRIMITIVE, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE,
|
||||
ENVIRONMENT, COMBINED, ENVIRONMENT, COMBINED, 0, SHADE, 0),
|
||||
gsDPSetRenderMode(AA_EN | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_OPA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1),
|
||||
G_RM_AA_XLU_SURF2),
|
||||
gsSPClearGeometryMode(G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
static Gfx frustrumDl[] = {
|
||||
gsSPVertex(vertices, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
|
||||
gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0),
|
||||
gsSP2Triangles(6, 7, 1, 0, 6, 1, 0, 0),
|
||||
gsSP2Triangles(7, 8, 4, 0, 7, 4, 1, 0),
|
||||
gsSP2Triangles(9, 10, 7, 0, 9, 7, 6, 0),
|
||||
gsSP2Triangles(10, 11, 8, 0, 10, 8, 7, 0),
|
||||
gsSP2Triangles(12, 13, 10, 0, 12, 10, 9, 0),
|
||||
gsSP2Triangles(13, 14, 11, 0, 13, 11, 10, 0),
|
||||
gsSP2Triangles(15, 16, 13, 0, 15, 13, 12, 0),
|
||||
gsSP2Triangles(16, 17, 14, 0, 16, 14, 13, 0),
|
||||
gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0),
|
||||
gsSP2Triangles(19, 22, 23, 0, 19, 23, 20, 0),
|
||||
gsSP2Triangles(24, 25, 19, 0, 24, 19, 18, 0),
|
||||
gsSP2Triangles(25, 26, 22, 0, 25, 22, 19, 0),
|
||||
gsSP2Triangles(27, 28, 25, 0, 27, 25, 24, 0),
|
||||
gsSP2Triangles(28, 29, 26, 0, 28, 26, 25, 0),
|
||||
gsSP2Triangles(30, 31, 28, 0, 30, 28, 27, 0),
|
||||
gsSPVertex(vertices + 32, 8, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
|
||||
gsSP2Triangles(4, 5, 0, 0, 4, 0, 6, 0),
|
||||
gsSP2Triangles(5, 7, 1, 0, 5, 1, 0, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_oceff_wipe2.h"
|
||||
#include <vt.h>
|
||||
|
||||
#define FLAGS 0x02000010
|
||||
|
||||
|
@ -15,7 +16,6 @@ void OceffWipe2_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void OceffWipe2_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void OceffWipe2_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
const ActorInit Oceff_Wipe2_InitVars = {
|
||||
ACTOR_OCEFF_WIPE2,
|
||||
ACTORTYPE_ITEMACTION,
|
||||
|
@ -27,11 +27,88 @@ const ActorInit Oceff_Wipe2_InitVars = {
|
|||
(ActorFunc)OceffWipe2_Update,
|
||||
(ActorFunc)OceffWipe2_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe2/OceffWipe2_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe2/OceffWipe2_Destroy.s")
|
||||
#include "z_oceff_wipe2_gfx.c"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe2/OceffWipe2_Update.s")
|
||||
void OceffWipe2_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe2* this = THIS;
|
||||
Actor_SetScale(&this->actor, 0.1f);
|
||||
this->counter = 0;
|
||||
this->actor.posRot.pos = ACTIVE_CAM->eye;
|
||||
osSyncPrintf(VT_FGCOL(CYAN) " WIPE2 arg_data = %d\n" VT_RST, this->actor.params);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe2/OceffWipe2_Draw.s")
|
||||
void OceffWipe2_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe2* this = THIS;
|
||||
Player* player = PLAYER;
|
||||
|
||||
func_800876C8(globalCtx);
|
||||
if (gSaveContext.nayrusLoveTimer) {
|
||||
player->unk_692 |= 0x40;
|
||||
}
|
||||
}
|
||||
|
||||
void OceffWipe2_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe2* this = THIS;
|
||||
this->actor.posRot.pos = ACTIVE_CAM->eye;
|
||||
if (this->counter < 100) {
|
||||
this->counter++;
|
||||
} else {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
void OceffWipe2_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
u32 scroll;
|
||||
OceffWipe2* this;
|
||||
f32 z;
|
||||
GraphicsContext* gfxCtx;
|
||||
u8 alpha;
|
||||
u32 pad1;
|
||||
Vec3f eye;
|
||||
Vtx* vtxPtr;
|
||||
Vec3f vec;
|
||||
Gfx* dispRefs[5];
|
||||
this = THIS;
|
||||
scroll = globalCtx->state.frames & 0xFF;
|
||||
|
||||
eye = ACTIVE_CAM->eye;
|
||||
func_8005AFB4(&vec, ACTIVE_CAM);
|
||||
if (this->counter < 32) {
|
||||
z = Math_Sins(this->counter << 9) * 1330;
|
||||
} else {
|
||||
z = 1330;
|
||||
}
|
||||
|
||||
vtxPtr = vertices;
|
||||
if (this->counter >= 80) {
|
||||
alpha = 12 * (100 - this->counter);
|
||||
} else {
|
||||
alpha = 0xFF;
|
||||
}
|
||||
|
||||
vtxPtr[1].v.cn[3] = vtxPtr[3].v.cn[3] = vtxPtr[5].v.cn[3] = vtxPtr[7].v.cn[3] = vtxPtr[9].v.cn[3] = vtxPtr[11].v.cn[3] =
|
||||
vtxPtr[13].v.cn[3] = vtxPtr[15].v.cn[3] = vtxPtr[16].v.cn[3] = vtxPtr[18].v.cn[3] = vtxPtr[20].v.cn[3] = alpha;
|
||||
|
||||
gfxCtx = globalCtx->state.gfxCtx;
|
||||
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_wipe2.c", 390);
|
||||
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
|
||||
Matrix_Translate(eye.x + vec.x, eye.y + vec.y, eye.z + vec.z, MTXMODE_NEW);
|
||||
Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY);
|
||||
func_800D1FD4(&globalCtx->mf_11DA0);
|
||||
Matrix_Translate(0.0f, 0.0f, -z, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_oceff_wipe2.c", 400),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0x00, 0x00, 0xFF, 0xFF, 0xAA, 0xFF);
|
||||
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0xFF, 0x64, 0x00, 0x80);
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, textureDl);
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, scroll * 6, scroll * (-6), 64, 64,
|
||||
1, scroll * (-6), 0, 64, 64));
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, frustrumDl);
|
||||
|
||||
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_wipe2.c", 417);
|
||||
}
|
||||
|
|
|
@ -8,8 +8,7 @@ struct OceffWipe2;
|
|||
|
||||
typedef struct OceffWipe2 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ s16 unk_14C;
|
||||
/* 0x014E */ s16 unk_14E;
|
||||
/* 0x014C */ s16 counter;
|
||||
} OceffWipe2; // size = 0x0150
|
||||
|
||||
extern const ActorInit Oceff_Wipe2_InitVars;
|
||||
|
|
181
src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2_gfx.c
Normal file
181
src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2_gfx.c
Normal file
|
@ -0,0 +1,181 @@
|
|||
#include "z_oceff_wipe2.h"
|
||||
|
||||
static u32 tex0[] = {
|
||||
0x55211122, 0x22223333, 0x34444444, 0x44555566, 0x66666666, 0x66665555, 0x55554446, 0x99864323, 0x54211222,
|
||||
0x22223333, 0x44444444, 0x45555566, 0x66666666, 0x66666666, 0x66555458, 0xa9742224, 0x63212222, 0x22233334,
|
||||
0x44444445, 0x55555566, 0x66666666, 0x66666666, 0x66665569, 0xb9532225, 0x53222222, 0x22333344, 0x44445555,
|
||||
0x55555566, 0x66666666, 0x66666777, 0x77766569, 0xb9432235, 0x52222222, 0x33333444, 0x44445555, 0x55555556,
|
||||
0x66666666, 0x66666777, 0x77776668, 0xb9432236, 0x42222333, 0x33344444, 0x44455544, 0x44555556, 0x66666666,
|
||||
0x66666777, 0x77776667, 0xa9432346, 0x42223334, 0x44444444, 0x55555444, 0x44455556, 0x66666666, 0x66666777,
|
||||
0x77776666, 0x89532356, 0x32333444, 0x44555555, 0x55554444, 0x44445555, 0x66666666, 0x66666677, 0x77776655,
|
||||
0x68532366, 0x43334445, 0x55555555, 0x55554444, 0x44444555, 0x66666666, 0x66666667, 0x77776655, 0x56633476,
|
||||
0x64444555, 0x66666666, 0x65555444, 0x44444455, 0x56666666, 0x66666666, 0x66666655, 0x45533477, 0x88654556,
|
||||
0x67777776, 0x66555444, 0x44444445, 0x56666666, 0x66666666, 0x66666554, 0x44333578, 0x99975566, 0x77788777,
|
||||
0x76655444, 0x43334445, 0x55666666, 0x66666666, 0x66665554, 0x43323578, 0x99aa6667, 0x78888887, 0x77665544,
|
||||
0x43333444, 0x55666666, 0x66666556, 0x66655554, 0x43323578, 0x89ab8667, 0x88888888, 0x87765544, 0x43333344,
|
||||
0x45566676, 0x66666555, 0x55555544, 0x43322478, 0x89ab8667, 0x88899988, 0x88776554, 0x43333334, 0x45566677,
|
||||
0x66666555, 0x55555444, 0x33322357, 0x78996667, 0x88999998, 0x88876654, 0x43333333, 0x44556667, 0x76666555,
|
||||
0x55544444, 0x33222235, 0x46655567, 0x88899999, 0x88877655, 0x43333333, 0x44556667, 0x76666555, 0x55444443,
|
||||
0x33222223, 0x23334567, 0x78899999, 0x98887665, 0x44333333, 0x44578767, 0x77666555, 0x54444443, 0x33222222,
|
||||
0x22234456, 0x78889999, 0x99887765, 0x44333333, 0x457bc866, 0x77666655, 0x54444433, 0x33222222, 0x22233456,
|
||||
0x77889999, 0x99888766, 0x54433334, 0x69bdda76, 0x77766655, 0x54444333, 0x33222222, 0x22223445, 0x67888999,
|
||||
0x99988776, 0x54433458, 0xacdeeb77, 0x77776665, 0x54444333, 0x33222222, 0x22223345, 0x67788999, 0x99988876,
|
||||
0x5544579b, 0xcdeefd87, 0x77777665, 0x55444333, 0x33222222, 0x22222344, 0x56778899, 0x99988876, 0x65689abc,
|
||||
0xcddded97, 0x77777666, 0x55444433, 0x33322222, 0x22222334, 0x55678889, 0x99998877, 0x89abbccc, 0xcb99cd98,
|
||||
0x77777766, 0x65544443, 0x33322222, 0x22222233, 0x45677888, 0x9999888a, 0xcdddcccb, 0x9777beb8, 0x88887776,
|
||||
0x65554444, 0x33332222, 0x22222233, 0x44567788, 0x9999989d, 0xffeedb97, 0x6667aed9, 0x88888777, 0x66655544,
|
||||
0x44333222, 0x22222223, 0x34566788, 0x8999989c, 0xfffda866, 0x66779eea, 0x88888877, 0x76665554, 0x44433332,
|
||||
0x22222223, 0x34456778, 0x8999989b, 0xffd97666, 0x67789eea, 0x99988887, 0x77666555, 0x54444333, 0x32222222,
|
||||
0x33455678, 0x8899999a, 0xed976667, 0x7788aeea, 0x99988887, 0x77766665, 0x55544433, 0x33322222, 0x33445677,
|
||||
0x8889999a, 0xee977777, 0x78889dec, 0x99988888, 0x77776666, 0x65555444, 0x43332222, 0x33445567, 0x8889999a,
|
||||
0xeea88788, 0x88889ced, 0xbaa98887, 0x77776666, 0x66655544, 0x44433333, 0x33345567, 0x7888999a, 0xeeb98888,
|
||||
0x88899aef, 0xeeeca877, 0x77776666, 0x66665555, 0x54443333, 0x33344566, 0x78889999, 0xcec98888, 0x89999aef,
|
||||
0xffffda87, 0x77666666, 0x66666655, 0x55544433, 0x33444566, 0x77889999, 0xbeea9999, 0x99999aef, 0xfffffd97,
|
||||
0x66666666, 0x66666666, 0x65554444, 0x44444556, 0x77888999, 0xaeea9999, 0x999999bf, 0xfffffea6, 0x65555555,
|
||||
0x66666666, 0x66555544, 0x44444556, 0x67888999, 0xaeea9999, 0x999999ad, 0xfffffe96, 0x55555555, 0x55556666,
|
||||
0x66665555, 0x44445556, 0x67788899, 0xaeeb9999, 0x9999999a, 0xdeeeeb75, 0x44444444, 0x55555566, 0x66666655,
|
||||
0x55555556, 0x67788889, 0xadecaaa9, 0x99999988, 0x99aa9654, 0x44444444, 0x44455555, 0x56666666, 0x55555556,
|
||||
0x67778889, 0x9cffeeeb, 0xa9999888, 0x77766544, 0x43333333, 0x44444555, 0x55666666, 0x66555566, 0x66778888,
|
||||
0x9aefffff, 0xda998888, 0x77655443, 0x33333333, 0x33344455, 0x55666666, 0x66665566, 0x66777888, 0x8aefffff,
|
||||
0xfda88888, 0x76655443, 0x33222222, 0x33334444, 0x55566666, 0x66666666, 0x66677888, 0x89cfffff, 0xffb98887,
|
||||
0x76654433, 0x32222222, 0x22333444, 0x55566666, 0x66666666, 0x66677788, 0x88aeffff, 0xffc98887, 0x76654433,
|
||||
0x22222222, 0x22233344, 0x45566666, 0x66666556, 0x66667778, 0x889befff, 0xfda88877, 0x76654433, 0x22222222,
|
||||
0x22223344, 0x45556666, 0x66665555, 0x56666777, 0x8889acee, 0xda888877, 0x76554433, 0x22222222, 0x22223334,
|
||||
0x45555666, 0x66655555, 0x55566677, 0x78888999, 0x98888777, 0x66554432, 0x22221111, 0x22222334, 0x44555666,
|
||||
0x65555555, 0x55556667, 0x77888888, 0x88887777, 0x66554332, 0x22211111, 0x12222333, 0x44555555, 0x55555444,
|
||||
0x45555666, 0x77788888, 0x88887777, 0x66544332, 0x22211111, 0x11222333, 0x44555555, 0x55544444, 0x44455566,
|
||||
0x67778888, 0x88887776, 0x65544332, 0x22211111, 0x11222233, 0x44455555, 0x55444444, 0x44444556, 0x66777888,
|
||||
0x88887776, 0x65544322, 0x22211111, 0x11222233, 0x34455555, 0x54444333, 0x33444455, 0x66677788, 0x88887766,
|
||||
0x55443322, 0x22111111, 0x11122223, 0x34455555, 0x44443333, 0x33344445, 0x56677778, 0x88877766, 0x55443322,
|
||||
0x22111111, 0x11122223, 0x34445555, 0x44433333, 0x33334445, 0x55667777, 0x88777766, 0x54433222, 0x21111111,
|
||||
0x11112222, 0x33444444, 0x44333332, 0x23333444, 0x55566777, 0x77777665, 0x54433222, 0x21111111, 0x11112222,
|
||||
0x33344444, 0x43333222, 0x22333344, 0x45566677, 0x77777665, 0x54332222, 0x11111111, 0x11112222, 0x23444444,
|
||||
0x33332222, 0x22233334, 0x44556667, 0x77776665, 0x44332221, 0x11111111, 0x11111222, 0x23564333, 0x33332222,
|
||||
0x22233334, 0x44555666, 0x77776655, 0x44332221, 0x11111111, 0x11111222, 0x46763333, 0x33322222, 0x22233334,
|
||||
0x44455666, 0x67766655, 0x44332222, 0x21111111, 0x11111122, 0x67743333, 0x33222222, 0x22233334, 0x44455566,
|
||||
0x66666655, 0x44332222, 0x22211111, 0x11112235, 0x77632222, 0x22222222, 0x22333334, 0x44455566, 0x66666655,
|
||||
0x44333222, 0x22222222, 0x11223466, 0x77532222, 0x22222222, 0x23333344, 0x44455566, 0x66666655, 0x54433332,
|
||||
0x22222222, 0x22346677, 0x76422222, 0x22222223, 0x33333444, 0x44455566, 0x66666665, 0x55444333, 0x33322222,
|
||||
0x24567777, 0x66322222, 0x22222233, 0x33334444, 0x44455556, 0x66666665, 0x55544444, 0x43333323, 0x46777766,
|
||||
0x65211222, 0x22222333, 0x33444444, 0x44555556, 0x66666666, 0x55555544, 0x44443334, 0x78876544,
|
||||
};
|
||||
|
||||
static u32 tex1[] = {
|
||||
0x64446975, 0x568a8666, 0x66667777, 0x77777777, 0x76666666, 0x66666555, 0x55797444, 0x68644468, 0x44469755,
|
||||
0x58a86667, 0x77777777, 0x77777777, 0x76666666, 0x66666555, 0x57975446, 0x86444686, 0x44697555, 0x8a877777,
|
||||
0x77777777, 0x77777777, 0x76666666, 0x66666655, 0x79755568, 0x64446864, 0x46875558, 0xa8777777, 0x77777777,
|
||||
0x77777777, 0x76666666, 0x66666668, 0xa7555797, 0x44468644, 0x6865557a, 0x86777777, 0x77777777, 0x77777777,
|
||||
0x76666666, 0x6666668a, 0x85557975, 0x45686444, 0x864557a8, 0x66777777, 0x77777777, 0x77777777, 0x76666666,
|
||||
0x666668a8, 0x66689755, 0x57974446, 0x64457976, 0x67777777, 0x77777777, 0x77777777, 0x76666666, 0x66668a86,
|
||||
0x668a8655, 0x79755578, 0x44479756, 0x66777777, 0x77777777, 0x77777777, 0x66666666, 0x6668a866, 0x68a86668,
|
||||
0xa8555797, 0x44797556, 0x66777777, 0x77777777, 0x77777777, 0x66666555, 0x568a8666, 0x8b97668a, 0x86657975,
|
||||
0x46975556, 0x66677777, 0x77777777, 0x77777776, 0x66665555, 0x68a86669, 0xb97779b9, 0x76689754, 0x69655555,
|
||||
0x66677777, 0x77777777, 0x77777776, 0x66655555, 0x7a86669b, 0x97779b97, 0x778a8555, 0x86444555, 0x66667777,
|
||||
0x77667777, 0x77777766, 0x66555557, 0xa86669b9, 0x788aca87, 0x79b86557, 0x64444555, 0x66666666, 0x66667777,
|
||||
0x77777766, 0x65555579, 0x86669b98, 0x88aca888, 0x9b966579, 0x44444555, 0x56666666, 0x66667777, 0x77777666,
|
||||
0x55555797, 0x6669b988, 0x8aca888a, 0xc9766797, 0x44444555, 0x56666666, 0x66667777, 0x77777666, 0x55557975,
|
||||
0x568b9888, 0xadb888ac, 0xa7768974, 0x44444555, 0x55666666, 0x66677777, 0x77776665, 0x55579755, 0x68b9788a,
|
||||
0xdb888bca, 0x8778a754, 0x44444555, 0x55566666, 0x66677777, 0x77766665, 0x55797556, 0x8b9788ad, 0xb888bda8,
|
||||
0x778a7544, 0x44444555, 0x55555666, 0x66677777, 0x77766655, 0x57975558, 0xa9778adb, 0x888bda88, 0x79a85544,
|
||||
0x44444455, 0x55555666, 0x66677777, 0x77766655, 0x7975557a, 0x8778ada8, 0x88bdb888, 0x9b855444, 0x44444455,
|
||||
0x55555666, 0x66777777, 0x77766667, 0x975557a8, 0x778acb88, 0x8bda8889, 0xb8655444, 0x44444455, 0x55555666,
|
||||
0x66777777, 0x77766689, 0x75557a86, 0x77aca888, 0xbdb888ab, 0x96555444, 0x44444555, 0x55555666, 0x67777777,
|
||||
0x777768a8, 0x55579866, 0x79ca888b, 0xdb888ab9, 0x65554444, 0x44444555, 0x55556666, 0x67777777, 0x77779a86,
|
||||
0x55797667, 0x9ca888bd, 0xb888ab96, 0x65544444, 0x44445555, 0x55566667, 0x77778888, 0x8779b966, 0x68a86669,
|
||||
0xba888bdb, 0x888ac976, 0x55544444, 0x44445555, 0x55666667, 0x77788888, 0x88ab9766, 0x8a86668b, 0x9888bdb8,
|
||||
0x88ac9766, 0x55444444, 0x44555555, 0x66666677, 0x77888888, 0x8aca7779, 0xa86668b9, 0x888bdb88, 0x8ac97665,
|
||||
0x55444444, 0x44555556, 0x66666777, 0x78888888, 0xaca8879b, 0x96668b97, 0x88adb888, 0xaca77665, 0x54444444,
|
||||
0x55555666, 0x66677777, 0x8888888b, 0xda888ac9, 0x7779b978, 0x8adb888a, 0xca776655, 0x54444444, 0x55566666,
|
||||
0x67777777, 0x888888bd, 0xb888aca7, 0x779b9788, 0xada888ac, 0xa7766555, 0x54444455, 0x55666667, 0x77777778,
|
||||
0x88888bdb, 0x888aca88, 0x8aca888a, 0xcb888aca, 0x87766555, 0x44444555, 0x66666777, 0x77777778, 0x8888adb8,
|
||||
0x88bda888, 0xaca888ad, 0xa888bda8, 0x77666555, 0x54455555, 0x66667777, 0x77777777, 0x788aca88, 0x8bdb888a,
|
||||
0xca888adb, 0x888bda87, 0x77665555, 0x55555566, 0x66677777, 0x77777777, 0x78aca888, 0xbdb888bd, 0xa888adb8,
|
||||
0x88bda887, 0x77665555, 0x55555666, 0x77777777, 0x77777777, 0x79ba888a, 0xdb888bdb, 0x888bdb88, 0x8bda8887,
|
||||
0x76665555, 0x55556666, 0x77777776, 0x66666667, 0x9b9778ac, 0xa888bdb8, 0x88bdb888, 0xbdb88887, 0x76665555,
|
||||
0x55666666, 0x77766666, 0x66666668, 0xa9777aca, 0x888bdb88, 0x8bdb888b, 0xdb888877, 0x76666555, 0x66666677,
|
||||
0x76666666, 0x6666668a, 0x86679ba8, 0x88bdb888, 0xbdb888bd, 0xb8888877, 0x76666666, 0x66667777, 0x66666665,
|
||||
0x555557a8, 0x6669b978, 0x8adb888b, 0xdb888bdb, 0x88888777, 0x76666666, 0x66677777, 0x66666555, 0x55557975,
|
||||
0x568a9778, 0xaca888bd, 0xb888bdb8, 0x88888777, 0x76666666, 0x67777776, 0x66655555, 0x55579755, 0x58a8677a,
|
||||
0xca888ada, 0x888bdb88, 0x88888777, 0x76666667, 0x77777766, 0x66555555, 0x55797555, 0x7986679c, 0xa888aca8,
|
||||
0x88ada888, 0x88887777, 0x76666777, 0x77777766, 0x65555544, 0x46864457, 0x976669b9, 0x888aca88, 0x8aca8888,
|
||||
0x88877777, 0x76667777, 0x77777666, 0x55555444, 0x68644479, 0x75568b97, 0x78aca888, 0xaca88888, 0x88877777,
|
||||
0x76667777, 0x77777666, 0x55554446, 0x86444687, 0x5558a977, 0x8aca888a, 0xca888888, 0x88777777, 0x66667777,
|
||||
0x77776666, 0x55554468, 0x64446865, 0x557a8777, 0xaca888ac, 0xa8888888, 0x87777766, 0x66666777, 0x77776666,
|
||||
0x55544686, 0x44468644, 0x57986679, 0xba888aca, 0x88888888, 0x77777666, 0x66666677, 0x77766666, 0x55546864,
|
||||
0x44686444, 0x7976669b, 0x9888aca8, 0x88888887, 0x77776666, 0x66666667, 0x77766666, 0x55568644, 0x46864446,
|
||||
0x975568b9, 0x778aca88, 0x88888877, 0x77666666, 0x66666666, 0x66666666, 0x55786444, 0x68644468, 0x75558a97,
|
||||
0x77aca888, 0x88888777, 0x76666666, 0x66666666, 0x66666665, 0x57964446, 0x86444686, 0x4557a867, 0x79ca8888,
|
||||
0x88887777, 0x66666555, 0x55556666, 0x66666665, 0x79744468, 0x64446864, 0x45798667, 0x9b988888, 0x88877776,
|
||||
0x66665555, 0x55555666, 0x66666655, 0x97444686, 0x44468644, 0x47975668, 0xb9778888, 0x88877776, 0x66655555,
|
||||
0x55555566, 0x66666657, 0x74446864, 0x44686444, 0x6975568a, 0x97778888, 0x88777766, 0x66555555, 0x55555556,
|
||||
0x66666679, 0x44468644, 0x46864446, 0x864557a8, 0x67777888, 0x77777666, 0x65555555, 0x45555555, 0x66666797,
|
||||
0x44686444, 0x68644468, 0x64457986, 0x67777777, 0x77776666, 0x55555544, 0x44555555, 0x56668975, 0x46864446,
|
||||
0x86444686, 0x44479756, 0x66777777, 0x77766666, 0x55555544, 0x44455555, 0x55579754, 0x68644468, 0x64446864,
|
||||
0x44697556, 0x66777777, 0x77766665, 0x55555544, 0x44445555, 0x55797544, 0x86444686, 0x44468644, 0x46875556,
|
||||
0x66777777, 0x77666665, 0x55555544, 0x44444555, 0x57975446, 0x64446864, 0x44686444, 0x68655556, 0x66777777,
|
||||
0x77666665, 0x55555544, 0x44444555, 0x79754468, 0x44468644, 0x46864446, 0x87555556, 0x66777777, 0x76666665,
|
||||
0x55555554, 0x44444457, 0x97544686, 0x44686444, 0x68644469, 0x75555566, 0x66777777, 0x76666665, 0x55555554,
|
||||
0x44444479, 0x74446864, 0x46864446, 0x86445797, 0x55555666, 0x67777777, 0x76666665, 0x55555555, 0x55444686,
|
||||
0x44468644, 0x68644469, 0x75557975, 0x55666666, 0x67777777, 0x76666666, 0x65555555, 0x55557864, 0x44686444,
|
||||
0x86444687, 0x55579866, 0x66666666, 0x77777777, 0x76666666, 0x66555555, 0x55579644, 0x46864446,
|
||||
};
|
||||
|
||||
static Vtx vertices[] = {
|
||||
VTX(88, 121, 0, 1638, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(243, 176, 1000, 1434, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(143, 46, 0, 1229, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(300, 0, 1000, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(0, 150, 0, 2048, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(93, 285, 1000, 1843, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-88, 121, 0, 2458, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-93, 285, 1000, 2253, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-143, 46, 0, 2867, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-243, 176, 1000, 2662, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-143, -46, 0, 3277, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-300, 0, 1000, 3072, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-88, -121, 0, 3686, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-243, -176, 1000, 3482, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(0, -150, 0, 4096, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-93, -285, 1000, 3891, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(93, -285, 1000, 4301, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(143, -46, 0, 819, 2048, 0xFF, 0xFF, 0xFF, 0x00),
|
||||
VTX(243, -176, 1000, 614, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(88, -121, 0, 410, 2048, 0xFF, 0xFF, 0xFF, 0x00),
|
||||
VTX(93, -285, 1000, 205, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, -150, 0, 0, 2048, 0xFF, 0xFF, 0xFF, 0x00),
|
||||
};
|
||||
|
||||
static Gfx textureDl[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetTextureImage(G_IM_FMT_I, G_IM_SIZ_16b, 1, tex0),
|
||||
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_16b, 0, 0x0, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 14,
|
||||
G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 14),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 512),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_4b, 4, 0x0, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 14,
|
||||
G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 14),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, (63 << 2), (63 << 2)),
|
||||
gsDPSetTextureImage(G_IM_FMT_I, G_IM_SIZ_16b, 1, tex1),
|
||||
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_16b, 0, 0x100, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 14,
|
||||
G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 1),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 512),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_4b, 4, 0x100, 1, 0, G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 14,
|
||||
G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 1),
|
||||
gsDPSetTileSize(1, 0, 0, (63 << 2), (63 << 2)),
|
||||
gsDPSetCombineLERP(TEXEL1, PRIMITIVE, ENV_ALPHA, TEXEL0, TEXEL1, 0, ENVIRONMENT, TEXEL0, PRIMITIVE, ENVIRONMENT,
|
||||
COMBINED, ENVIRONMENT, COMBINED, 0, SHADE, 0),
|
||||
gsDPSetRenderMode(AA_EN | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_OPA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1),
|
||||
G_RM_AA_XLU_SURF2),
|
||||
gsSPClearGeometryMode(G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
static Gfx frustrumDl[] = {
|
||||
gsSPVertex(&vertices, 22, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
|
||||
gsSP2Triangles(4, 5, 0, 0, 5, 1, 0, 0),
|
||||
gsSP2Triangles(6, 7, 4, 0, 7, 5, 4, 0),
|
||||
gsSP2Triangles(8, 9, 6, 0, 9, 7, 6, 0),
|
||||
gsSP2Triangles(10, 11, 8, 0, 11, 9, 8, 0),
|
||||
gsSP2Triangles(12, 13, 10, 0, 13, 11, 10, 0),
|
||||
gsSP2Triangles(14, 15, 12, 0, 15, 13, 12, 0),
|
||||
gsSP2Triangles(16, 15, 14, 0, 17, 18, 19, 0),
|
||||
gsSP2Triangles(18, 20, 19, 0, 2, 3, 17, 0),
|
||||
gsSP2Triangles(3, 18, 17, 0, 19, 20, 21, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_oceff_wipe3.h"
|
||||
#include <vt.h>
|
||||
|
||||
#define FLAGS 0x02000010
|
||||
|
||||
|
@ -15,7 +16,6 @@ void OceffWipe3_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void OceffWipe3_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void OceffWipe3_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
const ActorInit Oceff_Wipe3_InitVars = {
|
||||
ACTOR_OCEFF_WIPE3,
|
||||
ACTORTYPE_ITEMACTION,
|
||||
|
@ -27,11 +27,90 @@ const ActorInit Oceff_Wipe3_InitVars = {
|
|||
(ActorFunc)OceffWipe3_Update,
|
||||
(ActorFunc)OceffWipe3_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe3/OceffWipe3_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe3/OceffWipe3_Destroy.s")
|
||||
#include "z_oceff_wipe3_gfx.c"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe3/OceffWipe3_Update.s")
|
||||
void OceffWipe3_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe3* this = THIS;
|
||||
Actor_SetScale(&this->actor, 0.1f);
|
||||
this->counter = 0;
|
||||
this->actor.posRot.pos = ACTIVE_CAM->eye;
|
||||
// it's actually WIPE3...
|
||||
osSyncPrintf(VT_FGCOL(CYAN) " WIPE2 arg_data = %d\n" VT_RST, this->actor.params);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe3/OceffWipe3_Draw.s")
|
||||
void OceffWipe3_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe3* this = THIS;
|
||||
Player* player = PLAYER;
|
||||
|
||||
func_800876C8(globalCtx);
|
||||
if (gSaveContext.nayrusLoveTimer) {
|
||||
player->unk_692 |= 0x40;
|
||||
}
|
||||
}
|
||||
|
||||
void OceffWipe3_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe3* this = THIS;
|
||||
this->actor.posRot.pos = ACTIVE_CAM->eye;
|
||||
if (this->counter < 100) {
|
||||
this->counter++;
|
||||
} else {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
void OceffWipe3_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
||||
u32 scroll;
|
||||
OceffWipe3* this;
|
||||
f32 z;
|
||||
GraphicsContext* gfxCtx;
|
||||
u8 alpha;
|
||||
u32 pad1;
|
||||
Vec3f eye;
|
||||
Vtx* vtxPtr;
|
||||
Vec3f vec;
|
||||
Gfx* dispRefs[5];
|
||||
this = THIS;
|
||||
scroll = globalCtx->state.frames & 0xFFF;
|
||||
|
||||
eye = ACTIVE_CAM->eye;
|
||||
func_8005AFB4(&vec, ACTIVE_CAM);
|
||||
if (this->counter < 32) {
|
||||
z = Math_Sins(this->counter << 9) * 1330;
|
||||
} else {
|
||||
z = 1330;
|
||||
}
|
||||
|
||||
vtxPtr = vertices;
|
||||
if (this->counter >= 80) {
|
||||
alpha = 12 * (100 - this->counter);
|
||||
} else {
|
||||
alpha = 0xFF;
|
||||
}
|
||||
|
||||
vtxPtr[1].v.cn[3] = vtxPtr[3].v.cn[3] = vtxPtr[5].v.cn[3] = vtxPtr[7].v.cn[3] = vtxPtr[9].v.cn[3] = vtxPtr[11].v.cn[3] =
|
||||
vtxPtr[13].v.cn[3] = vtxPtr[15].v.cn[3] = vtxPtr[17].v.cn[3] = vtxPtr[19].v.cn[3] = vtxPtr[21].v.cn[3] = alpha;
|
||||
|
||||
gfxCtx = globalCtx->state.gfxCtx;
|
||||
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_wipe3.c", 343);
|
||||
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
|
||||
Matrix_Translate(eye.x + vec.x, eye.y + vec.y, eye.z + vec.z, MTXMODE_NEW);
|
||||
Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY);
|
||||
func_800D1FD4(&globalCtx->mf_11DA0);
|
||||
Matrix_Translate(0.0f, 0.0f, -z, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_oceff_wipe3.c", 353),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0x00, 0x00, 0xFF, 0xFF, 0xAA, 0xFF);
|
||||
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0x64, 0xC8, 0x00, 0x80);
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, textureDl);
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, scroll * 12, scroll * (-12), 64,
|
||||
64, 1, scroll * 8, scroll * (-8), 64, 64));
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, frustrumDl);
|
||||
|
||||
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_wipe3.c", 370);
|
||||
}
|
||||
|
|
|
@ -8,8 +8,7 @@ struct OceffWipe3;
|
|||
|
||||
typedef struct OceffWipe3 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ s16 unk_14C;
|
||||
/* 0x014E */ s16 unk_14E;
|
||||
/* 0x014C */ s16 counter;
|
||||
} OceffWipe3; // size = 0x0150
|
||||
|
||||
extern const ActorInit Oceff_Wipe3_InitVars;
|
||||
|
|
166
src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3_gfx.c
Normal file
166
src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3_gfx.c
Normal file
|
@ -0,0 +1,166 @@
|
|||
#include "z_oceff_wipe3.h"
|
||||
|
||||
static u32 tex0[] = {
|
||||
0x91A69C82, 0x9CAC7448, 0x4246484B, 0x4D505153, 0x53545454, 0x54545556, 0x57585859, 0x59595857, 0x56545350,
|
||||
0x4F4E4C4C, 0x4C4B4A49, 0x49474544, 0x42403E3C, 0x3D549BB3, 0xB4B4B3B3, 0xB2AD966F, 0xAEB3B2A8, 0x98B19B62,
|
||||
0x4F4B4C4F, 0x51535556, 0x56565656, 0x56565656, 0x57585859, 0x59595857, 0x56545350, 0x4F4E4D4C, 0x4C4B4B4A,
|
||||
0x4A484644, 0x43403F3C, 0x3B416EA7, 0xB4B4B3AD, 0xA5937E98, 0xB5B5B6B8, 0xB5B9B3A5, 0x895D5154, 0x56585A5B,
|
||||
0x5B5A5A59, 0x58585757, 0x57585859, 0x58585857, 0x56545351, 0x504E4E4C, 0x4C4C4C4B, 0x4B494846, 0x4442403E,
|
||||
0x3C3B4985, 0xADB5B097, 0x818EA5B0, 0xB6B6B8B9, 0xB2A18A94, 0xA1735859, 0x5B5D5F5F, 0x5F5E5D5B, 0x5A595857,
|
||||
0x57575858, 0x58585857, 0x56545250, 0x504E4E4D, 0x4D4D4D4C, 0x4C4B4A48, 0x46444240, 0x3E3C3E55, 0x90B0B4AB,
|
||||
0xAAAEB3B4, 0xB7B6B2A7, 0x825C5057, 0x686B5B5B, 0x5D606161, 0x605F5E5C, 0x5A595756, 0x56575758, 0x58585857,
|
||||
0x56545250, 0x4F4E4D4D, 0x4D4D4D4D, 0x4C4B4A49, 0x48464442, 0x413F3E40, 0x5890ADB4, 0xB6B6B6B6, 0xACA38862,
|
||||
0x4B44464B, 0x5158595C, 0x5F616262, 0x615F5E5C, 0x5A585656, 0x56565758, 0x58585857, 0x5653514F, 0x4E4C4C4C,
|
||||
0x4C4C4C4D, 0x4C4C4C4A, 0x4A494846, 0x45444241, 0x43527C9F, 0xACAFAEAE, 0x6A53463F, 0x3F42464C, 0x4F55585C,
|
||||
0x5E616161, 0x605F5D5B, 0x59575656, 0x56565758, 0x58595857, 0x5552504E, 0x4C4B4A4B, 0x4A4B4C4C, 0x4C4D4C4C,
|
||||
0x4C4B4A49, 0x49484645, 0x44434A58, 0x6E797977, 0x3F3A393B, 0x3E42454B, 0x4F54585C, 0x5E606060, 0x5F5D5C59,
|
||||
0x57565556, 0x56575859, 0x59595856, 0x54514F4C, 0x4B494848, 0x494A4B4C, 0x4C4E4E4E, 0x4F4F4F4F, 0x4F4E4D4B,
|
||||
0x49474444, 0x46454342, 0x3838393B, 0x3D41444A, 0x4E53565A, 0x5C5E5E5E, 0x5D5C5A58, 0x56555556, 0x5658595A,
|
||||
0x5A595855, 0x53504E4B, 0x49484747, 0x48494A4C, 0x4D4E5051, 0x52535354, 0x54535250, 0x4E4B4845, 0x423E3C3A,
|
||||
0x3838393A, 0x3C404449, 0x4D525558, 0x5A5C5C5C, 0x5B595856, 0x56555556, 0x57595A5A, 0x5A595754, 0x514E4B48,
|
||||
0x47454545, 0x46484A4C, 0x4E515355, 0x56585A5B, 0x5B5A5956, 0x54504D48, 0x45403D3B, 0x3838383A, 0x3B3F4348,
|
||||
0x4C505457, 0x58595A5A, 0x58585656, 0x55565657, 0x585A5B5B, 0x5A585652, 0x4F4C4946, 0x45444444, 0x46484A4D,
|
||||
0x4F535658, 0x5A5D5E5F, 0x605F5E5B, 0x5854504A, 0x46413E3B, 0x38383839, 0x3A3E4246, 0x4A4F5254, 0x56565656,
|
||||
0x56555555, 0x55565758, 0x5A5B5C5B, 0x5A575450, 0x4D484644, 0x42424244, 0x46484B4F, 0x52575A5E, 0x60626465,
|
||||
0x66656460, 0x5D58534D, 0x48423E3B, 0x38373738, 0x3A3E4146, 0x494E5053, 0x54545454, 0x54545454, 0x5557585A,
|
||||
0x5B5C5C5B, 0x5955524E, 0x4B464442, 0x41414244, 0x46494D52, 0x555A5E62, 0x64676869, 0x69686763, 0x605A544E,
|
||||
0x49423E3B, 0x37363638, 0x3A3D4045, 0x484B4E50, 0x50515252, 0x52535354, 0x56585A5B, 0x5C5C5C5A, 0x57534F4A,
|
||||
0x48444240, 0x40404144, 0x474C4F55, 0x595F6266, 0x686B6C6C, 0x6C6B6A66, 0x625B564E, 0x49423D3A, 0x36363637,
|
||||
0x3A3D4044, 0x464A4C4E, 0x4E4F5050, 0x51525355, 0x56585A5C, 0x5D5C5B58, 0x56514D48, 0x4642403F, 0x3F404145,
|
||||
0x484D5258, 0x5C626669, 0x6B6C6D6D, 0x6D6C6A66, 0x625B564E, 0x48413C39, 0x35353537, 0x393C3F42, 0x4548494B,
|
||||
0x4C4D4E4F, 0x50525356, 0x575A5B5D, 0x5D5C5A56, 0x534E4B46, 0x43403F3E, 0x3E404246, 0x4A50555C, 0x6066696C,
|
||||
0x6D6E6E6E, 0x6E6D6B66, 0x615A544C, 0x463F3B38, 0x35353537, 0x393C3E42, 0x44464849, 0x4A4B4C4E, 0x4F525356,
|
||||
0x585B5C5D, 0x5C5B5955, 0x524D4944, 0x42403E3E, 0x3E404348, 0x4C53585E, 0x63686B6D, 0x6E6E6E6E, 0x6E6D6B66,
|
||||
0x6059524A, 0x443E3A37, 0x34353537, 0x393B3D40, 0x42444547, 0x484A4B4D, 0x4F525457, 0x595C5D5D, 0x5C5A5853,
|
||||
0x504B4844, 0x413F3E3E, 0x3F42454A, 0x4F565C62, 0x666A6C6E, 0x6E6E6E6E, 0x6E6C6963, 0x5E564F47, 0x423C3836,
|
||||
0x34343537, 0x383B3D40, 0x41434446, 0x47494A4D, 0x4F525458, 0x5A5C5D5D, 0x5C5A5753, 0x504B4743, 0x413E3E3E,
|
||||
0x3F43464C, 0x51585E64, 0x686C6D6E, 0x6E6E6E6E, 0x6D6B6761, 0x5B534D45, 0x403B3836, 0x34343537, 0x383B3C3F,
|
||||
0x40424345, 0x46494A4E, 0x50545659, 0x5B5D5E5D, 0x5C5A5753, 0x504B494C, 0x514C4440, 0x4044484E, 0x545C6167,
|
||||
0x6A6D6E6E, 0x6E6E6E6D, 0x6C68645D, 0x574F4942, 0x3D393635, 0x34343536, 0x383A3C3F, 0x40424245, 0x46494B4E,
|
||||
0x5154575A, 0x5C5E5E5E, 0x5D5A5854, 0x504D537B, 0xA0936C4F, 0x45464A50, 0x565D6268, 0x6C6E6E6E, 0x6E6E6E6C,
|
||||
0x6A66615A, 0x544C4640, 0x3C383634, 0x34343537, 0x393B3D3F, 0x40424346, 0x474A4D50, 0x53575A5D, 0x5E60605F,
|
||||
0x5E5C5A56, 0x535775B1, 0xBDBBAF8C, 0x5F4D4D52, 0x5860656A, 0x6C6E6E6E, 0x6E6E6D6B, 0x68625D55, 0x4F47423C,
|
||||
0x39363534, 0x34353638, 0x3A3C3E40, 0x41434447, 0x494C4E52, 0x54585B5E, 0x60626261, 0x605E5C58, 0x5B79B1C2,
|
||||
0xACB6C0BB, 0xA3705454, 0x5A61666B, 0x6D6E6E6E, 0x6E6D6C69, 0x655E5952, 0x4C45403B, 0x38353434, 0x3536373A,
|
||||
0x3B3E3F42, 0x43454749, 0x4B4F5155, 0x585C5E61, 0x63646464, 0x6361605E, 0x75B3CDCA, 0xB69FBFC6, 0xC1AD6E5A,
|
||||
0x5C63686C, 0x6D6E6E6E, 0x6E6C6A65, 0x605A544C, 0x47403C38, 0x36343434, 0x3637393B, 0x3D3F4144, 0x4547494C,
|
||||
0x4E515358, 0x5A5E6063, 0x65666666, 0x66646370, 0xAAD0D4D0, 0xC195BFC6, 0xB7C4A469, 0x5F64686C, 0x6D6E6E6E,
|
||||
0x6D6B6862, 0x5D565049, 0x443E3A37, 0x35343434, 0x38393B3E, 0x40424547, 0x494B4D50, 0x5255575B, 0x5D616366,
|
||||
0x686A6A6A, 0x69686E9A, 0xD0DAD4D3, 0xC8A1C1C0, 0x9FC8C686, 0x66676A6D, 0x6D6E6E6D, 0x6C68645E, 0x58514C45,
|
||||
0x403B3936, 0x35353536, 0x3A3B3E40, 0x4346484A, 0x4C4E5052, 0x54585A5D, 0x60636668, 0x6A6C6C6C, 0x6B6C83CA,
|
||||
0xE1DAC3CA, 0xCBB0B1AA, 0xADD0D3A9, 0x6F686B6E, 0x6E6E6E6C, 0x6A66625B, 0x554E4942, 0x3E3A3836, 0x36363637,
|
||||
0x3E3F4245, 0x474A4C4F, 0x50525456, 0x585C5D60, 0x6266686A, 0x6C6D6E6E, 0x6D75ABDF, 0xE7E0C7AC, 0xBDB59F9B,
|
||||
0xC9DADAC3, 0x766A6C6E, 0x6E6E6D6B, 0x68625D56, 0x514A453F, 0x3C383736, 0x3637393A, 0x41424549, 0x4B4E4F52,
|
||||
0x53555659, 0x5B5E5F62, 0x6466696B, 0x6C6E6E6E, 0x6F80CCE8, 0xE9E6DECB, 0xADA086B8, 0xD9DAD4CF, 0x7C6C6D6E,
|
||||
0x6E6E6C69, 0x66605A53, 0x4E47433E, 0x3B383837, 0x38393B3D, 0x46484A4E, 0x50525356, 0x5658595C, 0x5D5F6163,
|
||||
0x6567696B, 0x6C6E6E6E, 0x7397DEEC, 0xE9E8E7E1, 0xD7C5A5D3, 0xDDC6C8D3, 0x846E6E6E, 0x6E6D6B66, 0x625C5650,
|
||||
0x4B45413D, 0x3B393939, 0x3A3D3F41, 0x4A4C4E51, 0x53555658, 0x585A5B5C, 0x5D5F6162, 0x6466686A, 0x6C6D6E6E,
|
||||
0x76ABE4E9, 0xD7E2E8E7, 0xE6D9B6DB, 0xD5B2DADA, 0x896F6E6E, 0x6E6C6964, 0x605A544E, 0x4944403D, 0x3B3A3A3B,
|
||||
0x3D404345, 0x4E505255, 0x56585859, 0x5A5A5B5C, 0x5C5E5F60, 0x62646568, 0x696B6C6E, 0x77AEE5E5, 0xBDC4DEE8,
|
||||
0xEAE0BBD3, 0xBDCAE7DA, 0x826E6E6E, 0x6D6A6762, 0x5E57524C, 0x4743403E, 0x3D3C3D3F, 0x4245484A, 0x52535557,
|
||||
0x58585859, 0x59595A5A, 0x5A5C5C5E, 0x5F616265, 0x676A6B6D, 0x77ADE5EC, 0xDFC3BED8, 0xE1DCB3BB, 0xC2E3EACD,
|
||||
0x7E6E6E6E, 0x6C696660, 0x5C55514B, 0x4743413F, 0x3E3F4043, 0x45494C4E, 0x55565758, 0x58575757, 0x57575757,
|
||||
0x57585859, 0x5A5C5E61, 0x6367696C, 0x74A5E3EE, 0xEDE5D6BE, 0xBDC09EB6, 0xE0EDE6B2, 0x786E6E6D, 0x6C68645E,
|
||||
0x5A54504A, 0x47444241, 0x42434548, 0x4A4E5152, 0x57575757, 0x56565655, 0x54545454, 0x54545456, 0x56595B5E,
|
||||
0x6064676A, 0x6F8EDBED, 0xEEEEEBE5, 0xE0CAB4DC, 0xEDEDDA8F, 0x716E6E6C, 0x6A66625D, 0x59534F4B, 0x48454444,
|
||||
0x4446484C, 0x4E515355, 0x57565655, 0x53525250, 0x504F4F4E, 0x4E4E4F50, 0x5154565A, 0x5C616469, 0x6B7CC0E7,
|
||||
0xEEEEEEEE, 0xEAD2C7E7, 0xEEE6B77A, 0x6E6E6D6B, 0x6964615B, 0x58524F4C, 0x4A484748, 0x494B4D50, 0x53545656,
|
||||
0x55555452, 0x504F4E4D, 0x4C4C4B4A, 0x4A4A4B4C, 0x4E505256, 0x5A5F6367, 0x6A708FD0, 0xEAEEEEEE, 0xE8CCD3E9,
|
||||
0xEBD18A70, 0x6E6E6D6A, 0x6763605B, 0x5753504D, 0x4C4A4A4B, 0x4C4F5154, 0x55565757, 0x5352504E, 0x4C4A4948,
|
||||
0x47464544, 0x44454647, 0x494C4E53, 0x565C6066, 0x696C7396, 0xD1EAEEEE, 0xE6C3E2EC, 0xDAA0766E, 0x6E6D6B68,
|
||||
0x66625E5A, 0x5653504F, 0x4E4E4E50, 0x51545557, 0x58585756, 0x51504E4B, 0x49474644, 0x44434241, 0x41424244,
|
||||
0x46494C51, 0x555B5F64, 0x676B6C75, 0x96D0E7ED, 0xE7CAE4DA, 0xA57A6F6E, 0x6D6C6A67, 0x64605E59, 0x56545250,
|
||||
0x50505153, 0x54565758, 0x58575655, 0x4E4C4A47, 0x4542413F, 0x3F3E3E3D, 0x3D3E3E40, 0x43464A4F, 0x53595D62,
|
||||
0x66696B6D, 0x738EBFDD, 0xE8E4D5A3, 0x7A6E6D6D, 0x6C6A6865, 0x625E5C58, 0x56545352, 0x52545456, 0x58595A59,
|
||||
0x58565452, 0x4C4A4844, 0x42403E3C, 0x3C3B3B3A, 0x3A3B3C3E, 0x4144484E, 0x52585C61, 0x64686A6C, 0x6C6F7C9F,
|
||||
0xD4DEA579, 0x6D6C6D6C, 0x6B696764, 0x615E5B58, 0x56545454, 0x54565758, 0x595A5A59, 0x58555250, 0x4A484441,
|
||||
0x3F3C3B39, 0x39383838, 0x38393A3C, 0x3F43464C, 0x50565A60, 0x6366686A, 0x6A6A6B77, 0xA9D0876D, 0x6C6C6B6A,
|
||||
0x69666562, 0x5F5C5A57, 0x56545454, 0x5657585A, 0x5A5A5A58, 0x5754514E, 0x4846433F, 0x3D3A3A38, 0x37363636,
|
||||
0x3637393B, 0x3E42464C, 0x50565A5F, 0x62666768, 0x6868686E, 0x94C7856C, 0x6A6B6A69, 0x68656360, 0x5E5B5857,
|
||||
0x55545455, 0x5658595A, 0x5A5A5A58, 0x56524F4C, 0x4744413D, 0x3A383736, 0x35343434, 0x3536373A, 0x3D42454B,
|
||||
0x4F55595E, 0x61646566, 0x6767686D, 0x8BA87A6A, 0x6A696866, 0x6563605D, 0x5B585655, 0x54545454, 0x56585959,
|
||||
0x5A595856, 0x54514E4B, 0x4643403C, 0x39373635, 0x34343434, 0x3435373A, 0x3C41444A, 0x4E54585D, 0x60636466,
|
||||
0x66676769, 0x6E736C69, 0x69686865, 0x64605E5B, 0x59565553, 0x53535354, 0x55565858, 0x59585756, 0x54504D4A,
|
||||
0x44423E3A, 0x38353434, 0x33333333, 0x34343639, 0x3B404449, 0x4E54585C, 0x5F626365, 0x66676768, 0x68696968,
|
||||
0x68676563, 0x605D5B58, 0x56535251, 0x50505152, 0x53555657, 0x57565654, 0x524F4C49, 0x44413E39, 0x37353433,
|
||||
0x33333333, 0x33343638, 0x3B3F4349, 0x4D53565B, 0x5E616265, 0x65676768, 0x69696968, 0x67656460, 0x5E5B5855,
|
||||
0x5351504F, 0x4E4E4F50, 0x52535455, 0x56555553, 0x524E4C49, 0x42403C38, 0x36343333, 0x33333333, 0x33343537,
|
||||
0x3A3E4247, 0x4C51555A, 0x5C606264, 0x65676768, 0x69696867, 0x6663615D, 0x5B575451, 0x504E4C4C, 0x4B4B4C4D,
|
||||
0x4E505253, 0x53545452, 0x514E4B48, 0x413F3B37, 0x36343333, 0x33333333, 0x33343537, 0x393D4046, 0x4A505458,
|
||||
0x5B5F6164, 0x65676868, 0x69686866, 0x64615F5B, 0x5854524F, 0x4D4B4A49, 0x4848494A, 0x4C4E4F51, 0x52535352,
|
||||
0x504D4A47, 0x403D3A36, 0x35343333, 0x33333333, 0x33343436, 0x383C3F44, 0x484D5156, 0x5A5E6063, 0x65676868,
|
||||
0x68686664, 0x625E5C58, 0x54504E4B, 0x4A474645, 0x45454647, 0x484B4D4F, 0x50525251, 0x504C4845, 0x3E3C3936,
|
||||
0x34333333, 0x33333333, 0x33333436, 0x373B3E43, 0x464C4F55, 0x585C6063, 0x64666768, 0x68666562, 0x605C5955,
|
||||
0x524E4C49, 0x47454443, 0x43434445, 0x46494B4E, 0x4F515150, 0x4E4B4744, 0x3D3A3735, 0x34333333, 0x33333333,
|
||||
0x33333435, 0x36393C40, 0x44494D52, 0x565A5E61, 0x64666666, 0x6664625F, 0x5C585652, 0x4F4B4946, 0x44424040,
|
||||
0x40404042, 0x4446494C, 0x4E4F4F4E, 0x4D494542, 0x3B393634, 0x33323333, 0x33333333, 0x33333334, 0x36383A3F,
|
||||
0x42474B50, 0x54595C60, 0x62656566, 0x6462605C, 0x5A56534F, 0x4C494744, 0x42403E3E, 0x3D3E3F41, 0x4245484A,
|
||||
0x4C4E4E4D, 0x4B474440, 0x39383634, 0x33323333, 0x33333333, 0x33333334, 0x3537393C, 0x4044484E, 0x52575A5E,
|
||||
0x61636463, 0x62605D59, 0x5652504C, 0x4A474441, 0x403D3C3B, 0x3B3C3C3E, 0x40434750, 0x585E5E5D, 0x5952483F,
|
||||
0x3C373534, 0x33333333, 0x33333333, 0x33333333, 0x3436383B, 0x3E43474D, 0x5056595D, 0x60626261, 0x605D5B57,
|
||||
0x54504E4A, 0x48454340, 0x3E3C3B3A, 0x3A3A3B3D, 0x3F4A5E80, 0xA1B2B6B5, 0xAB937350, 0x553D3533, 0x33333333,
|
||||
0x33333333, 0x33333333, 0x3335373A, 0x3D42464B, 0x4F54585C, 0x5E5F605F, 0x5D5A5854, 0x524E4C49, 0x4643413F,
|
||||
0x3E3B3A39, 0x39393A3E, 0x4F7AA5B9, 0xBEB5C1C4, 0xC0B4AC93, 0x94654033, 0x33333333, 0x33333333, 0x33323233,
|
||||
0x3335363A, 0x3C40444A, 0x4E54575B, 0x5D5E5E5D, 0x5C595653, 0x504D4A48, 0x4643413E, 0x3D3B3A38, 0x38383C57,
|
||||
0x8EB0BEC2, 0xBB99A5BD, 0xBA9DA0AE, 0xAF9F6B3F, 0x34333333, 0x33333333, 0x33333334, 0x3436373A, 0x3C40444A,
|
||||
0x4E53565A, 0x5B5C5C5B, 0x5A575451, 0x4E4B4A47, 0x4542413E, 0x3D3B3A38, 0x38384691, 0xB2B4B5B5, 0xB7AA87A9,
|
||||
0xBAAA83A2, 0xAAB2A06A, 0x3D333332, 0x33333333, 0x33343434, 0x3536383B, 0x3D41454A, 0x4E53565A, 0x5B5C5C5A,
|
||||
0x58565450, 0x4E4B4946, 0x4542413F, 0x3D3C3A39, 0x38384796, 0xB1958F8C, 0x94A19686, 0xADB39A89, 0x9BB0B19D,
|
||||
0x5B373333, 0x34343434, 0x35363637, 0x38393B3D, 0x4044474C, 0x4F545659, 0x5A5B5B59, 0x57555350, 0x4D4A4946,
|
||||
0x45434240, 0x3E3C3B3A, 0x39384179, 0xAFB2B1AE, 0xA2947E63, 0x92A9A584, 0x80AAB3AE, 0x8B463434, 0x34353636,
|
||||
0x3738393A, 0x3B3C3E40, 0x4346494E, 0x50545659, 0x5A5A5A58, 0x5754524F, 0x4D4A4947, 0x46444341, 0x3F3E3C3B,
|
||||
0x3A3A3C59, 0xA4B8B9B8, 0xB3A78F73, 0x8382928E, 0x6FA2B2B3, 0xA6693C36, 0x3738393A, 0x3C3D3E40, 0x40424345,
|
||||
0x484A4D50, 0x53565759, 0x5A5A5958, 0x5754524F, 0x4D4B4A48, 0x47464543, 0x42403F3D, 0x3C3B3A46, 0x83B1B7B5,
|
||||
0xA58A87A3, 0xABA58E75, 0x6185A7B2, 0xB08F4738, 0x3A3C3D3F, 0x40424445, 0x4648484A, 0x4C4E5052, 0x54575859,
|
||||
0x5A5A5958, 0x56545250, 0x4E4C4A49, 0x48474645, 0x44424140, 0x3E3D3B3D, 0x5BA4B6B0, 0x919AA9B3, 0xB4B2A685,
|
||||
0x657C88A0, 0xB0A5583D, 0x3C3F4143, 0x4547484A, 0x4B4C4D4E, 0x4F505254, 0x55585859, 0x5A5A5958, 0x56545250,
|
||||
0x4E4C4B4A, 0x49484846, 0x45444241, 0x3F3E3C3B, 0x4681AFB4, 0xAEB0B3B3, 0xB3B19A68,
|
||||
};
|
||||
|
||||
static Vtx vertices[] = {
|
||||
VTX(88, 121, 0, 1638, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(243, 176, 1000, 1434, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(143, 46, 0, 1229, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(300, 0, 1000, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(0, 150, 0, 2048, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(93, 285, 1000, 1843, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-88, 121, 0, 2458, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-93, 285, 1000, 2253, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-143, 46, 0, 2867, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-243, 176, 1000, 2662, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-143, -46, 0, 3277, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-300, 0, 1000, 3072, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-88, -121, 0, 3686, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-243, -176, 1000, 3482, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(0, -150, 0, 4096, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(-93, -285, 1000, 3891, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(88, -121, 0, 410, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(93, -285, 1000, 205, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(0, -150, 0, 0, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(93, -285, 1000, 4301, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(143, -46, 0, 819, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(243, -176, 1000, 614, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
};
|
||||
|
||||
static Gfx textureDl[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPLoadTextureBlock(tex0, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
|
||||
G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 6, 14, 14),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 8, 0x0, 1, 0, G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 14,
|
||||
G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 14),
|
||||
gsDPSetTileSize(1, 0, 0, (63 << 2), (63 << 2)),
|
||||
gsDPSetCombineLERP(TEXEL1, PRIMITIVE, ENV_ALPHA, TEXEL0, TEXEL1, 0, ENVIRONMENT, TEXEL0, PRIMITIVE, ENVIRONMENT,
|
||||
COMBINED, ENVIRONMENT, COMBINED, 0, SHADE, 0),
|
||||
gsDPSetRenderMode(AA_EN | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_OPA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1),
|
||||
G_RM_AA_XLU_SURF2),
|
||||
gsSPClearGeometryMode(G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
static Gfx frustrumDl[] = {
|
||||
gsSPVertex(vertices, 22, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
|
||||
gsSP2Triangles(4, 5, 0, 0, 5, 1, 0, 0),
|
||||
gsSP2Triangles(6, 7, 4, 0, 7, 5, 4, 0),
|
||||
gsSP2Triangles(8, 9, 6, 0, 9, 7, 6, 0),
|
||||
gsSP2Triangles(10, 11, 8, 0, 11, 9, 8, 0),
|
||||
gsSP2Triangles(12, 13, 10, 0, 13, 11, 10, 0),
|
||||
gsSP2Triangles(14, 15, 12, 0, 15, 13, 12, 0),
|
||||
gsSP2Triangles(16, 17, 18, 0, 19, 15, 14, 0),
|
||||
gsSP2Triangles(20, 21, 16, 0, 21, 17, 16, 0),
|
||||
gsSP2Triangles(2, 3, 20, 0, 3, 21, 20, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_oceff_wipe4.h"
|
||||
#include <vt.h>
|
||||
|
||||
#define FLAGS 0x02000010
|
||||
|
||||
|
@ -15,7 +16,6 @@ void OceffWipe4_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void OceffWipe4_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void OceffWipe4_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
const ActorInit Oceff_Wipe4_InitVars = {
|
||||
ACTOR_OCEFF_WIPE4,
|
||||
ACTORTYPE_ITEMACTION,
|
||||
|
@ -27,11 +27,88 @@ const ActorInit Oceff_Wipe4_InitVars = {
|
|||
(ActorFunc)OceffWipe4_Update,
|
||||
(ActorFunc)OceffWipe4_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe4/OceffWipe4_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe4/OceffWipe4_Destroy.s")
|
||||
#include "z_oceff_wipe4_gfx.c"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe4/OceffWipe4_Update.s")
|
||||
void OceffWipe4_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe4* this = THIS;
|
||||
Actor_SetScale(&this->actor, 0.1f);
|
||||
this->counter = 0;
|
||||
this->actor.posRot.pos = ACTIVE_CAM->eye;
|
||||
osSyncPrintf(VT_FGCOL(CYAN) " WIPE4 arg_data = %d\n" VT_RST, this->actor.params);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Wipe4/OceffWipe4_Draw.s")
|
||||
void OceffWipe4_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe4* this = THIS;
|
||||
func_800876C8(globalCtx);
|
||||
}
|
||||
|
||||
void OceffWipe4_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OceffWipe4* this = THIS;
|
||||
this->actor.posRot.pos = ACTIVE_CAM->eye;
|
||||
if (this->counter < 50) {
|
||||
this->counter++;
|
||||
} else {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
void OceffWipe4_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
||||
u32 scroll;
|
||||
OceffWipe4* this;
|
||||
f32 z;
|
||||
GraphicsContext* gfxCtx;
|
||||
u8 alpha;
|
||||
u32 pad1;
|
||||
Vec3f eye;
|
||||
Vtx* vtxPtr;
|
||||
Vec3f vec;
|
||||
Gfx* dispRefs[5];
|
||||
this = THIS;
|
||||
scroll = globalCtx->state.frames & 0xFFF;
|
||||
|
||||
eye = ACTIVE_CAM->eye;
|
||||
func_8005AFB4(&vec, ACTIVE_CAM);
|
||||
if (this->counter < 16) {
|
||||
z = Math_Sins(this->counter << 10) * 1330;
|
||||
} else {
|
||||
z = 1330;
|
||||
}
|
||||
|
||||
vtxPtr = vertices;
|
||||
if (this->counter >= 30) {
|
||||
alpha = 12 * (50 - this->counter);
|
||||
} else {
|
||||
alpha = 0xFF;
|
||||
}
|
||||
|
||||
vtxPtr[1].v.cn[3] = vtxPtr[3].v.cn[3] = vtxPtr[5].v.cn[3] = vtxPtr[7].v.cn[3] = vtxPtr[9].v.cn[3] = vtxPtr[11].v.cn[3] =
|
||||
vtxPtr[13].v.cn[3] = vtxPtr[15].v.cn[3] = vtxPtr[17].v.cn[3] = vtxPtr[19].v.cn[3] = vtxPtr[21].v.cn[3] = alpha;
|
||||
|
||||
gfxCtx = globalCtx->state.gfxCtx;
|
||||
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_wipe4.c", 314);
|
||||
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
|
||||
Matrix_Translate(eye.x + vec.x, eye.y + vec.y, eye.z + vec.z, MTXMODE_NEW);
|
||||
Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY);
|
||||
func_800D1FD4(&globalCtx->mf_11DA0);
|
||||
Matrix_Translate(0.0f, 0.0f, -z, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_oceff_wipe4.c", 324),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
if (this->actor.params == 1) {
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, textureDl1);
|
||||
} else {
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, textureDl0);
|
||||
}
|
||||
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, textureDl2);
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, scroll * 2, scroll * (-2), 32, 64,
|
||||
1, scroll * (-1), scroll, 32, 32));
|
||||
gSPDisplayList(gfxCtx->polyXlu.p++, frustrumDl);
|
||||
|
||||
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_wipe4.c", 344);
|
||||
}
|
||||
|
|
|
@ -8,8 +8,7 @@ struct OceffWipe4;
|
|||
|
||||
typedef struct OceffWipe4 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ s16 unk_14C;
|
||||
/* 0x014E */ char unk_14E[0x2];
|
||||
/* 0x014C */ s16 counter;
|
||||
} OceffWipe4; // size = 0x0150
|
||||
|
||||
extern const ActorInit Oceff_Wipe4_InitVars;
|
||||
|
|
127
src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4_gfx.c
Normal file
127
src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4_gfx.c
Normal file
|
@ -0,0 +1,127 @@
|
|||
#include "z_oceff_wipe4.h"
|
||||
|
||||
extern u8 D_04032C90[];
|
||||
|
||||
static u32 tex0[] = {
|
||||
0x00061507, 0x00000000, 0x295a2b08, 0x10030f03, 0x0d070006, 0x00031625, 0x3f230012, 0x79590000, 0x00102c2a,
|
||||
0x254a1b0e, 0xaff66600, 0x00467e29, 0x08020000, 0x03383e0b, 0x0501000a, 0x31211c05, 0x00031c27, 0x4ca92f13,
|
||||
0xb2ef5500, 0x057ebf37, 0x00000000, 0x0e493f13, 0x00000002, 0x335c3e03, 0x00000e07, 0x3c761200, 0x447e2200,
|
||||
0x00426710, 0x00000000, 0x071c2208, 0x00000168, 0xe18f0f00, 0x00060e00, 0x0a100000, 0x0514022d, 0x1b020400,
|
||||
0x00000000, 0x093a3f0a, 0x050010ae, 0xda360000, 0x00070500, 0x00000000, 0x00001461, 0x3e050024, 0x24000000,
|
||||
0x184e3755, 0x9132043c, 0x2f000000, 0x12020a54, 0x3c000200, 0x00000f3e, 0x2b041159, 0x2c000000, 0x030b22ce,
|
||||
0xf9420000, 0x00000301, 0x371160ef, 0xac6d2b00, 0x00000008, 0x05000d27, 0x06000000, 0x00001a91, 0x760b0000,
|
||||
0x000b030a, 0x747db0bd, 0xbda31d00, 0x00000000, 0x00000000, 0x00000511, 0x01000209, 0x03020015, 0x583a0010,
|
||||
0xc1e0892d, 0x532d0000, 0x03160600, 0x00050001, 0x15142e4e, 0x07000500, 0x100d004c, 0xb65c001b, 0xb2df9417,
|
||||
0x00000020, 0x57420400, 0x45882f00, 0x18093b3e, 0x01182f0d, 0x1405003f, 0xb75b001e, 0x5dc2e14f, 0x00000161,
|
||||
0xbc4a005a, 0xecf84a00, 0x0011330f, 0x0044591c, 0x01001c7c, 0xb122001f, 0x5de4ff71, 0x00000177, 0xba3218d9,
|
||||
0xffc41700, 0x1e7b5a1c, 0x2b769635, 0x0044d5fa, 0x9e000530, 0xc7ffce35, 0x00000035, 0x663441cf, 0xc9380000,
|
||||
0x3d733c28, 0x3e709726, 0x0086faf1, 0x9b170d4c, 0xc9812700, 0x000e1a02, 0x4c642544, 0x2b000000, 0x0d0e0508,
|
||||
0x0a252f03, 0x00335297, 0xc75b014e, 0x77470600, 0x00160f00, 0x3a350016, 0x29070000, 0x0c3a3911, 0x00000003,
|
||||
0x0100004b, 0x8f4b051c, 0x7f6c1c00, 0x00000000, 0x00000437, 0x2e030001, 0x2a6e6b2c, 0x0604000e, 0x0b000004,
|
||||
0x19350814, 0x3e63813d, 0x13000000, 0x00000117, 0x06000000, 0x14362911, 0x312e021f, 0x13000000, 0x010c000c,
|
||||
0x10b9ef72, 0x2d010000, 0x040c0c10, 0x02000000, 0x33410306, 0x3b30071d, 0x07000000, 0x00000000, 0x1bc2a129,
|
||||
0x0d000000, 0x050e1112, 0x0100002e, 0xd2c22e00, 0x21593403, 0x00000000, 0x01010000, 0x0e451b00, 0x00000000,
|
||||
0x0000060d, 0x00000061, 0xffea2e00, 0x3da04200, 0x00000000, 0x06140b00, 0x00040200, 0x00000000, 0x00061b0c,
|
||||
0x00000037, 0x8d620500, 0x2a8f5801, 0x00000000, 0x082e3404, 0x00000000, 0x00000003, 0x0a201b02, 0x00000000,
|
||||
0x06000000, 0x11826503, 0x00060400, 0x07303402, 0x07010007, 0x2f1e0b0a, 0x09080000, 0x03000000, 0x00000000,
|
||||
0x07452500, 0x0e361100, 0x000b0a00, 0x06000018, 0x3e170600, 0x00060f0d, 0x3e190000, 0x00000000, 0x00000000,
|
||||
0x21360700, 0x00000000, 0x00000007, 0x09000000, 0x0a857124, 0x703c0000, 0x01000000, 0x00000000, 0x08050000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x32d97112, 0x4a1b0001, 0x02050000, 0x00000000, 0x021a0a00, 0x00000613,
|
||||
0x07000000, 0x00000000, 0x1e5d1700, 0x04000000, 0x37550400, 0x00000000, 0x14300600, 0x00003e5b, 0x08000000,
|
||||
0x00000000, 0x2f2f0000, 0x00000007, 0x90840300, 0x0f070000, 0x06070000, 0x00055a62, 0x00000000, 0x00000020,
|
||||
0xa77b0700, 0x0106000f, 0x612d0006, 0x1b030000, 0x00000001, 0x0000211a, 0x00000000, 0x0000002e, 0x944a0103,
|
||||
0x3b390200, 0x04000011, 0x14000005, 0x302f0d10, 0x01000000, 0x00000000, 0x00000009, 0x10000015, 0x5d290000,
|
||||
0x00000015, 0x09000027, 0x73510f09, 0x37410700, 0x00061408, 0x00000000, 0x25582d09, 0x12020e03, 0x0c070007,
|
||||
0x00031627, 0x41240011, 0x795b0000, 0x00102d29, 0x244b1c0d, 0xb0f76600, 0x00467c28, 0x08020000, 0x02383e0b,
|
||||
0x0401000a, 0x32231c04, 0x00031b28, 0x4ca83112, 0xb2ef5500, 0x057ebe38, 0x00000000, 0x0d493d13, 0x00000002,
|
||||
0x325c3f03, 0x00000e08, 0x3d761200, 0x457f2200, 0x0043660f, 0x00000000, 0x071d2208, 0x00000168, 0xe1901000,
|
||||
0x00070e00, 0x09110000, 0x0515022d, 0x1b020400, 0x00000000, 0x093b3e09, 0x050011ae, 0xd9370000, 0x00070500,
|
||||
0x00000000, 0x00001462, 0x3e050024, 0x25000000, 0x184e3554, 0x9431043c, 0x2e000000, 0x12010955, 0x3c000300,
|
||||
0x0000103e, 0x2b04115a, 0x2d000000, 0x030b22ce, 0xf9420000, 0x00000301, 0x361161ef, 0xac6b2b00, 0x00000008,
|
||||
0x05000d27, 0x07000000, 0x00001a8f, 0x760b0000, 0x000b030a, 0x727db1bd, 0xbca21c00, 0x00000000, 0x00000000,
|
||||
0x00000610, 0x00000208, 0x03030016, 0x57390010, 0xc1e1892e, 0x522c0000, 0x03160600, 0x00060001, 0x14142f4e,
|
||||
0x07000500, 0x100e004b, 0xb55c001b, 0xb0dd9416, 0x0000001f, 0x57430500, 0x468a3000, 0x16093b3e, 0x01192f0d,
|
||||
0x1405003e, 0xb65b001d, 0x5cc1e04e, 0x0000005e, 0xbc4b0058, 0xebfa4b00, 0x0011340e, 0x0045591c, 0x02001c7c,
|
||||
0xb223001e, 0x5ce5ff71, 0x00000176, 0xb93216d8, 0xffc21700, 0x1d7b5b1c, 0x2b759636, 0x0041d4fc, 0x9d000530,
|
||||
0xc7ffce36, 0x00000036, 0x663540ce, 0xc6360000, 0x3c743e29, 0x3e719827, 0x0085faf0, 0x9b160d4e, 0xc9812600,
|
||||
0x000f1a03, 0x4b642646, 0x2b000000, 0x0d0e0608, 0x0a253002, 0x00345299, 0xc85b014e, 0x75470600, 0x00160f00,
|
||||
0x39350015, 0x29070000, 0x0c3a3911, 0x00000003, 0x0100004b, 0x914b051e, 0x7d6c1c01, 0x00000000, 0x00000437,
|
||||
0x2e030001, 0x2a6f6a2a, 0x0604000e, 0x0b000003, 0x1a350814, 0x3e63813e, 0x13000000, 0x00000118, 0x07000000,
|
||||
0x13382911, 0x302e0320, 0x14000000, 0x010d000c, 0x0fb9ee73, 0x2f000000, 0x040b0c11, 0x02000000, 0x36440307,
|
||||
0x3b30071d, 0x07000000, 0x00000000, 0x1abf9f29, 0x0e000000, 0x050f1112, 0x0100002d, 0xd3c42b00, 0x22593404,
|
||||
0x00000000, 0x01010000, 0x0e451b00, 0x00000000, 0x0000070c, 0x00000061, 0xffed2f00, 0x3ea04300, 0x00000000,
|
||||
0x05140b00, 0x00030200, 0x00000000, 0x00061c0b, 0x00000037, 0x8f640500, 0x2a8f5901, 0x00000000, 0x082d3504,
|
||||
0x00000000, 0x00010003, 0x0a201b02, 0x00000000, 0x07000000, 0x11826503, 0x00050400, 0x072f3503, 0x07010007,
|
||||
0x2f1e0c0b, 0x09080000, 0x03000000, 0x00000000, 0x07462500, 0x0e361100, 0x000b0900, 0x04000018, 0x3e160600,
|
||||
0x00060f0b, 0x3d190000, 0x00000000, 0x00000000, 0x21370600, 0x00000000, 0x00000007, 0x09000000, 0x0b866f22,
|
||||
0x713c0000, 0x02000000, 0x00000000, 0x08060000, 0x00000000, 0x00000000, 0x00000000, 0x30d76f12, 0x4b1a0001,
|
||||
0x02050000, 0x00000000, 0x021a0a00, 0x00000714, 0x08000000, 0x00000000, 0x1e5c1700, 0x03000000, 0x36560400,
|
||||
0x00000000, 0x15300600, 0x00003f5d, 0x07000000, 0x00000000, 0x2e2f0000, 0x00000008, 0x8f840300, 0x0f060000,
|
||||
0x06070000, 0x00065b61, 0x00000000, 0x00000020, 0xa67c0700, 0x0006000e, 0x612d0006, 0x1b030000, 0x00000001,
|
||||
0x0001211b, 0x00000000, 0x0000002f, 0x93490103, 0x3b390200, 0x04000011, 0x13000005, 0x2f2e0c11, 0x02000000,
|
||||
0x00000000, 0x00000008, 0x14030015, 0x5d2c0000, 0x00000115, 0x08000027, 0x724f0f0a, 0x353d0600,
|
||||
};
|
||||
|
||||
static Vtx vertices[] = {
|
||||
VTX(88, 121, 0, 819, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(243, 176, 1000, 717, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(143, 46, 0, 614, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(300, 0, 1000, 512, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(0, 150, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(93, 285, 1000, 922, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-88, 121, 0, 1229, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-93, 285, 1000, 1126, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-143, 46, 0, 1434, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-243, 176, 1000, 1331, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-143, -46, 0, 1638, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-300, 0, 1000, 1536, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-88, -121, 0, 1843, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-243, -176, 1000, 1741, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(0, -150, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-93, -285, 1000, 1946, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(88, -121, 0, 205, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(93, -285, 1000, 102, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(0, -150, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(93, -285, 1000, 2150, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(143, -46, 0, 410, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(243, -176, 1000, 307, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
};
|
||||
|
||||
static Gfx textureDl0[] = {
|
||||
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,
|
||||
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 textureDl1[] = {
|
||||
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,
|
||||
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 textureDl2[] = {
|
||||
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),
|
||||
gsDPSetCombineLERP(TEXEL0, PRIMITIVE, ENV_ALPHA, TEXEL1, TEXEL0, 0, ENVIRONMENT, TEXEL1, PRIMITIVE, ENVIRONMENT,
|
||||
COMBINED, ENVIRONMENT, COMBINED, 0, SHADE, 0),
|
||||
gsDPSetRenderMode(AA_EN | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_OPA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1),
|
||||
G_RM_AA_XLU_SURF2),
|
||||
gsSPClearGeometryMode(G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
|
||||
//! @bug : gsSPEndDisplayList() is missing so the next dlist will execute as well
|
||||
};
|
||||
|
||||
static Gfx frustrumDl[] = {
|
||||
gsSPVertex(vertices, 22, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
|
||||
gsSP2Triangles(4, 5, 0, 0, 5, 1, 0, 0),
|
||||
gsSP2Triangles(6, 7, 4, 0, 7, 5, 4, 0),
|
||||
gsSP2Triangles(8, 9, 6, 0, 9, 7, 6, 0),
|
||||
gsSP2Triangles(10, 11, 8, 0, 11, 9, 8, 0),
|
||||
gsSP2Triangles(12, 13, 10, 0, 13, 11, 10, 0),
|
||||
gsSP2Triangles(14, 15, 12, 0, 15, 13, 12, 0),
|
||||
gsSP2Triangles(16, 17, 18, 0, 19, 15, 14, 0),
|
||||
gsSP2Triangles(20, 21, 16, 0, 21, 17, 16, 0),
|
||||
gsSP2Triangles(2, 3, 20, 0, 3, 21, 20, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue