Add HU3D limit defines
This commit is contained in:
parent
818e52886f
commit
a159b773c0
6 changed files with 70 additions and 65 deletions
|
|
@ -6,6 +6,11 @@
|
|||
#include "game/memory.h"
|
||||
#include "game/data.h"
|
||||
|
||||
#define HU3D_MODEL_MAX 512
|
||||
#define HU3D_MOTION_MAX 256
|
||||
#define HU3D_TEXANIM_MAX 256
|
||||
#define HU3D_TEXSCROLL_MAX 16
|
||||
|
||||
#define HU3D_MOTATTR 0x40000000
|
||||
|
||||
#define HU3D_MOTATTR_LOOP 0x40000001
|
||||
|
|
@ -26,7 +31,6 @@
|
|||
#define HU3D_CLUSTER_ATTR_PAUSE ((s32)0xC0000002)
|
||||
#define HU3D_CLUSTER_ATTR_REV ((s32)0xC0000004)
|
||||
|
||||
|
||||
#define HU3D_ATTR_NONE 0
|
||||
|
||||
#define HU3D_ATTR_DISPOFF 0x1
|
||||
|
|
@ -70,6 +74,7 @@
|
|||
#define HU3D_CAM13 (1 << 13)
|
||||
#define HU3D_CAM14 (1 << 14)
|
||||
#define HU3D_CAM15 (1 << 15)
|
||||
#define HU3D_CAM_MAX 16
|
||||
|
||||
#define Hu3DModelCreateFile(data_id) (Hu3DModelCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA)))
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ u32 frand(void);
|
|||
|
||||
extern u32 GlobalCounter;
|
||||
|
||||
Hu3DTexAnimDataStruct Hu3DTexAnimData[256];
|
||||
Hu3DTexAnimDataStruct Hu3DTexAnimData[HU3D_TEXANIM_MAX];
|
||||
Hu3DTexScrDataStruct Hu3DTexScrData[16];
|
||||
static Process *parManProc[64];
|
||||
|
||||
|
|
@ -42,11 +42,11 @@ void Hu3DAnimInit(void) {
|
|||
s16 i;
|
||||
|
||||
var_r30 = Hu3DTexAnimData;
|
||||
for (i = 0; i < 256; i++, var_r30++) {
|
||||
for (i = 0; i < HU3D_TEXANIM_MAX; i++, var_r30++) {
|
||||
var_r30->unk06 = -1;
|
||||
}
|
||||
var_r29 = Hu3DTexScrData;
|
||||
for (i = 0; i < 16; i++, var_r29++) {
|
||||
for (i = 0; i < HU3D_TEXSCROLL_MAX; i++, var_r29++) {
|
||||
var_r29->unk02 = -1;
|
||||
}
|
||||
}
|
||||
|
|
@ -61,12 +61,12 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) {
|
|||
s16 var_r28;
|
||||
|
||||
var_r31 = Hu3DTexAnimData;
|
||||
for (var_r28 = 0; var_r28 < 256; var_r28++, var_r31++) {
|
||||
for (var_r28 = 0; var_r28 < HU3D_TEXANIM_MAX; var_r28++, var_r31++) {
|
||||
if (var_r31->unk06 == -1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r28 == 256) {
|
||||
if (var_r28 == HU3D_TEXANIM_MAX) {
|
||||
OSReport("Error: TexAnim Over\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -118,12 +118,12 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) {
|
|||
s16 var_r25;
|
||||
|
||||
var_r31 = Hu3DTexAnimData;
|
||||
for (var_r28 = 0; var_r28 < 256; var_r28++, var_r31++) {
|
||||
for (var_r28 = 0; var_r28 < HU3D_TEXANIM_MAX; var_r28++, var_r31++) {
|
||||
if (var_r31->unk06 == -1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r28 == 256) {
|
||||
if (var_r28 == HU3D_TEXANIM_MAX) {
|
||||
OSReport("Error: TexAnim Over\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -190,7 +190,7 @@ void Hu3DAnimModelKill(s16 arg0) {
|
|||
Hu3DTexAnimDataStruct *var_r26 = &Hu3DTexAnimData[0];
|
||||
s16 i;
|
||||
|
||||
for (i = 0; i < 256; i++, var_r26++) {
|
||||
for (i = 0; i < HU3D_TEXANIM_MAX; i++, var_r26++) {
|
||||
if (var_r26->unk06 == arg0) {
|
||||
Hu3DAnimKill(i);
|
||||
}
|
||||
|
|
@ -201,7 +201,7 @@ void Hu3DAnimAllKill(void) {
|
|||
Hu3DTexAnimDataStruct *var_r26 = &Hu3DTexAnimData[0];
|
||||
s16 i;
|
||||
|
||||
for (i = 0; i < 256; i++, var_r26++) {
|
||||
for (i = 0; i < HU3D_TEXANIM_MAX; i++, var_r26++) {
|
||||
if (var_r26->unk06 != -1) {
|
||||
Hu3DAnimKill(i);
|
||||
}
|
||||
|
|
@ -283,7 +283,7 @@ void Hu3DAnimExec(void) {
|
|||
s16 i;
|
||||
|
||||
var_r30 = Hu3DTexAnimData;
|
||||
for (i = 0; i < 256; i++, var_r30++) {
|
||||
for (i = 0; i < HU3D_TEXANIM_MAX; i++, var_r30++) {
|
||||
if (var_r30->unk06 != -1 && (Hu3DPauseF == 0 || (var_r30->unk00 & 0x20))) {
|
||||
var_r25 = var_r30->unk10;
|
||||
temp_r28 = &var_r25->bank[var_r30->unk02];
|
||||
|
|
@ -312,7 +312,7 @@ void Hu3DAnimExec(void) {
|
|||
}
|
||||
}
|
||||
var_r31 = Hu3DTexScrData;
|
||||
for (i = 0; i < 16; i++, var_r31++) {
|
||||
for (i = 0; i < HU3D_TEXSCROLL_MAX; i++, var_r31++) {
|
||||
if (var_r31->unk02 != -1) {
|
||||
if (Hu3DPauseF != 0 && !(var_r31->unk00 & 8)) {
|
||||
PSMTXRotRad(var_r31->unk3C, 'Z', MTXDegToRad(var_r31->unk34));
|
||||
|
|
@ -365,12 +365,12 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) {
|
|||
s16 var_r28;
|
||||
|
||||
var_r31 = Hu3DTexScrData;
|
||||
for (var_r28 = 0; var_r28 < 16; var_r28++, var_r31++) {
|
||||
for (var_r28 = 0; var_r28 < HU3D_TEXSCROLL_MAX; var_r28++, var_r31++) {
|
||||
if (var_r31->unk02 == -1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r28 == 16) {
|
||||
if (var_r28 == HU3D_TEXSCROLL_MAX) {
|
||||
OSReport("Error: TexScroll Over\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -434,7 +434,7 @@ void Hu3DTexScrollAllKill(void) {
|
|||
s16 i;
|
||||
|
||||
var_r27 = Hu3DTexScrData;
|
||||
for (i = 0; i < 16; i++, var_r27++) {
|
||||
for (i = 0; i < HU3D_TEXSCROLL_MAX; i++, var_r27++) {
|
||||
if (var_r27->unk02 != -1) {
|
||||
Hu3DTexScrollKill(i);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,13 +46,13 @@ void GXResetWriteGatherPipe(void);
|
|||
|
||||
static const Vec lbl_8011DD20 = { 0.0f, 0.0f, -1.0f };
|
||||
|
||||
static HsfDrawObject DrawObjData[512];
|
||||
static HsfDrawObject DrawObjData[HU3D_MODEL_MAX];
|
||||
static HsfAttribute *BmpPtrBak[8];
|
||||
static Mtx MTXBuf[96];
|
||||
static Vec scaleBuf[96];
|
||||
static GXColor texCol[16];
|
||||
static Mtx hiliteMtx;
|
||||
static s16 DrawObjNum[512];
|
||||
static s16 DrawObjNum[HU3D_MODEL_MAX];
|
||||
static Vec NBTB;
|
||||
static Vec NBTT;
|
||||
Vec PGMaxPos;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ void CamMotionEx2(s16 arg0, s16 arg1, float arg2, s16 arg3) {
|
|||
CameraData *temp_r30;
|
||||
s16 i;
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
for (i = 0; i < HU3D_CAM_MAX; i++) {
|
||||
if (arg1 & (1 << i)) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -57,7 +57,7 @@ void CamMotionEx(s16 arg0, s16 arg1, Vec *arg2, Vec *arg3, Vec *arg4, float arg5
|
|||
temp_r22 = temp_r23->hsfData;
|
||||
temp_r18 = temp_r19->unk_04;
|
||||
temp_r26 = temp_r18->motion;
|
||||
for (var_r25 = 0; var_r25 < 16; var_r25++) {
|
||||
for (var_r25 = 0; var_r25 < HU3D_CAM_MAX; var_r25++) {
|
||||
if (arg1 & (1 << var_r25)) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -422,7 +422,7 @@ void Hu3D2Dto3D(Vec *arg0, s16 arg1, Vec *arg2) {
|
|||
s16 i;
|
||||
Mtx spC;
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
for (i = 0; i < HU3D_CAM_MAX; i++) {
|
||||
if (arg1 & (1 << i)) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -449,7 +449,7 @@ void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2) {
|
|||
s16 i;
|
||||
Mtx sp1C;
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
for (i = 0; i < HU3D_CAM_MAX; i++) {
|
||||
if (arg1 & (1 << i)) {
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@
|
|||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
ModelData Hu3DData[0x200];
|
||||
CameraData Hu3DCamera[0x10];
|
||||
ModelData Hu3DData[HU3D_MODEL_MAX];
|
||||
CameraData Hu3DCamera[HU3D_CAM_MAX];
|
||||
static s16 layerNum[8];
|
||||
static void (*layerHook[8])(s16);
|
||||
AnimData *reflectAnim[5];
|
||||
|
|
@ -63,11 +63,11 @@ void Hu3DInit(void) {
|
|||
s16 i;
|
||||
|
||||
data = Hu3DData;
|
||||
for (i = 0; i < 0x200; i++, data++) {
|
||||
for (i = 0; i < HU3D_MODEL_MAX; i++, data++) {
|
||||
data->hsfData = NULL;
|
||||
}
|
||||
camera = Hu3DCamera;
|
||||
for (i = 0; i < 0x10; i++, camera++) {
|
||||
for (i = 0; i < HU3D_CAM_MAX; i++, camera++) {
|
||||
camera->fov = -1.0f;
|
||||
}
|
||||
Hu3DMotionInit();
|
||||
|
|
@ -111,7 +111,7 @@ void Hu3DPreProc(void) {
|
|||
|
||||
GXSetCopyClear(BGColor, 0xFFFFFF);
|
||||
data = &Hu3DData[0];
|
||||
for (i = 0; i < 0x200; i++, data++) {
|
||||
for (i = 0; i < HU3D_MODEL_MAX; i++, data++) {
|
||||
if (data->hsfData != 0) {
|
||||
data->attr &= ~HU3D_ATTR_MOT_EXEC;
|
||||
}
|
||||
|
|
@ -146,7 +146,7 @@ void Hu3DExec(void) {
|
|||
shadowModelDrawF = 0;
|
||||
HuSprBegin();
|
||||
var_r24 = 0;
|
||||
for (Hu3DCameraNo = 0; Hu3DCameraNo < 0x10; Hu3DCameraNo++, camera++) {
|
||||
for (Hu3DCameraNo = 0; Hu3DCameraNo < HU3D_CAM_MAX; Hu3DCameraNo++, camera++) {
|
||||
if (-1.0f != camera->fov) {
|
||||
GXInvalidateVtxCache();
|
||||
temp_r22 = (s16) (1 << Hu3DCameraNo);
|
||||
|
|
@ -188,7 +188,7 @@ void Hu3DExec(void) {
|
|||
Hu3DCameraSet(Hu3DCameraNo, Hu3DCameraMtx);
|
||||
PSMTXInvXpose(Hu3DCameraMtx, Hu3DCameraMtxXPose);
|
||||
data = Hu3DData;
|
||||
for (i = 0, var_r23 = i; i < 0x200; i++, data++) {
|
||||
for (i = 0, var_r23 = i; i < HU3D_MODEL_MAX; i++, data++) {
|
||||
if (data->hsfData != 0) {
|
||||
if ((data->attr & HU3D_ATTR_CAMERA) != 0) {
|
||||
Hu3DCameraMotionExec(i);
|
||||
|
|
@ -269,7 +269,7 @@ void Hu3DExec(void) {
|
|||
HuSprDispInit();
|
||||
HuSprExec(0);
|
||||
data = Hu3DData;
|
||||
for (i = 0; i < 0x200; i++, data++) {
|
||||
for (i = 0; i < HU3D_MODEL_MAX; i++, data++) {
|
||||
if (data->hsfData != 0 && (data->unk_08 != -1 || (data->attr & HU3D_ATTR_CLUSTER_ON) != 0 || data->unk_0E != -1) && (Hu3DPauseF == 0 || (data->attr & HU3D_ATTR_NOPAUSE) != 0)) {
|
||||
Hu3DMotionNext(i);
|
||||
}
|
||||
|
|
@ -336,12 +336,12 @@ s16 Hu3DModelCreate(void *arg0) {
|
|||
|
||||
var_r31 = Hu3DData;
|
||||
|
||||
for (var_r30 = 0; var_r30 < 0x200; var_r30++, var_r31++) {
|
||||
for (var_r30 = 0; var_r30 < HU3D_MODEL_MAX; var_r30++, var_r31++) {
|
||||
if (var_r31->hsfData == 0x0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r30 == 0x200) {
|
||||
if (var_r30 == HU3D_MODEL_MAX) {
|
||||
OSReport("Error: Create Model Over!\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -418,12 +418,12 @@ s16 Hu3DModelLink(s16 arg0) {
|
|||
|
||||
temp_r30 = &Hu3DData[arg0];
|
||||
var_r31 = Hu3DData;
|
||||
for (var_r28 = 0; var_r28 < 0x200; var_r28++, var_r31++) {
|
||||
for (var_r28 = 0; var_r28 < HU3D_MODEL_MAX; var_r28++, var_r31++) {
|
||||
if (var_r31->hsfData == 0x0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r28 == 0x200) {
|
||||
if (var_r28 == HU3D_MODEL_MAX) {
|
||||
return -1;
|
||||
}
|
||||
var_r31->unk_C8 = temp_r30->hsfData;
|
||||
|
|
@ -481,12 +481,12 @@ s16 Hu3DHookFuncCreate(ModelHookFunc hook) {
|
|||
s16 i;
|
||||
|
||||
var_r31 = Hu3DData;
|
||||
for (var_r29 = 0; var_r29 < 0x200; var_r29++, var_r31++) {
|
||||
for (var_r29 = 0; var_r29 < HU3D_MODEL_MAX; var_r29++, var_r31++) {
|
||||
if (var_r31->hsfData == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r29 == 0x200) {
|
||||
if (var_r29 == HU3D_MODEL_MAX) {
|
||||
return -1;
|
||||
}
|
||||
var_r31->hook = hook;
|
||||
|
|
@ -566,7 +566,7 @@ void Hu3DModelKill(s16 arg0) {
|
|||
temp_r31->hsfData = var_r28;
|
||||
}
|
||||
var_r30 = Hu3DData;
|
||||
for (var_r27 = i = 0; i < 0x200; i++, var_r30++) {
|
||||
for (var_r27 = i = 0; i < HU3D_MODEL_MAX; i++, var_r30++) {
|
||||
if ((var_r30->hsfData != 0) && (var_r30->hsfData == var_r28 || (var_r30->unk_24 != -1 && var_r30->unk_C8 == var_r28))) {
|
||||
var_r27++;
|
||||
}
|
||||
|
|
@ -575,7 +575,7 @@ void Hu3DModelKill(s16 arg0) {
|
|||
temp_r31->hsfData = NULL;
|
||||
var_r30 = Hu3DData;
|
||||
if (temp_r31->unk_20 != -1) {
|
||||
for (i = 0; i < 0x200; i++, var_r30++) {
|
||||
for (i = 0; i < HU3D_MODEL_MAX; i++, var_r30++) {
|
||||
if (var_r30->hsfData != 0 && var_r30->unk_24 != -1 && var_r30->unk_C8 == var_r28) {
|
||||
Hu3DMotion[temp_r31->unk_20].unk_02 = i;
|
||||
break;
|
||||
|
|
@ -620,7 +620,7 @@ void Hu3DModelAllKill(void) {
|
|||
modelKillAllF = 1;
|
||||
var_r30 = Hu3DData;
|
||||
|
||||
for (i = 0; i < 0x200; i++, var_r30++) {
|
||||
for (i = 0; i < HU3D_MODEL_MAX; i++, var_r30++) {
|
||||
if (var_r30->hsfData != 0) {
|
||||
Hu3DModelKill(i);
|
||||
}
|
||||
|
|
@ -1069,7 +1069,7 @@ void Hu3DModelHiliteTypeSet(s16 arg0, s16 arg1) {
|
|||
var_r31->flags |= 0x100;
|
||||
}
|
||||
temp_r29 = &Hu3DData[arg0];
|
||||
temp_r29->attr |= 0x20000;
|
||||
temp_r29->attr |= HU3D_ATTR_HILITE;
|
||||
(void)temp_r29;
|
||||
}
|
||||
|
||||
|
|
@ -1103,7 +1103,7 @@ void Hu3DCameraCreate(s32 cam) {
|
|||
defCamera.scissor_h = RenderMode->efbHeight;
|
||||
Hu3DCameraExistF |= cam;
|
||||
|
||||
for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) {
|
||||
for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) {
|
||||
if ((cam & mask) != 0) {
|
||||
cam_ptr = &Hu3DCamera[i];
|
||||
*cam_ptr = defCamera;
|
||||
|
|
@ -1116,7 +1116,7 @@ void Hu3DCameraPerspectiveSet(s32 cam, f32 fov, f32 near, f32 far, f32 aspect) {
|
|||
s16 i;
|
||||
CameraData* cam_ptr;
|
||||
|
||||
for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) {
|
||||
for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) {
|
||||
if ((cam & mask) != 0) {
|
||||
cam_ptr = &Hu3DCamera[i];
|
||||
cam_ptr->fov = fov;
|
||||
|
|
@ -1132,7 +1132,7 @@ void Hu3DCameraViewportSet(s32 cam, f32 vx, f32 vy, f32 vw, f32 vh, f32 nz, f32
|
|||
s16 i;
|
||||
CameraData* cam_ptr;
|
||||
|
||||
for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) {
|
||||
for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) {
|
||||
if ((cam & mask) != 0) {
|
||||
cam_ptr = &Hu3DCamera[i];
|
||||
cam_ptr->viewport_x = vx;
|
||||
|
|
@ -1150,7 +1150,7 @@ void Hu3DCameraScissorSet(s32 cam, u32 x, u32 y, u32 w, u32 h) {
|
|||
s16 i;
|
||||
CameraData* cam_ptr;
|
||||
|
||||
for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) {
|
||||
for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) {
|
||||
if ((cam & mask) != 0) {
|
||||
cam_ptr = &Hu3DCamera[i];
|
||||
cam_ptr->scissor_x = x;
|
||||
|
|
@ -1166,7 +1166,7 @@ void Hu3DCameraPosSet(s32 cam, f32 x, f32 y, f32 z, f32 ux, f32 uy, f32 uz, f32
|
|||
s16 i;
|
||||
CameraData* cam_ptr;
|
||||
|
||||
for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) {
|
||||
for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) {
|
||||
if ((cam & mask) != 0) {
|
||||
cam_ptr = &Hu3DCamera[i];
|
||||
cam_ptr->pos.x = x;
|
||||
|
|
@ -1187,7 +1187,7 @@ void Hu3DCameraPosSetV(s32 cam, Vec *pos, Vec *up, Vec *target) {
|
|||
s16 i;
|
||||
CameraData* cam_ptr;
|
||||
|
||||
for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) {
|
||||
for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) {
|
||||
if ((cam & mask) != 0) {
|
||||
cam_ptr = &Hu3DCamera[i];
|
||||
cam_ptr->pos = *pos;
|
||||
|
|
@ -1202,7 +1202,7 @@ void Hu3DCameraKill(s32 cam) {
|
|||
s16 i;
|
||||
CameraData* cam_ptr;
|
||||
|
||||
for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) {
|
||||
for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) {
|
||||
if ((cam & mask) != 0) {
|
||||
cam_ptr = &Hu3DCamera[i];
|
||||
cam_ptr->fov = -1.0f;
|
||||
|
|
@ -1219,9 +1219,9 @@ void Hu3DCameraAllKill(void) {
|
|||
s16 mask2;
|
||||
|
||||
cam_ptr = &Hu3DCamera[0];
|
||||
for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1, cam_ptr++) {
|
||||
for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1, cam_ptr++) {
|
||||
if (-1.0f != cam_ptr->fov) {
|
||||
for (j = 0, mask2 = 1; j < 0x10; j++, mask2 <<= 1) {
|
||||
for (j = 0, mask2 = 1; j < HU3D_CAM_MAX; j++, mask2 <<= 1) {
|
||||
if ((mask & mask2) != 0) {
|
||||
cam_ptr2 = &Hu3DCamera[j];
|
||||
cam_ptr2->fov = -1.0f;
|
||||
|
|
@ -1307,7 +1307,7 @@ s16 Hu3DModelCameraCreate(s16 arg0, u16 arg1) {
|
|||
|
||||
temp_r3 = Hu3DHookFuncCreate((ModelHookFunc)-1);
|
||||
temp_r31 = &Hu3DData[(s16) temp_r3];
|
||||
temp_r31->attr &= ~0x10;
|
||||
temp_r31->attr &= ~HU3D_ATTR_HOOKFUNC;
|
||||
temp_r31->attr |= HU3D_ATTR_CAMERA | HU3D_ATTR_CAMERA_MOTON;
|
||||
temp_r31->unk_08 = arg0;
|
||||
temp_r31->unk_01 = arg1;
|
||||
|
|
@ -1941,7 +1941,7 @@ void Hu3DShadowExec(void) {
|
|||
GXInvalidateTexAll();
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, BGColor);
|
||||
|
||||
for (var_r30 = 0; var_r30 < 0x200; var_r30++, var_r31++) {
|
||||
for (var_r30 = 0; var_r30 < HU3D_MODEL_MAX; var_r30++, var_r31++) {
|
||||
if (var_r31->hsfData != 0 && (var_r31->attr & HU3D_ATTR_SHADOW) != 0 && (var_r31->attr & HU3D_ATTR_DISPOFF) == 0 && (var_r31->attr & HU3D_ATTR_HOOK) == 0) {
|
||||
if ((var_r31->attr & HU3D_ATTR_MOTION_OFF) != 0) {
|
||||
test2 = 0;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
static s32 SearchObjectIndex(HsfData *arg0, u32 arg1);
|
||||
static s32 SearchAttributeIndex(HsfData *arg0, u32 arg1);
|
||||
|
||||
MotionData Hu3DMotion[256];
|
||||
MotionData Hu3DMotion[HU3D_MOTION_MAX];
|
||||
|
||||
static HsfBitmap *bitMapPtr;
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ void Hu3DMotionInit(void) {
|
|||
s16 i;
|
||||
|
||||
var_r31 = (MotionData*) Hu3DData;
|
||||
for (i = 0; i < 256; i++, var_r31++) {
|
||||
for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) {
|
||||
var_r31->unk_04 = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -36,12 +36,12 @@ s16 Hu3DMotionCreate(void *arg0) {
|
|||
s16 i;
|
||||
|
||||
var_r31 = Hu3DMotion;
|
||||
for (i = 0; i < 256; i++, var_r31++) {
|
||||
for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) {
|
||||
if (var_r31->unk_04 == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == 256) {
|
||||
if (i == HU3D_MOTION_MAX) {
|
||||
OSReport("Error: Create Motion Over!\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -57,12 +57,12 @@ s16 Hu3DMotionModelCreate(s16 arg0) {
|
|||
s16 i;
|
||||
|
||||
var_r31 = Hu3DMotion;
|
||||
for (i = 0; i < 256; i++, var_r31++) {
|
||||
for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) {
|
||||
if (var_r31->unk_04 == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == 256) {
|
||||
if (i == HU3D_MOTION_MAX) {
|
||||
OSReport("Error: Create Motion Over!\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -105,7 +105,7 @@ void Hu3DMotionAllKill(void) {
|
|||
s16 i;
|
||||
|
||||
var_r27 = Hu3DMotion;
|
||||
for (i = 0; i < 256; i++, var_r27++) {
|
||||
for (i = 0; i < HU3D_MOTION_MAX; i++, var_r27++) {
|
||||
if (var_r27->unk_04) {
|
||||
Hu3DMotionKill(i);
|
||||
}
|
||||
|
|
@ -1051,7 +1051,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) {
|
|||
switch (arg1->channel) {
|
||||
case 8:
|
||||
var_f30 = temp_r29->scale.x * (arg2 + temp_r29->pos.x);
|
||||
for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) {
|
||||
for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) {
|
||||
if (var_r30 & temp_r28) {
|
||||
Hu3DCamera[i].pos.x = var_f30;
|
||||
}
|
||||
|
|
@ -1059,7 +1059,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) {
|
|||
break;
|
||||
case 9:
|
||||
var_f30 = temp_r29->scale.y * (arg2 + temp_r29->pos.y);
|
||||
for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) {
|
||||
for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) {
|
||||
if (var_r30 & temp_r28) {
|
||||
Hu3DCamera[i].pos.y = var_f30;
|
||||
}
|
||||
|
|
@ -1067,7 +1067,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) {
|
|||
break;
|
||||
case 10:
|
||||
var_f30 = temp_r29->scale.z * (arg2 + temp_r29->pos.z);
|
||||
for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) {
|
||||
for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) {
|
||||
if (var_r30 & temp_r28) {
|
||||
Hu3DCamera[i].pos.z = var_f30;
|
||||
}
|
||||
|
|
@ -1075,7 +1075,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) {
|
|||
break;
|
||||
case 11:
|
||||
var_f30 = temp_r29->scale.x * (arg2 + temp_r29->pos.x);
|
||||
for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) {
|
||||
for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) {
|
||||
if (var_r30 & temp_r28) {
|
||||
Hu3DCamera[i].target.x = var_f30;
|
||||
}
|
||||
|
|
@ -1083,7 +1083,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) {
|
|||
break;
|
||||
case 12:
|
||||
var_f30 = temp_r29->scale.y * (arg2 + temp_r29->pos.y);
|
||||
for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) {
|
||||
for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) {
|
||||
if (var_r30 & temp_r28) {
|
||||
Hu3DCamera[i].target.y = var_f30;
|
||||
}
|
||||
|
|
@ -1091,14 +1091,14 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) {
|
|||
break;
|
||||
case 13:
|
||||
var_f30 = temp_r29->scale.z * (arg2 + temp_r29->pos.z);
|
||||
for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) {
|
||||
for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) {
|
||||
if (var_r30 & temp_r28) {
|
||||
Hu3DCamera[i].target.z = var_f30;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) {
|
||||
for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) {
|
||||
if (var_r30 & temp_r28) {
|
||||
VECSubtract(&Hu3DCamera[i].pos, &Hu3DCamera[i].target, &spC);
|
||||
VECNormalize(&spC, &spC);
|
||||
|
|
@ -1111,7 +1111,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) {
|
|||
}
|
||||
break;
|
||||
case 15:
|
||||
for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) {
|
||||
for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) {
|
||||
if (var_r30 & temp_r28) {
|
||||
Hu3DCamera[i].fov = arg2;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue