Add HU3D limit defines

This commit is contained in:
gamemasterplc 2024-08-25 16:08:24 -05:00
parent 818e52886f
commit a159b773c0
6 changed files with 70 additions and 65 deletions

View file

@ -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)))

View file

@ -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);
}

View file

@ -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;

View file

@ -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;
}

View file

@ -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;

View file

@ -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;
}