mirror of
https://github.com/zeldaret/oot
synced 2026-07-04 13:20:14 -04:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
#include <global.h>
|
||||
#include <padmgr.h>
|
||||
#include <vt.h>
|
||||
|
||||
extern PadMgr gPadMgr;
|
||||
|
||||
u32 D_8012DBC0 = false;
|
||||
|
||||
void func_800D31A0() {
|
||||
osSyncPrintf(VT_FGCOL(RED) "\n**** Freeze!! ****\n" VT_RST);
|
||||
while (true) {
|
||||
func_800FF4AC(1000); // msleep
|
||||
}
|
||||
}
|
||||
|
||||
void func_800D31F0() {
|
||||
PadMgr* padMgr = (PadMgr*)(u32)&gPadMgr; // cast required to match
|
||||
|
||||
D_8012DBC0 = (padMgr->unk_2A8 & 2) != 0;
|
||||
}
|
||||
|
||||
void func_800D3210() {
|
||||
D_8012DBC0 = false;
|
||||
}
|
||||
+8
-9
@@ -3516,17 +3516,17 @@ void func_80033C30(Vec3f* arg0, Vec3f* arg1, u8 alpha, GlobalContext* globalCtx)
|
||||
}
|
||||
|
||||
void func_80033DB8(GlobalContext* globalCtx, s16 arg1, s16 arg2) {
|
||||
s16 var = func_80092F88(&globalCtx->cameraCtx.activeCameras[0], 3);
|
||||
func_80092DAC(var, 20000);
|
||||
func_80092E70(var, arg1, 0, 0, 0);
|
||||
func_80092DF0(var, arg2);
|
||||
s16 var = Quake_Add(&globalCtx->cameraCtx.activeCameras[0], 3);
|
||||
Quake_SetSpeed(var, 20000);
|
||||
Quake_SetQuakeValues(var, arg1, 0, 0, 0);
|
||||
Quake_SetCountdown(var, arg2);
|
||||
}
|
||||
|
||||
void func_80033E1C(GlobalContext* globalCtx, s16 arg1, s16 arg2, s16 arg3) {
|
||||
s16 var = func_80092F88(&globalCtx->cameraCtx.activeCameras[0], 3);
|
||||
func_80092DAC(var, arg3);
|
||||
func_80092E70(var, arg1, 0, 0, 0);
|
||||
func_80092DF0(var, arg2);
|
||||
s16 var = Quake_Add(&globalCtx->cameraCtx.activeCameras[0], 3);
|
||||
Quake_SetSpeed(var, arg3);
|
||||
Quake_SetQuakeValues(var, arg1, 0, 0, 0);
|
||||
Quake_SetCountdown(var, arg2);
|
||||
}
|
||||
|
||||
void func_80033E88(Actor* actor, GlobalContext* globalCtx, s16 arg2, s16 arg3) {
|
||||
@@ -4064,7 +4064,6 @@ void func_8003555C(GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* ar
|
||||
Vec3f D_80116268 = { 0.0f, -1.5f, 0.0f };
|
||||
Vec3f D_80116274 = { 0.0f, -0.2f, 0.0f };
|
||||
|
||||
// unused
|
||||
Gfx D_80116280[] = {
|
||||
gsDPSetRenderMode(AA_EN | Z_CMP | Z_UPD | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_XLU | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA),
|
||||
|
||||
+5
-5
@@ -272,15 +272,15 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
|
||||
break;
|
||||
case 16:
|
||||
if (sp3F != 0) {
|
||||
D_8015FCCA = func_80092F88(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 6);
|
||||
func_80092DAC(D_8015FCCA, 0x7FFF);
|
||||
func_80092E70(D_8015FCCA, 4, 0, 1000, 0);
|
||||
func_80092DF0(D_8015FCCA, 800);
|
||||
D_8015FCCA = Quake_Add(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 6);
|
||||
Quake_SetSpeed(D_8015FCCA, 0x7FFF);
|
||||
Quake_SetQuakeValues(D_8015FCCA, 4, 0, 1000, 0);
|
||||
Quake_SetCountdown(D_8015FCCA, 800);
|
||||
}
|
||||
break;
|
||||
case 17:
|
||||
if (sp3F != 0) {
|
||||
func_80092FAC(D_8015FCCA);
|
||||
Quake_RemoveFromIdx(D_8015FCCA);
|
||||
}
|
||||
break;
|
||||
case 18:
|
||||
|
||||
@@ -0,0 +1,391 @@
|
||||
#include <global.h>
|
||||
#include <vt.h>
|
||||
|
||||
QuakeRequest sQuakeRequest[4];
|
||||
s16 D_80126250 = 1;
|
||||
s16 sQuakeRequestCount = 0;
|
||||
s16 (*sQuakeCallbacks[])(QuakeRequest*, ShakeInfo*) = {
|
||||
NULL, Quake_Callback1, Quake_Callback2, Quake_Callback3, Quake_Callback4, Quake_Callback5, Quake_Callback6,
|
||||
};
|
||||
|
||||
Vec3f* Quake_AddVec(Vec3f* dst, Vec3f* arg1, struct_80045714* arg2) {
|
||||
Vec3f vec1;
|
||||
Vec3f vec2;
|
||||
|
||||
func_8007C25C(&vec2, arg2);
|
||||
vec1.x = arg1->x + vec2.x;
|
||||
vec1.y = arg1->y + vec2.y;
|
||||
vec1.z = arg1->z + vec2.z;
|
||||
*dst = vec1;
|
||||
return dst;
|
||||
}
|
||||
|
||||
void Quake_UpdateShakeInfo(QuakeRequest* req, ShakeInfo* shake, f32 y, f32 x) {
|
||||
Vec3f* unk50 = &req->cam->unk_50;
|
||||
Vec3f* unk5C = &req->cam->unk_5C;
|
||||
|
||||
Vec3f vec;
|
||||
struct_80045714 struc2;
|
||||
struct_80045714 struc1;
|
||||
Vec3f vec2;
|
||||
|
||||
if (req->unk_1C) {
|
||||
vec.x = 0;
|
||||
vec.y = 0;
|
||||
vec.z = 0;
|
||||
func_8007C490(&struc1, unk5C, unk50);
|
||||
struc2.unk_00 = req->y * y;
|
||||
struc2.unk_04 = struc1.unk_04 + req->unk_14.unk_00 + 0x4000;
|
||||
struc2.unk_06 = struc1.unk_06 + req->unk_14.unk_02;
|
||||
Quake_AddVec(&vec, &vec, &struc2);
|
||||
struc2.unk_00 = req->x * x;
|
||||
struc2.unk_04 = struc1.unk_04 + req->unk_14.unk_00;
|
||||
struc2.unk_06 = struc1.unk_06 + req->unk_14.unk_02 + 0x4000;
|
||||
Quake_AddVec(&vec, &vec, &struc2);
|
||||
} else {
|
||||
vec.x = 0;
|
||||
vec.y = req->y * y;
|
||||
vec.z = 0;
|
||||
struc2.unk_00 = req->x * x;
|
||||
struc2.unk_04 = req->unk_14.unk_00;
|
||||
struc2.unk_06 = req->unk_14.unk_02;
|
||||
Quake_AddVec(&vec, &vec, &struc2);
|
||||
}
|
||||
|
||||
vec2 = vec;
|
||||
shake->vec2 = vec2;
|
||||
shake->vec1 = vec2;
|
||||
shake->unk_1A = (f32)0x8000 * y;
|
||||
shake->rotZ = req->rotZ * y;
|
||||
shake->zoom = req->zoom * y;
|
||||
}
|
||||
|
||||
s16 Quake_Callback1(QuakeRequest* req, ShakeInfo* shake) {
|
||||
u32 pad;
|
||||
if (req->countdown > 0) {
|
||||
f32 a = Math_Sins(req->speed * req->countdown);
|
||||
Quake_UpdateShakeInfo(req, shake, a, Math_Rand_ZeroOne() * a);
|
||||
req->countdown--;
|
||||
}
|
||||
return req->countdown;
|
||||
}
|
||||
|
||||
s16 Quake_Callback5(QuakeRequest* req, ShakeInfo* shake) {
|
||||
if (req->countdown > 0) {
|
||||
f32 a = Math_Sins(req->speed * req->countdown);
|
||||
Quake_UpdateShakeInfo(req, shake, a, a);
|
||||
req->countdown--;
|
||||
}
|
||||
return req->countdown;
|
||||
}
|
||||
|
||||
s16 Quake_Callback6(QuakeRequest* req, ShakeInfo* shake) {
|
||||
u32 pad;
|
||||
f32 a;
|
||||
|
||||
req->countdown--;
|
||||
a = Math_Sins(req->speed * ((req->countdown & 0xF) + 500));
|
||||
Quake_UpdateShakeInfo(req, shake, a, Math_Rand_ZeroOne() * a);
|
||||
return 1;
|
||||
}
|
||||
|
||||
s16 Quake_Callback3(QuakeRequest* req, ShakeInfo* shake) {
|
||||
if (req->countdown > 0) {
|
||||
f32 a = Math_Sins(req->speed * req->countdown) * ((f32)req->countdown / (f32)req->countdownMax);
|
||||
Quake_UpdateShakeInfo(req, shake, a, a);
|
||||
req->countdown--;
|
||||
}
|
||||
return req->countdown;
|
||||
}
|
||||
|
||||
s16 Quake_Callback2(QuakeRequest* req, ShakeInfo* shake) {
|
||||
if (req->countdown > 0) {
|
||||
f32 a = Math_Rand_ZeroOne();
|
||||
Quake_UpdateShakeInfo(req, shake, a, Math_Rand_ZeroOne() * a);
|
||||
req->countdown--;
|
||||
}
|
||||
return req->countdown;
|
||||
}
|
||||
|
||||
s16 Quake_Callback4(QuakeRequest* req, ShakeInfo* shake) {
|
||||
if (req->countdown > 0) {
|
||||
f32 a = Math_Rand_ZeroOne() * ((f32)req->countdown / (f32)req->countdownMax);
|
||||
Quake_UpdateShakeInfo(req, shake, a, Math_Rand_ZeroOne() * a);
|
||||
req->countdown--;
|
||||
}
|
||||
return req->countdown;
|
||||
}
|
||||
|
||||
s16 Quake_GetFreeIndex() {
|
||||
s32 i;
|
||||
s32 ret;
|
||||
s32 min = 0x10000;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sQuakeRequest); i++) {
|
||||
if (sQuakeRequest[i].callbackIdx == 0) {
|
||||
ret = i;
|
||||
min = 0x20000;
|
||||
break;
|
||||
}
|
||||
|
||||
if (sQuakeRequest[i].countdown < min) {
|
||||
min = sQuakeRequest[i].countdown;
|
||||
ret = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (min != 0x20000) {
|
||||
osSyncPrintf(VT_COL(YELLOW, BLACK) "quake: too many request %d is changed new one !!\n" VT_RST, ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QuakeRequest* Quake_AddImpl(Camera* cam, u32 callbackIdx) {
|
||||
s16 idx = Quake_GetFreeIndex();
|
||||
QuakeRequest* req = sQuakeRequest + idx;
|
||||
|
||||
func_80106860(req, 0, sizeof(QuakeRequest)); // memset
|
||||
req->cam = cam;
|
||||
req->camPtrIdx = cam->unk_164;
|
||||
req->callbackIdx = callbackIdx;
|
||||
req->unk_1C = 1;
|
||||
req->randIdx = ((s16)(Math_Rand_ZeroOne() * (f32)0x10000) & ~3) + idx;
|
||||
sQuakeRequestCount++;
|
||||
|
||||
return req;
|
||||
}
|
||||
|
||||
void Quake_Remove(QuakeRequest* req) {
|
||||
req->callbackIdx = 0;
|
||||
req->countdown = -1;
|
||||
sQuakeRequestCount--;
|
||||
}
|
||||
|
||||
QuakeRequest* Quake_GetRequest(s16 idx) {
|
||||
QuakeRequest* req = sQuakeRequest + (idx & 3);
|
||||
if (req->callbackIdx == 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (idx != req->randIdx) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return req;
|
||||
}
|
||||
|
||||
QuakeRequest* Quake_SetValue(s16 idx, s16 valueType, s16 value) {
|
||||
QuakeRequest* req;
|
||||
|
||||
req = Quake_GetRequest(idx);
|
||||
if (req == NULL) {
|
||||
return NULL;
|
||||
} else {
|
||||
switch (valueType) {
|
||||
case 1:
|
||||
req->speed = value;
|
||||
break;
|
||||
case 2:
|
||||
req->y = value;
|
||||
break;
|
||||
case 4:
|
||||
req->x = value;
|
||||
break;
|
||||
case 8:
|
||||
req->zoom = value;
|
||||
break;
|
||||
case 0x10:
|
||||
req->rotZ = value;
|
||||
break;
|
||||
case 0x20:
|
||||
req->unk_14.unk_00 = value;
|
||||
break;
|
||||
case 0x40:
|
||||
req->unk_14.unk_02 = value;
|
||||
break;
|
||||
case 0x80:
|
||||
req->unk_14.unk_04 = value;
|
||||
break;
|
||||
case 0x100:
|
||||
req->countdown = value;
|
||||
req->countdownMax = req->countdown;
|
||||
break;
|
||||
case 0x200:
|
||||
req->unk_1C = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u32 Quake_SetSpeed(s16 idx, s16 value) {
|
||||
QuakeRequest* req = Quake_GetRequest(idx);
|
||||
if (req) {
|
||||
req->speed = value;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
u32 Quake_SetCountdown(s16 idx, s16 value) {
|
||||
QuakeRequest* req = Quake_GetRequest(idx);
|
||||
if (req) {
|
||||
req->countdown = value;
|
||||
req->countdownMax = req->countdown;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
s16 Quake_GetCountdown(s16 idx) {
|
||||
QuakeRequest* req = Quake_GetRequest(idx);
|
||||
if (req) {
|
||||
return req->countdown;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 Quake_SetQuakeValues(s16 idx, s16 y, s16 x, s16 zoom, s16 rotZ) {
|
||||
QuakeRequest* req = Quake_GetRequest(idx);
|
||||
if (req) {
|
||||
req->y = y;
|
||||
req->x = x;
|
||||
req->zoom = zoom;
|
||||
req->rotZ = rotZ;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
u32 Quake_SetUnkValues(s16 idx, s16 arg1, SubQuakeRequest14 arg2) {
|
||||
QuakeRequest* req = Quake_GetRequest(idx);
|
||||
if (req) {
|
||||
req->unk_1C = arg1;
|
||||
|
||||
req->unk_14 = arg2;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void Quake_Init() {
|
||||
s16 i;
|
||||
for (i = 0; i < ARRAY_COUNT(sQuakeRequest); i++) {
|
||||
sQuakeRequest[i].callbackIdx = 0;
|
||||
sQuakeRequest[i].countdown = 0;
|
||||
}
|
||||
D_80126250 = 1;
|
||||
sQuakeRequestCount = 0;
|
||||
}
|
||||
|
||||
s16 Quake_Add(Camera* cam, u32 callbackIdx) {
|
||||
return Quake_AddImpl(cam, callbackIdx)->randIdx;
|
||||
}
|
||||
|
||||
u32 Quake_RemoveFromIdx(s16 idx) {
|
||||
QuakeRequest* req = Quake_GetRequest(idx);
|
||||
if (req) {
|
||||
Quake_Remove(req);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
s16 Quake_Calc(Camera* camera, UnkQuakeCalcStruct* camData) {
|
||||
f32 max;
|
||||
f32 max2;
|
||||
QuakeRequest* req;
|
||||
ShakeInfo shake;
|
||||
f32 absSpeedDiv;
|
||||
s16* temp;
|
||||
u32 pad2;
|
||||
s32 idx;
|
||||
s32 ret;
|
||||
u32 eq;
|
||||
Vec3f vec;
|
||||
GlobalContext* globalCtx;
|
||||
|
||||
globalCtx = camera->globalCtx;
|
||||
vec.x = 0.0f;
|
||||
vec.y = 0.0f;
|
||||
vec.z = 0.0f;
|
||||
camData->rotZ = 0;
|
||||
camData->unk_1A = 0;
|
||||
camData->zoom = 0;
|
||||
camData->vec1.x = 0.0f;
|
||||
camData->vec1.y = 0.0f;
|
||||
camData->vec1.z = 0.0f;
|
||||
camData->vec2.x = 0.0f;
|
||||
camData->vec2.y = 0.0f;
|
||||
camData->vec2.z = 0.0f;
|
||||
camData->unk_20 = 0.0f;
|
||||
|
||||
if (sQuakeRequestCount == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
for (idx = 0; idx < ARRAY_COUNT(sQuakeRequest); idx++) {
|
||||
req = &sQuakeRequest[idx];
|
||||
if (req->callbackIdx != 0) {
|
||||
if (globalCtx->cameraCtx.activeCameraPtrs[req->camPtrIdx] == 0) {
|
||||
osSyncPrintf(VT_COL(YELLOW, BLACK) "quake: stopped! 'coz camera [%d] killed!!\n" VT_RST,
|
||||
req->camPtrIdx);
|
||||
Quake_Remove(req);
|
||||
} else {
|
||||
temp = &camera->unk_164;
|
||||
eq = req->cam->unk_164 != *temp;
|
||||
absSpeedDiv = ABS(req->speed) / (f32)0x8000;
|
||||
if (sQuakeCallbacks[req->callbackIdx](req, &shake) == 0) {
|
||||
Quake_Remove(req);
|
||||
} else if (eq == 0) {
|
||||
if (fabsf(camData->vec1.x) < fabsf(shake.vec1.x)) {
|
||||
camData->vec1.x = shake.vec1.x;
|
||||
}
|
||||
if (fabsf(camData->vec1.y) < fabsf(shake.vec1.y)) {
|
||||
camData->vec1.y = shake.vec1.y;
|
||||
}
|
||||
if (fabsf(camData->vec1.z) < fabsf(shake.vec1.z)) {
|
||||
camData->vec1.z = shake.vec1.z;
|
||||
}
|
||||
if (fabsf(camData->vec2.x) < fabsf(shake.vec2.x)) {
|
||||
camData->vec2.x = shake.vec2.x;
|
||||
}
|
||||
if (fabsf(camData->vec2.y) < fabsf(shake.vec2.y)) {
|
||||
camData->vec2.y = shake.vec2.y;
|
||||
}
|
||||
if (fabsf(camData->vec2.z) < fabsf(shake.vec2.z)) {
|
||||
camData->vec2.z = shake.vec2.z;
|
||||
}
|
||||
if (camData->rotZ < shake.rotZ) {
|
||||
camData->rotZ = shake.rotZ;
|
||||
camData->unk_1A = shake.unk_1A;
|
||||
}
|
||||
if (camData->zoom < shake.zoom) {
|
||||
camData->zoom = shake.zoom;
|
||||
}
|
||||
|
||||
max = func_8007BF90(&shake.vec1, &vec) * absSpeedDiv;
|
||||
max2 = func_8007BF90(&shake.vec2, &vec) * absSpeedDiv;
|
||||
if (max < max2) {
|
||||
max = max2;
|
||||
}
|
||||
max2 = (camData->rotZ * 0.005f) * absSpeedDiv;
|
||||
if (max < max2) {
|
||||
max = max2;
|
||||
}
|
||||
max2 = (camData->zoom * 0.005f) * absSpeedDiv;
|
||||
if (max < max2) {
|
||||
max = max2;
|
||||
}
|
||||
if (camData->unk_20 < max) {
|
||||
camData->unk_20 = max;
|
||||
}
|
||||
|
||||
ret++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -1236,17 +1236,17 @@ void func_8009BEEC(GlobalContext* globalCtx) {
|
||||
s32 var;
|
||||
|
||||
if (globalCtx->gameplayFrames % 128 == 13) {
|
||||
var = func_80092F88(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 2);
|
||||
func_80092DAC(var, 10000);
|
||||
func_80092E70(var, 4, 0, 0, 0);
|
||||
func_80092DF0(var, 127);
|
||||
var = Quake_Add(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 2);
|
||||
Quake_SetSpeed(var, 10000);
|
||||
Quake_SetQuakeValues(var, 4, 0, 0, 0);
|
||||
Quake_SetCountdown(var, 127);
|
||||
}
|
||||
|
||||
if ((globalCtx->gameplayFrames % 64 == 0) && (Math_Rand_ZeroOne() > 0.6f)) {
|
||||
var = func_80092F88(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 3);
|
||||
func_80092DAC(var, 32000.0f + (Math_Rand_ZeroOne() * 3000.0f));
|
||||
func_80092E70(var, 10.0f - (Math_Rand_ZeroOne() * 9.0f), 0, 0, 0);
|
||||
func_80092DF0(var, 48.0f - (Math_Rand_ZeroOne() * 15.0f));
|
||||
var = Quake_Add(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 3);
|
||||
Quake_SetSpeed(var, 32000.0f + (Math_Rand_ZeroOne() * 3000.0f));
|
||||
Quake_SetQuakeValues(var, 10.0f - (Math_Rand_ZeroOne() * 9.0f), 0, 0, 0);
|
||||
Quake_SetCountdown(var, 48.0f - (Math_Rand_ZeroOne() * 15.0f));
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
@@ -111,10 +111,10 @@ static 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 = func_80092F88(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 3);
|
||||
func_80092DAC(var, 25000);
|
||||
func_80092E70(var, 2, 0, 0, 0);
|
||||
func_80092DF0(var, 0x10);
|
||||
var = Quake_Add(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 3);
|
||||
Quake_SetSpeed(var, 25000);
|
||||
Quake_SetQuakeValues(var, 2, 0, 0, 0);
|
||||
Quake_SetCountdown(var, 0x10);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -115,10 +115,10 @@ static 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 = func_80092F88(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 3);
|
||||
func_80092DAC(var, -0x3CB0);
|
||||
func_80092E70(var, 3, 0, 0, 0);
|
||||
func_80092DF0(var, 0xC);
|
||||
var = Quake_Add(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 3);
|
||||
Quake_SetSpeed(var, -0x3CB0);
|
||||
Quake_SetQuakeValues(var, 3, 0, 0, 0);
|
||||
Quake_SetCountdown(var, 0xC);
|
||||
Audio_PlayActorSound2(thisx, NA_SE_EV_BRIDGE_OPEN_STOP);
|
||||
} else {
|
||||
func_8002F974(thisx, 0x2067);
|
||||
|
||||
@@ -1,14 +1,78 @@
|
||||
/*
|
||||
* File: z_en_ru2.c
|
||||
* Overlay: En_Ru2
|
||||
* Description:
|
||||
*/
|
||||
|
||||
#include "z_en_ru2.h"
|
||||
|
||||
#include <vt.h>
|
||||
|
||||
#define ROOM 0x00
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
void EnRu2_Init(EnRu2* this, GlobalContext* globalCtx);
|
||||
void EnRu2_Destroy(EnRu2* this, GlobalContext* globalCtx);
|
||||
void EnRu2_Update(EnRu2* this, GlobalContext* globalCtx);
|
||||
void EnRu2_Draw(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void EnRu2_Init(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void EnRu2_Destroy(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void EnRu2_Update(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void EnRu2_Draw(EnRu2* this, GlobalContext* globalCtx);
|
||||
|
||||
static void func_80AF2CB4(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF2CD4(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF2CF4(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF2D2C(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF2D6C(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF2DAC(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF2DEC(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3144(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3174(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF31C8(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3604(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3624(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF366C(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF36AC(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3BC8(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3C04(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3C64(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3CB8(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3D0C(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3D60(EnRu2* this, GlobalContext* globalCtx);
|
||||
|
||||
static void func_80AF3F14(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF3F20(EnRu2* this, GlobalContext* globalCtx);
|
||||
static void func_80AF321C(EnRu2* this, GlobalContext* globalCtx);
|
||||
|
||||
static void func_80AF2AB4(EnRu2* this, GlobalContext* globalCtx);
|
||||
|
||||
static ColliderCylinderInit D_80AF40E0 = {
|
||||
0x0A, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00000000, 0x00, 0x00, 0x00, 0x00, 0x00000080, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x001E, 0x0064, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
};
|
||||
|
||||
static u32 D_80AF410C[] = {
|
||||
0x06000F20,
|
||||
0x060022E0,
|
||||
0x06002AE0,
|
||||
};
|
||||
|
||||
static u32 D_80AF4118 = 0;
|
||||
|
||||
#include "z_en_ru2_cutscene_data.c"
|
||||
|
||||
static ActorFunc D_80AF50BC[] = {
|
||||
(ActorFunc)func_80AF2CB4, (ActorFunc)func_80AF2CD4, (ActorFunc)func_80AF2CF4, (ActorFunc)func_80AF2D2C,
|
||||
(ActorFunc)func_80AF2D6C, (ActorFunc)func_80AF2DAC, (ActorFunc)func_80AF2DEC, (ActorFunc)func_80AF3144,
|
||||
(ActorFunc)func_80AF3174, (ActorFunc)func_80AF31C8, (ActorFunc)func_80AF3604, (ActorFunc)func_80AF3624,
|
||||
(ActorFunc)func_80AF366C, (ActorFunc)func_80AF36AC, (ActorFunc)func_80AF3BC8, (ActorFunc)func_80AF3C04,
|
||||
(ActorFunc)func_80AF3C64, (ActorFunc)func_80AF3CB8, (ActorFunc)func_80AF3D0C, (ActorFunc)func_80AF3D60,
|
||||
};
|
||||
|
||||
static ActorFunc D_80AF510C[] = {
|
||||
(ActorFunc)func_80AF3F14,
|
||||
(ActorFunc)func_80AF3F20,
|
||||
(ActorFunc)func_80AF321C,
|
||||
};
|
||||
|
||||
/*
|
||||
const ActorInit En_Ru2_InitVars = {
|
||||
ACTOR_EN_RU2,
|
||||
ACTORTYPE_NPC,
|
||||
@@ -21,155 +85,729 @@ const ActorInit En_Ru2_InitVars = {
|
||||
(ActorFunc)EnRu2_Update,
|
||||
(ActorFunc)EnRu2_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2550.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF259C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/EnRu2_Destroy.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2608.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2690.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF26A0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF26AC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF26D0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2744.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF278C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF27AC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF27D0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF281C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2868.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF28E8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2978.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2994.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF29DC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2A38.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2AB4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2B44.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2B94.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2BC0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2C54.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2C68.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2CB4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2CD4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2CF4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2D2C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2D6C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2DAC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2DEC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2E1C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2E64.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2E84.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2F04.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF2F58.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF30AC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3144.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3174.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF31C8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF321C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3394.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF33E0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF346C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF34A4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF34F0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3530.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3564.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3604.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3624.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF366C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF36AC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF36EC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3718.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3744.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF37AC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF37CC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF383C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3878.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF38D0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF390C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF39DC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3ADC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3B74.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3BC8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3C04.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3C64.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3CB8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3D0C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3D60.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/EnRu2_Update.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/EnRu2_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3F14.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/func_80AF3F20.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ru2/EnRu2_Draw.s")
|
||||
extern AnimationHeader* D_060004CC;
|
||||
extern SkeletonHeader* D_0600C700;
|
||||
extern AnimationHeader* D_0600D3DC;
|
||||
extern AnimationHeader* D_0600DCAC;
|
||||
extern AnimationHeader* D_06000DE8;
|
||||
extern AnimationHeader* D_0600E630;
|
||||
extern AnimationHeader* D_0600F03C;
|
||||
extern AnimationHeader* D_0600F8B8;
|
||||
|
||||
static void func_80AF2550(EnRu2* this, GlobalContext* globalCtx) {
|
||||
EnRu2* thisLocal = this;
|
||||
ActorCollider_AllocCylinder(globalCtx, &thisLocal->collider);
|
||||
func_8005C450(globalCtx, &thisLocal->collider, &this->actor, &D_80AF40E0);
|
||||
}
|
||||
|
||||
static void func_80AF259C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
ColliderCylinderMain* collider = &this->collider;
|
||||
Actor* thisx = &this->actor;
|
||||
s32 pad2[2];
|
||||
|
||||
ActorCollider_Cylinder_Update(thisx, collider);
|
||||
Actor_CollisionCheck_SetAC(globalCtx, &globalCtx->sub_11E60, collider);
|
||||
}
|
||||
|
||||
static void EnRu2_Destroy(EnRu2* this, GlobalContext* globalCtx) {
|
||||
ColliderCylinderMain* collider = &this->collider;
|
||||
ActorCollider_FreeCylinder(globalCtx, collider);
|
||||
}
|
||||
|
||||
static void func_80AF2608(EnRu2* this) {
|
||||
s32 pad[3];
|
||||
s16* unk_2A6 = &this->unk_2A6;
|
||||
s16* unk_2A4 = &this->unk_2A4;
|
||||
|
||||
if (!DECR(*unk_2A6)) {
|
||||
*unk_2A6 = Math_Rand_S16Offset(0x3C, 0x3C);
|
||||
}
|
||||
|
||||
*unk_2A4 = *unk_2A6;
|
||||
if (*unk_2A4 >= 3) {
|
||||
*unk_2A4 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_80AF2690(EnRu2* this) {
|
||||
s32 params_shift = this->actor.params >> 8;
|
||||
return params_shift & 0xFF;
|
||||
}
|
||||
|
||||
s32 func_80AF26A0(EnRu2* this) {
|
||||
s16 params = this->actor.params;
|
||||
return params & 0xFF;
|
||||
}
|
||||
|
||||
static void func_80AF26AC(EnRu2* this) {
|
||||
this->action = 7;
|
||||
this->drawConfig = 0;
|
||||
this->unk_2B4 = 0;
|
||||
this->unk_2B8 = 0;
|
||||
this->actor.shape.unk_14 = 0;
|
||||
this->unk_2B0 = 0.0f;
|
||||
}
|
||||
|
||||
static void func_80AF26D0(EnRu2* this, GlobalContext* globalCtx) {
|
||||
s32 one; // Needed to match
|
||||
if (globalCtx->csCtx.state == 0) {
|
||||
if (D_80AF4118 != 0) {
|
||||
if (this->actor.params == 2) {
|
||||
func_80AF26AC(this);
|
||||
}
|
||||
D_80AF4118 = 0;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
one = 1;
|
||||
if (D_80AF4118 == 0) {
|
||||
D_80AF4118 = one;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF2744(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_8002E4B4(globalCtx, &this->actor, 75.0f, 30.0f, 30.0f, 4);
|
||||
}
|
||||
|
||||
s32 EnRu2_FrameUpdateMatrix(EnRu2* this) {
|
||||
return SkelAnime_FrameUpdateMatrix(&this->skelAnime);
|
||||
}
|
||||
|
||||
CsCmdActorAction* func_80AF27AC(GlobalContext* globalCtx, s32 actorActionIdx) {
|
||||
if (globalCtx->csCtx.state != 0) {
|
||||
return globalCtx->csCtx.actorActions[actorActionIdx];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
s32 func_80AF27D0(EnRu2* this, GlobalContext* globalCtx, u16 arg2, s32 actorActionIdx) {
|
||||
CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, actorActionIdx);
|
||||
|
||||
if (csCmdActorAction != NULL && csCmdActorAction->action == arg2) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 func_80AF281C(EnRu2* this, GlobalContext* globalCtx, u16 arg2, s32 actorActionIdx) {
|
||||
CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, actorActionIdx);
|
||||
|
||||
if (csCmdActorAction != NULL && csCmdActorAction->action != arg2) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void func_80AF2868(EnRu2* this, GlobalContext* globalCtx, u32 actorActionIdx) {
|
||||
CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, actorActionIdx);
|
||||
s16 newRotY;
|
||||
Actor* thisx = &this->actor;
|
||||
|
||||
if (csCmdActorAction != NULL) {
|
||||
thisx->posRot.pos.x = csCmdActorAction->startPos.x;
|
||||
thisx->posRot.pos.y = csCmdActorAction->startPos.y;
|
||||
thisx->posRot.pos.z = csCmdActorAction->startPos.z;
|
||||
newRotY = csCmdActorAction->rot.y;
|
||||
thisx->shape.rot.y = newRotY;
|
||||
thisx->posRot.rot.y = newRotY;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF28E8(EnRu2* this, AnimationHeader* animation, u8 arg2, f32 transitionRate, s32 arg4) {
|
||||
f32 frameCount = SkelAnime_GetFrameCount(&animation->genericHeader);
|
||||
f32 playbackSpeed;
|
||||
f32 unk0;
|
||||
f32 fc;
|
||||
|
||||
if (arg4 == 0) {
|
||||
unk0 = 0.0f;
|
||||
fc = frameCount;
|
||||
playbackSpeed = 1.0f;
|
||||
} else {
|
||||
unk0 = frameCount;
|
||||
fc = 0.0f;
|
||||
playbackSpeed = -1.0f;
|
||||
}
|
||||
|
||||
SkelAnime_ChangeAnimation(&this->skelAnime, animation, playbackSpeed, unk0, fc, arg2, transitionRate);
|
||||
}
|
||||
|
||||
static void func_80AF2978(EnRu2* this, GlobalContext* globalCtx) {
|
||||
this->actor.shape.unk_08 += 83.333336f;
|
||||
}
|
||||
|
||||
static void func_80AF2994(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF28E8(this, &D_06000DE8, 0, 0.0f, 0);
|
||||
this->actor.shape.unk_08 = -10000.0f;
|
||||
}
|
||||
|
||||
static void func_80AF29DC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
Actor* thisx = &this->actor;
|
||||
f32 posX = thisx->posRot.pos.x;
|
||||
f32 posY = thisx->posRot.pos.y;
|
||||
f32 posZ = thisx->posRot.pos.z;
|
||||
Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, 2);
|
||||
}
|
||||
|
||||
static void func_80AF2A38(EnRu2* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
f32 posX = player->actor.posRot.pos.x;
|
||||
f32 posY = player->actor.posRot.pos.y + 50.0f;
|
||||
f32 posZ = player->actor.posRot.pos.z;
|
||||
|
||||
Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0,
|
||||
10);
|
||||
Item_Give(globalCtx, ITEM_MEDALLION_WATER);
|
||||
}
|
||||
|
||||
static void func_80AF2AB4(EnRu2* this, GlobalContext* globalCtx) {
|
||||
s32 pad[2];
|
||||
Player* player;
|
||||
s16 temp;
|
||||
|
||||
if (gSaveContext.chamber_cutscene_num == 2 && gSaveContext.scene_setup_index < 4) {
|
||||
player = PLAYER;
|
||||
this->action = 1;
|
||||
globalCtx->csCtx.segment = &D_80AF411C;
|
||||
gSaveContext.cutscene_trigger = 2;
|
||||
Item_Give(globalCtx, ITEM_MEDALLION_WATER);
|
||||
temp = this->actor.posRot.rot.y + 0x8000;
|
||||
player->actor.shape.rot.y = temp;
|
||||
player->actor.posRot.rot.y = temp;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF2B44(EnRu2* this, GlobalContext* globalCtx) {
|
||||
CutsceneContext* csCtx = &globalCtx->csCtx;
|
||||
CsCmdActorAction* csCmdActorAction;
|
||||
if (csCtx->state != 0) {
|
||||
csCmdActorAction = csCtx->actorActions[3];
|
||||
if (csCmdActorAction != NULL && csCmdActorAction->action == 2) {
|
||||
this->action = 2;
|
||||
this->drawConfig = 1;
|
||||
func_80AF29DC(this, globalCtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF2B94(EnRu2* this) {
|
||||
if (this->actor.shape.unk_08 >= 0.0f) {
|
||||
this->action = 3;
|
||||
this->actor.shape.unk_08 = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF2BC0(EnRu2* this, GlobalContext* globalCtx) {
|
||||
AnimationHeader* animation = &D_0600D3DC;
|
||||
CsCmdActorAction* csCmdActorAction;
|
||||
if (globalCtx->csCtx.state != 0) {
|
||||
csCmdActorAction = globalCtx->csCtx.actorActions[3];
|
||||
if (csCmdActorAction != NULL && csCmdActorAction->action == 3) {
|
||||
SkelAnime_ChangeAnimation(&this->skelAnime, animation, 1.0f, 0.0f, SkelAnime_GetFrameCount(animation), 2,
|
||||
0.0f);
|
||||
this->action = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF2C54(EnRu2* this, UNK_TYPE arg1) {
|
||||
if (arg1 != 0) {
|
||||
this->action = 5;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF2C68(EnRu2* this, GlobalContext* globalCtx) {
|
||||
CsCmdActorAction* csCmdActorAction;
|
||||
if (globalCtx->csCtx.state != 0) {
|
||||
csCmdActorAction = globalCtx->csCtx.actorActions[6];
|
||||
if (csCmdActorAction != NULL && csCmdActorAction->action == 2) {
|
||||
this->action = 6;
|
||||
func_80AF2A38(this, globalCtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF2CB4(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2AB4(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF2CD4(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2B44(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF2CF4(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2978(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF2B94(this);
|
||||
}
|
||||
|
||||
static void func_80AF2D2C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF2BC0(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF2D6C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
UNK_TYPE something;
|
||||
|
||||
func_80AF2744(this, globalCtx);
|
||||
something = EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF2C54(this, something);
|
||||
}
|
||||
|
||||
static void func_80AF2DAC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF2C68(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF2DEC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
}
|
||||
|
||||
static void func_80AF2E1C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF28E8(this, &D_060004CC, 2, 0.0f, 0);
|
||||
this->action = 7;
|
||||
this->actor.shape.unk_14 = 0;
|
||||
}
|
||||
|
||||
static void func_80AF2E64() {
|
||||
func_800788CC(NA_SE_SY_WHITE_OUT_T);
|
||||
}
|
||||
|
||||
static void func_80AF2E84(EnRu2* this, GlobalContext* globalCtx) {
|
||||
Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DEMO_6K, this->actor.posRot.pos.x,
|
||||
kREG(19) + 24.0f + this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, 8);
|
||||
}
|
||||
|
||||
static void func_80AF2F04(EnRu2* this, GlobalContext* globalCtx) {
|
||||
if (func_80AF27D0(this, globalCtx, 4, 3)) {
|
||||
this->action = 8;
|
||||
this->drawConfig = 2;
|
||||
this->unk_2B4 = 0;
|
||||
this->actor.shape.unk_14 = 0;
|
||||
this->unk_2B0 = 0.0f;
|
||||
func_80AF2E64();
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF2F58(EnRu2* this, GlobalContext* globalCtx) {
|
||||
f32* unk_2B0 = &this->unk_2B0;
|
||||
s32 something;
|
||||
|
||||
if (func_80AF27D0(this, globalCtx, 4, 3)) {
|
||||
*unk_2B0 += 1.0f;
|
||||
if (*unk_2B0 >= kREG(5) + 10.0f) {
|
||||
this->action = 9;
|
||||
this->drawConfig = 1;
|
||||
*unk_2B0 = kREG(5) + 10.0f;
|
||||
this->unk_2B4 = 0xFF;
|
||||
this->actor.shape.unk_14 = 0xFF;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
*unk_2B0 -= 1.0f;
|
||||
if (*unk_2B0 <= 0.0f) {
|
||||
this->action = 7;
|
||||
this->drawConfig = 0;
|
||||
*unk_2B0 = 0.0f;
|
||||
this->unk_2B4 = 0;
|
||||
this->actor.shape.unk_14 = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
something = (*unk_2B0 / (kREG(5) + 10.0f)) * 255.0f;
|
||||
this->unk_2B4 = something;
|
||||
this->actor.shape.unk_14 = something;
|
||||
}
|
||||
|
||||
static void func_80AF30AC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
if (func_80AF281C(this, globalCtx, 4, 3)) {
|
||||
this->action = 8;
|
||||
this->drawConfig = 2;
|
||||
this->unk_2B0 = kREG(5) + 10.0f;
|
||||
this->unk_2B4 = 0xFF;
|
||||
if (this->unk_2B8 == 0) {
|
||||
func_80AF2E84(this, globalCtx);
|
||||
this->unk_2B8 = 1;
|
||||
}
|
||||
this->actor.shape.unk_14 = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF3144(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2F04(this, globalCtx);
|
||||
func_80AF26D0(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF3174(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF2F58(this, globalCtx);
|
||||
func_80AF26D0(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF31C8(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF30AC(this, globalCtx);
|
||||
func_80AF26D0(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF321C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
s32 pad[2];
|
||||
s16 temp = this->unk_2A4;
|
||||
UNK_PTR addr = D_80AF410C[temp];
|
||||
SkelAnime* skelAnime = &this->skelAnime;
|
||||
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
|
||||
Gfx* gfxArr[4];
|
||||
|
||||
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_en_ru2_inKenjyanomaDemo02.c", 264);
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
|
||||
gSPSegment(gfxCtx->polyXlu.p++, 0x08, SEGMENTED_TO_VIRTUAL(addr));
|
||||
gSPSegment(gfxCtx->polyXlu.p++, 0x09, SEGMENTED_TO_VIRTUAL(addr));
|
||||
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0x00, 0x00, 0x00, this->unk_2B4);
|
||||
gSPSegment(gfxCtx->polyXlu.p++, 0x0C, &D_80116280[0]);
|
||||
|
||||
gfxCtx->polyXlu.p = SkelAnime_DrawSV2(globalCtx, skelAnime->skeleton, skelAnime->actorDrawTbl,
|
||||
skelAnime->dListCount, NULL, NULL, NULL, gfxCtx->polyXlu.p);
|
||||
|
||||
func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_en_ru2_inKenjyanomaDemo02.c", 291);
|
||||
}
|
||||
|
||||
static void func_80AF3394(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF28E8(this, &D_0600E630, 0, 0.0f, 0);
|
||||
this->action = 10;
|
||||
this->drawConfig = 0;
|
||||
this->actor.shape.unk_14 = 0;
|
||||
}
|
||||
|
||||
static void func_80AF33E0(EnRu2* this) {
|
||||
f32* unk_2B0 = &this->unk_2B0;
|
||||
f32 temp_f0;
|
||||
s32 temp_f18;
|
||||
|
||||
*unk_2B0 += 1.0f;
|
||||
|
||||
temp_f0 = kREG(17) + 10.0f;
|
||||
if (temp_f0 <= *unk_2B0) {
|
||||
this->unk_2B4 = 0xFF;
|
||||
this->actor.shape.unk_14 = 0xFF;
|
||||
} else {
|
||||
temp_f18 = (*unk_2B0 / temp_f0) * 255.0f;
|
||||
this->unk_2B4 = temp_f18;
|
||||
this->actor.shape.unk_14 = temp_f18;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF346C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2868(this, globalCtx, 3);
|
||||
this->action = 11;
|
||||
this->drawConfig = 2;
|
||||
}
|
||||
|
||||
static void func_80AF34A4(EnRu2* this) {
|
||||
if (this->unk_2B0 >= kREG(17) + 10.0f) {
|
||||
this->action = 12;
|
||||
this->drawConfig = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF34F0(EnRu2* this) {
|
||||
func_80AF28E8(this, &D_0600DCAC, 2, 0.0f, 0);
|
||||
this->action = 13;
|
||||
}
|
||||
|
||||
static void func_80AF3530(EnRu2* this, UNK_TYPE arg1) {
|
||||
if (arg1 != 0) {
|
||||
func_80AF28E8(this, &D_0600F03C, 0, 0.0f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF3564(EnRu2* this, GlobalContext* globalCtx) {
|
||||
CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, 3);
|
||||
s32 action;
|
||||
s32 unk_2BC;
|
||||
|
||||
if (csCmdActorAction != NULL) {
|
||||
action = csCmdActorAction->action;
|
||||
unk_2BC = this->unk_2BC;
|
||||
if (action != unk_2BC) {
|
||||
switch (action) {
|
||||
case 7:
|
||||
func_80AF346C(this, globalCtx);
|
||||
break;
|
||||
case 8:
|
||||
func_80AF34F0(this);
|
||||
break;
|
||||
default:
|
||||
osSyncPrintf("En_Ru2_inEnding_Check_DemoMode:そんな動作は無い!!!!!!!!\n");
|
||||
break;
|
||||
}
|
||||
this->unk_2BC = action;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF3604(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF3564(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF3624(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF33E0(this);
|
||||
func_80AF34A4(this);
|
||||
}
|
||||
|
||||
static void func_80AF366C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF3564(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF36AC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
UNK_TYPE something;
|
||||
|
||||
func_80AF2744(this, globalCtx);
|
||||
something = EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
func_80AF3530(this, something);
|
||||
}
|
||||
|
||||
static void func_80AF36EC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
Flags_SetSwitch(globalCtx, func_80AF2690(this));
|
||||
}
|
||||
|
||||
s32 func_80AF3718(EnRu2* this, GlobalContext* globalCtx) {
|
||||
return Flags_GetSwitch(globalCtx, func_80AF2690(this));
|
||||
}
|
||||
|
||||
static void func_80AF3744(EnRu2* this, GlobalContext* globalCtx) {
|
||||
if (func_80AF3718(this, globalCtx)) {
|
||||
Actor_Kill(&this->actor);
|
||||
} else {
|
||||
func_80AF28E8(this, &D_06000DE8, 0, 0.0f, 0);
|
||||
this->action = 14;
|
||||
this->drawConfig = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF37AC() {
|
||||
func_800F5C64(0x51);
|
||||
}
|
||||
|
||||
static void func_80AF37CC(EnRu2* this) {
|
||||
f32 funcFloat;
|
||||
this->unk_2C0 += 1;
|
||||
funcFloat = func_8006F9BC((kREG(2) + 0x96) & 0xFFFF, 0, this->unk_2C0, 8, 0);
|
||||
this->actor.posRot.pos.y = this->actor.initPosRot.pos.y + (300.0f * funcFloat);
|
||||
}
|
||||
|
||||
s32 func_80AF383C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
f32 thisPosX = this->actor.posRot.pos.x;
|
||||
f32 playerPosX = player->actor.posRot.pos.x;
|
||||
if (playerPosX - thisPosX >= -202.0f) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void func_80AF3878(EnRu2* this, GlobalContext* globalCtx) {
|
||||
if (func_80AF383C(this, globalCtx) && !func_800BFC84(globalCtx)) {
|
||||
this->action = 16;
|
||||
func_800800F8(globalCtx, 0xC3A, -0x63, &this->actor, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF38D0(EnRu2* this, GlobalContext* globalCtx) {
|
||||
this->action = 16;
|
||||
func_800800F8(globalCtx, 0xC3A, -0x63, &this->actor, 0);
|
||||
}
|
||||
|
||||
static void func_80AF390C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
f32* unk_2C4 = &this->unk_2C4;
|
||||
*unk_2C4 += 1.0f;
|
||||
if (*unk_2C4 == kREG(6) + 40.0f) {
|
||||
func_80AF37AC();
|
||||
} else if (*unk_2C4 > kREG(4) + 50.0f) {
|
||||
this->actor.textId = 0x403E;
|
||||
func_8010B680(globalCtx, this->actor.textId, 0);
|
||||
this->action = 17;
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF39DC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
MessageContext* msgCtx;
|
||||
s32 pad2;
|
||||
u8 dialogState;
|
||||
Player* player;
|
||||
s32 pad3;
|
||||
|
||||
msgCtx = &globalCtx->msgCtx;
|
||||
dialogState = func_8010BDBC(msgCtx);
|
||||
|
||||
if (dialogState == 3) {
|
||||
if (this->unk_2C3 != 3) {
|
||||
osSyncPrintf("おれが小松だ! \n");
|
||||
this->unk_2C2++;
|
||||
if (this->unk_2C2 % 6 == 3) {
|
||||
player = PLAYER;
|
||||
osSyncPrintf("うおりゃー! \n");
|
||||
func_8005B1A4(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0]);
|
||||
player->actor.posRot.pos.x = 820.0f;
|
||||
player->actor.posRot.pos.y = 0.0f;
|
||||
player->actor.posRot.pos.z = 180.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this->unk_2C3 = dialogState;
|
||||
if (func_8010BDBC(msgCtx) == 2) {
|
||||
this->action = 18;
|
||||
func_8005B1A4(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0]);
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF3ADC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
this->unk_2C4 += 1.0f;
|
||||
if (this->unk_2C4 > kREG(5) + 100.0f) {
|
||||
func_80AF28E8(this, &D_0600F8B8, 0, -12.0f, 0);
|
||||
this->action = 0x13;
|
||||
func_80AF36EC(this, globalCtx);
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF3B74(EnRu2* this, GlobalContext* globalCtx) {
|
||||
if (this->unk_2C0 > (((u16)(kREG(3) + 0x28)) + ((u16)(kREG(2) + 0x96)) & 0xFFFF)) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
static void func_80AF3BC8(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF3878(this, globalCtx);
|
||||
Actor_SetHeight(&this->actor, 50.0f);
|
||||
func_80AF259C(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF3C04(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
func_80AF259C(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
Actor_SetHeight(&this->actor, 50.0f);
|
||||
func_80AF38D0(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF3C64(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
Actor_SetHeight(&this->actor, 50.0f);
|
||||
func_80AF390C(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF3CB8(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
Actor_SetHeight(&this->actor, 50.0f);
|
||||
func_80AF39DC(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF3D0C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
Actor_SetHeight(&this->actor, 50.0f);
|
||||
func_80AF3ADC(this, globalCtx);
|
||||
}
|
||||
|
||||
static void func_80AF3D60(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF37CC(this);
|
||||
func_80AF2744(this, globalCtx);
|
||||
EnRu2_FrameUpdateMatrix(this);
|
||||
func_80AF2608(this);
|
||||
Actor_SetHeight(&this->actor, 50.0f);
|
||||
func_80AF3B74(this, globalCtx);
|
||||
}
|
||||
|
||||
static void EnRu2_Update(EnRu2* this, GlobalContext* globalCtx) {
|
||||
if (this->action < 0 || this->action >= 20 || D_80AF50BC[this->action] == 0) {
|
||||
osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
|
||||
return;
|
||||
}
|
||||
D_80AF50BC[this->action](this, globalCtx);
|
||||
}
|
||||
|
||||
static void EnRu2_Init(EnRu2* this, GlobalContext* globalCtx) {
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 30.0f);
|
||||
func_80AF2550(this, globalCtx);
|
||||
SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_0600C700, NULL, &this->unk_190, &this->unk_21A, 0x17);
|
||||
|
||||
switch (func_80AF26A0(this)) {
|
||||
case 2:
|
||||
func_80AF2E1C(this, globalCtx);
|
||||
break;
|
||||
case 3:
|
||||
func_80AF3394(this, globalCtx);
|
||||
break;
|
||||
case 4:
|
||||
func_80AF3744(this, globalCtx);
|
||||
break;
|
||||
default:
|
||||
func_80AF2994(this, globalCtx);
|
||||
break;
|
||||
}
|
||||
|
||||
this->unk_2C2 = 0;
|
||||
this->unk_2C3 = 3;
|
||||
}
|
||||
|
||||
static void func_80AF3F14(EnRu2* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
static void func_80AF3F20(EnRu2* this, GlobalContext* globalCtx) {
|
||||
s32 pad[2];
|
||||
s16 temp = this->unk_2A4;
|
||||
UNK_PTR addr = D_80AF410C[temp];
|
||||
SkelAnime* skelAnime = &this->skelAnime;
|
||||
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
|
||||
Gfx* gfxArr[4];
|
||||
|
||||
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_en_ru2.c", 642);
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
|
||||
gSPSegment(gfxCtx->polyOpa.p++, 0x08, SEGMENTED_TO_VIRTUAL(addr));
|
||||
gSPSegment(gfxCtx->polyOpa.p++, 0x09, SEGMENTED_TO_VIRTUAL(addr));
|
||||
gDPSetEnvColor(gfxCtx->polyOpa.p++, 0x00, 0x00, 0x00, 0xFF);
|
||||
gSPSegment(gfxCtx->polyOpa.p++, 0x0C, &D_80116280[2]);
|
||||
|
||||
SkelAnime_DrawSV(globalCtx, skelAnime->skeleton, skelAnime->actorDrawTbl, skelAnime->dListCount, NULL, NULL,
|
||||
&this->actor);
|
||||
func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_en_ru2.c", 663);
|
||||
}
|
||||
|
||||
static void EnRu2_Draw(EnRu2* this, GlobalContext* globalCtx) {
|
||||
if (this->drawConfig < 0 || this->drawConfig >= 3 || D_80AF510C[this->drawConfig] == 0) {
|
||||
osSyncPrintf(VT_FGCOL(RED) "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
|
||||
return;
|
||||
}
|
||||
D_80AF510C[this->drawConfig](this, globalCtx);
|
||||
}
|
||||
|
||||
@@ -6,7 +6,24 @@
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x1C8];
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ s8 unk_190; // likely a struct
|
||||
/* 0x0191 */ char unk_191[0x89];
|
||||
/* 0x021A */ s8 unk_21A; // another of the same struct
|
||||
/* 0x021B */ char unk_21B[0x89];
|
||||
/* 0x02A4 */ s16 unk_2A4;
|
||||
/* 0x02A6 */ s16 unk_2A6;
|
||||
/* 0x02A8 */ s32 action;
|
||||
/* 0x02AC */ s32 drawConfig;
|
||||
/* 0x02B0 */ f32 unk_2B0;
|
||||
/* 0x02B4 */ u32 unk_2B4;
|
||||
/* 0x02B8 */ s32 unk_2B8;
|
||||
/* 0x02BC */ s32 unk_2BC;
|
||||
/* 0x02C0 */ u16 unk_2C0;
|
||||
/* 0x02C2 */ u8 unk_2C2;
|
||||
/* 0x02C3 */ u8 unk_2C3;
|
||||
/* 0x02C4 */ f32 unk_2C4;
|
||||
/* 0x02C8 */ ColliderCylinderMain collider;
|
||||
} EnRu2; // size = 0x0314
|
||||
|
||||
extern const ActorInit En_Ru2_InitVars;
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
#include "z_en_ru2.h"
|
||||
|
||||
static u32 D_80AF411C[] = {
|
||||
0x00000023, 0x00000D0A, 0x00000020, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC,
|
||||
0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x0000001F, 0x00000005,
|
||||
0x00010000, 0x033D0000, 0x00000000, 0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x000000D8, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x0002033D, 0x033E0000, 0x00000000, 0x00000000, 0x000000D8, 0x00000000,
|
||||
0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0004033E, 0x03820000, 0x00000000,
|
||||
0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00020382, 0x03B40000, 0x00000000, 0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x00000052, 0x00000000,
|
||||
0x00000000, 0xC02B851F, 0x00000000, 0x000303B4, 0x0D0A0000, 0x00000000, 0x00000000, 0x00000052, 0x00000000,
|
||||
0x00000000, 0x00000052, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000A, 0x00000005, 0x000D0000,
|
||||
0x00F00000, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x000500F0, 0x02080000, 0x40000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000,
|
||||
0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030208, 0x02260000, 0x40000000, 0x00000000,
|
||||
0x00000006, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00050226,
|
||||
0x03210000, 0x40000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00130321, 0x07A40000, 0xC0000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000,
|
||||
0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000031, 0x00000001, 0x00010000, 0x0BB80000,
|
||||
0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFF87, 0x00000000, 0xFFFFFFF0, 0xFFFFFF87, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000004, 0x00000005, 0x00050000, 0x01800000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058,
|
||||
0xFFFFFFA1, 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000, 0x00060180, 0x01C60000, 0x00000000,
|
||||
0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x000501C6, 0x022A0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x0006022A, 0x02700000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058,
|
||||
0xFFFFFFA1, 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000, 0x00050270, 0x0BB90000, 0x00000000,
|
||||
0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000027, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFE, 0x00000000,
|
||||
0x00000000, 0xFFFFFFFE, 0x00000000, 0x00000000, 0x00000000, 0x0000002A, 0x00000003, 0x00010000, 0x00920000,
|
||||
0x00000000, 0x000000C3, 0x00000006, 0x00000000, 0x000000C3, 0x00000006, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00020092, 0x02F20000, 0x00000000, 0x000000C3, 0x00000006, 0x00000000, 0x000000C3, 0x00000006,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000302F2, 0x0A440000, 0x00000000, 0x000000C3, 0x00000006,
|
||||
0x00000000, 0x000000C3, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000002D, 0x00000001,
|
||||
0x0001032A, 0x03370337, 0x0000002D, 0x00000001, 0x00050339, 0x03570357, 0x0000002D, 0x00000001, 0x00010442,
|
||||
0x04610461, 0x00000001, 0x00010000, 0x012D0000, 0x00000000, 0x432F65F8, 0xFD97001E, 0x00470000, 0x00000000,
|
||||
0x432F65F8, 0xFD97001E, 0x00471FBC, 0x00000000, 0x432F65F8, 0xFD97001E, 0x0047D5E0, 0x00000000, 0x432F65F8,
|
||||
0xFD97001E, 0x00470000, 0x00000000, 0x432F65F8, 0xFD97001E, 0x00471F98, 0x00000000, 0x432F65F8, 0xFD97001E,
|
||||
0x00470000, 0x00000000, 0x4311CC7C, 0xFE38006B, 0x00380000, 0x00000000, 0x42726667, 0xFFB40036, 0x00470164,
|
||||
0x00000000, 0x42726667, 0x00740036, 0x00602100, 0x00000000, 0x42726667, 0x00EC000B, 0x00400049, 0x00000000,
|
||||
0x42726667, 0x00EC000B, 0x0040204C, 0x00000000, 0x42726667, 0x00EC000B, 0x0040E990, 0xFF000000, 0x42726667,
|
||||
0x00EC000B, 0x00400000, 0x00000001, 0x00010107, 0x05CC0000, 0x00000000, 0x4228E87B, 0x00A10035, 0x001A0000,
|
||||
0x00000000, 0x4228E87B, 0x00A10035, 0x001A1FBC, 0x00000000, 0x4228E87B, 0x00A10035, 0x001AD5E0, 0x00000000,
|
||||
0x4228E87B, 0x00820009, 0x00600000, 0x00000000, 0x4228E87B, 0x00820009, 0x00601F98, 0x00000000, 0x4228E87B,
|
||||
0x00820009, 0x00600000, 0x00000000, 0x4228E87B, 0x00820009, 0x00600000, 0xFF000000, 0x4228E87B, 0x00820009,
|
||||
0x00600164, 0x00000001, 0x0001017F, 0x05C20000, 0x00000000, 0x428C743C, 0x00CF002D, 0x00220000, 0x00000000,
|
||||
0x428C743C, 0x00CF002D, 0x00221FBC, 0x00000000, 0x428C743C, 0x00CF002D, 0x0022D5E0, 0x00000000, 0x428C743C,
|
||||
0x00CF002D, 0x00220000, 0xFF000000, 0x428C743C, 0x00CF002D, 0x00221F98, 0x00000001, 0x000101C5, 0x06080000,
|
||||
0x00000000, 0x42341BB1, 0xFFC6005A, 0x00460000, 0x00000000, 0x42341BB1, 0xFFC6005A, 0x00461FBC, 0x00000000,
|
||||
0x42341BB1, 0xFFC6005A, 0x0046D5E0, 0x00000000, 0x42341BB1, 0xFFC6005A, 0x00460000, 0xFF000000, 0x42341BB1,
|
||||
0xFFC6005A, 0x00461F98, 0x00000001, 0x00010229, 0x066C0000, 0x00000000, 0x428C743C, 0x00CF002D, 0x00220000,
|
||||
0x00000000, 0x428C743C, 0x00CF002D, 0x00221FBC, 0x00000000, 0x428C743C, 0x00CF002D, 0x0022D5E0, 0x00000000,
|
||||
0x428C743C, 0x00CF002D, 0x00220000, 0xFF000000, 0x428C743C, 0x00CF002D, 0x00221F98, 0x00000001, 0x0001026F,
|
||||
0x06B20000, 0x00000000, 0x4271B55A, 0x00A1003B, 0x00000000, 0x00000000, 0x4271B55A, 0x00A1003B, 0x00001FBC,
|
||||
0x00000000, 0x4271B55A, 0x00A1003B, 0x0000D5E0, 0x00000000, 0x4271B55A, 0x00A1003B, 0x00000000, 0xFF000000,
|
||||
0x4271B55A, 0x00A1003B, 0x00001F98, 0x00000001, 0x000102B5, 0x06F80000, 0x00000000, 0x4271B55A, 0x00970052,
|
||||
0x00230000, 0x00000000, 0x4271B55A, 0x00970052, 0x00231FBC, 0x00000000, 0x4271B55A, 0x00970052, 0x0023D5E0,
|
||||
0x00000000, 0x4271B55A, 0x00970052, 0x00230000, 0xFF000000, 0x4271B55A, 0x00970052, 0x00231F98, 0x00000001,
|
||||
0x000102FB, 0x03B00000, 0x00000000, 0x4271B55A, 0x00E60007, 0x00180000, 0x00000000, 0x4271B55A, 0x00E60007,
|
||||
0x00181FBC, 0x00000000, 0x4271B55A, 0x00E60007, 0x0018D5E0, 0x00000000, 0x4271B55A, 0x00CF003E, 0x000F0000,
|
||||
0x00000000, 0x428CDAA2, 0x00E600F0, 0x00181F98, 0x00000000, 0x428CDAA2, 0x00E600F0, 0x00180000, 0x00000000,
|
||||
0x428CDAA2, 0x00E600F0, 0x00180000, 0xFF000000, 0x428CDAA2, 0x00E600F0, 0x00180164, 0x00000001, 0x00010337,
|
||||
0x048D0000, 0x00000000, 0x42700000, 0x000D0356, 0x00020000, 0x00000000, 0x42700000, 0x00090355, 0x00051FBC,
|
||||
0x00000000, 0x42700000, 0xFFFD0355, 0x0005D5E0, 0x00000000, 0x42700000, 0xFFF70355, 0xFFFA0000, 0x00000000,
|
||||
0x42700000, 0xFFFE0354, 0xFFEF1F98, 0x00000000, 0x42700000, 0x00090354, 0xFFEF0000, 0x00000000, 0x42700000,
|
||||
0x00100354, 0xFFFA0000, 0x00000000, 0x42700000, 0x00090354, 0x00050164, 0xFF000000, 0x42700000, 0xFFFD0353,
|
||||
0x00052100, 0x00000005, 0x00010383, 0x08200000, 0x00000000, 0x4289332C, 0x00000021, 0xFFE50000, 0x00000000,
|
||||
0x4289332C, 0x00000021, 0xFFE51FBC, 0x00000000, 0x4289332C, 0x00000044, 0xFFE6D5E0, 0x00000000, 0x4289332C,
|
||||
0x00000067, 0xFFE60000, 0x00000000, 0x4289332C, 0x00000067, 0xFFE61F98, 0x00000000, 0x4289332C, 0x00000067,
|
||||
0xFFE60000, 0x00000000, 0x4289332C, 0x00000067, 0xFFE60000, 0xFF000000, 0x4289332C, 0x00000067, 0xFFE60164,
|
||||
0x00000002, 0x00010000, 0x014A0000, 0x001E0014, 0x432F65F8, 0xFD77FFB5, 0x00650000, 0x00E20014, 0x432F65F8,
|
||||
0xFD74FFB5, 0x00621FBC, 0x001E0014, 0x432F65F8, 0xFD6EFFB5, 0x0057D5E0, 0x00E20014, 0x432F65F8, 0xFD5A007F,
|
||||
0x00470000, 0x00000014, 0x432F65F8, 0xFD290000, 0x00471F98, 0x00000014, 0x4311CC7C, 0xFDFF0000, 0x002B0000,
|
||||
0x0000001E, 0x42726667, 0xFEA30059, 0x002F0000, 0x0000001E, 0x42726667, 0x0006003D, 0x00010164, 0x0000001E,
|
||||
0x42726667, 0x00210042, 0x001C2100, 0x0000001E, 0x42726667, 0x009E002A, 0x00010049, 0x0000001E, 0x42726667,
|
||||
0x009E002A, 0x0001204C, 0x0000001E, 0x42726667, 0x009E002A, 0x0001E990, 0xFF00001E, 0x42726667, 0x009E002A,
|
||||
0x00010000, 0x00000002, 0x00010107, 0x05E90000, 0x0000001E, 0x4228E87B, 0x0142003E, 0xFF860000, 0x0000001E,
|
||||
0x4228E87B, 0x0142003E, 0xFF861FBC, 0x00000032, 0x4228E87B, 0x0142003E, 0xFF86D5E0, 0x00000032, 0x4228E87B,
|
||||
0x00E8003F, 0xFFAD0000, 0x0000001E, 0x4228E87B, 0x00E8003F, 0xFFAD1F98, 0x000003E8, 0x4228E87B, 0x00E8003F,
|
||||
0xFFAD0000, 0x0000001E, 0x4228E87B, 0x00E8003F, 0xFFAD0000, 0xFF00001E, 0x4228E87B, 0x00E8003F, 0xFFAD0164,
|
||||
0x00000002, 0x0001017F, 0x05DF0000, 0x0000001E, 0x428C743C, 0x0033003E, 0xFF970000, 0x0000001E, 0x428C743C,
|
||||
0x0033003E, 0xFF971FBC, 0x000003E8, 0x428C743C, 0x0033003E, 0xFF97D5E0, 0x0000001E, 0x428C743C, 0x0033003E,
|
||||
0xFF970000, 0xFF00001E, 0x428C743C, 0x0033003E, 0xFF971F98, 0x00000002, 0x000101C5, 0x06250000, 0x0000001E,
|
||||
0x42341BB1, 0x00660016, 0xFFE10000, 0x0000001E, 0x42341BB1, 0x00660016, 0xFFE11FBC, 0x000003E8, 0x42341BB1,
|
||||
0x00660016, 0xFFE1D5E0, 0x0000001E, 0x42341BB1, 0x00660016, 0xFFE10000, 0xFF00001E, 0x42341BB1, 0x00660016,
|
||||
0xFFE11F98, 0x00000002, 0x00010229, 0x06890000, 0x0000001E, 0x428C743C, 0x0033003E, 0xFF970000, 0x0000001E,
|
||||
0x428C743C, 0x0033003E, 0xFF971FBC, 0x000003E8, 0x428C743C, 0x0033003E, 0xFF97D5E0, 0x0000001E, 0x428C743C,
|
||||
0x0033003E, 0xFF970000, 0xFF00001E, 0x428C743C, 0x0033003E, 0xFF971F98, 0x00000002, 0x0001026F, 0x06CF0000,
|
||||
0x0000001E, 0x4271B55A, 0x015B0016, 0x00000000, 0x0000001E, 0x4271B55A, 0x015B0016, 0x00001FBC, 0x000003E8,
|
||||
0x4271B55A, 0x015B0016, 0x0000D5E0, 0x0000001E, 0x4271B55A, 0x015B0016, 0x00000000, 0xFF00001E, 0x4271B55A,
|
||||
0x015B0016, 0x00001F98, 0x00000002, 0x000102B5, 0x07150000, 0x0000001E, 0x4271B55A, 0x0102FFE2, 0xFFCA0000,
|
||||
0x0000001E, 0x4271B55A, 0x0102FFE2, 0xFFCA1FBC, 0x000003E8, 0x4271B55A, 0x0102FFE2, 0xFFCAD5E0, 0x0000001E,
|
||||
0x4271B55A, 0x0102FFE2, 0xFFCA0000, 0xFF00001E, 0x4271B55A, 0x0102FFE2, 0xFFCA1F98, 0x00000002, 0x000102FB,
|
||||
0x03CD0000, 0x0000001E, 0x4271B55A, 0x00600069, 0xFFE30000, 0x00000028, 0x4271B55A, 0x00600069, 0xFFE31FBC,
|
||||
0x0000000F, 0x4271B55A, 0x00600069, 0xFFE3D5E0, 0x0000000F, 0x42701BC0, 0x006E00C4, 0xFFE60000, 0x00000014,
|
||||
0x428CDAA2, 0x00B9018F, 0x00061F98, 0x0000001E, 0x428CDAA2, 0x00B9018F, 0x00060000, 0x0000001E, 0x428CDAA2,
|
||||
0x00B9018F, 0x00060000, 0xFF00001E, 0x428CDAA2, 0x00B9018F, 0x00060164, 0x00000002, 0x00010337, 0x04BE0000,
|
||||
0x00000032, 0x42700000, 0x00030006, 0xFFFA0000, 0x00000028, 0x42700000, 0x00030006, 0xFFFA1FBC, 0x0000001E,
|
||||
0x424BFFF7, 0x00030006, 0xFFFAD5E0, 0x00000014, 0x41A4CC7E, 0x00030006, 0xFFFA0000, 0x00000033, 0x412CCC23,
|
||||
0x00030006, 0xFFFA1F98, 0x00000032, 0x412665BD, 0x00030006, 0xFFFA0000, 0x00000032, 0x412665BD, 0x00030006,
|
||||
0xFFFA0000, 0x00000032, 0x4123328A, 0x00030006, 0xFFFA0164, 0xFF000032, 0x412FFF56, 0x00030006, 0xFFFA2100,
|
||||
0x00000006, 0x00010383, 0x083D0000, 0x0000001E, 0x4289332C, 0x00000064, 0x00050000, 0x0000001E, 0x4289332C,
|
||||
0x00000065, 0x00061FBC, 0x0000001E, 0x4289332C, 0x00010063, 0x0029D5E0, 0x0000001E, 0x4289332C, 0x0000002A,
|
||||
0x00100000, 0x0000001E, 0x4289332C, 0x0000002A, 0x00101F98, 0x000003E8, 0x4289332C, 0x0000002A, 0x00100000,
|
||||
0x0000001E, 0x4289332C, 0x0000002A, 0x00100000, 0xFF00001E, 0x4289332C, 0x0000002A, 0x00100164, 0x0000003E,
|
||||
0x00000001, 0x00040000, 0x0BB8C10F, 0x00000000, 0x0000004D, 0x00000050, 0xFFFFFFFE, 0x00000000, 0x00000050,
|
||||
0x00000000, 0xBCD242E7, 0x00000000, 0x3CD242E7, 0x00000013, 0x0000000E, 0xFFFF0000, 0x018AFFFF, 0xFFFFFFFF,
|
||||
0x4041018A, 0x01BC0000, 0x00000000, 0xFFFF01BC, 0x01D0FFFF, 0xFFFFFFFF, 0x404601D0, 0x021F0000, 0x00000000,
|
||||
0xFFFF021F, 0x0234FFFF, 0xFFFFFFFF, 0x40490234, 0x02650000, 0x00000000, 0xFFFF0265, 0x027AFFFF, 0xFFFFFFFF,
|
||||
0x4047027A, 0x02AC0000, 0x00000000, 0xFFFF02AC, 0x02C0FFFF, 0xFFFFFFFF, 0x404A02C0, 0x02EE0000, 0x00000000,
|
||||
0xFFFF02EE, 0x043DFFFF, 0xFFFFFFFF, 0x003D043D, 0x04420000, 0x00000000, 0xFFFF0442, 0x047EFFFF, 0xFFFFFFFF,
|
||||
0x4042047E, 0x04880000, 0x00000000, 0x000003E8, 0x00000001, 0x001504A6, 0x04BD04BD, 0x00000056, 0x00000001,
|
||||
0x00440384, 0x03850000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x00000034, 0x00000000, 0xFFFFFFC7, 0x00000034,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x0000007C, 0x00000001, 0x00040320, 0x03520000, 0x00000000, 0x00000000,
|
||||
0xFFFFFFC6, 0x00000030, 0x00000000, 0xFFFFFFC6, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
|
||||
0x00000000,
|
||||
};
|
||||
Reference in New Issue
Block a user