mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-16 14:30:33 -04:00
Merge branch 'zeldaret:main' into d_menu
This commit is contained in:
+9
-11
@@ -243,9 +243,7 @@ cflags_runtime = [
|
||||
# Dolphin library flags
|
||||
cflags_dolphin = [
|
||||
*cflags_base,
|
||||
"-use_lmw_stmw on",
|
||||
"-str reuse,pool,readonly",
|
||||
"-inline auto",
|
||||
"-fp_contract off",
|
||||
]
|
||||
|
||||
# Framework flags
|
||||
@@ -275,7 +273,7 @@ def DolphinLib(lib_name: str, objects: List[Object]) -> Dict[str, Any]:
|
||||
return {
|
||||
"lib": lib_name,
|
||||
"mw_version": "GC/1.2.5n",
|
||||
"cflags": cflags_base,
|
||||
"cflags": cflags_dolphin,
|
||||
"progress_category": "sdk",
|
||||
"host": False,
|
||||
"objects": objects,
|
||||
@@ -502,8 +500,8 @@ config.libs = [
|
||||
Object(Matching, "d/d_cc_s.cpp"),
|
||||
Object(Matching, "d/d_cc_uty.cpp"),
|
||||
Object(NonMatching, "d/d_cam_param.cpp"),
|
||||
Object(NonMatching, "d/d_cam_type.cpp"),
|
||||
Object(NonMatching, "d/d_cam_style.cpp"),
|
||||
Object(MatchingFor("GZLE01", "GZLP01"), "d/d_cam_type.cpp"),
|
||||
Object(Matching, "d/d_cam_style.cpp"),
|
||||
Object(Matching, "d/d_cam_type2.cpp"),
|
||||
Object(NonMatching, "d/d_ev_camera.cpp"),
|
||||
Object(Matching, "d/d_wood.cpp", extra_cflags=["-sym off"]),
|
||||
@@ -1075,11 +1073,11 @@ config.libs = [
|
||||
DolphinLib(
|
||||
"mtx",
|
||||
[
|
||||
Object(NonMatching, "dolphin/mtx/mtx.c"),
|
||||
Object(NonMatching, "dolphin/mtx/mtxvec.c"),
|
||||
Object(NonMatching, "dolphin/mtx/mtx44.c"),
|
||||
Object(NonMatching, "dolphin/mtx/vec.c"),
|
||||
Object(NonMatching, "dolphin/mtx/quat.c"),
|
||||
Object(Matching, "dolphin/mtx/mtx.c"),
|
||||
Object(Matching, "dolphin/mtx/mtxvec.c"),
|
||||
Object(Matching, "dolphin/mtx/mtx44.c"),
|
||||
Object(Matching, "dolphin/mtx/vec.c"),
|
||||
Object(Matching, "dolphin/mtx/quat.c"),
|
||||
],
|
||||
),
|
||||
DolphinLib(
|
||||
|
||||
+54
-36
@@ -4,39 +4,57 @@
|
||||
#include "dolphin/types.h"
|
||||
#include "SSystem/SComponent/c_angle.h"
|
||||
|
||||
// Array indexes, do not change values
|
||||
enum dCamStyleParam_e {
|
||||
dCamStyleParam_UNK0 = 0,
|
||||
dCamStyleParam_UNK1 = 1,
|
||||
dCamStyleParam_UNK2 = 2,
|
||||
dCamStyleParam_UNK3 = 3,
|
||||
dCamStyleParam_UNK4 = 4,
|
||||
dCamStyleParam_CENTER_HEIGHT_BASE = 5,
|
||||
dCamStyleParam_CENTER_HEIGHT_UPPER = 6,
|
||||
dCamStyleParam_CENTER_HEIGHT_LOWER = 7,
|
||||
dCamStyleParam_LOCKON_CENTER_HEIGHT_MIN = 8,
|
||||
dCamStyleParam_LOCKON_CENTER_HEIGHT_MAX = 9,
|
||||
dCamStyleParam_UNK10 = 10,
|
||||
dCamStyleParam_UNK11 = 11,
|
||||
dCamStyleParam_UNK12 = 12,
|
||||
dCamStyleParam_UNK13 = 13,
|
||||
dCamStyleParam_UNK14 = 14,
|
||||
dCamStyleParam_UNK15 = 15,
|
||||
dCamStyleParam_UNK16 = 16,
|
||||
dCamStyleParam_UNK17 = 17,
|
||||
dCamStyleParam_LOCKON_LATITUDE_MIN = 18,
|
||||
dCamStyleParam_LOCKON_LATITUDE_MAX = 19,
|
||||
dCamStyleParam_UNK20 = 20,
|
||||
dCamStyleParam_UNK21 = 21,
|
||||
dCamStyleParam_UNK22 = 22,
|
||||
dCamStyleParam_LOCKON_LONGITUDE_MIN = 23,
|
||||
dCamStyleParam_LOCKON_LONGITUDE_MAX = 24,
|
||||
dCamStyleParam_FOVY_BASE = 25,
|
||||
dCamStyleParam_FOVY_UPPER = 26,
|
||||
dCamStyleParam_FOVY_LOWER = 27,
|
||||
dCamStyleParam_LOCKON_FOVY_MIN = 28,
|
||||
dCamStyleParam_LOCKON_FOVY_MAX = 29,
|
||||
};
|
||||
|
||||
enum dCamParamFlag_e {
|
||||
dCamParam_UNK001 = 0x001,
|
||||
dCamParam_UNK002 = 0x002,
|
||||
dCamParam_UNK004 = 0x004,
|
||||
dCamParam_UNK010 = 0x010,
|
||||
dCamParam_UNK020 = 0x020,
|
||||
dCamParam_UNK040 = 0x040,
|
||||
dCamParam_UNK080 = 0x080,
|
||||
dCamParam_UNK100 = 0x100,
|
||||
dCamParam_UNK200 = 0x200,
|
||||
dCamParam_UNK400 = 0x400,
|
||||
};
|
||||
|
||||
struct dCamera__Style {
|
||||
/* 0x00 */ u32 m00;
|
||||
/* 0x04 */ int engineIdx;
|
||||
/* 0x08 */ u32 m08;
|
||||
/* 0x0C */ u32 m0C;
|
||||
/* 0x10 */ u32 m10;
|
||||
/* 0x14 */ u32 m14;
|
||||
/* 0x18 */ u32 m18;
|
||||
/* 0x1C */ f32 centerHeightBase;
|
||||
/* 0x20 */ f32 centerHeightUpper;
|
||||
/* 0x24 */ f32 centerHeightLower;
|
||||
/* 0x28 */ f32 lockonCenterHeightMin;
|
||||
/* 0x2C */ f32 lockonCenterHeightMax;
|
||||
/* 0x30 */ u32 m30;
|
||||
/* 0x34 */ u32 m34;
|
||||
/* 0x38 */ u32 m38;
|
||||
/* 0x3C */ f32 m3C;
|
||||
/* 0x40 */ f32 m40;
|
||||
/* 0x44 */ u32 m44;
|
||||
/* 0x48 */ u32 m48;
|
||||
/* 0x4C */ u32 m4C;
|
||||
/* 0x50 */ f32 lockonLatitudeMin;
|
||||
/* 0x54 */ f32 lockonLatitudeMax;
|
||||
/* 0x58 */ u32 m58;
|
||||
/* 0x5C */ u32 m5C;
|
||||
/* 0x60 */ u32 m60;
|
||||
/* 0x64 */ f32 lockonLongitudeMin;
|
||||
/* 0x68 */ f32 lockonLongitudeMax;
|
||||
/* 0x6C */ f32 fovyBase;
|
||||
/* 0x70 */ f32 fovyUpper;
|
||||
/* 0x74 */ f32 fovyLower;
|
||||
/* 0x78 */ f32 lockonFovyMin;
|
||||
/* 0x7C */ f32 lockonFovyMax;
|
||||
/* 0x08 */ f32 styleParam[30];
|
||||
/* 0x80 */ u16 flag;
|
||||
}; // Size: 0x84
|
||||
|
||||
@@ -190,30 +208,30 @@ public:
|
||||
|
||||
class dCamParam_c {
|
||||
public:
|
||||
/* 0x0 */ dCamera__Style* mpStyle;
|
||||
/* 0x0 */ const dCamera__Style* mpStyle;
|
||||
/* 0x4 */ s32 mStyleIdx;
|
||||
|
||||
static dCamera__Style styles[];
|
||||
static const dCamera__Style styles[];
|
||||
static const s32 style_num;
|
||||
|
||||
public:
|
||||
dCamParam_c(s32);
|
||||
virtual ~dCamParam_c();
|
||||
|
||||
void Flag(s32, u16) {}
|
||||
void Val(s32, int) {}
|
||||
u16 Flag(s32 styleIdx, u16 mask) { return mask & styles[styleIdx].flag; }
|
||||
f32 Val(s32 styleIdx, int paramIdx) { return styles[styleIdx].styleParam[paramIdx]; }
|
||||
BOOL Change(s32);
|
||||
s32 SearchStyle(u32);
|
||||
f32 ratiof(f32, f32, f32, f32);
|
||||
BOOL DefaultRadius(f32*);
|
||||
void RadiusRatio(f32);
|
||||
f32 RadiusRatio(f32);
|
||||
f32 CenterHeight(f32);
|
||||
f32 Fovy(f32);
|
||||
s16 LockonLongitude(f32);
|
||||
s16 LockonLatitude(f32);
|
||||
f32 LockonFovy(f32);
|
||||
f32 LockonCenterHeight(f32);
|
||||
int Algorythmn(s32 i_style) { return mpStyle[i_style].engineIdx; }
|
||||
int Algorythmn(s32 i_style) { return styles[i_style].engineIdx; }
|
||||
int Algorythmn() { return mpStyle->engineIdx; }
|
||||
bool CheckFlag(u16 flag) { return mpStyle->flag & flag; }
|
||||
};
|
||||
|
||||
+94
-65
@@ -33,7 +33,7 @@ struct dCamera__Type {
|
||||
struct dCamera_event_data {
|
||||
/* 0x000 */ u8 field_0x00;
|
||||
/* 0x001 */ u8 field_0x01[0x04 - 0x01];
|
||||
/* 0x004 */ int field_0x04;
|
||||
/* 0x004 */ int mStaffIdx;
|
||||
/* 0x008 */ int field_0x08;
|
||||
/* 0x00C */ int field_0x0c;
|
||||
/* 0x010 */ u8 field_0x10;
|
||||
@@ -43,7 +43,7 @@ struct dCamera_event_data {
|
||||
/* 0x01C */ int field_0x1c;
|
||||
/* 0x020 */ int field_0x20;
|
||||
/* 0x024 */ int field_0x24;
|
||||
/* 0x028 */ u8 field_0x28[0x2C - 0x28];
|
||||
/* 0x028 */ int field_0x28;
|
||||
/* 0x02C */ dCamera__EventParam mEventParams[8];
|
||||
/* 0x0EC */ dStage_Event_dt_c* field_0xec;
|
||||
/* 0x0F0 */ d2DBSplinePath mSpline2DPath;
|
||||
@@ -159,13 +159,12 @@ public:
|
||||
/* 0x0A2 */ u8 m0A2[0x0A4 - 0x0A2];
|
||||
struct {
|
||||
struct {
|
||||
/* 0x00 */ cXyz m00;
|
||||
/* 0x0C */ int m0C;
|
||||
/* 0x10 */ int m10;
|
||||
/* 0x14 */ int m14;
|
||||
/* 0x18 */ int m18;
|
||||
/* 0x1C */ int m1C;
|
||||
} field_0x00;
|
||||
/* 0x00 */ cXyz mCenter;
|
||||
/* 0x0C */ cXyz mEye;
|
||||
/* 0x18 */ f32 mFovY;
|
||||
/* 0x1C */ cSAngle mBank;
|
||||
/* 0x1E */ s16 m1E;
|
||||
} m00;
|
||||
}
|
||||
/* 0x0A4 */ m0A4[2];
|
||||
/* 0x0E4 */ int mStageMapToolCameraIdx;
|
||||
@@ -176,13 +175,13 @@ public:
|
||||
/* 0x101 */ u8 m101;
|
||||
/* 0x102 */ u8 m102;
|
||||
/* 0x103 */ u8 m103[0x108 - 0x103];
|
||||
/* 0x108 */ int m108;
|
||||
/* 0x108 */ u32 m108;
|
||||
/* 0x10C */ int m10C;
|
||||
/* 0x110 */ u8 m110;
|
||||
/* 0x111 */ u8 m111[0x114 - 0x111];
|
||||
/* 0x114 */ int m114;
|
||||
/* 0x118 */ int m118;
|
||||
/* 0x11C */ int m11C;
|
||||
/* 0x118 */ u32 m118;
|
||||
/* 0x11C */ u32 m11C;
|
||||
/* 0x120 */ int mCameraInfoIdx;
|
||||
/* 0x124 */ int mPadId;
|
||||
/* 0x128 */ fopAc_ac_c* mpPlayerActor;
|
||||
@@ -235,12 +234,13 @@ public:
|
||||
/* 0x1B0 */ dCamForcusLine mForcusLine;
|
||||
/* 0x220 */ dCamera_DMC_system mDMCSystem;
|
||||
/* 0x226 */ u8 m226[0x228 - 0x226];
|
||||
/* 0x228 */ dCamera_monitoring_things mMonitoringThings;
|
||||
/* 0x228 */ dCamera_monitoring_things mMonitor;
|
||||
/* 0x248 */ int m248[3];
|
||||
/* 0x254 */ int m254;
|
||||
/* 0x258 */ int m258;
|
||||
/* 0x25C */ BG mBG;
|
||||
/* 0x314 */ int m314;
|
||||
/* 0x314 */ u8 m314;
|
||||
/* 0x315 */ u8 m315[0x318 -0x315];
|
||||
/* 0x318 */ f32 m318;
|
||||
/* 0x31C */ u8 m31C;
|
||||
/* 0x31D */ u8 m31D;
|
||||
@@ -257,18 +257,44 @@ public:
|
||||
/* 0x35C */ int mRoomMapToolCameraIdx;
|
||||
/* 0x360 */ u8 m360;
|
||||
/* 0x361 */ u8 m361[0x364 - 0x361];
|
||||
/* 0x364 */ u32 m364;
|
||||
/* 0x364 */ int m364;
|
||||
/* 0x368 */ f32 m368;
|
||||
/* 0x36C */ u8 m36C[0x394 - 0x36C];
|
||||
/* 0x394 */ f32 mEvFovy;
|
||||
/* 0x398 */ f32 mEvBank;
|
||||
/* 0x39C */ fopAc_ac_c* mpEvRelActor;
|
||||
/* 0x3A0 */ char mEvRelUseMask[4];
|
||||
/* 0x3A4 */ int mEvTimer;
|
||||
/* 0x3A8 */ u8 m3A8;
|
||||
/* 0x3A9 */ u8 m3A9[0x3AC - 0x3A9];
|
||||
/* 0x3AC */ cXyz mEvBasePos;
|
||||
/* 0x3B8 */ u8 m3B8[0x3F8 - 0x3B8];
|
||||
/* 0x36C */ cXyz m36C;
|
||||
/* 0x378 */ int m378;
|
||||
/* 0x37C */ u8 m37C; // `CalcSubjectAngle` suggests this should be u8 but `followCamera` suggests it should be int
|
||||
/* 0x37D */ u8 m37D; // The fact that this a referenced in `CalcSubjectAngle` suggests m37C can't be an int?
|
||||
/* 0x37E */ s16 m37E;
|
||||
/* 0x380 */ int m380;
|
||||
/* 0x384 */ f32 m384;
|
||||
/* 0x388 */ f32 m388; // `CalcSubjectAngle` suggests this should be a float but `followCamera` suggests it should be int
|
||||
/* 0x38C */ f32 m38C; // Similar issue for 38C
|
||||
/* 0x390 */ s16 m390;
|
||||
/* 0x392 */ s16 m392;
|
||||
/* 0x394 */ f32 m394;
|
||||
/* 0x398 */ f32 m398;
|
||||
/* 0x39C */ f32 m39C;
|
||||
/* 0x3A0 */ f32 m3A0;
|
||||
/* 0x3A4 */ f32 m3A4;
|
||||
/* 0x3A8 */ f32 m3A8;
|
||||
/* 0x3AC */ f32 m3AC;
|
||||
/* 0x3B0 */ f32 m3B0;
|
||||
/* 0x3B4 */ int m3B4;
|
||||
/* 0x3B8 */ cSAngle m3B8; // `CalcSubjectAngle` thinks this is a cSAngle but `followCamera` thinks its a float (could also be cSGlobe since m3BA is a cSAngle and m3BC is a float)
|
||||
/* 0x3BA */ cSAngle m3BA;
|
||||
/* 0x3BC */ f32 m3BC;
|
||||
/* 0x3C0 */ cXyz m3C0;
|
||||
/* 0x3CC */ cXyz m3CC;
|
||||
/* 0x3D8 */ u8 m3D8;
|
||||
/* 0x3D9 */ u8 m3D9;
|
||||
/* 0x3DA */ u8 m3DA;
|
||||
/* 0x3DB */ u8 m3DB;
|
||||
/* 0x3DC */ f32 m3DC;
|
||||
/* 0x3E0 */ f32 m3E0;
|
||||
/* 0x3E4 */ f32 m3E4;
|
||||
/* 0x3E8 */ f32 m3E8;
|
||||
/* 0x3EC */ f32 m3EC;
|
||||
/* 0x3F0 */ f32 m3F0;
|
||||
/* 0x3F4 */ u8 m3F4[0x3F8 - 0x3F4];
|
||||
/* 0x3F8 */ dCamera_event_data mEventData;
|
||||
/* 0x50C */ u32 mEventFlags;
|
||||
/* 0x510 */ int mCurStyle;
|
||||
@@ -285,19 +311,22 @@ public:
|
||||
/* 0x538 */ f32 m538;
|
||||
/* 0x53C */ f32 m53C;
|
||||
/* 0x540 */ f32 m540;
|
||||
/* 0x544 */ u8 m544[0x550 - 0x544];
|
||||
/* 0x544 */ u8 m544[4];
|
||||
/* 0x548 */ u8 m548[4];
|
||||
/* 0x54C */ u8 m54C[0x550 - 0x54C];
|
||||
/* 0x550 */ int m550;
|
||||
/* 0x554 */ int m554;
|
||||
/* 0x558 */ u8 m558[0x568 - 0x558];
|
||||
/* 0x558 */ u8 m558[0x55C - 0x558];
|
||||
/* 0x55C */ cXyz m55C;
|
||||
/* 0x568 */ cXyz mCenterShake;
|
||||
/* 0x574 */ cXyz mEyeShake;
|
||||
/* 0x580 */ f32 mFovYShake;
|
||||
/* 0x584 */ cSAngle m584;
|
||||
/* 0x584 */ cSAngle mBankShake;
|
||||
/* 0x586 */ u8 m586[0x588 - 0x586];
|
||||
/* 0x588 */ int m588;
|
||||
/* 0x58C */ int m58C;
|
||||
/* 0x590 */ int mBlureTimer;
|
||||
/* 0x594 */ csXyz m594;
|
||||
/* 0x594 */ csXyz mBlureRotation;
|
||||
/* 0x59A */ s16 m59A;
|
||||
/* 0x59C */ int mBlurePositionType;
|
||||
/* 0x5A0 */ cXyz mBlurePosition;
|
||||
@@ -338,7 +367,7 @@ public:
|
||||
/* 0x789 */ u8 m789;
|
||||
/* 0x78A */ u8 m78A;
|
||||
/* 0x78B */ u8 m78B;
|
||||
/* 0x78C */ u8 m78C[0x800 - 0x78C];;
|
||||
/* 0x78C */ u8 m78C[0x800 - 0x78C];
|
||||
|
||||
public:
|
||||
dCamera_c(camera_class*);
|
||||
@@ -398,7 +427,7 @@ public:
|
||||
int defaultTriming();
|
||||
void setView(f32, f32, f32, f32);
|
||||
cSAngle forwardCheckAngle();
|
||||
void bumpCheck(u32);
|
||||
bool bumpCheck(u32);
|
||||
f32 getWaterSurfaceHeight(cXyz*);
|
||||
void checkSpecialArea();
|
||||
void checkGroundInfo();
|
||||
@@ -410,7 +439,7 @@ public:
|
||||
fopAc_ac_c* getMsgCmdSpeaker();
|
||||
int getMsgCmdCut();
|
||||
bool talktoCamera(s32);
|
||||
void CalcSubjectAngle(s16*, s16*);
|
||||
bool CalcSubjectAngle(s16*, s16*);
|
||||
bool subjectCamera(s32);
|
||||
bool towerCamera(s32);
|
||||
bool crawlCamera(s32);
|
||||
@@ -437,8 +466,8 @@ public:
|
||||
bool Chtyp(s32);
|
||||
s16 U2();
|
||||
//void U2(s16 i_val) { mAngleY = cSAngle(i_val); }
|
||||
void shakeCamera();
|
||||
void StartShake(s32, u8*, s32, cXyz);
|
||||
f32 shakeCamera();
|
||||
int StartShake(s32, u8*, s32, cXyz);
|
||||
bool StopShake();
|
||||
void ResetBlure(int);
|
||||
void SetBlureAlpha(f32);
|
||||
@@ -456,7 +485,7 @@ public:
|
||||
bool ScopeViewMsgModeOff();
|
||||
|
||||
f32 Fovy() { return mFovY + mFovYShake; }
|
||||
cSAngle Bank() { return mBank + m584; }
|
||||
cSAngle Bank() { return mBank + mBankShake; }
|
||||
cXyz Up() { return mUp; }
|
||||
cXyz Center() { return mCenter + mCenterShake; }
|
||||
cXyz Eye() { return mEye + mEyeShake; }
|
||||
@@ -469,40 +498,40 @@ public:
|
||||
void getEvIntData(int*, char*, int);
|
||||
void getEvFloatData(f32*, char*, f32);
|
||||
void getEvXyzData(cXyz*, char*, cXyz);
|
||||
void getEvStringData(char*, char*, char*);
|
||||
bool getEvStringData(char*, char*, char*);
|
||||
void getEvStringPntData(char*, char*);
|
||||
void getEvActor(char*);
|
||||
void getEvActor(char*, char*);
|
||||
void pauseEvCamera();
|
||||
void fixedFrameEvCamera();
|
||||
void stokerEvCamera();
|
||||
void rollingEvCamera();
|
||||
void fixedPositionEvCamera();
|
||||
void uniformTransEvCamera();
|
||||
void uniformBrakeEvCamera();
|
||||
void uniformAcceleEvCamera();
|
||||
void watchActorEvCamera();
|
||||
void restorePosEvCamera();
|
||||
void talktoEvCamera();
|
||||
void maptoolIdEvCamera();
|
||||
void styleEvCamera();
|
||||
void gameOverEvCamera();
|
||||
void tactEvCamera();
|
||||
void windDirectionEvCamera();
|
||||
void turnToActorEvCamera();
|
||||
void tornadoWarpEvCamera();
|
||||
void saveEvCamera();
|
||||
void loadEvCamera();
|
||||
void useItem0EvCamera();
|
||||
void useItem1EvCamera();
|
||||
void getItemEvCamera();
|
||||
void possessedEvCamera();
|
||||
void fixedFramesEvCamera();
|
||||
void bSplineEvCamera();
|
||||
void twoActor0EvCamera();
|
||||
bool pauseEvCamera();
|
||||
bool fixedFrameEvCamera();
|
||||
bool stokerEvCamera();
|
||||
bool rollingEvCamera();
|
||||
bool fixedPositionEvCamera();
|
||||
bool uniformTransEvCamera();
|
||||
bool uniformBrakeEvCamera();
|
||||
bool uniformAcceleEvCamera();
|
||||
bool watchActorEvCamera();
|
||||
bool restorePosEvCamera();
|
||||
bool talktoEvCamera();
|
||||
bool maptoolIdEvCamera();
|
||||
bool styleEvCamera();
|
||||
bool gameOverEvCamera();
|
||||
bool tactEvCamera();
|
||||
bool windDirectionEvCamera();
|
||||
bool turnToActorEvCamera();
|
||||
bool tornadoWarpEvCamera();
|
||||
bool saveEvCamera();
|
||||
bool loadEvCamera();
|
||||
bool useItem0EvCamera();
|
||||
bool useItem1EvCamera();
|
||||
bool getItemEvCamera();
|
||||
bool possessedEvCamera();
|
||||
bool fixedFramesEvCamera();
|
||||
bool bSplineEvCamera();
|
||||
bool twoActor0EvCamera();
|
||||
|
||||
bool chkFlag(u32 flag) { return (mEventFlags & flag) ? true : false; }
|
||||
void setFlag(u32 flag) { mEventFlags |= flag; }
|
||||
BOOL setFlag(u32 flag) { return mEventFlags |= flag; }
|
||||
void clrFlag(u32 flag) { mEventFlags &= ~flag; }
|
||||
void CStickUse() { clrFlag(0x800000); }
|
||||
void CStickUseless() { setFlag(0x800000); }
|
||||
@@ -514,7 +543,7 @@ public:
|
||||
|
||||
static engine_fn engine_tbl[];
|
||||
static const int type_num;
|
||||
static dCamera__Type types[];
|
||||
static const dCamera__Type types[];
|
||||
static const int mvBGType_num;
|
||||
static const char* mvBGTypes[];
|
||||
};
|
||||
|
||||
@@ -38,6 +38,7 @@ class J2DOrthoGraph;
|
||||
enum daPy__PlayerStatus0 {
|
||||
daPyStts0_UNK1_e = 0x00000001,
|
||||
daPyStts0_UNK2_e = 0x00000002,
|
||||
daPyStts0_UNK4_e = 0x00000004,
|
||||
daPyStts0_UNK10_e = 0x00000010,
|
||||
daPyStts0_UNK20_e = 0x00000020,
|
||||
daPyStts0_UNK40_e = 0x00000040,
|
||||
@@ -97,6 +98,18 @@ enum daPy__PlayerStatus1 {
|
||||
daPyStts1_UNK20000_e = 0x00020000,
|
||||
daPyStts1_UNK40000_e = 0x00040000,
|
||||
daPyStts1_UNK80000_e = 0x00080000,
|
||||
daPyStts1_UNK100000_e = 0x00100000,
|
||||
daPyStts1_UNK200000_e = 0x00200000,
|
||||
daPyStts1_UNK400000_e = 0x00400000,
|
||||
daPyStts1_UNK800000_e = 0x00800000,
|
||||
daPyStts1_UNK1000000_e = 0x01000000,
|
||||
daPyStts1_UNK2000000_e = 0x02000000,
|
||||
daPyStts1_UNK4000000_e = 0x04000000,
|
||||
daPyStts1_UNK8000000_e = 0x08000000,
|
||||
daPyStts1_UNK10000000_e = 0x10000000,
|
||||
daPyStts1_UNK20000000_e = 0x20000000,
|
||||
daPyStts1_UNK40000000_e = 0x40000000,
|
||||
daPyStts1_UNK80000000_e = 0x80000000,
|
||||
};
|
||||
|
||||
class __d_timer_info_c {
|
||||
|
||||
+16
-22
@@ -16,18 +16,30 @@ typedef f32 (*MtxP)[4];
|
||||
typedef f32 (*Mtx3P)[3];
|
||||
typedef const f32 (*CMtxP)[4]; // Change name later?
|
||||
|
||||
void C_MTXIdentity(Mtx m);
|
||||
void PSMTXIdentity(Mtx m);
|
||||
void C_MTXCopy(const Mtx src, Mtx dst);
|
||||
void PSMTXCopy(const Mtx src, Mtx dst);
|
||||
void C_MTXConcat(const Mtx a, const Mtx b, Mtx ab);
|
||||
void PSMTXConcat(const Mtx a, const Mtx b, Mtx ab);
|
||||
u32 C_MTXInverse(const Mtx src, Mtx inv);
|
||||
u32 PSMTXInverse(const Mtx src, Mtx inv);
|
||||
void C_MTXRotRad(Mtx m, u8 axis, f32 rad);
|
||||
void PSMTXRotRad(Mtx m, u8 axis, f32 rad);
|
||||
void C_MTXRotTrig(Mtx m, u8 axis, f32 sin, f32 cos);
|
||||
void PSMTXRotTrig(Mtx m, u8 axis, f32 sin, f32 cos);
|
||||
f64 __PSMTXRotAxisRadInternal(f64 param_1, f64 param_2, int param_3, int param_4);
|
||||
void C_MTXRotAxisRad(Mtx m, const Vec* axis, f32 rad);
|
||||
void __PSMTXRotAxisRadInternal(Mtx m, const Vec* axis, f32 sT, f32 cT);
|
||||
void PSMTXRotAxisRad(Mtx m, const Vec* axis, f32 rad);
|
||||
void C_MTXTrans(Mtx m, f32 x, f32 y, f32 z);
|
||||
void PSMTXTrans(Mtx m, f32 x, f32 y, f32 z);
|
||||
void C_MTXTransApply(const Mtx src, Mtx dst, f32 x, f32 y, f32 z);
|
||||
void PSMTXTransApply(const Mtx src, Mtx dst, f32 x, f32 y, f32 z);
|
||||
void C_MTXScale(Mtx m, f32 x, f32 y, f32 z);
|
||||
void PSMTXScale(Mtx m, f32 x, f32 y, f32 z);
|
||||
void C_MTXScaleApply(const Mtx src, Mtx dst, f32 x, f32 y, f32 z);
|
||||
void PSMTXScaleApply(const Mtx src, Mtx dst, f32 x, f32 y, f32 z);
|
||||
void C_MTXQuat(Mtx m, const Quaternion* q);
|
||||
void PSMTXQuat(Mtx m, const Quaternion* q);
|
||||
|
||||
void C_MTXLookAt(Mtx m, const Vec* camPos, const Vec* camUp, const Vec* target);
|
||||
@@ -36,15 +48,12 @@ void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, f32 scale_s, f32 scale_t
|
||||
void C_MTXLightOrtho(Mtx m, f32 top, f32 bottom, f32 left, f32 right, f32 scale_s, f32 scale_t,
|
||||
f32 trans_s, f32 trans_t);
|
||||
|
||||
void C_MTXRotAxisRad(Mtx m, const Vec* axis, f32 rad);
|
||||
|
||||
#define MTXDegToRad(deg) ((deg) * 0.01745329252f)
|
||||
#define MTXRadToDeg(rad) ((rad) * 57.29577951f)
|
||||
|
||||
/* When compiling in debug mode, use C implementations */
|
||||
#ifdef DEBUG
|
||||
// TODO: Add debug rom C implementations
|
||||
/* #define MTXIdentity C_MTXIdentity
|
||||
#if defined(DEBUG) || !defined(__MWERKS__)
|
||||
#define MTXIdentity C_MTXIdentity
|
||||
#define MTXCopy C_MTXCopy
|
||||
#define MTXConcat C_MTXConcat
|
||||
#define MTXInverse C_MTXInverse
|
||||
@@ -55,22 +64,7 @@ void C_MTXRotAxisRad(Mtx m, const Vec* axis, f32 rad);
|
||||
#define MTXTransApply C_MTXTransApply
|
||||
#define MTXScale C_MTXScale
|
||||
#define MTXScaleApply C_MTXScaleApply
|
||||
#define MTXQuat C_MTXQuat */
|
||||
|
||||
// Temporary until the C implementations are done
|
||||
#define MTXIdentity PSMTXIdentity
|
||||
#define MTXCopy PSMTXCopy
|
||||
#define MTXConcat PSMTXConcat
|
||||
#define MTXInverse PSMTXInverse
|
||||
#define MTXRotRad PSMTXRotRad
|
||||
#define MTXRotTrig PSMTXRotTrig
|
||||
#define MTXRotAxisRad PSMTXRotAxisRad
|
||||
#define MTXTrans PSMTXTrans
|
||||
#define MTXTransApply PSMTXTransApply
|
||||
#define MTXScale PSMTXScale
|
||||
#define MTXScaleApply PSMTXScaleApply
|
||||
#define MTXQuat PSMTXQuat
|
||||
|
||||
#define MTXQuat C_MTXQuat
|
||||
#else
|
||||
#define MTXIdentity PSMTXIdentity
|
||||
#define MTXCopy PSMTXCopy
|
||||
|
||||
@@ -7,25 +7,21 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void C_MTXMultVec(const Mtx m, const Vec* src, Vec* dst);
|
||||
void PSMTXMultVec(const Mtx m, const Vec* src, Vec* dst);
|
||||
void PSMTXMultVecSR(const Mtx m, const Vec* src, Vec* dst);
|
||||
void C_MTXMultVecArray(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count);
|
||||
void PSMTXMultVecArray(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count);
|
||||
void C_MTXMultVecSR(const Mtx m, const Vec* src, Vec* dst);
|
||||
void PSMTXMultVecSR(const Mtx m, const Vec* src, Vec* dst);
|
||||
void C_MTXMultVecArraySR(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count);
|
||||
void PSMTXMultVecArraySR(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count);
|
||||
|
||||
/* When compiling in debug mode, use C implementations */
|
||||
#ifdef DEBUG
|
||||
// TODO: Add debug rom C implementations
|
||||
/* #define MTXMultVec C_MTXMultVec
|
||||
#if defined(DEBUG) || !defined(__MWERKS__)
|
||||
#define MTXMultVec C_MTXMultVec
|
||||
#define MTXMultVecSR C_MTXMultVecSR
|
||||
#define MTXMultVecArray C_MTXMultVecArray
|
||||
#define MTXMultVecArraySR C_MTXMultVecArraySR */
|
||||
|
||||
// Temporary until the C implementations are done
|
||||
#define MTXMultVec PSMTXMultVec
|
||||
#define MTXMultVecSR PSMTXMultVecSR
|
||||
#define MTXMultVecArray PSMTXMultVecArray
|
||||
#define MTXMultVecArraySR PSMTXMultVecArraySR
|
||||
|
||||
#define MTXMultVecArraySR C_MTXMultVecArraySR
|
||||
#else
|
||||
#define MTXMultVec PSMTXMultVec
|
||||
#define MTXMultVecSR PSMTXMultVecSR
|
||||
|
||||
@@ -11,18 +11,14 @@ typedef struct Quaternion {
|
||||
f32 x, y, z, w;
|
||||
} Quaternion;
|
||||
|
||||
void C_QUATMultiply(const Quaternion* a, const Quaternion* b, Quaternion* ab);
|
||||
void PSQUATMultiply(const Quaternion* a, const Quaternion* b, Quaternion* ab);
|
||||
void C_QUATRotAxisRad(Quaternion* q, const Vec* axis, f32 rad);
|
||||
void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, f32 t);
|
||||
|
||||
/* When compiling in debug mode, use C implementations */
|
||||
#ifdef DEBUG
|
||||
// TODO: Add debug rom C implementations
|
||||
/* #define QUATMultiply C_QUATMultiply */
|
||||
|
||||
// Temporary until the C implementations are done
|
||||
#define QUATMultiply PSQUATMultiply
|
||||
|
||||
#if defined(DEBUG) || !defined(__MWERKS__)
|
||||
#define QUATMultiply C_QUATMultiply
|
||||
#else
|
||||
#define QUATMultiply PSQUATMultiply
|
||||
#endif
|
||||
|
||||
+11
-17
@@ -19,36 +19,30 @@ typedef struct SVec {
|
||||
s16 x, y, z;
|
||||
} SVec;
|
||||
|
||||
void C_VECAdd(const Vec* a, const Vec* b, Vec* ab);
|
||||
void PSVECAdd(const Vec* a, const Vec* b, Vec* ab);
|
||||
void C_VECSubtract(const Vec* a, const Vec* b, Vec* a_b);
|
||||
void PSVECSubtract(const Vec* a, const Vec* b, Vec* a_b);
|
||||
void C_VECScale(const Vec* src, Vec* dst, f32 scale);
|
||||
void PSVECScale(const Vec* src, Vec* dst, f32 scale);
|
||||
void C_VECNormalize(const Vec* src, Vec* unit);
|
||||
void PSVECNormalize(const Vec* src, Vec* unit);
|
||||
f32 C_VECSquareMag(const Vec* v);
|
||||
f32 PSVECSquareMag(const Vec* v);
|
||||
f32 C_VECMag(const Vec* v);
|
||||
f32 PSVECMag(const Vec* v);
|
||||
f32 C_VECDotProduct(const Vec* a, const Vec* b);
|
||||
f32 PSVECDotProduct(const Vec* a, const Vec* b);
|
||||
void C_VECCrossProduct(const Vec* a, const Vec* b, Vec* axb);
|
||||
void PSVECCrossProduct(const Vec* a, const Vec* b, Vec* axb);
|
||||
f32 C_VECSquareDistance(const Vec* a, const Vec* b);
|
||||
f32 PSVECSquareDistance(const Vec* a, const Vec* b);
|
||||
f32 C_VECDistance(const Vec* a, const Vec* b);
|
||||
f32 PSVECDistance(const Vec* a, const Vec* b);
|
||||
|
||||
void C_VECHalfAngle(const Vec* a, const Vec* b, Vec* half);
|
||||
void C_VECReflect(const Vec* src, const Vec* normal, Vec* dst);
|
||||
|
||||
inline void C_VECAdd(register const Vec* a, register const Vec* b, register Vec* ab) {
|
||||
ab->x = a->x + b->x;
|
||||
ab->y = a->y + b->y;
|
||||
ab->z = a->z + b->z;
|
||||
}
|
||||
|
||||
inline void C_VECSubtract(register const Vec* a, register const Vec* b, register Vec* ab) {
|
||||
ab->x = a->x - b->x;
|
||||
ab->y = a->y - b->y;
|
||||
ab->z = a->z - b->z;
|
||||
}
|
||||
|
||||
inline f32 C_VECSquareMag(const Vec* v) {
|
||||
return v->x * v->x + v->y * v->y + v->z * v->z;
|
||||
}
|
||||
|
||||
inline BOOL checkScaleOne(Vec v) {
|
||||
if (v.x == 1.0f && v.y == 1.0f && v.z == 1.0f) {
|
||||
return TRUE;
|
||||
@@ -58,7 +52,7 @@ inline BOOL checkScaleOne(Vec v) {
|
||||
}
|
||||
|
||||
/* When compiling in debug mode, use C implementations */
|
||||
#if 0
|
||||
#if defined(DEBUG) || !defined(__MWERKS__)
|
||||
#define VECAdd C_VECAdd
|
||||
#define VECSubtract C_VECSubtract
|
||||
#define VECScale C_VECScale
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
static void getFrameBufferMemory() {}
|
||||
static void getFrameBufferSize() {}
|
||||
static void setBlureMtx(const Mtx) {}
|
||||
static void setBlureRate(u8) {}
|
||||
static void setBlureRate(u8 blurRate) { mBlureRate = blurRate; }
|
||||
|
||||
static GXTexObj mFrameBufferTexObj;
|
||||
static GXTexObj mZbufferTexObj;
|
||||
|
||||
@@ -79,7 +79,12 @@ inline float atan2f(float y, float x) { return (float)atan2(y, x); }
|
||||
inline float sinf(float x) { return sin(x); }
|
||||
inline float cosf(float x) { return cos(x); }
|
||||
inline float tanf(float x) { return tan(x); }
|
||||
}; // namespace std
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace std {
|
||||
#endif
|
||||
extern inline float sqrtf(float x) {
|
||||
const double _half = .5;
|
||||
const double _three = 3.0;
|
||||
@@ -94,6 +99,7 @@ extern inline float sqrtf(float x) {
|
||||
}
|
||||
return x;
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
}; // namespace std
|
||||
#endif
|
||||
|
||||
|
||||
+64
-17
@@ -139,12 +139,12 @@ f32 dCamParam_c::ratiof(f32 t, f32 upper, f32 lower, f32 base) {
|
||||
BOOL dCamParam_c::DefaultRadius(f32* radius) {
|
||||
/* Nonmatching */
|
||||
f32 min, max;
|
||||
if (mpStyle->m3C < mpStyle->m40) {
|
||||
min = mpStyle->m3C;
|
||||
max = mpStyle->m40;
|
||||
if (mpStyle->styleParam[dCamStyleParam_UNK13] < mpStyle->styleParam[dCamStyleParam_UNK14]) {
|
||||
min = mpStyle->styleParam[dCamStyleParam_UNK13];
|
||||
max = mpStyle->styleParam[dCamStyleParam_UNK14];
|
||||
} else {
|
||||
min = mpStyle->m40;
|
||||
max = mpStyle->m3C;
|
||||
min = mpStyle->styleParam[dCamStyleParam_UNK14];
|
||||
max = mpStyle->styleParam[dCamStyleParam_UNK13];
|
||||
}
|
||||
|
||||
if (*radius > max) {
|
||||
@@ -159,52 +159,99 @@ BOOL dCamParam_c::DefaultRadius(f32* radius) {
|
||||
}
|
||||
|
||||
/* 800AFB00-800AFB88 .text RadiusRatio__11dCamParam_cFf */
|
||||
void dCamParam_c::RadiusRatio(f32) {
|
||||
f32 dCamParam_c::RadiusRatio(f32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800AFB88-800AFBB8 .text CenterHeight__11dCamParam_cFf */
|
||||
f32 dCamParam_c::CenterHeight(f32 t) {
|
||||
return ratiof(t, mpStyle->centerHeightUpper, mpStyle->centerHeightLower, mpStyle->centerHeightBase);
|
||||
return ratiof(t, mpStyle->styleParam[dCamStyleParam_CENTER_HEIGHT_UPPER], mpStyle->styleParam[dCamStyleParam_CENTER_HEIGHT_LOWER], mpStyle->styleParam[dCamStyleParam_CENTER_HEIGHT_BASE]);
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800AFBB8-800AFBE8 .text Fovy__11dCamParam_cFf */
|
||||
f32 dCamParam_c::Fovy(f32 t) {
|
||||
return ratiof(t, mpStyle->fovyUpper, mpStyle->fovyLower, mpStyle->fovyBase);
|
||||
return ratiof(t, mpStyle->styleParam[dCamStyleParam_FOVY_UPPER], mpStyle->styleParam[dCamStyleParam_FOVY_LOWER], mpStyle->styleParam[dCamStyleParam_FOVY_BASE]);
|
||||
}
|
||||
|
||||
/* 800AFBE8-800AFC74 .text LockonLongitude__11dCamParam_cFf */
|
||||
s16 dCamParam_c::LockonLongitude(f32 t) {
|
||||
cSAngle ret(mpStyle->lockonLongitudeMin);
|
||||
ret += (cSAngle(mpStyle->lockonLongitudeMax) - ret) * t;
|
||||
cSAngle ret(mpStyle->styleParam[dCamStyleParam_LOCKON_LONGITUDE_MIN]);
|
||||
ret += (cSAngle(mpStyle->styleParam[dCamStyleParam_LOCKON_LONGITUDE_MAX]) - ret) * t;
|
||||
return ret.Val();
|
||||
}
|
||||
|
||||
/* 800AFC74-800AFD00 .text LockonLatitude__11dCamParam_cFf */
|
||||
s16 dCamParam_c::LockonLatitude(f32 t) {
|
||||
cSAngle ret(mpStyle->lockonLatitudeMin);
|
||||
ret += (cSAngle(mpStyle->lockonLatitudeMax) - ret) * t;
|
||||
cSAngle ret(mpStyle->styleParam[dCamStyleParam_LOCKON_LATITUDE_MIN]);
|
||||
ret += (cSAngle(mpStyle->styleParam[dCamStyleParam_LOCKON_LATITUDE_MAX]) - ret) * t;
|
||||
return ret.Val();
|
||||
}
|
||||
|
||||
/* 800AFD00-800AFD20 .text LockonFovy__11dCamParam_cFf */
|
||||
f32 dCamParam_c::LockonFovy(f32 t) {
|
||||
f32 ret = mpStyle->lockonFovyMin;
|
||||
ret += t * (mpStyle->lockonFovyMax - ret);
|
||||
f32 ret = mpStyle->styleParam[dCamStyleParam_LOCKON_FOVY_MIN];
|
||||
ret += t * (mpStyle->styleParam[dCamStyleParam_LOCKON_FOVY_MAX] - ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 800AFD20-800AFD40 .text LockonCenterHeight__11dCamParam_cFf */
|
||||
f32 dCamParam_c::LockonCenterHeight(f32 t) {
|
||||
f32 ret = mpStyle->lockonCenterHeightMin;
|
||||
ret += t * (mpStyle->lockonCenterHeightMax - ret);
|
||||
f32 ret = mpStyle->styleParam[dCamStyleParam_LOCKON_CENTER_HEIGHT_MIN];
|
||||
ret += t * (mpStyle->styleParam[dCamStyleParam_LOCKON_CENTER_HEIGHT_MAX] - ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 800AFD40-800AFEE0 .text __ct__11dCamSetup_cFv */
|
||||
dCamSetup_c::dCamSetup_c() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - regalloc */
|
||||
mDrawNear = 1.0f;
|
||||
mDrawFar = 100000.0f;
|
||||
m00C = 1;
|
||||
mForceType = mModeSwitchType = -1;
|
||||
mCusCus = 0.2f;
|
||||
m024 = 0.05f;
|
||||
m060 = 80.0f;
|
||||
m05C = -60.0f;
|
||||
m028 = 0.33f;
|
||||
m02C = 0.02f;
|
||||
m050 = 100.0f;
|
||||
m030 = 0.75f;
|
||||
mBaseCushion = 0.28f;
|
||||
mJumpCushion = 1.0f;
|
||||
m058 = 0.15f;
|
||||
m044 = 0.005f;
|
||||
m054 = 0.06f;
|
||||
mCurveWeight = 1.0f;
|
||||
m034 = 25.0f;
|
||||
m048 = 70.0f;
|
||||
mParallelDist = 60.0f;
|
||||
mTrimVistaHeight = 52.0f;
|
||||
mTrimCineScopeHeight = 65.0f;
|
||||
m094 = 150;
|
||||
m098 = 60.0f;
|
||||
m09C = 0.3f;
|
||||
m0A0 = 0.2f;
|
||||
mDMCValue = 0.1f;
|
||||
mDMCAngle = 30.0f;
|
||||
mDebugFlags = 1;
|
||||
m0A4 = 27.0f;
|
||||
m0A8 = 20;
|
||||
mChargeLatitude = 2.0f;
|
||||
mChargeTimer = 60;
|
||||
mChargeBRatio = 0.15f;
|
||||
mManualStartCThreshold = 0.66f;
|
||||
mManualEndVal = 0.0f;
|
||||
m06C = 45.0f;
|
||||
mForceLockOffDist = 1800.0f;
|
||||
mForceLockOffTimer = 120;
|
||||
m078 = 0.5f;
|
||||
m07C = 0.4f;
|
||||
m080 = 10.0f;
|
||||
m084 = 4.0f;
|
||||
m0C0 = 1.0f;
|
||||
mLockonChangeCushion = 100.0f;
|
||||
mLockonChangeTimer = -1;
|
||||
}
|
||||
|
||||
/* 800AFEE0-800AFF40 .text __dt__11dCamSetup_cFv */
|
||||
|
||||
+889
-2
@@ -7,8 +7,895 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
dCamera__Style dCamParam_c::styles[145] = {
|
||||
// TODO
|
||||
const dCamera__Style dCamParam_c::styles[] = {
|
||||
{
|
||||
'NN00',
|
||||
0,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
0,
|
||||
},
|
||||
{
|
||||
'FN08',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 5.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 450.0f, 300.0f, -99999.992188f, 0.66f, 0.05f, 25.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.2f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'PN05',
|
||||
0x5,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1000.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 0.75f, 0.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK040,
|
||||
},
|
||||
{
|
||||
'PN12',
|
||||
0x5,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1000.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 0.75f, 10.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK040,
|
||||
},
|
||||
{
|
||||
'EN00',
|
||||
0xB,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
0,
|
||||
},
|
||||
{
|
||||
'FN12',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -15.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 220.0f, 180.0f, -99999.992188f, 0.66f, 0.05f, 12.0f, -40.0f, 60.0f, 2.0f, 0.08f, 1.0f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'TT01',
|
||||
0x3,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.75f, 0.0f, -40.0f, 0.0f, 0.0f, 0.0f, 0.0f, 300.0f, 80.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.0f, -15.0f, 35.0f, 0.0f, 0.0f, -99999.992188f, 0.0f, 30.0f, 40.0f, 45.0f, 0.0f, 0.0f, 0.0f},
|
||||
dCamParam_UNK001,
|
||||
},
|
||||
{
|
||||
'TT02',
|
||||
0x3,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.6f, 0.0f, -30.0f, 0.0f, 0.0f, 0.0f, 0.0f, 280.0f, 80.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.0f, -15.0f, 40.0f, 0.0f, 0.0f, -99999.992188f, 0.0f, 30.0f, 40.0f, 45.0f, 0.0f, 0.0f, 0.0f},
|
||||
dCamParam_UNK001,
|
||||
},
|
||||
{
|
||||
'TT03',
|
||||
0x3,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.6f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 300.0f, 80.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.0f, 0.0f, 40.0f, 0.0f, 0.0f, -99999.992188f, 0.0f, 30.0f, 40.0f, 45.0f, 0.0f, 0.0f, 0.0f},
|
||||
dCamParam_UNK001,
|
||||
},
|
||||
{
|
||||
'LA03',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.2f, 0.4f, 0.0f, -17.5f, 20.0f, -17.5f, 0.0f, 375.0f, 125.0f, 750.0f, 425.0f, 350.0f, 18.0f, -40.0f, 40.0f, 20.0f, 15.0f, 0.03f, 0.0f, -99999.992188f, 40.0f, 40.0f, 55.0f, 52.5f, 54.5f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LP01',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.05f, 0.2f, -30.0f, 12.5f, 20.0f, -30.0f, -30.0f, 220.0f, 125.0f, 625.0f, 220.0f, 220.0f, 0.0f, -40.0f, 30.0f, -10.0f, 10.0f, 0.1f, 0.05f, -99999.992188f, 0.0f, 0.0f, 55.0f, 55.0f, 55.0f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LA02',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.3f, 0.1f, -7.5f, -17.5f, 20.0f, -22.5f, -2.5f, 400.0f, 125.0f, 750.0f, 450.0f, 350.0f, 30.0f, -40.0f, 40.0f, 35.0f, 10.0f, 0.04f, 0.0f, -99999.992188f, 80.0f, 40.0f, 55.0f, 52.5f, 54.5f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'FN13',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.2f, 0.4f, 7.5f, -17.5f, 20.0f, -22.5f, -2.5f, 400.0f, 125.0f, 750.0f, 450.0f, 350.0f, 0.0f, -40.0f, 40.0f, 30.0f, -5.0f, 0.0f, 0.0f, -99999.992188f, 80.0f, 60.0f, 55.0f, 52.5f, 54.5f, 50.0f, 60.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'LH01',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.9f, 0.1f, -50.0f, 3.8f, 20.0f, -50.0f, -50.0f, 350.0f, 125.0f, 875.0f, 325.0f, 375.0f, 50.0f, -20.0f, 60.0f, 55.0f, 20.0f, 0.2f, 0.05f, -99999.992188f, 10.0f, 5.0f, 55.0f, 55.0f, 55.0f, 50.0f, 65.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'LH02',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.9f, 0.1f, -50.0f, 3.8f, 20.0f, -50.0f, -50.0f, 350.0f, 125.0f, 375.0f, 350.0f, 350.0f, 50.0f, -20.0f, 60.0f, 55.0f, 23.0f, 0.2f, 0.05f, -99999.992188f, 10.0f, 5.0f, 55.0f, 50.0f, 65.0f, 50.0f, 65.0f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'LB02',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.2f, 0.4f, -12.5f, -17.5f, 20.0f, -17.5f, -7.5f, 400.0f, 125.0f, 750.0f, 450.0f, 350.0f, 0.0f, -40.0f, 40.0f, 10.0f, -5.0f, 0.01f, 0.0f, -99999.992188f, 170.0f, 160.0f, 55.0f, 52.5f, 54.5f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LP02',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.05f, 0.2f, -30.0f, 12.5f, 20.0f, -30.0f, -30.0f, 200.0f, 125.0f, 750.0f, 200.0f, 200.0f, 0.0f, -40.0f, 40.0f, -10.0f, 10.0f, 0.1f, 0.05f, -99999.992188f, 0.0f, 0.0f, 52.5f, 52.5f, 52.5f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LP03',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.1f, 0.4f, -30.0f, 12.5f, 20.0f, -30.0f, -30.0f, 220.0f, 125.0f, 220.0f, 220.0f, 220.0f, 5.0f, -40.0f, 30.0f, -10.0f, 10.0f, 0.1f, 0.05f, -99999.992188f, 0.0f, 0.0f, 55.0f, 55.0f, 55.0f, 55.0f, 55.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LP04',
|
||||
0x2,
|
||||
{-100000.0f, -100000.0f, -99999.992188f, 0.1f, 0.4f, -25.0f, 15.0f, 20.0f, -25.0f, -25.0f, 200.0f, 200.0f, 320.0f, 250.0f, 350.0f, 5.0f, -10.0f, 20.0f, 5.0f, 5.0f, 0.2f, 0.05f, -99999.992188f, 0.0f, 0.0f, 45.0f, 45.0f, 45.0f, 45.0f, 45.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'CC01',
|
||||
0xC,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.6f, 0.2f, 10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 145.0f, 145.0f, 145.0f, 0.1f, 0.25f, 0.0f, -99999.992188f, -99999.992188f, 0.25f, 0.25f, -99999.992188f, -99999.992188f, -99999.992188f, 0.1f, 0.8f, 50.0f, -99999.992188f, -99999.992188f, 0.5f, 0.5f},
|
||||
dCamParam_UNK002 | dCamParam_UNK080,
|
||||
},
|
||||
{
|
||||
'CC02',
|
||||
0xC,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.6f, 0.2f, 10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 145.0f, 145.0f, 145.0f, 0.1f, 0.25f, 0.0f, -99999.992188f, -99999.992188f, 0.25f, 0.25f, -99999.992188f, -99999.992188f, -99999.992188f, 0.1f, 0.8f, 50.0f, -99999.992188f, -99999.992188f, 0.5f, 0.5f},
|
||||
dCamParam_UNK002 | dCamParam_UNK040 | dCamParam_UNK080,
|
||||
},
|
||||
{
|
||||
'LL06',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.5f, 0.25f, 0.0f, -17.5f, 20.0f, -17.5f, 0.0f, 375.0f, 125.0f, 750.0f, 425.0f, 350.0f, 15.0f, -70.0f, 70.0f, 20.0f, 12.0f, 0.01f, 0.0f, -99999.992188f, 70.0f, 50.0f, 55.0f, 52.5f, 54.5f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL08',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 6.5f, -17.5f, 20.0f, -5.0f, 5.0f, 420.0f, 125.0f, 350.0f, 380.0f, 280.0f, 2.0f, -70.0f, 70.0f, -5.0f, 0.0f, 0.08f, 0.0f, -99999.992188f, 60.0f, 5.0f, 55.0f, 52.5f, 54.5f, 52.0f, 56.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL07',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 7.5f, -17.5f, 20.0f, -22.5f, 5.0f, 450.0f, 125.0f, 750.0f, 480.0f, 420.0f, 0.0f, -70.0f, 70.0f, 25.0f, 10.0f, 0.04f, 0.0f, -99999.992188f, 75.0f, 20.0f, 55.0f, 52.5f, 54.5f, 48.0f, 62.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LP10',
|
||||
0x2,
|
||||
{-10000.0f, -10000.0f, -99999.992188f, 0.05f, 0.2f, -30.0f, 12.5f, 20.0f, -30.0f, 0.0f, 320.0f, 200.0f, 750.0f, 200.0f, 200.0f, 0.0f, -40.0f, 40.0f, -10.0f, -20.0f, 0.1f, 0.05f, -99999.992188f, 0.0f, 0.0f, 52.5f, 52.5f, 52.5f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'SN15',
|
||||
0x4,
|
||||
{20.0f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 70.0f, 0.75f, 0.04f, -99999.992188f, -99999.992188f, 90.0f, 50.0f, 0.2f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002 | dCamParam_UNK010 | dCamParam_UNK080,
|
||||
},
|
||||
{
|
||||
'BW07',
|
||||
0x8,
|
||||
{120.0f, 80.0f, -99999.992188f, 0.2f, 0.15f, 40.0f, -99999.992188f, -99999.992188f, -60.0f, -99999.992188f, 800.0f, -99999.992188f, -99999.992188f, -500.0f, 40.0f, 40.0f, 30.0f, 50.0f, -10.0f, -99999.992188f, 1.0f, 0.1f, -99999.992188f, -99999.992188f, -99999.992188f, 50.0f, -99999.992188f, -99999.992188f, 20.0f, -5.0f},
|
||||
dCamParam_UNK001,
|
||||
},
|
||||
{
|
||||
'FN18',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -25.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 900.0f, 800.0f, -99999.992188f, 0.66f, 0.05f, 78.0f, 75.0f, 80.0f, 2.0f, 0.05f, 0.01f, 0.01f, -99999.992188f, 0.8f, 0.1f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'JN05',
|
||||
0xD,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 900.0f, 50.0f, -99999.992188f, -99999.992188f, 1000.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 0.75f, 0.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'XN06',
|
||||
0x6,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 0.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK040,
|
||||
},
|
||||
{
|
||||
'LB01',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.2f, 0.4f, -12.5f, -17.5f, 20.0f, -17.5f, -7.5f, 400.0f, 125.0f, 750.0f, 460.0f, 400.0f, 0.0f, -40.0f, 40.0f, 10.0f, -5.0f, 0.01f, 0.0f, -99999.992188f, 170.0f, 160.0f, 55.0f, 52.5f, 54.5f, 48.0f, 62.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LA01',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.3f, 0.1f, -7.5f, -17.5f, 20.0f, -22.5f, -2.5f, 400.0f, 125.0f, 750.0f, 480.0f, 420.0f, 30.0f, -40.0f, 40.0f, 30.0f, 20.0f, 0.06f, 0.0f, -99999.992188f, 60.0f, 40.0f, 55.0f, 52.5f, 54.5f, 55.0f, 65.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'BP07',
|
||||
0x8,
|
||||
{120.0f, 200.0f, -99999.992188f, 0.75f, 0.15f, 40.0f, -99999.992188f, -99999.992188f, -60.0f, -99999.992188f, 900.0f, -99999.992188f, -99999.992188f, -500.0f, 40.0f, 10.0f, -5.0f, 30.0f, -10.0f, -99999.992188f, 1.0f, 0.1f, -99999.992188f, -99999.992188f, -99999.992188f, 60.0f, -99999.992188f, -99999.992188f, 20.0f, -5.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LW02',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.3f, 0.1f, -20.0f, -20.0f, 0.0f, -20.0f, -60.0f, 250.0f, 125.0f, 450.0f, 650.0f, 650.0f, 0.0f, -20.0f, 40.0f, -10.0f, 45.0f, 0.2f, 0.05f, -99999.992188f, 0.0f, 0.0f, 60.0f, 60.0f, 60.0f, 60.0f, 60.0f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'HP16',
|
||||
0x9,
|
||||
{20.0f, 10.0f, -99999.992188f, 0.75f, 0.25f, -70.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 200.0f, 200.0f, -99999.992188f, 1.0f, 1.0f, 60.0f, 60.0f, -99999.992188f, 0.05f, 1.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.25f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'HN16',
|
||||
0x9,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.5f, 0.25f, -60.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 350.0f, 320.0f, -99999.992188f, 0.3f, 0.3f, 25.0f, 25.0f, -99999.992188f, 0.5f, 0.25f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 62.5f, -99999.992188f, -99999.992188f, -99999.992188f, 0.25f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'BN07',
|
||||
0x8,
|
||||
{90.0f, 150.0f, -99999.992188f, 0.65f, 0.15f, 10.0f, -99999.992188f, -99999.992188f, 5.0f, -99999.992188f, 800.0f, -99999.992188f, -99999.992188f, -430.0f, 40.0f, 5.0f, -10.0f, 30.0f, -5.0f, -99999.992188f, 0.2f, 0.1f, -99999.992188f, -99999.992188f, -99999.992188f, 70.0f, -99999.992188f, -99999.992188f, 20.0f, -5.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LP05',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.05f, 0.2f, 0.0f, 12.5f, 20.0f, 0.0f, 0.0f, 220.0f, 125.0f, 625.0f, 220.0f, 220.0f, 0.0f, -40.0f, 30.0f, -10.0f, 10.0f, 0.1f, 0.05f, -99999.992188f, 0.0f, 0.0f, 55.0f, 55.0f, 55.0f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LP06',
|
||||
0x2,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 32.0f, 32.0f, 32.0f, 32.0f, 32.0f, 1250.0f, 1000.0f, 1100.0f, 1250.0f, 1250.0f, 0.0f, -10.0f, 10.0f, 2.0f, 0.5f, 0.01f, 0.1f, -99999.992188f, 0.1f, 0.1f, 55.0f, 52.5f, 54.5f, 60.0f, 70.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'HN18',
|
||||
0xF,
|
||||
{80.0f, 0.0f, -99999.992188f, 0.8f, 0.15f, 150.0f, -99999.992188f, 500.0f, -99999.992188f, -99999.992188f, 520.0f, 80.0f, -99999.992188f, 0.25f, 0.7f, 50.0f, 5.0f, -99999.992188f, 0.75f, 0.15f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 90.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.25f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'FN25',
|
||||
0x1,
|
||||
{0.5f, 0.0f, -99999.992188f, 0.75f, 0.25f, 80.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 850.0f, 500.0f, -99999.992188f, 0.66f, 0.05f, 30.0f, 0.0f, 60.0f, 2.0f, 0.05f, 0.1f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001,
|
||||
},
|
||||
{
|
||||
'BP08',
|
||||
0x8,
|
||||
{90.0f, 250.0f, -99999.992188f, 0.75f, 0.15f, 120.0f, -99999.992188f, -99999.992188f, 1.0f, -99999.992188f, 1000.0f, -99999.992188f, -99999.992188f, 0.0f, 40.0f, 20.0f, -5.0f, 30.0f, 0.0f, -99999.992188f, 1.0f, 0.1f, -99999.992188f, -99999.992188f, -99999.992188f, 60.0f, -99999.992188f, -99999.992188f, 0.0f, -5.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'BN08',
|
||||
0x8,
|
||||
{90.0f, 250.0f, -99999.992188f, 0.75f, 0.15f, 120.0f, -99999.992188f, -99999.992188f, 10.0f, -99999.992188f, 1000.0f, -99999.992188f, -99999.992188f, 0.0f, 40.0f, 20.0f, -5.0f, 30.0f, 0.0f, -99999.992188f, 0.2f, 0.1f, -99999.992188f, -99999.992188f, -99999.992188f, 60.0f, -99999.992188f, -99999.992188f, 0.0f, -5.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'FN29',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 550.0f, 450.0f, -99999.992188f, 0.66f, 0.05f, 40.0f, -50.0f, 70.0f, 2.0f, 0.05f, 0.16f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'SX01',
|
||||
0x4,
|
||||
{20.0f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -2.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 40.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 70.0f, 0.45f, 0.04f, -99999.992188f, -99999.992188f, 90.0f, 50.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002 | dCamParam_UNK100,
|
||||
},
|
||||
{
|
||||
'SY01',
|
||||
0x4,
|
||||
{0.0f, 30.0f, -99999.992188f, -99999.992188f, -99999.992188f, 30.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 120.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 70.0f, 0.6f, 0.04f, -99999.992188f, -99999.992188f, 90.0f, 60.0f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'SX02',
|
||||
0x4,
|
||||
{20.0f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -2.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 40.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 60.0f, 0.45f, 0.04f, -99999.992188f, -99999.992188f, 90.0f, 60.0f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002 | dCamParam_UNK100,
|
||||
},
|
||||
{
|
||||
'MM06',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.8f, 0.8f, 80.0f, 80.0f, 20.0f, 0.0f, 1.92f, 250.0f, 200.0f, 800.0f, 0.0f, 16.0f, 0.0f, -55.0f, 70.0f, 0.0f, 2.0f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 90.0f, 80.0f, 90.0f, 0.0f, 0.48f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM05',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, -20.0f, -20.0f, 20.0f, 0.0f, 1.92f, 250.0f, 150.0f, 320.0f, 0.0f, 15.0f, 0.0f, -40.0f, 40.0f, 0.0f, 2.0f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 60.0f, 70.0f, 0.0f, 0.48f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM09',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 40.0f, 50.0f, 40.0f, 0.0f, 0.2f, 320.0f, 150.0f, 800.0f, 0.0f, 30.0f, 0.0f, -30.0f, 10.0f, 0.0f, 1.8f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 60.0f, 65.0f, 60.0f, 0.0f, 0.2f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM04',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, -20.0f, -20.0f, -40.0f, 0.0f, 1.0f, 320.0f, 150.0f, 950.0f, 0.0f, 29.0f, 0.0f, 0.0f, 5.0f, 0.0f, 0.2f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 50.0f, 60.0f, 0.0f, 0.48f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'LN17',
|
||||
0xC,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.6f, 0.2f, 10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 145.0f, 145.0f, 145.0f, 0.1f, 0.25f, 0.0f, -99999.992188f, -99999.992188f, 0.25f, 0.25f, -99999.992188f, -99999.992188f, -99999.992188f, 0.1f, 0.8f, 50.0f, -99999.992188f, -99999.992188f, 0.5f, 0.5f},
|
||||
dCamParam_UNK002 | dCamParam_UNK040,
|
||||
},
|
||||
{
|
||||
'QN07',
|
||||
0xE,
|
||||
{-120.0f, 0.0f, -99999.992188f, 0.75f, 0.15f, 50.0f, -99999.992188f, -99999.992188f, 80.0f, -99999.992188f, 800.0f, -99999.992188f, -99999.992188f, 200.0f, 40.0f, 0.0f, -5.0f, 60.0f, 20.0f, -99999.992188f, 0.1f, 0.1f, -99999.992188f, -99999.992188f, -99999.992188f, 60.0f, -99999.992188f, -99999.992188f, -15.0f, -5.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'LE01',
|
||||
0x1,
|
||||
{0.0f, 75.0f, -99999.992188f, 0.15f, 0.15f, -30.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 300.0f, 250.0f, -99999.992188f, 0.66f, 0.05f, 5.0f, -40.0f, 60.0f, 2.0f, 0.15f, 0.3f, 0.05f, -99999.992188f, 0.8f, 0.15f, 40.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.15f},
|
||||
dCamParam_UNK001 | dCamParam_UNK200 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'LN01',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.25f, 0.2f, -15.0f, -17.5f, 20.0f, -22.5f, -10.0f, 450.0f, 125.0f, 750.0f, 480.0f, 420.0f, 7.5f, -60.0f, 60.0f, 10.0f, 5.0f, 0.08f, 0.0f, -99999.992188f, 40.0f, 5.0f, 42.5f, 52.5f, 54.5f, 40.0f, 45.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LW01',
|
||||
0x1,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.15f, 0.15f, -25.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 450.0f, 400.0f, -99999.992188f, 0.5f, 0.15f, 20.0f, -40.0f, 60.0f, 2.0f, 0.15f, 0.3f, 0.05f, -99999.992188f, 0.8f, 0.15f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.15f},
|
||||
dCamParam_UNK001 | dCamParam_UNK200 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'GN01',
|
||||
0x12,
|
||||
{5.0f, 0.0f, -99999.992188f, 0.5f, 0.25f, 30.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, 400.0f, 400.0f, -99999.992188f, 0.66f, 0.05f, 10.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.0f, -99999.992188f, -99999.992188f, 1.0f, 0.18f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'MM01',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 0.0f, 0.0f, 30.0f, 0.0f, 1.0f, 320.0f, 240.0f, 700.0f, 0.0f, 20.0f, 0.0f, 0.0f, 30.0f, 0.0f, 0.6f, 0.33f, 0.66f, -99999.992188f, 0.0f, 8.0f, 55.0f, 50.0f, 60.0f, 0.0f, 0.4f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
#if VERSION == VERSION_JPN
|
||||
{
|
||||
'MM03',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 10.0f, 0.0f, 40.0f, 0.0f, 2.0f, 320.0f, 250.0f, 700.0f, 0.0f, 27.0f, 0.0f, -5.0f, 30.0f, 0.0f, 0.6f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 50.0f, 62.0f, 0.0f, 0.45f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
#endif
|
||||
{
|
||||
'MM02',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 0.0f, 10.0f, 35.0f, 0.0f, 1.92f, 320.0f, 250.0f, 950.0f, 0.0f, 27.0f, 0.0f, -5.0f, 30.0f, 0.0f, 0.9f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 52.5f, 60.0f, 0.0f, 0.4f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM10',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 15.0f, 10.0f, 20.0f, 0.0f, 0.45f, 320.0f, 300.0f, 2000.0f, 0.0f, 45.0f, 10.0f, 5.0f, 35.0f, 0.0f, 0.42f, 0.33f, 0.5f, -99999.992188f, 0.0f, 4.0f, 55.0f, 52.0f, 62.0f, 0.0f, 0.48f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM08',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, -20.0f, 50.0f, 50.0f, 0.0f, 0.0f, 400.0f, 350.0f, 800.0f, 0.0f, 34.0f, 0.0f, -20.0f, 50.0f, 0.0f, 3.6f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 55.0f, 55.0f, 0.0f, 0.0f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM83',
|
||||
0xA,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 0.0f, 20.0f, 300.0f, 0.0f, 5.0f, 320.0f, 350.0f, 1500.0f, 0.0f, 40.0f, 0.0f, 0.0f, 15.0f, 0.0f, 1.0f, 0.33f, 0.2f, -99999.992188f, 0.0f, 8.0f, 55.0f, 65.0f, 55.0f, 0.0f, 1.0f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'FP01',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 480.0f, 280.0f, -99999.992188f, 0.66f, 0.05f, 10.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.2f, -99999.992188f, -99999.992188f, 1.0f, 0.18f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'ZZ00',
|
||||
0x11,
|
||||
{10.0f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, 200.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 320.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 3.0f, -99999.992188f, -99999.992188f, 0.3f, -99999.992188f, 0.33f, -99999.992188f, -99999.992188f, 1.0f, -99999.992188f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
0,
|
||||
},
|
||||
{
|
||||
'PN13',
|
||||
0x5,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.15f, 0.15f, -20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1000.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 0.75f, 10.0f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002 | dCamParam_UNK040,
|
||||
},
|
||||
{
|
||||
'FN82',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 30.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1200.0f, 350.0f, -99999.992188f, 0.66f, 0.05f, 15.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.1f, -99999.992188f, -99999.992188f, 1.0f, 0.01f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'IN01',
|
||||
0x7,
|
||||
{50.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 20.0f, 20.0f, -99999.992188f, -99999.992188f, -99999.992188f, 680.0f, 250.0f, -99999.992188f, 0.66f, 0.05f, 12.0f, -40.0f, 60.0f, -99999.992188f, 0.05f, 0.4f, 0.05f, -99999.992188f, 45.0f, 45.0f, 62.0f, -99999.992188f, 2.5f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'IN02',
|
||||
0x7,
|
||||
{50.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 20.0f, 20.0f, -99999.992188f, -99999.992188f, -99999.992188f, 750.0f, 450.0f, -99999.992188f, 0.66f, 0.05f, 35.0f, -40.0f, 60.0f, -99999.992188f, 0.05f, 0.4f, 0.05f, -99999.992188f, 10.0f, 10.0f, 65.0f, -99999.992188f, 2.0f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'MM82',
|
||||
0xA,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 0.0f, 20.0f, 100.0f, 0.0f, 45.0f, 320.0f, 200.0f, 1500.0f, 30.0f, 50.0f, 30.0f, -10.0f, 30.0f, 0.0f, 1.5f, 0.33f, 0.2f, -99999.992188f, 0.0f, 6.0f, 55.0f, 55.0f, 55.0f, 0.0f, 1.0f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'LL11',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 7.5f, -17.5f, 20.0f, 20.0f, 40.0f, 1000.0f, 300.0f, 2000.0f, 800.0f, 1500.0f, 0.0f, -10.0f, 40.0f, 30.0f, 40.0f, 0.04f, 0.02f, -99999.992188f, 80.0f, 30.0f, 60.0f, 50.0f, 80.0f, 52.0f, 70.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL01',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 7.5f, -17.5f, 20.0f, -22.5f, 5.0f, 450.0f, 125.0f, 750.0f, 480.0f, 420.0f, 0.0f, -60.0f, 60.0f, 20.0f, -5.0f, 0.04f, 0.02f, -99999.992188f, 75.0f, 20.0f, 55.0f, 52.5f, 54.5f, 48.0f, 62.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL02',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 6.5f, -17.5f, 20.0f, -22.5f, -2.5f, 420.0f, 125.0f, 350.0f, 450.0f, 400.0f, 2.0f, -60.0f, 60.0f, 15.0f, 0.0f, 0.05f, 0.02f, -99999.992188f, 80.0f, 15.0f, 55.0f, 52.5f, 54.5f, 45.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL03',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 0.0f, -17.5f, 20.0f, -17.5f, 0.0f, 375.0f, 125.0f, 750.0f, 425.0f, 350.0f, 15.0f, -60.0f, 60.0f, 20.0f, 12.0f, 0.01f, 0.01f, -99999.992188f, 70.0f, 50.0f, 55.0f, 52.5f, 54.5f, 50.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL04',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.1f, 0.4f, -10.0f, 15.0f, 20.0f, -12.5f, -12.5f, 350.0f, 200.0f, 400.0f, 300.0f, 400.0f, 10.0f, -10.0f, 20.0f, 0.0f, 0.0f, 0.06f, 0.02f, -99999.992188f, 80.0f, 10.0f, 47.0f, 47.0f, 47.0f, 47.0f, 47.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL05',
|
||||
0x2,
|
||||
{-10000.0f, -10000.0f, -99999.992188f, 0.2f, 0.4f, 6.5f, -17.5f, 20.0f, -40.0f, -50.0f, 280.0f, 125.0f, 350.0f, 300.0f, 100.0f, 2.0f, -40.0f, 40.0f, -15.0f, -5.0f, 0.08f, 0.08f, -99999.992188f, 10.0f, 5.0f, 55.0f, 52.5f, 54.5f, 65.0f, 70.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL10',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.2f, 0.4f, 6.5f, -17.5f, 20.0f, -40.0f, 0.0f, 1000.0f, 750.0f, 1100.0f, 700.0f, 350.0f, 2.0f, -40.0f, 40.0f, -8.0f, 0.0f, 0.08f, 0.05f, -99999.992188f, 40.0f, 10.0f, 55.0f, 52.5f, 54.5f, 60.0f, 70.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL09',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 60.0f, -20.0f, 120.0f, 0.0f, -10.0f, 420.0f, 300.0f, 350.0f, 650.0f, 800.0f, 2.0f, -60.0f, 60.0f, 15.0f, 5.0f, 0.04f, 0.01f, -99999.992188f, 80.0f, 15.0f, 55.0f, 52.5f, 54.5f, 45.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL12',
|
||||
0x2,
|
||||
{-10000.0f, -10000.0f, -99999.992188f, 0.2f, 0.4f, 500.0f, -7.5f, 500.0f, 300.0f, 300.0f, 550.0f, 500.0f, 600.0f, 400.0f, 500.0f, 2.0f, -40.0f, 40.0f, -15.0f, -15.0f, 0.08f, 0.08f, -99999.992188f, 10.0f, 5.0f, 55.0f, 52.5f, 54.5f, 65.0f, 70.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL13',
|
||||
0x2,
|
||||
{-10000.0f, -10000.0f, -99999.992188f, 0.4f, 0.2f, 7.5f, -17.5f, 20.0f, 0.0f, 22.5f, 550.0f, 125.0f, 750.0f, 530.0f, 580.0f, -7.5f, -60.0f, 60.0f, 5.0f, -15.0f, 0.04f, 0.04f, -99999.992188f, 60.0f, 20.0f, 55.0f, 52.5f, 54.5f, 65.0f, 70.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL14',
|
||||
0x2,
|
||||
{-10000.0f, -10000.0f, -99999.992188f, 0.4f, 0.2f, 0.0f, -17.5f, 20.0f, 0.0f, 60.0f, 600.0f, 125.0f, 350.0f, 500.0f, 700.0f, 0.0f, -60.0f, 60.0f, 0.0f, -10.0f, 0.05f, 0.05f, -99999.992188f, 30.0f, 15.0f, 55.0f, 52.5f, 54.5f, 53.0f, 57.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL15',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 10.0f, -17.5f, 20.0f, -22.5f, -2.5f, 420.0f, 125.0f, 800.0f, 599.0f, 799.0f, 30.0f, 0.0f, 60.0f, 20.0f, 40.0f, 0.05f, 0.05f, -99999.992188f, 80.0f, 15.0f, 55.0f, 52.5f, 54.5f, 45.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL16',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.2f, 0.4f, 30.0f, 0.0f, 50.0f, 30.0f, 10.0f, 750.0f, 650.0f, 1000.0f, 600.0f, 350.0f, -10.0f, -40.0f, 40.0f, -8.0f, 0.0f, 0.08f, 0.08f, -99999.992188f, 40.0f, 10.0f, 55.0f, 52.5f, 54.5f, 60.0f, 70.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'LL82',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.75f, 0.25f, 0.0f, 0.0f, 0.0f, -15.0f, 0.0f, 0.0f, 0.0f, 0.0f, 600.0f, 400.0f, 0.0f, 0.0f, 0.0f, -10.0f, 30.0f, 0.1f, 0.0f, -99999.992188f, 60.0f, 0.0f, 0.0f, 0.0f, 0.0f, 60.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'FN01',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 480.0f, 280.0f, -99999.992188f, 0.66f, 0.08f, 10.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.2f, -99999.992188f, -99999.992188f, 1.0f, 0.18f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN02',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 360.0f, 240.0f, -99999.992188f, 0.66f, 0.1f, 10.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.3f, 0.05f, -99999.992188f, 0.8f, 0.1f, 58.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN03',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -5.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 350.0f, 260.0f, -99999.992188f, 0.66f, 0.08f, 14.0f, 10.0f, 60.0f, 2.0f, 0.05f, 0.3f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN04',
|
||||
0x1,
|
||||
{1.0f, 0.1f, -99999.992188f, 0.75f, 0.25f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 480.0f, 350.0f, -99999.992188f, 0.66f, 0.1f, 18.0f, 15.0f, 25.0f, 2.0f, 0.05f, 0.39f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN06',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -25.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 230.0f, 240.0f, -99999.992188f, 0.2f, 0.05f, 5.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.01f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN09',
|
||||
0x1,
|
||||
{0.5f, 0.0f, -99999.992188f, 0.75f, 0.25f, -10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 460.0f, 210.0f, -99999.992188f, 0.66f, 0.09f, 15.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.08f, -99999.992188f, -99999.992188f, 2.0f, 0.3f, 52.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN07',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 430.0f, 280.0f, -99999.992188f, 0.66f, 0.1f, 13.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.35f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN10',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 15.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 420.0f, 250.0f, -99999.992188f, 0.66f, 0.08f, 5.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.25f, -99999.992188f, -99999.992188f, 1.0f, 0.1f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN14',
|
||||
0x1,
|
||||
{0.5f, 0.0f, -99999.992188f, 0.75f, 0.25f, 10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 450.0f, 300.0f, -99999.992188f, 0.66f, 0.12f, 15.0f, 0.0f, 60.0f, 2.0f, 0.05f, 0.1f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001,
|
||||
},
|
||||
{
|
||||
'FN15',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 32.0f, -10000.0f, -10000.0f, -10000.0f, -10000.0f, 320.0f, 200.0f, -10000.0f, 0.66f, 0.08f, -23.0f, -20.0f, 10.0f, 2.0f, 0.5f, 0.01f, 0.1f, -99999.992188f, 0.1f, 0.1f, 55.0f, -10000.0f, -10000.0f, -10000.0f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN17',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -5.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 380.0f, 200.0f, -99999.992188f, 0.66f, 0.1f, 10.0f, -40.0f, 60.0f, 2.0f, 0.08f, 0.18f, 0.05f, -99999.992188f, 2.0f, 0.1f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN20',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 330.0f, 280.0f, -99999.992188f, 0.66f, 0.15f, 12.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.2f, -99999.992188f, -99999.992188f, 1.0f, 0.1f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK200 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN21',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.8f, 0.25f, 8.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 340.0f, 220.0f, -99999.992188f, 0.66f, 0.08f, 6.0f, -40.0f, 70.0f, 2.0f, 0.05f, 0.16f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 64.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN22',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -25.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1500.0f, 1200.0f, -99999.992188f, 0.66f, 0.08f, 35.0f, 30.0f, 40.0f, 2.0f, 0.05f, 0.1f, -10000.0f, -99999.992188f, 2.0f, 0.05f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN23',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 32.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1000.0f, 800.0f, -99999.992188f, 0.66f, 0.1f, 20.0f, 15.0f, 25.0f, 2.0f, 0.05f, 0.1f, -10000.0f, -99999.992188f, 2.0f, 0.05f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN24',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 600.0f, 350.0f, -99999.992188f, 0.66f, 0.09f, 25.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.33f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN26',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -25.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 800.0f, 800.0f, -99999.992188f, 0.66f, 0.1f, 35.0f, 30.0f, 40.0f, 2.0f, 0.05f, 0.1f, -10000.0f, -99999.992188f, 2.0f, 0.05f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN27',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 32.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1250.0f, 1000.0f, -99999.992188f, 0.66f, 0.09f, 0.0f, -10.0f, 10.0f, 2.0f, 0.5f, 0.01f, 0.1f, -99999.992188f, 0.1f, 0.1f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN28',
|
||||
0x1,
|
||||
{0.5f, 0.0f, -99999.992188f, 0.75f, 0.25f, 5.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 330.0f, 250.0f, -99999.992188f, 0.66f, 0.09f, 8.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.06f, -99999.992188f, -99999.992188f, 2.0f, 0.3f, 52.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN30',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 300.0f, -10000.0f, -10000.0f, -10000.0f, -10000.0f, 1000.0f, 900.0f, -10000.0f, 0.66f, 0.08f, -15.0f, -15.0f, 10.0f, 2.0f, 0.5f, 0.01f, 0.1f, -99999.992188f, 0.1f, 0.1f, 55.0f, -10000.0f, -10000.0f, -10000.0f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN31',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 30.0f, -10000.0f, -10000.0f, -10000.0f, -10000.0f, 420.0f, 250.0f, -10000.0f, 0.66f, 0.08f, 0.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.25f, -10000.0f, -99999.992188f, 1.0f, 0.1f, 55.0f, -10000.0f, -10000.0f, -10000.0f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN32',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 30.0f, -10000.0f, -10000.0f, -10000.0f, -10000.0f, 360.0f, 220.0f, -10000.0f, 0.66f, 0.08f, -5.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.25f, 0.05f, -99999.992188f, 0.8f, 0.1f, 58.0f, -10000.0f, -10000.0f, -10000.0f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN33',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1300.0f, 1000.0f, 1350.0f, 0.66f, 0.05f, 30.0f, 0.0f, 60.0f, 2.0f, 0.09f, 0.3f, 0.05f, -99999.992188f, 0.8f, 0.1f, 58.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN34',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 30.0f, -10000.0f, -10000.0f, -10000.0f, -10000.0f, 1000.0f, 900.0f, -10000.0f, 0.66f, 0.08f, 45.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.25f, 0.05f, -99999.992188f, 0.8f, 0.1f, 58.0f, -10000.0f, -10000.0f, -10000.0f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN35',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1250.0f, 1000.0f, -99999.992188f, 0.66f, 0.09f, 0.0f, -15.0f, 10.0f, 0.0f, 0.5f, 0.01f, 0.1f, -99999.992188f, 0.1f, 0.1f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'LL17',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.4f, 0.2f, 7.5f, -17.5f, 20.0f, 20.0f, 40.0f, 1000.0f, 300.0f, 2000.0f, 800.0f, 1600.0f, 0.0f, -10.0f, 40.0f, 30.0f, 40.0f, 0.04f, 0.03f, -99999.992188f, 80.0f, 30.0f, 60.0f, 50.0f, 80.0f, 52.0f, 45.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'FN37',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 15.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 1050.0f, 950.0f, -99999.992188f, 0.66f, 0.05f, 20.0f, 15.0f, 45.0f, 2.0f, 0.05f, 0.12f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK400,
|
||||
},
|
||||
#if VERSION == VERSION_JPN
|
||||
{
|
||||
'FN38',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 40.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 800.0f, 600.0f, -99999.992188f, 0.66f, 0.15f, 15.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.3f, 0.05f, -99999.992188f, 0.8f, 0.1f, 62.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
#endif
|
||||
{
|
||||
'BE08',
|
||||
0x8,
|
||||
{100.0f, 0.0f, -99999.992188f, 0.75f, 0.15f, 80.0f, -99999.992188f, -99999.992188f, 0.0f, -99999.992188f, 500.0f, -99999.992188f, -99999.992188f, 0.0f, 40.0f, 20.0f, -80.0f, 80.0f, 0.0f, -99999.992188f, 0.1f, 0.1f, -99999.992188f, -99999.992188f, -99999.992188f, 78.0f, -99999.992188f, -99999.992188f, 0.0f, -5.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'BE07',
|
||||
0x8,
|
||||
{100.0f, 0.0f, -99999.992188f, 0.75f, 0.15f, 240.0f, -99999.992188f, -99999.992188f, 0.0f, -99999.992188f, 750.0f, -99999.992188f, -99999.992188f, 0.0f, 40.0f, 15.0f, -80.0f, 80.0f, 0.0f, -99999.992188f, 0.1f, 0.1f, -99999.992188f, -99999.992188f, -99999.992188f, 66.0f, -99999.992188f, -99999.992188f, 0.0f, -5.0f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'TT04',
|
||||
0x3,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.6f, 0.0f, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 290.0f, 80.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.0f, 15.0f, 30.0f, 0.0f, 0.0f, -99999.992188f, 0.0f, 30.0f, 42.0f, 45.0f, 0.0f, 0.0f, 0.0f},
|
||||
dCamParam_UNK001,
|
||||
},
|
||||
{
|
||||
'FP38',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 40.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 800.0f, 600.0f, -99999.992188f, 0.66f, 0.15f, 45.0f, -40.0f, 80.0f, 2.0f, 0.05f, 0.3f, 0.05f, -99999.992188f, 0.8f, 0.1f, 62.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN39',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, -20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 380.0f, 300.0f, -99999.992188f, 0.66f, 0.05f, 0.0f, -20.0f, 20.0f, 2.0f, 0.05f, 0.12f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'MM16',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 10.0f, 20.0f, 40.0f, 0.0f, 1.0f, 320.0f, 250.0f, 500.0f, 0.0f, 28.0f, 20.0f, 20.0f, 30.0f, 0.0f, 0.3f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 50.0f, 62.0f, 0.0f, 0.45f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM14',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.55f, 0.15f, 10.0f, 5.0f, 20.0f, 0.0f, 0.5f, 320.0f, 180.0f, 700.0f, 0.0f, 30.0f, 10.0f, 5.0f, 40.0f, 0.0f, 1.7f, 0.33f, 0.5f, -99999.992188f, 0.0f, 3.0f, 55.0f, 50.0f, 60.0f, 0.0f, 0.42f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM15',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.55f, 0.15f, 10.0f, 5.0f, 20.0f, 0.0f, 0.5f, 320.0f, 200.0f, 1000.0f, 0.0f, 40.0f, 10.0f, 5.0f, 40.0f, 0.0f, 1.7f, 0.33f, 0.66f, -99999.992188f, 0.0f, 3.0f, 55.0f, 50.0f, 60.0f, 0.0f, 0.42f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM07',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.55f, 0.15f, 90.0f, 80.0f, 180.0f, 0.0f, 4.0f, 750.0f, 500.0f, 1000.0f, 0.0f, 32.0f, 0.0f, -5.0f, 23.0f, 0.0f, 1.65f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 60.0f, 55.0f, 70.0f, 0.0f, 1.5f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'FN81',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 100.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 600.0f, 600.0f, -99999.992188f, 0.9f, 0.01f, 0.0f, 0.0f, 60.0f, 2.0f, 0.05f, 0.0f, -99999.992188f, -99999.992188f, 0.8f, 0.1f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN40',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 70.0f, -10000.0f, -10000.0f, -10000.0f, -10000.0f, 800.0f, 500.0f, -10000.0f, 0.66f, 0.08f, -5.0f, -20.0f, 20.0f, 2.0f, 0.5f, 0.01f, 0.1f, -99999.992188f, 0.1f, 0.1f, 58.0f, -10000.0f, -10000.0f, -10000.0f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN41',
|
||||
0x1,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 12.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 350.0f, 100.0f, -99999.992188f, 0.66f, 0.09f, 15.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.1f, -99999.992188f, -99999.992188f, 2.0f, 0.3f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN19',
|
||||
0x1,
|
||||
{1.0f, 0.1f, -99999.992188f, 0.75f, 0.25f, -25.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 480.0f, 250.0f, -99999.992188f, 0.66f, 0.12f, -2.0f, -15.0f, 25.0f, 2.0f, 0.05f, 0.39f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'LL81',
|
||||
0x2,
|
||||
{-99999.992188f, -99999.992188f, -99999.992188f, 0.75f, 0.25f, 0.0f, 0.0f, 0.0f, 50.0f, 200.0f, 0.0f, 0.0f, 0.0f, 600.0f, 600.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, -99999.992188f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 60.0f, 60.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'DD01',
|
||||
0x10,
|
||||
{60.0f, 0.0f, -99999.992188f, 0.03f, 0.03f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 550.0f, 450.0f, -99999.992188f, -99999.992188f, -99999.992188f, 5.0f, -99999.992188f, -99999.992188f, 0.2f, -99999.992188f, 0.15f, -99999.992188f, -99999.992188f, 0.33f, -99999.992188f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM19',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 0.0f, 10.0f, 35.0f, 0.0f, 1.88f, 320.0f, 250.0f, 600.0f, 0.0f, 20.0f, 0.0f, -5.0f, 70.0f, 0.0f, 2.8f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 52.5f, 60.0f, 0.0f, 0.4f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'DD02',
|
||||
0x10,
|
||||
{80.0f, 0.0f, -99999.992188f, 0.03f, 0.03f, 50.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 550.0f, 450.0f, -99999.992188f, -99999.992188f, -99999.992188f, 5.0f, -99999.992188f, -99999.992188f, 0.33f, -99999.992188f, 0.15f, -99999.992188f, -99999.992188f, 0.5f, -99999.992188f, 55.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'FN42',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 25.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 380.0f, 300.0f, -99999.992188f, 0.66f, 0.05f, 15.0f, -20.0f, 80.0f, 2.0f, 0.05f, 0.12f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'IN03',
|
||||
0x7,
|
||||
{-180.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 0.0f, 10.0f, -99999.992188f, -99999.992188f, -99999.992188f, 880.0f, 500.0f, -99999.992188f, 0.66f, 0.05f, 50.0f, -40.0f, 60.0f, -99999.992188f, 0.05f, 0.75f, 0.05f, -99999.992188f, 115.0f, 115.0f, 75.0f, -99999.992188f, 0.5f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN43',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 200.0f, -10000.0f, -10000.0f, -10000.0f, -500.0f, 900.0f, 800.0f, -10000.0f, 0.66f, 0.08f, -3.0f, -20.0f, 20.0f, 2.0f, 0.5f, 0.01f, 0.1f, -99999.992188f, 0.1f, 0.1f, 58.0f, -10000.0f, -10000.0f, -10000.0f, 0.05f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN11',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 5.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 410.0f, 300.0f, -99999.992188f, 0.66f, 0.08f, 22.0f, 15.0f, 30.0f, 2.0f, 0.05f, 0.07f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'MM21',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 0.0f, 20.0f, 35.0f, 0.0f, 1.2f, 320.0f, 250.0f, 750.0f, 0.0f, 27.0f, 0.0f, -30.0f, 30.0f, 0.0f, 2.2f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 52.5f, 60.0f, 0.0f, 0.4f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM20',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 10.0f, 0.0f, 30.0f, 0.0f, 2.0f, 320.0f, 250.0f, 500.0f, 0.0f, 26.0f, 0.0f, -5.0f, 20.0f, 0.0f, 1.2f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 50.0f, 64.0f, 0.0f, 0.9f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'FN05',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 400.0f, 300.0f, -99999.992188f, 0.66f, 0.05f, -5.0f, 0.0f, 20.0f, 2.0f, 0.05f, 0.12f, -99999.992188f, -99999.992188f, 1.0f, 0.2f, 62.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK400,
|
||||
},
|
||||
{
|
||||
'FN36',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.25f, 0.1f, -10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 460.0f, 350.0f, -99999.992188f, 0.66f, 0.12f, 5.0f, -60.0f, 60.0f, 2.0f, 0.05f, 0.5f, -99999.992188f, -99999.992188f, 1.0f, 0.18f, 66.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM81',
|
||||
0xA,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 0.0f, 30.0f, 50.0f, 0.0f, 5.0f, 320.0f, 250.0f, 1950.0f, 0.0f, 55.0f, 0.0f, -15.0f, 90.0f, 0.0f, 3.0f, 0.33f, 0.2f, -99999.992188f, 0.0f, 6.0f, 55.0f, 65.0f, 55.0f, 0.0f, 1.5f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'SS01',
|
||||
0x4,
|
||||
{0.0f, 0.0f, -99999.992188f, -99999.992188f, -99999.992188f, -10.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 20.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 70.0f, 0.45f, 0.04f, -99999.992188f, -99999.992188f, 90.0f, 50.0f, 0.2f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002 | dCamParam_UNK080,
|
||||
},
|
||||
{
|
||||
'LL18',
|
||||
0x2,
|
||||
{-10000.0f, -10000.0f, -99999.992188f, 0.2f, 0.4f, 6.5f, -17.5f, 20.0f, -80.0f, 0.0f, 280.0f, 125.0f, 350.0f, 800.0f, 1200.0f, 2.0f, -40.0f, 40.0f, 20.0f, -15.0f, 0.3f, 0.0f, -99999.992188f, 10.0f, 35.0f, 65.0f, 65.0f, 70.0f, 60.0f, 70.0f},
|
||||
dCamParam_UNK002 | dCamParam_UNK004,
|
||||
},
|
||||
{
|
||||
'DD04',
|
||||
0x10,
|
||||
{80.0f, 0.0f, -99999.992188f, 0.03f, 0.03f, 60.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 450.0f, 400.0f, -99999.992188f, -99999.992188f, -99999.992188f, -4.0f, -99999.992188f, -99999.992188f, 0.33f, -99999.992188f, 0.0f, -99999.992188f, -99999.992188f, -45.0f, -99999.992188f, 45.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM22',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 0.0f, 0.0f, 30.0f, 0.0f, 3.0f, 320.0f, 240.0f, 600.0f, 0.0f, 19.0f, 0.0f, 0.0f, 15.0f, 0.0f, 0.7f, 0.33f, 0.66f, -99999.992188f, 0.0f, 8.0f, 55.0f, 50.0f, 60.0f, 0.0f, 0.5f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM18',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 20.0f, 30.0f, 25.0f, 0.0f, 0.5f, 300.0f, 210.0f, 480.0f, 0.0f, 18.0f, 20.0f, 35.0f, 0.0f, 0.0f, 2.1f, 0.33f, 0.66f, -99999.992188f, 0.0f, 8.0f, 55.0f, 55.0f, 58.0f, 0.0f, 0.45f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM17',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 30.0f, 25.0f, 30.0f, 0.0f, 0.5f, 250.0f, 160.0f, 420.0f, 0.0f, 20.0f, 20.0f, 40.0f, 5.0f, 0.0f, 2.4f, 0.33f, 0.66f, -99999.992188f, 0.0f, 8.0f, 55.0f, 55.0f, 58.0f, 0.0f, 0.45f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
#if VERSION != VERSION_JPN
|
||||
{
|
||||
'MM03',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 10.0f, 0.0f, 30.0f, 0.0f, 5.2f, 320.0f, 260.0f, 660.0f, 0.0f, 25.0f, 0.0f, -10.0f, 30.0f, 0.0f, 2.0f, 0.33f, 0.5f, -99999.992188f, 0.0f, 8.0f, 55.0f, 50.0f, 62.0f, 0.0f, 1.5f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'MM23',
|
||||
0xA,
|
||||
{0.0f, 0.0f, -99999.992188f, 0.7f, 0.25f, 0.0f, 0.0f, 30.0f, 0.0f, 4.0f, 320.0f, 240.0f, 900.0f, 0.0f, 34.0f, 0.0f, -5.0f, 60.0f, 0.0f, 2.6f, 0.33f, 0.66f, -99999.992188f, 0.0f, 8.0f, 55.0f, 50.0f, 60.0f, 0.0f, 0.8f},
|
||||
dCamParam_UNK002,
|
||||
},
|
||||
{
|
||||
'FN38',
|
||||
0x1,
|
||||
{1.0f, 0.0f, -99999.992188f, 0.75f, 0.25f, 30.0f, -99999.992188f, -99999.992188f, -99999.992188f, -99999.992188f, 800.0f, 600.0f, -99999.992188f, 0.66f, 0.15f, 15.0f, -40.0f, 60.0f, 2.0f, 0.05f, 0.3f, 0.05f, -99999.992188f, 0.8f, 0.1f, 62.0f, -99999.992188f, -99999.992188f, -99999.992188f, 0.05f},
|
||||
dCamParam_UNK001 | dCamParam_UNK004 | dCamParam_UNK400,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
const s32 dCamParam_c::style_num = ARRAY_SIZE(styles);
|
||||
|
||||
@@ -5,7 +5,10 @@
|
||||
|
||||
#include "d/d_camera.h"
|
||||
|
||||
dCamera__Type dCamera_c::types[63] = {
|
||||
// Note: Not matching for JPN yet.
|
||||
// All these array values are different because they're indexes into dCamParam_c::styles, which got shifted around.
|
||||
// Need to make an enum for these.
|
||||
const dCamera__Type dCamera_c::types[63] = {
|
||||
{ "Empty", {
|
||||
{ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
|
||||
{ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
|
||||
|
||||
+2155
-266
File diff suppressed because it is too large
Load Diff
+28
-28
@@ -47,7 +47,7 @@ void dCamera_c::getEvXyzData(cXyz*, char*, cXyz) {
|
||||
}
|
||||
|
||||
/* 800B066C-800B074C .text getEvStringData__9dCamera_cFPcPcPc */
|
||||
void dCamera_c::getEvStringData(char*, char*, char*) {
|
||||
bool dCamera_c::getEvStringData(char*, char*, char*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -67,137 +67,137 @@ void dCamera_c::getEvActor(char*, char*) {
|
||||
}
|
||||
|
||||
/* 800B0A20-800B0AF8 .text pauseEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::pauseEvCamera() {
|
||||
bool dCamera_c::pauseEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B0AF8-800B14D4 .text fixedFrameEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::fixedFrameEvCamera() {
|
||||
bool dCamera_c::fixedFrameEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B14D4-800B18E4 .text stokerEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::stokerEvCamera() {
|
||||
bool dCamera_c::stokerEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B18E4-800B2680 .text rollingEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::rollingEvCamera() {
|
||||
bool dCamera_c::rollingEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B2680-800B2B60 .text fixedPositionEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::fixedPositionEvCamera() {
|
||||
bool dCamera_c::fixedPositionEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B2B60-800B3CC8 .text uniformTransEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::uniformTransEvCamera() {
|
||||
bool dCamera_c::uniformTransEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B3E18-800B5110 .text uniformBrakeEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::uniformBrakeEvCamera() {
|
||||
bool dCamera_c::uniformBrakeEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B514C-800B6434 .text uniformAcceleEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::uniformAcceleEvCamera() {
|
||||
bool dCamera_c::uniformAcceleEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B6470-800B7640 .text watchActorEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::watchActorEvCamera() {
|
||||
bool dCamera_c::watchActorEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
/* 800B76C8-800B7E00 .text restorePosEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::restorePosEvCamera() {
|
||||
bool dCamera_c::restorePosEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B7E00-800B7EBC .text talktoEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::talktoEvCamera() {
|
||||
bool dCamera_c::talktoEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B7EBC-800B8108 .text maptoolIdEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::maptoolIdEvCamera() {
|
||||
bool dCamera_c::maptoolIdEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B8108-800B81D0 .text styleEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::styleEvCamera() {
|
||||
bool dCamera_c::styleEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B81D0-800B8AB8 .text gameOverEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::gameOverEvCamera() {
|
||||
bool dCamera_c::gameOverEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B8AB8-800B8C90 .text tactEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::tactEvCamera() {
|
||||
bool dCamera_c::tactEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B8C90-800B99B8 .text windDirectionEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::windDirectionEvCamera() {
|
||||
bool dCamera_c::windDirectionEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B99B8-800B9FB0 .text turnToActorEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::turnToActorEvCamera() {
|
||||
bool dCamera_c::turnToActorEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800B9FB0-800BA688 .text tornadoWarpEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::tornadoWarpEvCamera() {
|
||||
bool dCamera_c::tornadoWarpEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BA688-800BA7BC .text saveEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::saveEvCamera() {
|
||||
bool dCamera_c::saveEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BA7BC-800BA904 .text loadEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::loadEvCamera() {
|
||||
bool dCamera_c::loadEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BA904-800BB39C .text useItem0EvCamera__9dCamera_cFv */
|
||||
void dCamera_c::useItem0EvCamera() {
|
||||
bool dCamera_c::useItem0EvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BB39C-800BBD88 .text useItem1EvCamera__9dCamera_cFv */
|
||||
void dCamera_c::useItem1EvCamera() {
|
||||
bool dCamera_c::useItem1EvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BBD88-800BC364 .text getItemEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::getItemEvCamera() {
|
||||
bool dCamera_c::getItemEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BC364-800BC9D8 .text possessedEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::possessedEvCamera() {
|
||||
bool dCamera_c::possessedEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BC9D8-800BCDA0 .text fixedFramesEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::fixedFramesEvCamera() {
|
||||
bool dCamera_c::fixedFramesEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BCDA0-800BCFE8 .text bSplineEvCamera__9dCamera_cFv */
|
||||
void dCamera_c::bSplineEvCamera() {
|
||||
bool dCamera_c::bSplineEvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800BCFE8-800BD678 .text twoActor0EvCamera__9dCamera_cFv */
|
||||
void dCamera_c::twoActor0EvCamera() {
|
||||
bool dCamera_c::twoActor0EvCamera() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,92 @@
|
||||
|
||||
#include <dolphin/mtx/mtx.h>
|
||||
#include <dolphin/mtx/mtx44.h>
|
||||
#include <dolphin/os/OS.h>
|
||||
#include <math.h>
|
||||
|
||||
void C_MTXFrustum(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f) {
|
||||
f32 tmp;
|
||||
|
||||
ASSERTMSGLINE(105, m, "MTXFrustum(): NULL Mtx44Ptr 'm' ");
|
||||
ASSERTMSGLINE(106, t != b, "MTXFrustum(): 't' and 'b' clipping planes are equal ");
|
||||
ASSERTMSGLINE(107, l != r, "MTXFrustum(): 'l' and 'r' clipping planes are equal ");
|
||||
ASSERTMSGLINE(108, n != f, "MTXFrustum(): 'n' and 'f' clipping planes are equal ");
|
||||
tmp = 1 / (r - l);
|
||||
m[0][0] = (2 * n * tmp);
|
||||
m[0][1] = 0;
|
||||
m[0][2] = (tmp * (r + l));
|
||||
m[0][3] = 0;
|
||||
tmp = 1 / (t - b);
|
||||
m[1][0] = 0;
|
||||
m[1][1] = (2 * n * tmp);
|
||||
m[1][2] = (tmp * (t + b));
|
||||
m[1][3] = 0;
|
||||
m[2][0] = 0;
|
||||
m[2][1] = 0;
|
||||
tmp = 1 / (f - n);
|
||||
m[2][2] = (-n * tmp);
|
||||
m[2][3] = (tmp * -(f * n));
|
||||
m[3][0] = 0;
|
||||
m[3][1] = 0;
|
||||
m[3][2] = -1;
|
||||
m[3][3] = 0;
|
||||
}
|
||||
|
||||
void C_MTXPerspective(Mtx44 m, f32 fovY, f32 aspect, f32 n, f32 f) {
|
||||
f32 angle;
|
||||
f32 cot;
|
||||
f32 tmp;
|
||||
|
||||
ASSERTMSGLINE(179, m, "MTXPerspective(): NULL Mtx44Ptr 'm' ");
|
||||
ASSERTMSGLINE(180, (fovY > 0.0) && (fovY < 180.0), "MTXPerspective(): 'fovY' out of range ");
|
||||
ASSERTMSGLINE(181, 0.0f != aspect, "MTXPerspective(): 'aspect' is 0 ");
|
||||
|
||||
angle = (0.5f * fovY);
|
||||
angle = MTXDegToRad(angle);
|
||||
cot = 1 / tanf(angle);
|
||||
m[0][0] = (cot / aspect);
|
||||
m[0][1] = 0;
|
||||
m[0][2] = 0;
|
||||
m[0][3] = 0;
|
||||
m[1][0] = 0;
|
||||
m[1][1] = (cot);
|
||||
m[1][2] = 0;
|
||||
m[1][3] = 0;
|
||||
m[2][0] = 0;
|
||||
m[2][1] = 0;
|
||||
tmp = 1 / (f - n);
|
||||
m[2][2] = (-n * tmp);
|
||||
m[2][3] = (tmp * -(f * n));
|
||||
m[3][0] = 0;
|
||||
m[3][1] = 0;
|
||||
m[3][2] = -1;
|
||||
m[3][3] = 0;
|
||||
}
|
||||
|
||||
void C_MTXOrtho(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f) {
|
||||
f32 tmp;
|
||||
|
||||
ASSERTMSGLINE(254, m, "MTXOrtho(): NULL Mtx44Ptr 'm' ");
|
||||
ASSERTMSGLINE(255, t != b, "MTXOrtho(): 't' and 'b' clipping planes are equal ");
|
||||
ASSERTMSGLINE(256, l != r, "MTXOrtho(): 'l' and 'r' clipping planes are equal ");
|
||||
ASSERTMSGLINE(257, n != f, "MTXOrtho(): 'n' and 'f' clipping planes are equal ");
|
||||
tmp = 1 / (r - l);
|
||||
m[0][0] = 2 * tmp;
|
||||
m[0][1] = 0;
|
||||
m[0][2] = 0;
|
||||
m[0][3] = (tmp * -(r + l));
|
||||
tmp = 1 / (t - b);
|
||||
m[1][0] = 0;
|
||||
m[1][1] = 2 * tmp;
|
||||
m[1][2] = 0;
|
||||
m[1][3] = (tmp * -(t + b));
|
||||
m[2][0] = 0;
|
||||
m[2][1] = 0;
|
||||
tmp = 1 / (f - n);
|
||||
m[2][2] = (-1 * tmp);
|
||||
m[2][3] = (-f * tmp);
|
||||
m[3][0] = 0;
|
||||
m[3][1] = 0;
|
||||
m[3][2] = 0;
|
||||
m[3][3] = 1;
|
||||
}
|
||||
@@ -0,0 +1,212 @@
|
||||
|
||||
#include <dolphin/mtx/mtxvec.h>
|
||||
#include <dolphin/os/OS.h>
|
||||
|
||||
void C_MTXMultVec(const Mtx m, const Vec* src, Vec* dst) {
|
||||
Vec vTmp;
|
||||
|
||||
ASSERTMSGLINE(66, m, "MTXMultVec(): NULL MtxPtr 'm' ");
|
||||
ASSERTMSGLINE(67, src, "MTXMultVec(): NULL VecPtr 'src' ");
|
||||
ASSERTMSGLINE(68, dst, "MTXMultVec(): NULL VecPtr 'dst' ");
|
||||
|
||||
vTmp.x = m[0][3] + ((m[0][2] * src->z) + ((m[0][0] * src->x) + (m[0][1] * src->y)));
|
||||
vTmp.y = m[1][3] + ((m[1][2] * src->z) + ((m[1][0] * src->x) + (m[1][1] * src->y)));
|
||||
vTmp.z = m[2][3] + ((m[2][2] * src->z) + ((m[2][0] * src->x) + (m[2][1] * src->y)));
|
||||
dst->x = vTmp.x;
|
||||
dst->y = vTmp.y;
|
||||
dst->z = vTmp.z;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
asm void PSMTXMultVec(const register Mtx m, const register Vec* src, register Vec* dst) {
|
||||
nofralloc
|
||||
psq_l f0, Vec.x(src), 0, 0
|
||||
psq_l f2, 0(m), 0, 0
|
||||
psq_l f1, Vec.z(src), 1, 0
|
||||
ps_mul f4, f2, f0
|
||||
psq_l f3, 8(m), 0, 0
|
||||
ps_madd f5, f3, f1, f4
|
||||
psq_l f8, 16(m), 0, 0
|
||||
ps_sum0 f6, f5, f6, f5
|
||||
psq_l f9, 24(m), 0, 0
|
||||
ps_mul f10, f8, f0
|
||||
psq_st f6, Vec.x(dst), 1, 0
|
||||
ps_madd f11, f9, f1, f10
|
||||
psq_l f2, 32(m), 0, 0
|
||||
ps_sum0 f12, f11, f12, f11
|
||||
psq_l f3, 40(m), 0, 0
|
||||
ps_mul f4, f2, f0
|
||||
psq_st f12, Vec.y(dst), 1, 0
|
||||
ps_madd f5, f3, f1, f4
|
||||
ps_sum0 f6, f5, f6, f5
|
||||
psq_st f6, Vec.z(dst), 1, 0
|
||||
blr
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_MTXMultVecArray(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count) {
|
||||
u32 i;
|
||||
Vec vTmp;
|
||||
|
||||
ASSERTMSGLINE(168, m, "MTXMultVecArray(): NULL MtxPtr 'm' ");
|
||||
ASSERTMSGLINE(169, srcBase, "MTXMultVecArray(): NULL VecPtr 'srcBase' ");
|
||||
ASSERTMSGLINE(170, dstBase, "MTXMultVecArray(): NULL VecPtr 'dstBase' ");
|
||||
ASSERTMSGLINE(171, count > 1, "MTXMultVecArray(): count must be greater than 1.");
|
||||
|
||||
for(i = 0; i < count; i++) {
|
||||
vTmp.x = m[0][3] + ((m[0][2] * srcBase->z) + ((m[0][0] * srcBase->x) + (m[0][1] * srcBase->y)));
|
||||
vTmp.y = m[1][3] + ((m[1][2] * srcBase->z) + ((m[1][0] * srcBase->x) + (m[1][1] * srcBase->y)));
|
||||
vTmp.z = m[2][3] + ((m[2][2] * srcBase->z) + ((m[2][0] * srcBase->x) + (m[2][1] * srcBase->y)));
|
||||
dstBase->x = vTmp.x;
|
||||
dstBase->y = vTmp.y;
|
||||
dstBase->z = vTmp.z;
|
||||
srcBase++;
|
||||
dstBase++;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
asm void PSMTXMultVecArray(const register Mtx m, const register Vec* srcBase, register Vec* dstBase, register u32 count) {
|
||||
nofralloc
|
||||
psq_l f13, 0x0(m), 0, 0
|
||||
psq_l f12, 0x10(m), 0, 0
|
||||
subi count, count, 0x1
|
||||
psq_l f11, 0x8(m), 0, 0
|
||||
ps_merge00 f0, f13, f12
|
||||
subi dstBase, dstBase, 0x4
|
||||
psq_l f10, 0x18(m), 0, 0
|
||||
ps_merge11 f1, f13, f12
|
||||
mtctr count
|
||||
psq_l f4, 0x20(m), 0, 0
|
||||
ps_merge00 f2, f11, f10
|
||||
psq_l f5, 0x28(m), 0, 0
|
||||
ps_merge11 f3, f11, f10
|
||||
psq_l f6, 0x0(srcBase), 0, 0
|
||||
psq_lu f7, 0x8(srcBase), 1, 0
|
||||
ps_madds0 f8, f0, f6, f3
|
||||
ps_mul f9, f4, f6
|
||||
ps_madds1 f8, f1, f6, f8
|
||||
ps_madd f10, f5, f7, f9
|
||||
L_000003C4:
|
||||
psq_lu f6, 0x4(srcBase), 0, 0
|
||||
ps_madds0 f12, f2, f7, f8
|
||||
psq_lu f7, 0x8(srcBase), 1, 0
|
||||
ps_sum0 f13, f10, f9, f10
|
||||
ps_madds0 f8, f0, f6, f3
|
||||
ps_mul f9, f4, f6
|
||||
psq_stu f12, 0x4(dstBase), 0, 0
|
||||
ps_madds1 f8, f1, f6, f8
|
||||
psq_stu f13, 0x8(dstBase), 1, 0
|
||||
ps_madd f10, f5, f7, f9
|
||||
bdnz L_000003C4
|
||||
ps_madds0 f12, f2, f7, f8
|
||||
ps_sum0 f13, f10, f9, f10
|
||||
psq_stu f12, 0x4(dstBase), 0, 0
|
||||
psq_stu f13, 0x8(dstBase), 1, 0
|
||||
blr
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_MTXMultVecSR(const Mtx m, const Vec* src, Vec* dst) {
|
||||
Vec vTmp;
|
||||
|
||||
ASSERTMSGLINE(313, m, "MTXMultVecSR(): NULL MtxPtr 'm' ");
|
||||
ASSERTMSGLINE(314, src, "MTXMultVecSR(): NULL VecPtr 'src' ");
|
||||
ASSERTMSGLINE(315, dst, "MTXMultVecSR(): NULL VecPtr 'dst' ");
|
||||
|
||||
vTmp.x = (m[0][2] * src->z) + ((m[0][0] * src->x) + (m[0][1] * src->y));
|
||||
vTmp.y = (m[1][2] * src->z) + ((m[1][0] * src->x) + (m[1][1] * src->y));
|
||||
vTmp.z = (m[2][2] * src->z) + ((m[2][0] * src->x) + (m[2][1] * src->y));
|
||||
dst->x = vTmp.x;
|
||||
dst->y = vTmp.y;
|
||||
dst->z = vTmp.z;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
asm void PSMTXMultVecSR(const register Mtx m, const register Vec* src, register Vec* dst) {
|
||||
nofralloc
|
||||
psq_l f0, 0x0(m), 0, 0
|
||||
psq_l f6, 0x0(src), 0, 0
|
||||
psq_l f2, 0x10(m), 0, 0
|
||||
ps_mul f8, f0, f6
|
||||
psq_l f4, 0x20(m), 0, 0
|
||||
ps_mul f10, f2, f6
|
||||
psq_l f7, 0x8(src), 1, 0
|
||||
ps_mul f12, f4, f6
|
||||
psq_l f3, 0x18(m), 0, 0
|
||||
ps_sum0 f8, f8, f8, f8
|
||||
psq_l f5, 0x28(m), 0, 0
|
||||
ps_sum0 f10, f10, f10, f10
|
||||
psq_l f1, 0x8(m), 0, 0
|
||||
ps_sum0 f12, f12, f12, f12
|
||||
ps_madd f9, f1, f7, f8
|
||||
psq_st f9, 0x0(dst), 1, 0
|
||||
ps_madd f11, f3, f7, f10
|
||||
psq_st f11, 0x4(dst), 1, 0
|
||||
ps_madd f13, f5, f7, f12
|
||||
psq_st f13, 0x8(dst), 1, 0
|
||||
blr
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_MTXMultVecArraySR(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count) {
|
||||
u32 i;
|
||||
Vec vTmp;
|
||||
|
||||
ASSERTMSGLINE(410, m, "MTXMultVecArraySR(): NULL MtxPtr 'm' ");
|
||||
ASSERTMSGLINE(411, srcBase, "MTXMultVecArraySR(): NULL VecPtr 'srcBase' ");
|
||||
ASSERTMSGLINE(412, dstBase, "MTXMultVecArraySR(): NULL VecPtr 'dstBase' ");
|
||||
ASSERTMSGLINE(413, count > 1, "MTXMultVecArraySR(): count must be greater than 1.");
|
||||
|
||||
for(i = 0; i < count; i++) {
|
||||
vTmp.x = (m[0][2] * srcBase->z) + ((m[0][0] * srcBase->x) + (m[0][1] * srcBase->y));
|
||||
vTmp.y = (m[1][2] * srcBase->z) + ((m[1][0] * srcBase->x) + (m[1][1] * srcBase->y));
|
||||
vTmp.z = (m[2][2] * srcBase->z) + ((m[2][0] * srcBase->x) + (m[2][1] * srcBase->y));
|
||||
dstBase->x = vTmp.x;
|
||||
dstBase->y = vTmp.y;
|
||||
dstBase->z = vTmp.z;
|
||||
srcBase++;
|
||||
dstBase++;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
asm void PSMTXMultVecArraySR(const register Mtx m, const register Vec* srcBase, register Vec* dstBase, register u32 count) {
|
||||
nofralloc
|
||||
psq_l f13, 0x0(m), 0, 0
|
||||
psq_l f12, 0x10(m), 0, 0
|
||||
subi count, count, 0x1
|
||||
psq_l f11, 0x8(m), 1, 0
|
||||
ps_merge00 f0, f13, f12
|
||||
subi dstBase, dstBase, 0x4
|
||||
psq_l f10, 0x18(m), 1, 0
|
||||
ps_merge11 f1, f13, f12
|
||||
mtctr count
|
||||
psq_l f3, 0x20(m), 0, 0
|
||||
ps_merge00 f2, f11, f10
|
||||
psq_l f4, 0x28(m), 1, 0
|
||||
psq_l f6, 0x0(srcBase), 0, 0
|
||||
psq_lu f7, 0x8(srcBase), 1, 0
|
||||
ps_muls0 f8, f0, f6
|
||||
ps_mul f9, f3, f6
|
||||
ps_madds1 f8, f1, f6, f8
|
||||
ps_madd f10, f4, f7, f9
|
||||
L_000007D0:
|
||||
psq_lu f6, 0x4(srcBase), 0, 0
|
||||
ps_madds0 f12, f2, f7, f8
|
||||
psq_lu f7, 0x8(srcBase), 1, 0
|
||||
ps_sum0 f13, f10, f9, f9
|
||||
ps_muls0 f8, f0, f6
|
||||
ps_mul f9, f3, f6
|
||||
psq_stu f12, 0x4(dstBase), 0, 0
|
||||
ps_madds1 f8, f1, f6, f8
|
||||
psq_stu f13, 0x8(dstBase), 1, 0
|
||||
ps_madd f10, f4, f7, f9
|
||||
bdnz L_000007D0
|
||||
ps_madds0 f12, f2, f7, f8
|
||||
ps_sum0 f13, f10, f9, f9
|
||||
psq_stu f12, 0x4(dstBase), 0, 0
|
||||
psq_stu f13, 0x8(dstBase), 1, 0
|
||||
blr
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,224 @@
|
||||
|
||||
#include <dolphin/mtx/quat.h>
|
||||
#include <dolphin/os/OS.h>
|
||||
#include <math.h>
|
||||
|
||||
void C_QUATMultiply(const Quaternion* p, const Quaternion* q, Quaternion* pq) {
|
||||
Quaternion* r;
|
||||
Quaternion pqTmp;
|
||||
|
||||
ASSERTMSGLINE(193, p, "QUATMultiply(): NULL QuaternionPtr 'p' ");
|
||||
ASSERTMSGLINE(194, q, "QUATMultiply(): NULL QuaternionPtr 'q' ");
|
||||
ASSERTMSGLINE(195, pq, "QUATMultiply(): NULL QuaternionPtr 'pq' ");
|
||||
|
||||
if (p == pq || q == pq){
|
||||
r = &pqTmp;
|
||||
} else {
|
||||
r = pq;
|
||||
}
|
||||
|
||||
r->w = (p->w * q->w) - (p->x * q->x) - (p->y * q->y) - (p->z * q->z);
|
||||
r->x = (p->w * q->x) + (p->x * q->w) + (p->y * q->z) - (p->z * q->y);
|
||||
r->y = (p->w * q->y) + (p->y * q->w) + (p->z * q->x) - (p->x * q->z);
|
||||
r->z = (p->w * q->z) + (p->z * q->w) + (p->x * q->y) - (p->y * q->x);
|
||||
|
||||
if (r == &pqTmp) {
|
||||
*pq = pqTmp;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
void PSQUATMultiply(const register Quaternion* p, const register Quaternion* q, register Quaternion* pq) {
|
||||
register f32 pxy, pzw;
|
||||
register f32 qxy, qzw;
|
||||
register f32 pnxy, pnzw, pnxny, pnznw;
|
||||
register f32 rxy, rzw;
|
||||
register f32 sxy, szw;
|
||||
|
||||
asm {
|
||||
psq_l pxy, 0x0(p), 0, 0
|
||||
psq_l pzw, 0x8(p), 0, 0
|
||||
psq_l qxy, 0x0(q), 0, 0
|
||||
ps_neg pnxny, pxy
|
||||
psq_l qzw, 0x8(q), 0, 0
|
||||
ps_neg pnznw, pzw
|
||||
ps_merge01 pnxy, pnxny, pxy
|
||||
ps_muls0 rxy, pzw, qxy
|
||||
ps_muls0 rzw, pnxny, qxy
|
||||
ps_merge01 pnzw, pnznw, pzw
|
||||
ps_muls1 szw, pnxy, qxy
|
||||
ps_madds0 rxy, pnxy, qzw, rxy
|
||||
ps_muls1 sxy, pnzw, qxy
|
||||
ps_madds0 rzw, pnzw, qzw, rzw
|
||||
ps_madds1 szw, pnznw, qzw, szw
|
||||
ps_merge10 rxy, rxy, rxy
|
||||
ps_madds1 sxy, pxy, qzw, sxy
|
||||
ps_merge10 rzw, rzw, rzw
|
||||
ps_add rxy, rxy, sxy
|
||||
psq_st rxy, 0x0(pq), 0, 0
|
||||
ps_sub rzw, rzw, szw
|
||||
psq_st rzw, 0x8(pq), 0, 0
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_QUATNormalize(const Quaternion* src, Quaternion* unit) {
|
||||
f32 mag;
|
||||
ASSERTMSGLINE(407, src, "QUATNormalize(): NULL QuaternionPtr 'src' ");
|
||||
ASSERTMSGLINE(408, unit, "QUATNormalize(): NULL QuaternionPtr 'unit' ");
|
||||
|
||||
mag = (src->x * src->x) + (src->y * src->y) + (src->z * src->z) + (src->w * src->w);
|
||||
if (mag >= 0.00001f) {
|
||||
mag = 1.0f / sqrtf(mag);
|
||||
|
||||
unit->x = src->x * mag;
|
||||
unit->y = src->y * mag;
|
||||
unit->z = src->z * mag;
|
||||
unit->w = src->w * mag;
|
||||
} else {
|
||||
unit->x = unit->y = unit->z = unit->w = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
void PSQUATNormalize(const register Quaternion* src, register Quaternion* unit) {
|
||||
register f32 sxy, szw;
|
||||
register f32 mag, rsqmag;
|
||||
register f32 diff;
|
||||
register f32 c_zero;
|
||||
register f32 nwork0, nwork1;
|
||||
|
||||
register f32 epsilon = 0.00001f;
|
||||
register f32 c_half = 0.5f;
|
||||
register f32 c_three = 3.0f;
|
||||
|
||||
asm {
|
||||
psq_l sxy, 0x0(src), 0, 0
|
||||
ps_mul mag, sxy, sxy
|
||||
psq_l szw, 0x8(src), 0, 0
|
||||
ps_sub c_zero, epsilon, epsilon
|
||||
ps_madd mag, szw, szw, mag
|
||||
ps_sum0 mag, mag, mag, mag
|
||||
frsqrte rsqmag, mag
|
||||
ps_sub diff, mag, epsilon
|
||||
fmul nwork0, rsqmag, rsqmag
|
||||
fmul nwork1, rsqmag, c_half
|
||||
fnmsub nwork0, nwork0, mag, c_three
|
||||
fmul rsqmag, nwork0, nwork1
|
||||
ps_sel rsqmag, diff, rsqmag, c_zero
|
||||
ps_muls0 sxy, sxy, rsqmag
|
||||
ps_muls0 szw, szw, rsqmag
|
||||
psq_st sxy, 0x0(unit), 0, 0
|
||||
psq_st szw, 0x8(unit), 0, 0
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_QUATInverse(const Quaternion* src, Quaternion* inv) {
|
||||
f32 mag, norminv;
|
||||
ASSERTMSGLINE(498, src, "QUATInverse(): NULL QuaternionPtr 'src' ");
|
||||
ASSERTMSGLINE(499, inv, "QUATInverse(): NULL QuaternionPtr 'inv' ");
|
||||
|
||||
mag = (src->x * src->x) + (src->y * src->y) + (src->z * src->z) + (src->w * src->w);
|
||||
if (mag == 0.0f) {
|
||||
mag = 1.0f;
|
||||
}
|
||||
|
||||
norminv = 1.0f / mag;
|
||||
inv->x = -src->x * norminv;
|
||||
inv->y = -src->y * norminv;
|
||||
inv->z = -src->z * norminv;
|
||||
inv->w = src->w * norminv;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
void PSQUATInverse(const register Quaternion* src, register Quaternion* inv) {
|
||||
register f32 sxy, szw;
|
||||
register f32 izz, iww;
|
||||
register f32 mag, nmag;
|
||||
register f32 norminv, nninv;
|
||||
register f32 nwork0;
|
||||
register f32 c_two;
|
||||
register f32 c_zero;
|
||||
register f32 c_one = 1.0f;
|
||||
|
||||
asm {
|
||||
psq_l sxy, 0x0(src), 0, 0
|
||||
ps_mul mag, sxy, sxy
|
||||
ps_sub c_zero, c_one, c_one
|
||||
psq_l szw, 0x8(src), 0, 0
|
||||
ps_madd mag, szw, szw, mag
|
||||
ps_add c_two, c_one, c_one
|
||||
ps_sum0 mag, mag, mag, mag
|
||||
fcmpu cr0, mag, c_zero
|
||||
beq L_00000948
|
||||
fres norminv, mag
|
||||
ps_neg nmag, mag
|
||||
ps_nmsub nwork0, mag, norminv, c_two
|
||||
ps_mul norminv, norminv, nwork0
|
||||
b L_0000094C
|
||||
L_00000948:
|
||||
fmr norminv, c_one
|
||||
L_0000094C:
|
||||
ps_neg nninv, norminv
|
||||
ps_muls1 iww, norminv, szw
|
||||
ps_muls0 sxy, sxy, nninv
|
||||
psq_st iww, 0xc(inv), 1, 0
|
||||
ps_muls0 izz, szw, nninv
|
||||
psq_st sxy, 0x0(inv), 0, 0
|
||||
psq_st izz, 0x8(inv), 1, 0
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_QUATRotAxisRad(Quaternion* r, const Vec* axis, f32 rad) {
|
||||
f32 half, sh, ch;
|
||||
Vec nAxis;
|
||||
|
||||
ASSERTMSGLINE(758, r, "QUATRotAxisRad(): NULL QuaternionPtr 'r' ");
|
||||
ASSERTMSGLINE(759, axis, "QUATRotAxisRad(): NULL VecPtr 'axis' ");
|
||||
|
||||
VECNormalize(axis, &nAxis);
|
||||
|
||||
half = rad * 0.5f;
|
||||
sh = sinf(half);
|
||||
ch = cosf(half);
|
||||
|
||||
r->x = sh * nAxis.x;
|
||||
r->y = sh * nAxis.y;
|
||||
r->z = sh * nAxis.z;
|
||||
r->w = ch;
|
||||
}
|
||||
|
||||
void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, f32 t) {
|
||||
f32 theta, sin_th, cos_th;
|
||||
f32 tp, tq;
|
||||
|
||||
ASSERTMSGLINE(869, p, "QUATSlerp(): NULL QuaternionPtr 'p' ");
|
||||
ASSERTMSGLINE(870, q, "QUATSlerp(): NULL QuaternionPtr 'q' ");
|
||||
ASSERTMSGLINE(871, r, "QUATSlerp(): NULL QuaternionPtr 'r' ");
|
||||
|
||||
cos_th = p->x * q->x + p->y * q->y + p->z * q->z + p->w * q->w;
|
||||
tq = 1.0f;
|
||||
|
||||
if (cos_th < 0.0f) {
|
||||
cos_th = -cos_th;
|
||||
tq = -tq;
|
||||
}
|
||||
|
||||
if (cos_th <= 0.99999f) {
|
||||
theta = acosf(cos_th);
|
||||
sin_th = sinf(theta);
|
||||
|
||||
tp = sinf((1.0f - t) * theta) / sin_th;
|
||||
tq *= sinf(t * theta) / sin_th;
|
||||
} else {
|
||||
tp = 1.0f - t;
|
||||
tq *= t;
|
||||
}
|
||||
|
||||
r->x = (tp * p->x) + (tq * q->x);
|
||||
r->y = (tp * p->y) + (tq * q->y);
|
||||
r->z = (tp * p->z) + (tq * q->z);
|
||||
r->w = (tp * p->w) + (tq * q->w);
|
||||
}
|
||||
@@ -0,0 +1,365 @@
|
||||
|
||||
#include <dolphin/mtx/vec.h>
|
||||
#include <dolphin/os/OS.h>
|
||||
#include <math.h>
|
||||
|
||||
void C_VECAdd(const Vec* a, const Vec* b, Vec* ab) {
|
||||
ASSERTMSGLINE(108, a, "VECAdd(): NULL VecPtr 'a' ");
|
||||
ASSERTMSGLINE(109, b, "VECAdd(): NULL VecPtr 'b' ");
|
||||
ASSERTMSGLINE(110, ab, "VECAdd(): NULL VecPtr 'ab' ");
|
||||
ab->x = a->x + b->x;
|
||||
ab->y = a->y + b->y;
|
||||
ab->z = a->z + b->z;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
asm void PSVECAdd(const register Vec* a, const register Vec* b, register Vec* ab) {
|
||||
psq_l f2, Vec.x(a), 0, 0
|
||||
psq_l f4, Vec.x(b), 0, 0
|
||||
ps_add f6, f2, f4
|
||||
psq_st f6, Vec.x(ab), 0, 0
|
||||
psq_l f3, Vec.z(a), 1, 0
|
||||
psq_l f5, Vec.z(b), 1, 0
|
||||
ps_add f7, f3, f5
|
||||
psq_st f7, Vec.z(ab), 1, 0
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_VECSubtract(const Vec* a, const Vec* b, Vec* a_b) {
|
||||
ASSERTMSGLINE(177, a, "VECSubtract(): NULL VecPtr 'a' ");
|
||||
ASSERTMSGLINE(178, b, "VECSubtract(): NULL VecPtr 'b' ");
|
||||
ASSERTMSGLINE(179, a_b, "VECSubtract(): NULL VecPtr 'a_b' ");
|
||||
a_b->x = a->x - b->x;
|
||||
a_b->y = a->y - b->y;
|
||||
a_b->z = a->z - b->z;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
asm void PSVECSubtract(const register Vec* a, const register Vec* b, register Vec* a_b) {
|
||||
psq_l f2, Vec.x(a), 0, 0
|
||||
psq_l f4, Vec.x(b), 0, 0
|
||||
ps_sub f6, f2, f4
|
||||
psq_st f6, Vec.x(a_b), 0, 0
|
||||
psq_l f3, Vec.z(a), 1, 0
|
||||
psq_l f5, Vec.z(b), 1, 0
|
||||
ps_sub f7, f3, f5
|
||||
psq_st f7, Vec.z(a_b), 1, 0
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_VECScale(const Vec* src, Vec* dst, f32 scale) {
|
||||
ASSERTMSGLINE(247, src, "VECScale(): NULL VecPtr 'src' ");
|
||||
ASSERTMSGLINE(248, dst, "VECScale(): NULL VecPtr 'dst' ");
|
||||
dst->x = (src->x * scale);
|
||||
dst->y = (src->y * scale);
|
||||
dst->z = (src->z * scale);
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
void PSVECScale(const register Vec* src, register Vec* dst, register f32 scale) {
|
||||
register f32 vxy, vz, rxy, rz;
|
||||
|
||||
asm {
|
||||
psq_l vxy, 0x0(src), 0, 0
|
||||
psq_l vz, 0x8(src), 1, 0
|
||||
ps_muls0 rxy, vxy, scale
|
||||
psq_st rxy, 0x0(dst), 0, 0
|
||||
ps_muls0 rz, vz, scale
|
||||
psq_st rz, 0x8(dst), 1, 0
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_VECNormalize(const Vec* src, Vec* unit) {
|
||||
f32 mag;
|
||||
|
||||
ASSERTMSGLINE(315, src, "VECNormalize(): NULL VecPtr 'src' ");
|
||||
ASSERTMSGLINE(316, unit, "VECNormalize(): NULL VecPtr 'unit' ");
|
||||
|
||||
mag = (src->z * src->z) + ((src->x * src->x) + (src->y * src->y));
|
||||
ASSERTMSGLINE(321, 0.0f != mag, "VECNormalize(): zero magnitude vector ");
|
||||
|
||||
mag = 1.0f / sqrtf(mag);
|
||||
unit->x = src->x * mag;
|
||||
unit->y = src->y * mag;
|
||||
unit->z = src->z * mag;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
void PSVECNormalize(const register Vec* src, register Vec* unit) {
|
||||
register float c_half = 0.5f;
|
||||
register float c_three = 3.0f;
|
||||
register float v1_xy;
|
||||
register float v1_z;
|
||||
register float xx_zz;
|
||||
register float xx_yy;
|
||||
register float sqsum;
|
||||
register float rsqrt;
|
||||
register float nwork0;
|
||||
register float nwork1;
|
||||
|
||||
asm {
|
||||
psq_l v1_xy, 0x0(src), 0, 0
|
||||
ps_mul xx_yy, v1_xy, v1_xy
|
||||
psq_l v1_z, 0x8(src), 1, 0
|
||||
ps_madd xx_zz, v1_z, v1_z, xx_yy
|
||||
ps_sum0 sqsum, xx_zz, v1_z, xx_yy
|
||||
frsqrte rsqrt, sqsum
|
||||
fmuls nwork0, rsqrt, rsqrt
|
||||
fmuls nwork1, rsqrt, c_half
|
||||
fnmsubs nwork0, nwork0, sqsum, c_three
|
||||
fmuls rsqrt, nwork0, nwork1
|
||||
ps_muls0 v1_xy, v1_xy, rsqrt
|
||||
psq_st v1_xy, 0x0(unit), 0, 0
|
||||
ps_muls0 v1_z, v1_z, rsqrt
|
||||
psq_st v1_z, 0x8(unit), 1, 0
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
f32 C_VECSquareMag(const Vec* v) {
|
||||
f32 sqmag;
|
||||
|
||||
ASSERTMSGLINE(405, v, "VECMag(): NULL VecPtr 'v' ");
|
||||
|
||||
sqmag = v->z * v->z + ((v->x * v->x) + (v->y * v->y));
|
||||
return sqmag;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
f32 PSVECSquareMag(const register Vec* v) {
|
||||
register f32 vxy, vzz, sqmag;
|
||||
|
||||
asm {
|
||||
psq_l vxy, 0x0(v), 0, 0
|
||||
ps_mul vxy, vxy, vxy
|
||||
lfs vzz, 0x8(v)
|
||||
ps_madd sqmag, vzz, vzz, vxy
|
||||
ps_sum0 sqmag, sqmag, vxy, vxy
|
||||
}
|
||||
|
||||
return sqmag;
|
||||
}
|
||||
#endif
|
||||
|
||||
f32 C_VECMag(const Vec* v) {
|
||||
return sqrtf(C_VECSquareMag(v));
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
f32 PSVECMag(const register Vec* v) {
|
||||
register f32 vxy, vzz;
|
||||
register f32 sqmag, rmag;
|
||||
register f32 nwork0, nwork1;
|
||||
register f32 c_three, c_half, c_zero;
|
||||
|
||||
c_half = 0.5f;
|
||||
|
||||
asm {
|
||||
psq_l vxy, 0x0(v), 0, 0
|
||||
ps_mul vxy, vxy, vxy
|
||||
lfs vzz, 0x8(v)
|
||||
fsubs c_zero, c_half, c_half
|
||||
ps_madd sqmag, vzz, vzz, vxy
|
||||
ps_sum0 sqmag, sqmag, vxy, vxy
|
||||
fcmpu cr0, sqmag, c_zero
|
||||
beq L_000005F0
|
||||
frsqrte rmag, sqmag
|
||||
}
|
||||
|
||||
c_three = 3.0f;
|
||||
|
||||
asm {
|
||||
fmuls nwork0, rmag, rmag
|
||||
fmuls nwork1, rmag, c_half
|
||||
fnmsubs nwork0, nwork0, sqmag, c_three
|
||||
fmuls rmag, nwork0, nwork1
|
||||
fmuls sqmag, sqmag, rmag
|
||||
L_000005F0:
|
||||
}
|
||||
|
||||
return sqmag;
|
||||
}
|
||||
#endif
|
||||
|
||||
f32 C_VECDotProduct(const Vec* a, const Vec* b) {
|
||||
f32 dot;
|
||||
|
||||
ASSERTMSGLINE(540, a, "VECDotProduct(): NULL VecPtr 'a' ");
|
||||
ASSERTMSGLINE(541, b, "VECDotProduct(): NULL VecPtr 'b' ");
|
||||
dot = (a->z * b->z) + ((a->x * b->x) + (a->y * b->y));
|
||||
return dot;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
asm f32 PSVECDotProduct(const register Vec* a, const register Vec* b) {
|
||||
psq_l f2, Vec.y(a), 0, 0
|
||||
psq_l f3, Vec.y(b), 0, 0
|
||||
ps_mul f2, f2, f3
|
||||
psq_l f5, Vec.x(a), 0, 0
|
||||
psq_l f4, Vec.x(b), 0, 0
|
||||
ps_madd f3, f5, f4, f2
|
||||
ps_sum0 f1, f3, f2, f2
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_VECCrossProduct(const Vec* a, const Vec* b, Vec* axb) {
|
||||
Vec vTmp;
|
||||
|
||||
ASSERTMSGLINE(602, a, "VECCrossProduct(): NULL VecPtr 'a' ");
|
||||
ASSERTMSGLINE(603, b, "VECCrossProduct(): NULL VecPtr 'b' ");
|
||||
ASSERTMSGLINE(604, axb, "VECCrossProduct(): NULL VecPtr 'axb' ");
|
||||
|
||||
vTmp.x = (a->y * b->z) - (a->z * b->y);
|
||||
vTmp.y = (a->z * b->x) - (a->x * b->z);
|
||||
vTmp.z = (a->x * b->y) - (a->y * b->x);
|
||||
axb->x = vTmp.x;
|
||||
axb->y = vTmp.y;
|
||||
axb->z = vTmp.z;
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
asm void PSVECCrossProduct(const register Vec* a, const register Vec* b, register Vec* axb) {
|
||||
psq_l f1, Vec.x(b), 0, 0
|
||||
lfs f2, Vec.z(a)
|
||||
psq_l f0, Vec.x(a), 0, 0
|
||||
ps_merge10 f6, f1, f1
|
||||
lfs f3, Vec.z(b)
|
||||
ps_mul f4, f1, f2
|
||||
ps_muls0 f7, f1, f0
|
||||
ps_msub f5, f0, f3, f4
|
||||
ps_msub f8, f0, f6, f7
|
||||
ps_merge11 f9, f5, f5
|
||||
ps_merge01 f10, f5, f8
|
||||
psq_st f9, Vec.x(axb), 1, 0
|
||||
ps_neg f10, f10
|
||||
psq_st f10, Vec.y(axb), 0, 0
|
||||
}
|
||||
#endif
|
||||
|
||||
void C_VECHalfAngle(const Vec* a, const Vec* b, Vec* half) {
|
||||
Vec aTmp;
|
||||
Vec bTmp;
|
||||
Vec hTmp;
|
||||
|
||||
ASSERTMSGLINE(707, a, "VECHalfAngle(): NULL VecPtr 'a' ");
|
||||
ASSERTMSGLINE(708, b, "VECHalfAngle(): NULL VecPtr 'b' ");
|
||||
ASSERTMSGLINE(709, half, "VECHalfAngle(): NULL VecPtr 'half' ");
|
||||
|
||||
aTmp.x = -a->x;
|
||||
aTmp.y = -a->y;
|
||||
aTmp.z = -a->z;
|
||||
bTmp.x = -b->x;
|
||||
bTmp.y = -b->y;
|
||||
bTmp.z = -b->z;
|
||||
|
||||
VECNormalize(&aTmp, &aTmp);
|
||||
VECNormalize(&bTmp, &bTmp);
|
||||
VECAdd(&aTmp, &bTmp, &hTmp);
|
||||
|
||||
if (VECDotProduct(&hTmp, &hTmp) > 0.0f) {
|
||||
VECNormalize(&hTmp, half);
|
||||
return;
|
||||
}
|
||||
*half = hTmp;
|
||||
}
|
||||
|
||||
void C_VECReflect(const Vec* src, const Vec* normal, Vec* dst) {
|
||||
f32 cosA;
|
||||
Vec uI;
|
||||
Vec uN;
|
||||
|
||||
ASSERTMSGLINE(763, src, "VECReflect(): NULL VecPtr 'src' ");
|
||||
ASSERTMSGLINE(764, normal, "VECReflect(): NULL VecPtr 'normal' ");
|
||||
ASSERTMSGLINE(765, dst, "VECReflect(): NULL VecPtr 'dst' ");
|
||||
|
||||
uI.x = -src->x;
|
||||
uI.y = -src->y;
|
||||
uI.z = -src->z;
|
||||
|
||||
VECNormalize(&uI, &uI);
|
||||
VECNormalize(normal, &uN);
|
||||
|
||||
cosA = VECDotProduct(&uI, &uN);
|
||||
dst->x = (2.0f * uN.x * cosA) - uI.x;
|
||||
dst->y = (2.0f * uN.y * cosA) - uI.y;
|
||||
dst->z = (2.0f * uN.z * cosA) - uI.z;
|
||||
VECNormalize(dst, dst);
|
||||
}
|
||||
|
||||
f32 C_VECSquareDistance(const Vec* a, const Vec* b) {
|
||||
Vec diff;
|
||||
|
||||
diff.x = a->x - b->x;
|
||||
diff.y = a->y - b->y;
|
||||
diff.z = a->z - b->z;
|
||||
return (diff.z * diff.z) + ((diff.x * diff.x) + (diff.y * diff.y));
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
f32 PSVECSquareDistance(const register Vec* a, const register Vec* b) {
|
||||
register f32 v0yz, v1yz, v0xy, v1xy, dyz, dxy;
|
||||
register f32 sqdist;
|
||||
|
||||
asm {
|
||||
psq_l v0yz, 0x4(a), 0, 0
|
||||
psq_l v1yz, 0x4(b), 0, 0
|
||||
ps_sub dyz, v0yz, v1yz
|
||||
psq_l v0xy, 0x0(a), 0, 0
|
||||
psq_l v1xy, 0x0(b), 0, 0
|
||||
ps_mul dyz, dyz, dyz
|
||||
ps_sub dxy, v0xy, v1xy
|
||||
ps_madd sqdist, dxy, dxy, dyz
|
||||
ps_sum0 sqdist, sqdist, dyz, dyz
|
||||
}
|
||||
|
||||
return sqdist;
|
||||
}
|
||||
#endif
|
||||
|
||||
f32 C_VECDistance(const Vec* a, const Vec* b) {
|
||||
return sqrtf(C_VECSquareDistance(a, b));
|
||||
}
|
||||
|
||||
#ifdef __MWERKS__
|
||||
f32 PSVECDistance(const register Vec* a, const register Vec* b) {
|
||||
register f32 v0yz, v1yz, v0xy, v1xy, dyz, dxy;
|
||||
register f32 sqdist, rdist;
|
||||
register f32 nwork0, nwork1;
|
||||
register f32 c_half, c_three, c_zero;
|
||||
|
||||
asm {
|
||||
psq_l v0yz, 0x4(a), 0, 0
|
||||
psq_l v1yz, 0x4(b), 0, 0
|
||||
ps_sub dyz, v0yz, v1yz
|
||||
psq_l v0xy, 0x0(a), 0, 0
|
||||
psq_l v1xy, 0x0(b), 0, 0
|
||||
ps_mul dyz, dyz, dyz
|
||||
ps_sub dxy, v0xy, v1xy
|
||||
}
|
||||
|
||||
c_half = 0.5f;
|
||||
|
||||
asm {
|
||||
ps_madd sqdist, dxy, dxy, dyz
|
||||
fsubs c_zero, c_half, c_half
|
||||
ps_sum0 sqdist, sqdist, dyz, dyz
|
||||
fcmpu cr0, c_zero, sqdist
|
||||
beq L_00000CBC
|
||||
}
|
||||
|
||||
c_three = 3.0f;
|
||||
|
||||
asm {
|
||||
frsqrte rdist, sqdist
|
||||
fmuls nwork0, rdist, rdist
|
||||
fmuls nwork1, rdist, c_half
|
||||
fnmsubs nwork0, nwork0, sqdist, c_three
|
||||
fmuls rdist, nwork0, nwork1
|
||||
fmuls sqdist, sqdist, rdist
|
||||
L_00000CBC:
|
||||
}
|
||||
|
||||
return sqdist;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user