mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-02 00:14:24 -04:00
Misc NON_MATCHINGS/NON_EQUIVALENTS (#696)
* Match the rest in fireObj * Fix FireObjLightParams struct * Fix up bomjima * Match ObjSnowball * 2 functions in EnGoroiwa * Rename randMultiplier * Minor cleanup * More cleanup * Boss02 Ok * Match Boss06_Draw * format * bss * Remove static from osFlash bss * PR suggestions * Remove LightInfoPositional * 0x4000 * Format * Cleanup * Fix bombjima data * Boss02 newline * PR stuff * Change func_8012CF0C to NON_EQUIVALENT * Matched func_8012CF0C by AngheloAlf * RSPMatrix -> Mtx * Bubbles fix
This commit is contained in:
+13
-7
@@ -139,15 +139,21 @@ typedef struct {
|
||||
/* 0x4 */ f32 dynamicSizeStep;
|
||||
/* 0x8 */ u8 state;
|
||||
/* 0x9 */ u8 sizeGrowsCos2;
|
||||
/* 0xA */ u8 unkA;
|
||||
/* 0xA */ u8 colorsIndex;
|
||||
/* 0xB */ u8 flags;
|
||||
/* 0xC */ u8 unkC;
|
||||
/* 0xC */ u8 lightParamsIndex;
|
||||
} FireObjInitParams; // size = 0xD
|
||||
|
||||
typedef struct {
|
||||
typedef struct FireObjColors {
|
||||
/* 0x0 */ Color_RGBA8 primColor;
|
||||
/* 0x4 */ u8 unk4;
|
||||
/* 0x4 */ u8 lod;
|
||||
/* 0x5 */ Color_RGB8 envColor;
|
||||
} FireObjColors; // size = 0x8
|
||||
|
||||
typedef struct FireObjLightParams {
|
||||
/* 0x0 */ s16 radius;
|
||||
/* 0x2 */ Color_RGB8 color;
|
||||
/* 0x5 */ Color_RGB8 maxColorAdj;
|
||||
} FireObjLightParams; // size = 0x8
|
||||
|
||||
#define FONT_CHAR_TEX_WIDTH 16
|
||||
@@ -1158,8 +1164,8 @@ typedef enum {
|
||||
|
||||
struct FireObjLight {
|
||||
/* 0x00 */ LightNode* light;
|
||||
/* 0x04 */ LightInfoPositional lightInfo;
|
||||
/* 0x12 */ u8 unk12;
|
||||
/* 0x04 */ LightInfo lightInfo;
|
||||
/* 0x12 */ u8 lightParamsIndex;
|
||||
}; // size = 0x13
|
||||
|
||||
#define OS_SC_RETRACE_MSG 1
|
||||
@@ -1210,7 +1216,7 @@ struct FireObj {
|
||||
/* 0x24 */ u8 state; // 0 - growing, 1 - shrinking, 2 - fully lit, 3 - not lit
|
||||
/* 0x25 */ u8 sizeGrowsCos2;
|
||||
/* 0x26 */ u8 unk26;
|
||||
/* 0x27 */ u8 unk27;
|
||||
/* 0x27 */ u8 colorsIndex;
|
||||
/* 0x28 */ u8 flags; // bit 0 - ?, bit 1 - ?
|
||||
/* 0x29 */ UNK_TYPE1 pad29[0x1];
|
||||
/* 0x2A */ s16 ignitionDelay;
|
||||
|
||||
@@ -57,11 +57,6 @@ typedef struct Lights {
|
||||
/* 0x08 */ Lightsn l;
|
||||
} Lights; // size = 0x80
|
||||
|
||||
typedef struct LightInfoPositional {
|
||||
/* 0x0 */ u8 type;
|
||||
/* 0x2 */ LightPoint params;
|
||||
} LightInfoPositional; // size = 0xE
|
||||
|
||||
typedef struct LightNode {
|
||||
/* 0x0 */ LightInfo* info;
|
||||
/* 0x4 */ struct LightNode* prev;
|
||||
|
||||
@@ -2509,11 +2509,7 @@ beginseg
|
||||
name "ovl_Boss_02"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Boss_02/z_boss_02.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_Boss_02/ovl_Boss_02_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_Boss_02/ovl_Boss_02.reloc.o"
|
||||
#endif
|
||||
include "build/src/overlays/actors/ovl_Boss_02/ovl_Boss_02_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -3817,11 +3813,7 @@ beginseg
|
||||
name "ovl_Obj_Snowball"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_Obj_Snowball/ovl_obj_Snowball_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_Obj_Snowball/ovl_Obj_Snowball.reloc.o"
|
||||
#endif
|
||||
include "build/src/overlays/actors/ovl_Obj_Snowball/ovl_Obj_Snowball_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -5026,7 +5018,7 @@ beginseg
|
||||
name "ovl_En_Bomjima"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Bomjima/z_en_bomjima.o"
|
||||
include "build/data/ovl_En_Bomjima/ovl_En_Bomjima.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Bomjima/ovl_En_Bomjima_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
+33
-43
@@ -29,13 +29,13 @@ ColliderCylinderInit sFireObjCollisionInit = {
|
||||
{ 18, 67, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
FireObjLightParams sFireObjLightParams[2] = {
|
||||
{ 255, 255, 0, 255, 128, 255, 0, 0 },
|
||||
{ 0, 200, 128, 128, 0, 127, 127, 0 },
|
||||
FireObjColors sFireObjColors[] = {
|
||||
{ { 255, 255, 0, 255 }, 128, { 255, 0, 0 } },
|
||||
};
|
||||
|
||||
void FireObj_InitLight(GlobalContext* globalCtx, FireObjLight* light, u8* param_3, Vec3f* pos);
|
||||
void FireObj_UpdateLight(GlobalContext* globalCtx, FireObjLight* light, FireObj* fire);
|
||||
FireObjLightParams sFireObjLightParams[] = {
|
||||
{ 200, { 128, 128, 0 }, { 127, 127, 0 } },
|
||||
};
|
||||
|
||||
void FireObj_InitWithParams(GlobalContext* globalCtx, FireObj* fire, FireObjInitParams* init) {
|
||||
fire->size = init->size;
|
||||
@@ -43,7 +43,7 @@ void FireObj_InitWithParams(GlobalContext* globalCtx, FireObj* fire, FireObjInit
|
||||
fire->dynamicSizeStep = init->dynamicSizeStep;
|
||||
fire->state = init->state;
|
||||
fire->sizeGrowsCos2 = init->sizeGrowsCos2;
|
||||
fire->unk27 = init->unkA;
|
||||
fire->colorsIndex = init->colorsIndex;
|
||||
fire->flags = init->flags;
|
||||
fire->xScale = 0.0f;
|
||||
fire->yScale = 0.0f;
|
||||
@@ -53,7 +53,7 @@ void FireObj_InitWithParams(GlobalContext* globalCtx, FireObj* fire, FireObjInit
|
||||
}
|
||||
|
||||
void FireObj_SetState(FireObj* fire, f32 dynamicSizeStep, u8 newState) {
|
||||
fire->state = newState & 0xFF;
|
||||
fire->state = newState;
|
||||
if (fire->state == FIRE_STATE_3) {
|
||||
fire->yScale = 0.0f;
|
||||
fire->xScale = 0.0f;
|
||||
@@ -75,11 +75,11 @@ void FireObj_StepSize(FireObj* fire) {
|
||||
FireObj_SetState(fire, fire->dynamicSizeStep, FIRE_STATE_2);
|
||||
}
|
||||
} else if ((fire->state == FIRE_STATE_1) && (Math_StepToF(&fire->dynamicSize, 0.0f, fire->dynamicSizeStep) != 0)) {
|
||||
FireObj_SetState(fire, fire->dynamicSizeStep, 3);
|
||||
FireObj_SetState(fire, fire->dynamicSizeStep, FIRE_STATE_3);
|
||||
}
|
||||
if (fire->sizeGrowsCos2 == 1) {
|
||||
if ((fire->state == FIRE_STATE_0) || (fire->state == FIRE_STATE_1)) {
|
||||
fire->xScale = (1.0f - Math_CosS((fire->dynamicSize * fire->dynamicSize * 16384.0f))) * fire->size;
|
||||
fire->xScale = (1.0f - Math_CosS(SQ(fire->dynamicSize) * 0x4000)) * fire->size;
|
||||
fire->yScale = fire->dynamicSize * fire->size;
|
||||
} else {
|
||||
fire->yScale = fire->dynamicSize * fire->size;
|
||||
@@ -96,7 +96,7 @@ void FireObj_UpdateStateTransitions(GlobalContext* globalCtx, FireObj* fire) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
WaterBox* waterBox;
|
||||
f32 waterY;
|
||||
s32 sp40 = 0;
|
||||
s32 sp40 = false;
|
||||
u8 nextState;
|
||||
Vec3f dist;
|
||||
|
||||
@@ -115,16 +115,16 @@ void FireObj_UpdateStateTransitions(GlobalContext* globalCtx, FireObj* fire) {
|
||||
}
|
||||
if ((fire->flags & 1) && (fire->state != FIRE_STATE_3) &&
|
||||
WaterBox_GetSurface1_2(globalCtx, &globalCtx->colCtx, fire->position.x, fire->position.z, &waterY, &waterBox) &&
|
||||
((fire->yScale * ((void)0, 6500.0f)) < (waterY - fire->position.y))) { // Fake but IDK what else
|
||||
(waterY - fire->position.y > 6500.0f * fire->yScale)) {
|
||||
FireObj_SetState(fire, fire->dynamicSizeStep, FIRE_STATE_3);
|
||||
}
|
||||
if ((fire->flags & 2) && (player->itemActionParam == PLAYER_AP_STICK)) {
|
||||
Math_Vec3f_Diff(&player->swordInfo[0].tip, &fire->position, &dist);
|
||||
if (Math3D_LengthSquared(&dist) < 400.0f) {
|
||||
sp40 = 1;
|
||||
sp40 = true;
|
||||
}
|
||||
}
|
||||
if (sp40 != 0) {
|
||||
if (sp40) {
|
||||
if (fire->state == FIRE_STATE_3) {
|
||||
if (player->unk_B28 > 0) {
|
||||
FireObj_SetState(fire, fire->dynamicSizeStep, FIRE_STATE_0);
|
||||
@@ -140,7 +140,7 @@ void FireObj_UpdateStateTransitions(GlobalContext* globalCtx, FireObj* fire) {
|
||||
|
||||
void FireObj_Draw(GlobalContext* globalCtx, FireObj* fire) {
|
||||
s32 pad;
|
||||
FireObjLightParams* lightParams = &sFireObjLightParams[fire->unk27];
|
||||
FireObjColors* fireColors = &sFireObjColors[fire->colorsIndex];
|
||||
|
||||
if (fire->state != FIRE_STATE_3) {
|
||||
Vec3s vec;
|
||||
@@ -151,10 +151,10 @@ void FireObj_Draw(GlobalContext* globalCtx, FireObj* fire) {
|
||||
POLY_XLU_DISP++, 0x08,
|
||||
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 64, 1, 0, (fire->unk26 * -20) & 511, 32, 128));
|
||||
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, lightParams->unk4, lightParams->primColor.r, lightParams->primColor.g,
|
||||
lightParams->primColor.b, lightParams->primColor.a);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, fireColors->lod, fireColors->primColor.r, fireColors->primColor.g,
|
||||
fireColors->primColor.b, fireColors->primColor.a);
|
||||
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, lightParams->envColor.r, lightParams->envColor.g, lightParams->envColor.b, 0);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, fireColors->envColor.r, fireColors->envColor.g, fireColors->envColor.b, 0);
|
||||
|
||||
vec.x = 0;
|
||||
vec.y = Camera_GetCamDirYaw(GET_ACTIVE_CAM(globalCtx)) + 0x8000;
|
||||
@@ -168,45 +168,35 @@ void FireObj_Draw(GlobalContext* globalCtx, FireObj* fire) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_EQUIVALENT
|
||||
// Accesses data incorrectly
|
||||
void FireObj_InitLight(GlobalContext* globalCtx, FireObjLight* light, u8* param_3, Vec3f* pos) {
|
||||
FireObjLightParams* objectParams = &sFireObjLightParams[*param_3];
|
||||
void FireObj_InitLight(GlobalContext* globalCtx, FireObjLight* light, u8* paramsIndex, Vec3f* pos) {
|
||||
FireObjLightParams* objectParams = &sFireObjLightParams[*paramsIndex];
|
||||
|
||||
Lights_PointGlowSetInfo(&light->lightInfo, pos->x, pos->y, pos->z, objectParams->primColor.g,
|
||||
objectParams->primColor.b, objectParams->primColor.a, objectParams->primColor.r);
|
||||
light->light = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, (LightInfo*)&light->lightInfo);
|
||||
light->unk12 = *param_3;
|
||||
Lights_PointGlowSetInfo(&light->lightInfo, pos->x, pos->y, pos->z, objectParams->color.r, objectParams->color.g,
|
||||
objectParams->color.b, objectParams->radius);
|
||||
light->light = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &light->lightInfo);
|
||||
light->lightParamsIndex = *paramsIndex;
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_fireobj/FireObj_InitLight.s")
|
||||
#endif
|
||||
|
||||
void FireObj_DestroyLight(GlobalContext* globalCtx, FireObjLight* light) {
|
||||
LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, light->light);
|
||||
}
|
||||
|
||||
#ifdef NON_EQUIVALENT
|
||||
// Accesses data incorrectly
|
||||
void FireObj_UpdateLight(GlobalContext* globalCtx, FireObjLight* light, FireObj* fire) {
|
||||
FireObjLightParams* lightParams = &sFireObjLightParams[light->unk12];
|
||||
FireObjLightParams* lightParams = &sFireObjLightParams[light->lightParamsIndex];
|
||||
s16 radius;
|
||||
|
||||
if (fire->state == FIRE_STATE_3) {
|
||||
Lights_PointSetColorAndRadius((LightInfo*)&light->lightInfo, 0, 0, 0, -1);
|
||||
Lights_PointSetColorAndRadius(&light->lightInfo, 0, 0, 0, -1);
|
||||
} else {
|
||||
radius = ((fire->yScale * 140.0f * fire->sizeInv) + 60.0f);
|
||||
|
||||
Lights_PointGlowSetInfo((LightInfo*)&light->lightInfo, fire->position.x,
|
||||
(fire->position.y + (fire->yScale * 6500.0f)), fire->position.z,
|
||||
((s32)(Rand_ZeroOne() * lightParams->envColor.r) + lightParams->primColor.b),
|
||||
((s32)(Rand_ZeroOne() * lightParams->envColor.g) + lightParams->primColor.a),
|
||||
((s32)(Rand_ZeroOne() * lightParams->envColor.b) + lightParams->unk4), radius);
|
||||
Lights_PointGlowSetInfo(&light->lightInfo, fire->position.x, (fire->position.y + (fire->yScale * 6500.0f)),
|
||||
fire->position.z,
|
||||
((s32)(Rand_ZeroOne() * lightParams->maxColorAdj.r) + lightParams->color.r),
|
||||
((s32)(Rand_ZeroOne() * lightParams->maxColorAdj.g) + lightParams->color.g),
|
||||
((s32)(Rand_ZeroOne() * lightParams->maxColorAdj.b) + lightParams->color.b), radius);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_fireobj/FireObj_UpdateLight.s")
|
||||
#endif
|
||||
|
||||
void FireObj_Init(GlobalContext* globalCtx, FireObj* fire, FireObjInitParams* init, Actor* actor) {
|
||||
FireObj* fire2 = fire;
|
||||
@@ -218,7 +208,7 @@ void FireObj_Init(GlobalContext* globalCtx, FireObj* fire, FireObjInitParams* in
|
||||
fire2->collision.dim.radius = (fire->size * 4000.0f) + 2.5f;
|
||||
fire2->collision.dim.height = fire->size * 16000.0f;
|
||||
fire->collision.dim.yShift = fire->size * -1728.0f;
|
||||
FireObj_InitLight(globalCtx, &fire->light, &init->unkC, &fire->position);
|
||||
FireObj_InitLight(globalCtx, &fire->light, &init->lightParamsIndex, &fire->position);
|
||||
}
|
||||
|
||||
void FireObj_Destroy(GlobalContext* globalCtx, FireObj* fire) {
|
||||
@@ -235,9 +225,9 @@ void FireObj_Update(GlobalContext* globalCtx, FireObj* fire, Actor* actor) {
|
||||
EnArrow* arrow = (EnArrow*)fire->collision.base.ac;
|
||||
|
||||
FireObj_UpdateStateTransitions(globalCtx, fire);
|
||||
if (fire->state == 3) {
|
||||
if (fire->state == FIRE_STATE_3) {
|
||||
if ((fire->collision.base.acFlags & AC_HIT) && (fire->collision.info.acHitInfo->toucher.dmgFlags & 0x800)) {
|
||||
FireObj_SetState(fire, fire->dynamicSizeStep, 0);
|
||||
FireObj_SetState(fire, fire->dynamicSizeStep, FIRE_STATE_0);
|
||||
}
|
||||
} else if ((fire->collision.base.acFlags & AC_HIT) && (arrow->actor.update != NULL) &&
|
||||
(arrow->actor.id == ACTOR_EN_ARROW)) {
|
||||
|
||||
+1
-6
@@ -1222,8 +1222,6 @@ Gfx* Gfx_PrimColor(GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s3
|
||||
return displayList;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// Regalloc differences, minor reorderings
|
||||
void func_8012CF0C(GraphicsContext* gfxCtx, s32 clearFb, s32 clearZb, u8 r, u8 g, u8 b) {
|
||||
Gfx* masterGfx;
|
||||
void* zbuffer;
|
||||
@@ -1269,7 +1267,7 @@ void func_8012CF0C(GraphicsContext* gfxCtx, s32 clearFb, s32 clearZb, u8 r, u8 g
|
||||
gDPSetRenderMode(&masterGfx[3], G_RM_NOOP, G_RM_NOOP2);
|
||||
gDPSetFillColor(&masterGfx[4], (GPACK_RGBA5551(255, 255, 240, 0) << 16) | GPACK_RGBA5551(255, 255, 240, 0));
|
||||
gSPDisplayList(&masterGfx[5], D_0E000000.clearFillRect);
|
||||
gDPSetColorImage(&masterGfx[6], G_IM_FMT_RGBA, G_IM_SIZ_16b, D_801FBBCC, zbuffer);
|
||||
gDPSetColorImage(&masterGfx[6], G_IM_FMT_RGBA, G_IM_SIZ_16b, D_801FBBCC, &D_0F000000);
|
||||
gSPEndDisplayList(&masterGfx[7]);
|
||||
}
|
||||
|
||||
@@ -1328,9 +1326,6 @@ void func_8012CF0C(GraphicsContext* gfxCtx, s32 clearFb, s32 clearZb, u8 r, u8 g
|
||||
|
||||
CLOSE_DISPS(gfxCtx);
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_rcp/func_8012CF0C.s")
|
||||
#endif
|
||||
|
||||
void func_8012D374(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b) {
|
||||
if ((R_PAUSE_MENU_MODE < 2) && (D_801F6D10 < 2)) {
|
||||
|
||||
@@ -1320,8 +1320,6 @@ void func_809DC78C(Actor* thisx, GlobalContext* globalCtx) {
|
||||
func_809DD934(this, globalCtx);
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// matrix stuff at the start?
|
||||
void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
static Gfx* D_809DFA9C[] = {
|
||||
object_boss02_DL_00ECF0, object_boss02_DL_00EF90, object_boss02_DL_00F310, object_boss02_DL_00F690,
|
||||
@@ -1332,12 +1330,12 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
object_boss02_DL_013210, object_boss02_DL_013590,
|
||||
};
|
||||
static Vec3f D_809DFAF4 = { -10000.0f, -100000.0f, -100000.0f };
|
||||
Boss02* this = THIS;
|
||||
GlobalContext* globalCtx = globalCtx2;
|
||||
Boss02* this = THIS;
|
||||
s32 i;
|
||||
s32 idx;
|
||||
RSPMatrix* matrix;
|
||||
s32 pad;
|
||||
Mtx* mtx;
|
||||
Mtx* mtxIter;
|
||||
s32 phi_v0;
|
||||
f32 phi_f12;
|
||||
f32 spAC;
|
||||
@@ -1347,7 +1345,7 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
f32 sp9C;
|
||||
f32 sp98;
|
||||
|
||||
matrix = GRAPH_ALLOC(globalCtx->state.gfxCtx, sizeof(RSPMatrix) * 23);
|
||||
mtxIter = mtx = GRAPH_ALLOC(globalCtx->state.gfxCtx, sizeof(Mtx) * 23);
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
|
||||
@@ -1359,7 +1357,7 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(object_boss02_Tex_0041A0));
|
||||
}
|
||||
|
||||
gSPSegment(POLY_OPA_DISP++, 0x0D, matrix);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x0D, mtx);
|
||||
|
||||
if (D_809E0422 == 0) {
|
||||
sp98 = -500.0f;
|
||||
@@ -1396,11 +1394,11 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
|
||||
spA4 = 0.0f;
|
||||
spA0 = 0.0f;
|
||||
for (i = 0; i < ARRAY_COUNT(D_809DFA9C); i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(D_809DFA9C); i++, mtxIter++) {
|
||||
if (this->unk_0195 != 0) {
|
||||
phi_v0 = (D_809DF5E4[i] + this->unk_014E) % ARRAY_COUNT(this->unk_01BC);
|
||||
phi_v0 = (D_809DF5E4[i + 1] + this->unk_014E) % ARRAY_COUNT(this->unk_01BC);
|
||||
} else {
|
||||
phi_v0 = (D_809DF5B4[i] + this->unk_014E) % ARRAY_COUNT(this->unk_01BC);
|
||||
phi_v0 = (D_809DF5B4[i + 1] + this->unk_014E) % ARRAY_COUNT(this->unk_01BC);
|
||||
}
|
||||
|
||||
if ((i == 21) && (this->unk_0144 < 20)) {
|
||||
@@ -1416,9 +1414,9 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY);
|
||||
Matrix_InsertYRotation_f(M_PI / 2, MTXMODE_APPLY);
|
||||
Matrix_RotateStateAroundXAxis(-(M_PI / 2));
|
||||
Matrix_GetStateAsRSPMatrix(&matrix[i]);
|
||||
Matrix_ToMtx(mtxIter);
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, &matrix[i], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPMatrix(POLY_OPA_DISP++, mtxIter, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
if ((this->unk_0156 & 1) && (i >= this->unk_0158) && (this->unk_015A >= i)) {
|
||||
POLY_OPA_DISP = Gfx_SetFog(POLY_OPA_DISP, 255, 0, 0, 255, 0x384, 0x44B);
|
||||
@@ -1443,7 +1441,7 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
Actor* child = this->actor.child;
|
||||
|
||||
if (child != NULL) {
|
||||
Matrix_GetStateTranslationAndScaledX(500.0f, &child->world.pos);
|
||||
Matrix_GetStateTranslationAndScaledX(500.0f, &this->actor.child->world.pos);
|
||||
}
|
||||
|
||||
func_809DA50C(1, &this->colliderSphere2, &this->unk_147C[i + 1]);
|
||||
@@ -1464,18 +1462,6 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
func_809DA50C(21, &this->colliderSphere1, &D_809DFAF4);
|
||||
}
|
||||
}
|
||||
#else
|
||||
static Gfx* D_809DFA9C[] = {
|
||||
object_boss02_DL_00ECF0, object_boss02_DL_00EF90, object_boss02_DL_00F310, object_boss02_DL_00F690,
|
||||
object_boss02_DL_00FA10, object_boss02_DL_00FD90, object_boss02_DL_010110, object_boss02_DL_010490,
|
||||
object_boss02_DL_010810, object_boss02_DL_010B90, object_boss02_DL_010F10, object_boss02_DL_011290,
|
||||
object_boss02_DL_011610, object_boss02_DL_011990, object_boss02_DL_011D10, object_boss02_DL_012090,
|
||||
object_boss02_DL_012410, object_boss02_DL_012790, object_boss02_DL_012B10, object_boss02_DL_012E90,
|
||||
object_boss02_DL_013210, object_boss02_DL_013590,
|
||||
};
|
||||
static Vec3f D_809DFAF4 = { -10000.0f, -100000.0f, -100000.0f };
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_02/Boss02_Draw.s")
|
||||
#endif
|
||||
|
||||
void func_809DD0A8(Actor* thisx, GlobalContext* globalCtx) {
|
||||
func_809DD2F8(globalCtx);
|
||||
@@ -1634,8 +1620,6 @@ void func_809DD2F8(GlobalContext* globalCtx) {
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx);
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// Small ordering in the last loop
|
||||
void func_809DD934(Boss02* this, GlobalContext* globalCtx) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
s16 i;
|
||||
@@ -1946,9 +1930,11 @@ void func_809DD934(Boss02* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
temp_a0_5 = temp_a0_5->next;
|
||||
}
|
||||
{
|
||||
f32 tmp = D_809E0422 ? 3150.0f : 0.0f;
|
||||
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_BG_INIBS_MOVEBG, 0, D_809E0422 ? 3150.0f : 0.0f, 0, 0, 0, 0,
|
||||
D_809E0422);
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_BG_INIBS_MOVEBG, 0, tmp, 0, 0, 0, 0, D_809E0422);
|
||||
}
|
||||
|
||||
temp_a0_5 = globalCtx->actorCtx.actorLists[ACTORCAT_BOSS].first;
|
||||
while (temp_a0_5 != NULL) {
|
||||
@@ -2052,9 +2038,6 @@ void func_809DD934(Boss02* this, GlobalContext* globalCtx) {
|
||||
ShrinkWindow_SetLetterboxTarget(27);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_02/func_809DD934.s")
|
||||
#endif
|
||||
|
||||
void func_809DEAC4(Boss02* this, GlobalContext* globalCtx) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
|
||||
@@ -499,8 +499,6 @@ void Boss06_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// v/a flips
|
||||
void Boss06_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
GlobalContext* globalCtx = globalCtx2;
|
||||
Boss06* this = THIS;
|
||||
@@ -509,10 +507,11 @@ void Boss06_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
s16 temp_s0;
|
||||
s16 temp_f10;
|
||||
Vtx* temp_v0_2;
|
||||
u32 temp_v0;
|
||||
u16 temp_v0;
|
||||
u16 pad;
|
||||
u8 spD3;
|
||||
u8 spD2;
|
||||
s32 pad;
|
||||
s32 maxColor = 255; // Possible FAKE MATCH
|
||||
f32 sp68;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
@@ -521,8 +520,8 @@ void Boss06_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
func_8012C28C(globalCtx->state.gfxCtx);
|
||||
|
||||
temp_v0 = gSaveContext.time;
|
||||
if (gSaveContext.time > 0x8000) {
|
||||
temp_v0 = (0xFFFF - gSaveContext.time) & 0xFFFF;
|
||||
if (temp_v0 > CLOCK_TIME(12, 0)) {
|
||||
temp_v0 = 0xFFFF - temp_v0;
|
||||
}
|
||||
sp68 = (f32)temp_v0 / 0x8000;
|
||||
spD3 = ((10.0f * sp68) + 105.0f) * this->unk_19C;
|
||||
@@ -579,10 +578,12 @@ void Boss06_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
Matrix_InsertTranslation(0.0f, 0.0f, -1112.0f, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x9B, 255, 255, (u8)((140.0f * sp68) + 115.0f), spD3);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 155, 255, maxColor, (u8)((140.0f * sp68) + 115.0f), spD3);
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_knight_DL_018CF0);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0xFF, 255, 255, (u8)((100.0f * sp68) + 65.0f), spD2);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 255, 255, maxColor, (u8)((100.0f * sp68) + 65.0f), spD2);
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_knight_DL_018DE0);
|
||||
|
||||
if (1) {}
|
||||
}
|
||||
|
||||
if (this->unk_144 & 1) {
|
||||
@@ -603,7 +604,7 @@ void Boss06_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
func_809F2120(1, 0x71A5, 0x263A);
|
||||
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 10, 0, 0);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 0, 230);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 128, 255, 255, 0, 230);
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(D_809F4370); i++) {
|
||||
if ((fabsf(D_809F4370[i].x - 32.0f) < 30.0f) && (fabsf(D_809F4370[i].y - 32.0f) < 30.0f)) {
|
||||
@@ -621,7 +622,7 @@ void Boss06_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
Matrix_InsertYRotation_f(M_PI, MTXMODE_APPLY);
|
||||
}
|
||||
|
||||
Matrix_Scale(-0.002f, -this->unk_1D8, 1.0f, MTXMODE_APPLY);
|
||||
Matrix_Scale(-0.02f / 10.0f, -this->unk_1D8, 1.0f, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
@@ -655,6 +656,3 @@ void Boss06_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx);
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_06/Boss06_Draw.s")
|
||||
#endif
|
||||
|
||||
@@ -74,32 +74,19 @@ static ColliderCylinderInit sCylinderInit = {
|
||||
{ 10, 30, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static u16 D_80C00A44[] = {
|
||||
0x0719,
|
||||
0x071A,
|
||||
0x071B,
|
||||
0x0708,
|
||||
u16 D_80C00A44[] = { 0x719, 0x71A, 0x71B, 0x708 };
|
||||
|
||||
u16 D_80C00A4C[] = { 0x739, 0x73A, 0x73B, 0x000 };
|
||||
|
||||
u16 D_80C00A54[] = {
|
||||
0x739, 0x73A, 0x73B, 0x714, 0x709, 0x70A, 0x70B, 0x70C, 0x70D, 0x70E, 0x70F, 0x712, 0x713,
|
||||
};
|
||||
|
||||
static u16 D_80C00A4C[] = {
|
||||
0x0739,
|
||||
0x073A,
|
||||
0x073B,
|
||||
0x0000,
|
||||
u16 D_80C00A70[] = {
|
||||
0x739, 0x73A, 0x73B, 0x759, 0x753, 0x754, 0x755, 0x756, 0x70D, 0x757, 0x758, 0x712, 0x713,
|
||||
};
|
||||
|
||||
static u16 D_80C00A54[] = { 0x0739, 0x073A, 0x073B, 0x0714, 0x0709, 0x070A, 0x070B,
|
||||
0x070C, 0x070D, 0x070E, 0x070F, 0x0712, 0x0713 };
|
||||
|
||||
static u16 D_80C00A70[] = { 0x0739, 0x073A, 0x073B, 0x0759, 0x0753, 0x0754, 0x0755,
|
||||
0x0756, 0x070D, 0x0757, 0x0758, 0x0712, 0x0713 };
|
||||
|
||||
static u16 D_80C00A8C[] = {
|
||||
0x0736,
|
||||
0x0737,
|
||||
0x0738,
|
||||
0x074E,
|
||||
};
|
||||
u16 D_80C00A8C[] = { 0x736, 0x737, 0x738, 0x74E };
|
||||
|
||||
static AnimationHeader* sAnimations[] = {
|
||||
&object_cs_Anim_0064B8, &object_cs_Anim_00FAF4, &object_cs_Anim_0057C8, &object_cs_Anim_0053F4,
|
||||
@@ -109,9 +96,14 @@ static AnimationHeader* sAnimations[] = {
|
||||
&object_cs_Anim_005DC4, &object_cs_Anim_0026B0, &object_cs_Anim_0036B0, &object_cs_Anim_0031C4,
|
||||
};
|
||||
|
||||
static u8 D_80C00AE4[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00,
|
||||
0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00,
|
||||
u8 D_80C00AE4[] = {
|
||||
ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_ONCE,
|
||||
ANIMMODE_ONCE, ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_ONCE, ANIMMODE_LOOP, ANIMMODE_LOOP,
|
||||
ANIMMODE_LOOP, ANIMMODE_ONCE, ANIMMODE_LOOP, ANIMMODE_ONCE, ANIMMODE_LOOP, ANIMMODE_LOOP,
|
||||
};
|
||||
|
||||
s16 D_80C00AF8[] = {
|
||||
0x4000, 60, 0x4000, 30, 0xC000, 30, 0xC000, 60,
|
||||
};
|
||||
|
||||
void EnBomjima_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
@@ -640,21 +632,7 @@ void func_80BFF6CC(EnBomjima* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_EQUIVALENT
|
||||
// Data indexing is wrong
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x02 */ s16 unk_02;
|
||||
} EnBombjimaStruct;
|
||||
|
||||
void func_80BFF754(EnBomjima* this, GlobalContext* globalCtx) {
|
||||
static EnBombjimaStruct D_80C00AF8[] = {
|
||||
{ 0x4000, 0x003C },
|
||||
{ 0x4000, 0x001E },
|
||||
{ 0xC000, 0x001E },
|
||||
{ 0xC000, 0x003C },
|
||||
};
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
Vec3f spA0;
|
||||
EnBombal* temp_s3;
|
||||
@@ -688,13 +666,12 @@ void func_80BFF754(EnBomjima* this, GlobalContext* globalCtx) {
|
||||
temp_s3 = (EnBombal*)Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_BOMJIMA, spA0.x,
|
||||
spA0.y, spA0.z, 0, 0, 0, i + 32);
|
||||
if (temp_s3 != NULL) {
|
||||
s32 idx1 = (i * 2) - 1;
|
||||
s32 idx2 = i * 2;
|
||||
s32 index = (i * 2) - 2;
|
||||
|
||||
Math_Vec3f_Copy(&spA0, &this->actor.world.pos);
|
||||
|
||||
spA0.x += Math_SinS(D_80C00AF8[idx1 - 1].unk_00 + this->actor.world.rot.y) * D_80C00AF8[idx2].unk_02;
|
||||
spA0.z += Math_CosS(D_80C00AF8[idx2].unk_00 + this->actor.world.rot.y) * D_80C00AF8[idx2].unk_02;
|
||||
spA0.x += Math_SinS(D_80C00AF8[(i * 2) - 2] + this->actor.world.rot.y) * D_80C00AF8[index + 1];
|
||||
spA0.z += Math_CosS(D_80C00AF8[index] + this->actor.world.rot.y) * D_80C00AF8[index + 1];
|
||||
|
||||
Math_Vec3f_Copy(&temp_s3->unk_2A4, &spA0);
|
||||
}
|
||||
@@ -704,15 +681,6 @@ void func_80BFF754(EnBomjima* this, GlobalContext* globalCtx) {
|
||||
ActorCutscene_StartAndSetUnkLinkFields(this->unk_2D4[1], &this->actor);
|
||||
this->actionFunc = func_80BFF9B0;
|
||||
}
|
||||
#else
|
||||
static s16 D_80C00AF8[][2] = {
|
||||
{ 0x4000, 0x003C },
|
||||
{ 0x4000, 0x001E },
|
||||
{ 0xC000, 0x001E },
|
||||
{ 0xC000, 0x003C },
|
||||
};
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Bomjima/func_80BFF754.s")
|
||||
#endif
|
||||
|
||||
void func_80BFF9B0(EnBomjima* this, GlobalContext* globalCtx) {
|
||||
if (D_80C009F0 >= 4) {
|
||||
|
||||
@@ -528,10 +528,9 @@ s32 func_8093F6F8(EnGoroiwa* this, GlobalContext* globalCtx) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// Stack
|
||||
void func_8093FAA4(EnGoroiwa* this, GlobalContext* globalCtx) {
|
||||
f32 temp;
|
||||
f32 tmp2;
|
||||
f32 sp7C;
|
||||
Vec3f sp70;
|
||||
Vec3f sp64;
|
||||
@@ -541,7 +540,8 @@ void func_8093FAA4(EnGoroiwa* this, GlobalContext* globalCtx) {
|
||||
sp7C = this->unk_1C0;
|
||||
} else {
|
||||
temp = Math3D_Distance(&this->actor.world.pos, &this->actor.prevPos);
|
||||
this->unk_1C0 = temp / this->unk_1DC;
|
||||
tmp2 = temp / this->unk_1DC;
|
||||
this->unk_1C0 = tmp2;
|
||||
sp7C = this->unk_1C0;
|
||||
}
|
||||
|
||||
@@ -567,9 +567,6 @@ void func_8093FAA4(EnGoroiwa* this, GlobalContext* globalCtx) {
|
||||
Matrix_CopyCurrentState(&sp24);
|
||||
func_8018219C(&sp24, &this->actor.shape.rot, MTXMODE_NEW);
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Goroiwa/func_8093FAA4.s")
|
||||
#endif
|
||||
|
||||
void func_8093FC00(EnGoroiwa* this) {
|
||||
s32 params = ENGOROIWA_GET_300(&this->actor);
|
||||
@@ -724,8 +721,8 @@ void func_80940090(EnGoroiwa* this, GlobalContext* globalCtx) {
|
||||
|
||||
Math_Vec3f_Sum(&sp100, &sp10C, &sp100);
|
||||
EffectSsKakera_Spawn(globalCtx, &sp100, &spF4, &sp100, phi_s2, phi_s0, 30, 0, 0,
|
||||
((Rand_ZeroOne() * 150.0f) + 300.0f) * this->actor.scale.x, phi_s3, 0, 0x32, -1, 0xEF,
|
||||
phi_s1);
|
||||
((Rand_ZeroOne() * 150.0f) + 300.0f) * this->actor.scale.x, phi_s3, 0, 0x32, -1,
|
||||
OBJECT_GOROIWA, phi_s1);
|
||||
if (this->unk_1E6 == 0) {
|
||||
sp100.x += ((Rand_ZeroOne() * 1200.0f) - 600.0f) * this->actor.scale.x;
|
||||
sp100.y += ((Rand_ZeroOne() * 1400.0f) - 600.0f) * this->actor.scale.y;
|
||||
@@ -807,7 +804,7 @@ void func_80940588(GlobalContext* globalCtx, Vec3f* arg1, Gfx* arg2[], Color_RGB
|
||||
}
|
||||
|
||||
EffectSsKakera_Spawn(globalCtx, &sp100, &spF4, &sp100, phi_fp, phi_s0, 30, 0, 0,
|
||||
((Rand_ZeroOne() * 100.0f) + 170.0f) * arg5, spC8, 0, 0x36, -1, 0xEF, phi_s7);
|
||||
((Rand_ZeroOne() * 100.0f) + 170.0f) * arg5, spC8, 0, 0x36, -1, OBJECT_GOROIWA, phi_s7);
|
||||
|
||||
for (j = 0; j < 2; j++) {
|
||||
spE8.x = (((Rand_ZeroOne() * 1000.0f) - 500.0f) * arg5) + sp100.x;
|
||||
@@ -882,7 +879,7 @@ void func_80940A1C(GlobalContext* globalCtx, Vec3f* arg1, Gfx** arg2, Color_RGBA
|
||||
}
|
||||
|
||||
EffectSsKakera_Spawn(globalCtx, &spE8, &spDC, &spE8, phi_s2, phi_s0, 30, 0, 0,
|
||||
((Rand_ZeroOne() * 150.0f) + 250.0f) * arg5, phi_s3, 0, 0x36, -1, 0xEF, phi_s1);
|
||||
((Rand_ZeroOne() * 150.0f) + 250.0f) * arg5, phi_s3, 0, 0x36, -1, OBJECT_GOROIWA, phi_s1);
|
||||
|
||||
spE8.x += ((Rand_ZeroOne() * 800.0f) - 400.0f) * arg5;
|
||||
spE8.y += ((Rand_ZeroOne() * 800.0f) - 250.0f) * arg5;
|
||||
@@ -1431,8 +1428,6 @@ void func_80942604(EnGoroiwa* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// stack for params and colCtx
|
||||
void EnGoroiwa_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
EnGoroiwa* this = THIS;
|
||||
@@ -1442,6 +1437,8 @@ void EnGoroiwa_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Vec3f sp50;
|
||||
f32 sp4C;
|
||||
s32 sp48 = true;
|
||||
u32 temp_v0_2;
|
||||
CollisionPoly* tmp;
|
||||
|
||||
if (!(player->stateFlags1 & (0x30000000 | 0x80 | 0x40))) {
|
||||
if (this->unk_1CC > 0) {
|
||||
@@ -1459,8 +1456,9 @@ void EnGoroiwa_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
sp5C = true;
|
||||
|
||||
if (this->actor.flags & ACTOR_FLAG_40) {
|
||||
if (this->actor.floorPoly != NULL) {
|
||||
u32 temp_v0_2 = func_800C99D4(&globalCtx->colCtx, this->actor.floorPoly, this->actor.floorBgId);
|
||||
tmp = this->actor.floorPoly;
|
||||
if (tmp != NULL) {
|
||||
temp_v0_2 = func_800C99D4(&globalCtx->colCtx, tmp, this->actor.floorBgId);
|
||||
|
||||
if ((temp_v0_2 == 14) || (temp_v0_2 == 15)) {
|
||||
if (!(this->unk_1E5 & 0x40)) {
|
||||
@@ -1549,9 +1547,6 @@ void EnGoroiwa_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Goroiwa/EnGoroiwa_Update.s")
|
||||
#endif
|
||||
|
||||
void func_80942B1C(EnGoroiwa* this, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
|
||||
@@ -255,7 +255,7 @@ void func_8095DABC(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
EffectSsKakera_Spawn(globalCtx, &spCC, &spD8, &this->actor.world.pos, phi_v1, phi_v0, 30, 5, 0, D_8095F758[i],
|
||||
5, 2, 70, 0, 2, gameplay_field_keep_DL_006420);
|
||||
5, 2, 70, 0, GAMEPLAY_FIELD_KEEP, gameplay_field_keep_DL_006420);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -995,7 +995,7 @@ void EnKanban_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
f32 shadowAlpha;
|
||||
|
||||
if (dayTime >= CLOCK_TIME(12, 0)) {
|
||||
dayTime = (0xFFFF - dayTime) & 0xFFFF;
|
||||
dayTime = 0xFFFF - dayTime;
|
||||
}
|
||||
|
||||
shadowAlpha = (dayTime * 0.00275f) + 10.0f;
|
||||
|
||||
@@ -346,7 +346,7 @@ void func_809375F4(ObjBean* this, GlobalContext* globalCtx) {
|
||||
phi_v0 = 0x40;
|
||||
}
|
||||
EffectSsKakera_Spawn(globalCtx, &spC4, &spB8, &spC4, phi_s3, phi_v0, 40, 3, 0, temp_s2, 0, 0,
|
||||
(temp_s2 >> 3) + 40, -1, 1, D_80939024[i & 1]);
|
||||
(temp_s2 >> 3) + 40, -1, GAMEPLAY_KEEP, D_80939024[i & 1]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -228,8 +228,8 @@ void func_80B030F8(ObjSnowball* this, GlobalContext* globalCtx) {
|
||||
|
||||
scale = ((Rand_ZeroOne() * 15.0f) + 30.0f) * this->unk_20C;
|
||||
|
||||
EffectSsKakera_Spawn(globalCtx, &spFC, &spF0, &spFC, gravity, phi_s0, 30, 0, 0, scale, phi_s4, 0, 50, -1, 0xEF,
|
||||
temp_s2);
|
||||
EffectSsKakera_Spawn(globalCtx, &spFC, &spF0, &spFC, gravity, phi_s0, 30, 0, 0, scale, phi_s4, 0, 50, -1,
|
||||
OBJECT_GOROIWA, temp_s2);
|
||||
if ((this->unk_210 == 0) && (temp_s7 >= 3)) {
|
||||
spFC.x += (Rand_ZeroOne() * 120.0f) - 60.0f;
|
||||
spFC.y += Rand_ZeroOne() * 80.0f;
|
||||
@@ -333,7 +333,6 @@ void func_80B03688(ObjSnowball* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_80B03A80(GlobalContext* globalCtx, f32 arg1, Vec3f* arg2) {
|
||||
f32 temp_f30 = sqrtf(arg1);
|
||||
Vec3f spD8;
|
||||
@@ -341,14 +340,16 @@ void func_80B03A80(GlobalContext* globalCtx, f32 arg1, Vec3f* arg2) {
|
||||
s32 i;
|
||||
Gfx* temp_s1;
|
||||
f32 temp_f20;
|
||||
s32 phi_s5;
|
||||
s32 pad;
|
||||
s16 phi_s2;
|
||||
s32 pad2;
|
||||
s16 phi_s0;
|
||||
s16 phi_s3;
|
||||
s32 phi_s5;
|
||||
s32 tmp;
|
||||
s32 pad;
|
||||
|
||||
for (i = 0, phi_s5 = 0; i < 13; i++, phi_s5 += 0x1999) {
|
||||
tmp = i & 3;
|
||||
|
||||
temp_f20 = (Rand_ZeroOne() * (40.0f * arg1)) + 20.0f;
|
||||
|
||||
spD8.x = Math_SinS((s32)(Rand_ZeroOne() * 6553.6f) + phi_s5) * temp_f20;
|
||||
@@ -363,7 +364,7 @@ void func_80B03A80(GlobalContext* globalCtx, f32 arg1, Vec3f* arg2) {
|
||||
spD8.y += arg2->y;
|
||||
spD8.z += arg2->z;
|
||||
|
||||
if ((i & 3) == 0) {
|
||||
if (tmp == 0) {
|
||||
temp_s1 = D_80B04FC8[0];
|
||||
phi_s2 = -400;
|
||||
phi_s3 = 1;
|
||||
@@ -372,7 +373,7 @@ void func_80B03A80(GlobalContext* globalCtx, f32 arg1, Vec3f* arg2) {
|
||||
} else {
|
||||
phi_s0 = 0x41;
|
||||
}
|
||||
} else if ((i & 3) == 1) {
|
||||
} else if (tmp == 1) {
|
||||
temp_s1 = D_80B04FC8[1];
|
||||
phi_s2 = -340;
|
||||
phi_s3 = 1;
|
||||
@@ -389,7 +390,7 @@ void func_80B03A80(GlobalContext* globalCtx, f32 arg1, Vec3f* arg2) {
|
||||
}
|
||||
|
||||
EffectSsKakera_Spawn(globalCtx, &spD8, &spCC, &spD8, phi_s2, phi_s0, 30, 0, 0,
|
||||
((Rand_ZeroOne() * 15.0f) + 25.0f) * arg1, phi_s3, 0, 0x36, -1, 0xEF, temp_s1);
|
||||
((Rand_ZeroOne() * 15.0f) + 25.0f) * arg1, phi_s3, 0, 0x36, -1, OBJECT_GOROIWA, temp_s1);
|
||||
|
||||
spD8.x += (Rand_ZeroOne() * 80.0f) - 40.0f;
|
||||
spD8.y += Rand_ZeroOne() * 55.0f;
|
||||
@@ -401,10 +402,6 @@ void func_80B03A80(GlobalContext* globalCtx, f32 arg1, Vec3f* arg2) {
|
||||
(s32)(Rand_ZeroOne() * 30.0f * temp_f30) + 60);
|
||||
}
|
||||
}
|
||||
#else
|
||||
void func_80B03A80(GlobalContext* globalCtx, f32 arg1, Vec3f* arg2);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Snowball/func_80B03A80.s")
|
||||
#endif
|
||||
|
||||
void func_80B03E2C(ObjSnowball* this, GlobalContext* globalCtx) {
|
||||
ObjSnowballStruct* ptr;
|
||||
|
||||
@@ -178,7 +178,7 @@ void func_80B39108(ObjSnowball2* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
EffectSsKakera_Spawn(globalCtx, &spD0, &spDC, &spD0, -300, phi_s1, 30, 0, 0, (temp >> 0x1D) + 8, phi_v0, 0, 50,
|
||||
-1, 0xEF, D_80B3A91C[i & 3]);
|
||||
-1, OBJECT_GOROIWA, D_80B3A91C[i & 3]);
|
||||
|
||||
spD0.x += (Rand_ZeroOne() - 0.5f) * 40.0f;
|
||||
spD0.y += (Rand_ZeroOne() - 0.3f) * 45.0f;
|
||||
|
||||
@@ -193,7 +193,7 @@ void Daytelop_Draw(DaytelopContext* this) {
|
||||
void Daytelop_Main(GameState* thisx) {
|
||||
DaytelopContext* this = (DaytelopContext*)thisx;
|
||||
|
||||
func_8012CF0C(this->state.gfxCtx, 1, 1, 0, 0, 0);
|
||||
func_8012CF0C(this->state.gfxCtx, true, true, 0, 0, 0);
|
||||
|
||||
OPEN_DISPS(this->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, this->daytelopStaticFile);
|
||||
|
||||
@@ -37,7 +37,7 @@ void func_80803EA0(OpeningContext* this) {
|
||||
void Opening_Main(GameState* thisx) {
|
||||
OpeningContext* this = (OpeningContext*)thisx;
|
||||
|
||||
func_8012CF0C(this->gameState.gfxCtx, 0, 1, 0, 0, 0);
|
||||
func_8012CF0C(this->gameState.gfxCtx, false, true, 0, 0, 0);
|
||||
Opening_SetupForTitleCutscene(this);
|
||||
func_80803EA0(this);
|
||||
}
|
||||
|
||||
@@ -868,7 +868,7 @@ void Select_DrawLoadingScreen(SelectContext* this) {
|
||||
void Select_Draw(SelectContext* this) {
|
||||
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
||||
|
||||
func_8012CF0C(gfxCtx, 1, 1, 0, 0, 0);
|
||||
func_8012CF0C(gfxCtx, true, true, 0, 0, 0);
|
||||
|
||||
SET_FULLSCREEN_VIEWPORT(&this->view);
|
||||
View_RenderView(&this->view, 0xF);
|
||||
|
||||
@@ -119,7 +119,7 @@ void Title_Draw(GameState* thisx) {
|
||||
void Title_Main(GameState* thisx) {
|
||||
TitleContext* this = (TitleContext*)thisx;
|
||||
|
||||
func_8012CF0C(this->gameState.gfxCtx, 1, 1, 0, 0, 0);
|
||||
func_8012CF0C(this->gameState.gfxCtx, true, true, 0, 0, 0);
|
||||
|
||||
OPEN_DISPS(this->gameState.gfxCtx);
|
||||
|
||||
|
||||
@@ -932,7 +932,8 @@
|
||||
0x801BD8C4:("actorCutsceneReturnCamera","s16","",0x2),
|
||||
0x801BD8C6:("D_801BD8C6","s16","",0x2),
|
||||
0x801BD8D0:("sFireObjCollisionInit","ColliderCylinderInit","",0x2c),
|
||||
0x801BD8FC:("sFireObjLightParams","FireObjLightParams","[2]",0x10),
|
||||
0x801BD8FC:("sFireObjColors","FireObjColors","[1]",0x08),
|
||||
0x801BD904:("sFireObjLightParams","FireObjLightParams","[1]",0x08),
|
||||
0x801BD910:("gGameStateOverlayTable","GameStateOverlay","[7]",0x150),
|
||||
0x801BDA60:("graphNumGameStates","UNK_TYPE4","",0x4),
|
||||
0x801BDA70:("D_801BDA70","UNK_TYPE2","",0x2),
|
||||
@@ -9003,7 +9004,7 @@
|
||||
0x80979150:("D_80979150","f32","",0x4),
|
||||
0x80979560:("Effect_Ss_D_Fire_InitVars","UNK_TYPE1","",0x1),
|
||||
0x80979568:("D_80979568","UNK_TYPE1","",0x1),
|
||||
0x80979AB0:("Effect_Ss_Bubble_InitVars","UNK_TYPE1","",0x1),
|
||||
0x80979AB0:("Effect_Ss_Bubble_InitVars","UNK_TYPE1","",0x8),
|
||||
0x80979AB8:("D_80979AB8","UNK_TYPE1","",0x1),
|
||||
0x80979AD0:("D_80979AD0","f32","",0x4),
|
||||
0x80979AD4:("D_80979AD4","f32","",0x4),
|
||||
|
||||
@@ -781,11 +781,6 @@ D_06022118 = 0x06022118;
|
||||
D_060222D0 = 0x060222D0;
|
||||
D_06022550 = 0x06022550;
|
||||
|
||||
// ovl_Boss_02
|
||||
|
||||
D_060003A0 = 0x060003A0;
|
||||
D_060041A0 = 0x060041A0;
|
||||
|
||||
// ovl_Boss_03
|
||||
|
||||
D_06004260 = 0x06004260;
|
||||
|
||||
Reference in New Issue
Block a user