mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-14 05:19:36 +00:00
4000 lines
127 KiB
C
4000 lines
127 KiB
C
#include <ultra64.h>
|
|
#include <global.h>
|
|
#include <vt.h>
|
|
|
|
typedef struct {
|
|
s16 val;
|
|
s16 param;
|
|
} CameraModeValue;
|
|
|
|
typedef struct {
|
|
s16 funcIdx;
|
|
s16 valueCnt;
|
|
CameraModeValue* values;
|
|
} CameraMode;
|
|
|
|
typedef struct {
|
|
union {
|
|
u32 unk_00;
|
|
struct {
|
|
u32 unk_bit0 : 1;
|
|
u32 unk_bit1 : 1;
|
|
u32 validModes : 30;
|
|
};
|
|
};
|
|
CameraMode* cameraModes;
|
|
} CameraSetting;
|
|
|
|
typedef union {
|
|
s16 sh[2];
|
|
s32 w;
|
|
} u_D_8011D3A0;
|
|
|
|
typedef enum {
|
|
CAM_SET_NONE,
|
|
CAM_SET_NORMAL0,
|
|
CAM_SET_NORMAL1,
|
|
CAM_SET_DUNGEON0,
|
|
CAM_SET_DUNGEON1,
|
|
CAM_SET_NORMAL3,
|
|
CAM_SET_HORSE0,
|
|
CAM_SET_BOSS_GOMA,
|
|
CAM_SET_BOSS_DODO,
|
|
CAM_SET_BOSS_BARI,
|
|
CAM_SET_BOSS_FGANON,
|
|
CAM_SET_BOSS_BAL,
|
|
CAM_SET_BOSS_SHADES,
|
|
CAM_SET_BOSS_MOFA,
|
|
CAM_SET_TWIN0,
|
|
CAM_SET_TWIN1,
|
|
CAM_SET_BOSS_GANON1,
|
|
CAM_SET_BOSS_GANON2,
|
|
CAM_SET_TOWER0,
|
|
CAM_SET_TOWER1,
|
|
CAM_SET_FIXED0,
|
|
CAM_SET_FIXED1,
|
|
CAM_SET_CIRCLE0,
|
|
CAM_SET_CIRCLE2,
|
|
CAM_SET_CIRCLE3,
|
|
CAM_SET_PREREND0,
|
|
CAM_SET_PREREND1,
|
|
CAM_SET_PREREND3,
|
|
CAM_SET_DOOR0,
|
|
CAM_SET_DOORC,
|
|
CAM_SET_RAIL3,
|
|
CAM_SET_START0,
|
|
CAM_SET_START1,
|
|
CAM_SET_FREE0,
|
|
CAM_SET_FREE2,
|
|
CAM_SET_CIRCLE4,
|
|
CAM_SET_CIRCLE5,
|
|
CAM_SET_DEMO0,
|
|
CAM_SET_DEMO1,
|
|
CAM_SET_MORI1,
|
|
CAM_SET_ITEM0,
|
|
CAM_SET_ITEM1,
|
|
CAM_SET_DEMO3,
|
|
CAM_SET_DEMO4,
|
|
CAM_SET_UFOBEAN,
|
|
CAM_SET_LIFTBEAN,
|
|
CAM_SET_SCENE0,
|
|
CAM_SET_SCENE1,
|
|
CAM_SET_HIDAN1,
|
|
CAM_SET_HIDAN2,
|
|
CAM_SET_MORI2,
|
|
CAM_SET_MORI3,
|
|
CAM_SET_TAKO,
|
|
CAM_SET_SPOT05A,
|
|
CAM_SET_SPOT05B,
|
|
CAM_SET_HIDAN3,
|
|
CAM_SET_ITEM2,
|
|
CAM_SET_CIRCLE6,
|
|
CAM_SET_NORMAL2,
|
|
CAM_SET_FISHING,
|
|
CAM_SET_DEMOC,
|
|
CAM_SET_UO_FIBER,
|
|
CAM_SET_DUNGEON2,
|
|
CAM_SET_TEPPEN,
|
|
CAM_SET_CIRCLE7,
|
|
CAM_SET_NORMAL4,
|
|
CAM_SET_MAX
|
|
} CameraSettingType;
|
|
|
|
typedef enum {
|
|
CAM_MODE_NORMAL,
|
|
CAM_MODE_PARALLEL,
|
|
CAM_MODE_KEEPON,
|
|
CAM_MODE_TALK,
|
|
CAM_MODE_BATTLE,
|
|
CAM_MODE_CLIMB,
|
|
CAM_MODE_SUBJECT,
|
|
CAM_MODE_BOWARROW,
|
|
CAM_MODE_BOWARROWZ,
|
|
CAM_MODE_FOOKSHOT,
|
|
CAM_MODE_BOOMERANG,
|
|
CAM_MODE_PACHINCO,
|
|
CAM_MODE_CLIMBZ,
|
|
CAM_MODE_JUMP,
|
|
CAM_MODE_HANG,
|
|
CAM_MODE_HANGZ,
|
|
CAM_MODE_FREEFALL,
|
|
CAM_MODE_CHARGE,
|
|
CAM_MODE_STILL,
|
|
CAM_MODE_PUSHPULL,
|
|
CAM_MODE_BOOKEEPON
|
|
} CameraModeType;
|
|
|
|
/*==================================================================*/
|
|
// Data
|
|
s16 sOREGInit[] = {
|
|
0, 1, 5, 5, 5, 14500, 20, 16, 150, 25, 150, 6, 10, 10, 0, 0, 1, 100,
|
|
250, 120, 80, 30, 120, 4, 1, 50, 20, 1800, 50, 50, 50, 20, 20, -10, -5460, -9100,
|
|
-6, 8, 15, 75, 60, 12, 110, 40, 50, 250, -10, 30, 30, 70, 20, 20, 20,
|
|
};
|
|
|
|
s16 sOREGInitCnt = 53;
|
|
|
|
s16 sPREGInit[] = {
|
|
-20, 200, 300, 10, 12, 10, 35, 60, 60, 3, 0, -40, 20, 25, 45, -5, 15, 15, 20, 0, 0, 0, 6, 60, 30, 0, 5,
|
|
};
|
|
|
|
s16 sPREGInitCnt = 27;
|
|
|
|
char sCameraSettingNames[][12] = {
|
|
"NONE ", "NORMAL0 ", "NORMAL1 ", "DUNGEON0 ", "DUNGEON1 ", "NORMAL3 ", "HORSE0 ",
|
|
"BOSS_GOMA ", "BOSS_DODO ", "BOSS_BARI ", "BOSS_FGANON", "BOSS_BAL ", "BOSS_SHADES", "BOSS_MOFA ",
|
|
"BOSS_TWIN0 ", "BOSS_TWIN1 ", "BOSS_GANON1", "BOSS_GANON2", "TOWER0 ", "TOWER1 ", "FIXED0 ",
|
|
"FIXED1 ", "CIRCLE0 ", "CIRCLE2 ", "CIRCLE3 ", "PREREND0 ", "PREREND1 ", "PREREND3 ",
|
|
"DOOR0 ", "DOORC ", "RAIL3 ", "START0 ", "START1 ", "FREE0 ", "FREE2 ",
|
|
"CIRCLE4 ", "CIRCLE5 ", "DEMO0 ", "DEMO1 ", "MORI1 ", "ITEM0 ", "ITEM1 ",
|
|
"DEMO3 ", "DEMO4 ", "UFOBEAN ", "LIFTBEAN ", "SCENE0 ", "SCENE1 ", "HIDAN1 ",
|
|
"HIDAN2 ", "MORI2 ", "MORI3 ", "TAKO ", "SPOT05A ", "SPOT05B ", "HIDAN3 ",
|
|
"ITEM2 ", "CIRCLE6 ", "NORMAL2 ", "FISHING ", "DEMOC ", "UO_FIBER ", "DUNGEON2 ",
|
|
"TEPPEN ", "CIRCLE7 ", "NORMAL4 ",
|
|
};
|
|
|
|
char sCameraModeNames[][12] = {
|
|
"NORMAL ", "PARALLEL ", "KEEPON ", "TALK ", "BATTLE ", "CLIMB ", "SUBJECT ",
|
|
"BOWARROW ", "BOWARROWZ ", "FOOKSHOT ", "BOOMERANG ", "PACHINCO ", "CLIMBZ ", "JUMP ",
|
|
"HANG ", "HANGZ ", "FREEFALL ", "CHARGE ", "STILL ", "PUSHPULL ", "BOOKEEPON ",
|
|
};
|
|
|
|
CameraModeValue D_8011A3A0[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 10, 3 }, { 12, 4 }, { 10, 5 }, { 35, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A3C8[] = {
|
|
{ -20, 0 }, { 250, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A3F4[] = {
|
|
{ -20, 0 }, { 120, 1 }, { 140, 2 }, { 25, 13 }, { 45, 14 }, { -5, 15 }, { 15, 16 },
|
|
{ 15, 17 }, { 45, 7 }, { 50, 8 }, { 8193, 9 }, { -50, 11 }, { 30, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A428[] = {
|
|
{ -30, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 },
|
|
{ 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 13568, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A458[] = {
|
|
{ -20, 0 }, { 180, 1 }, { 10, 13 }, { 80, 14 }, { 0, 15 }, { 10, 16 },
|
|
{ 25, 17 }, { 50, 7 }, { 80, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A488[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A4AC[] = {
|
|
{ 0, 0 }, { 5, 1 }, { 50, 2 }, { 10, 4 }, { 0, 19 }, { 0, 20 }, { 0, 21 }, { 45, 7 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A4D0[] = {
|
|
{ -7, 0 }, { 14, 1 }, { 50, 2 }, { 10, 4 }, { 0, 19 }, { -30, 20 }, { -5, 21 }, { 45, 7 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A4F4[] = {
|
|
{ 20, 0 }, { 70, 1 }, { 70, 2 }, { 10, 4 }, { -120, 19 }, { 20, 20 }, { 0, 21 }, { 45, 7 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A518[] = {
|
|
{ -20, 0 }, { 80, 1 }, { 250, 2 }, { 45, 3 }, { 60, 7 }, { 40, 8 }, { 6, 22 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A538[] = {
|
|
{ 5, 0 }, { 50, 1 }, { 50, 2 }, { 10, 4 }, { 0, 19 }, { 0, 20 }, { 0, 21 }, { 45, 7 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A55C[] = {
|
|
{ -7, 0 }, { 14, 1 }, { 50, 2 }, { 10, 4 }, { -9, 19 }, { -63, 20 }, { -30, 21 }, { 45, 7 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A580[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A5A4[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 12, 4 }, { 35, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A5C4[] = {
|
|
{ -80, 0 }, { 200, 1 }, { 300, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A5E0[] = {
|
|
{ -120, 0 }, { 300, 1 }, { 300, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A5FC[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 15, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A61C[] = {
|
|
{ -20, 0 }, { 300, 1 }, { 50, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A638[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 10, 3 }, { 100, 4 }, { 10, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A660[] = {
|
|
{ 0, 0 }, { 250, 1 }, { 25, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 70, 7 }, { 30, 8 }, { 8298, 9 }, { -20, 11 }, { 30, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A68C[] = {
|
|
{ -5, 0 }, { 120, 1 }, { 140, 2 }, { 5, 13 }, { 85, 14 }, { 10, 15 }, { 5, 16 },
|
|
{ 25, 17 }, { 45, 7 }, { 50, 8 }, { 8193, 9 }, { -15, 11 }, { 30, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A6C0[] = {
|
|
{ 0, 0 }, { 200, 1 }, { 400, 2 }, { 10, 3 }, { 12, 4 }, { 20, 5 }, { 40, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A6E8[] = {
|
|
{ 0, 0 }, { 250, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 45, 7 }, { 50, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A714[] = {
|
|
{ -20, 0 }, { 120, 1 }, { 140, 2 }, { 25, 13 }, { 45, 14 }, { -5, 15 }, { 15, 16 },
|
|
{ 15, 17 }, { 45, 7 }, { 50, 8 }, { 8193, 9 }, { -50, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A748[] = {
|
|
{ -20, 0 }, { 250, 1 }, { 10, 13 }, { 80, 14 }, { 0, 15 }, { 10, 16 },
|
|
{ 25, 17 }, { 50, 7 }, { 65, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A778[] = {
|
|
{ -20, 0 }, { 80, 1 }, { 250, 2 }, { 6, 22 }, { 45, 3 }, { 60, 7 }, { 40, 8 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A798[] = {
|
|
{ 0, 0 }, { 250, 1 }, { 400, 2 }, { 15, 4 }, { 50, 6 }, { 60, 7 }, { 30, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A7B8[] = {
|
|
{ 0, 0 }, { 200, 1 }, { 400, 2 }, { 30, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A7D8[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 400, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A7FC[] = {
|
|
{ -20, 0 }, { 250, 1 }, { 400, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A820[] = {
|
|
{ 0, 0 }, { 300, 1 }, { 50, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A83C[] = {
|
|
{ -80, 0 }, { 200, 1 }, { 400, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A858[] = {
|
|
{ -120, 0 }, { 400, 1 }, { 400, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A874[] = {
|
|
{ 0, 0 }, { 200, 1 }, { 400, 2 }, { 10, 3 }, { 100, 4 }, { 20, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A89C[] = {
|
|
{ -10, 0 }, { 150, 1 }, { 250, 2 }, { 5, 3 }, { 10, 4 }, { 5, 5 }, { 30, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A8C4[] = {
|
|
{ -20, 0 }, { 150, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A8F0[] = {
|
|
{ -20, 0 }, { 120, 1 }, { 140, 2 }, { 25, 13 }, { 45, 14 }, { -5, 15 }, { 15, 16 },
|
|
{ 15, 17 }, { 45, 7 }, { 50, 8 }, { 8193, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A924[] = {
|
|
{ -20, 0 }, { 180, 1 }, { 10, 13 }, { 80, 14 }, { 0, 15 }, { 10, 16 },
|
|
{ 25, 17 }, { 45, 7 }, { 80, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011A954[] = {
|
|
{ -10, 0 }, { 150, 1 }, { 250, 2 }, { 10, 4 }, { 50, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A974[] = {
|
|
{ -10, 0 }, { 150, 1 }, { 250, 2 }, { 10, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A994[] = {
|
|
{ -40, 0 }, { 150, 1 }, { 250, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A9B8[] = {
|
|
{ -40, 0 }, { 250, 1 }, { 250, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A9DC[] = {
|
|
{ -10, 0 }, { 300, 1 }, { 50, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011A9F8[] = {
|
|
{ -80, 0 }, { 150, 1 }, { 250, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AA14[] = {
|
|
{ -120, 0 }, { 250, 1 }, { 250, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AA30[] = {
|
|
{ -10, 0 }, { 150, 1 }, { 250, 2 }, { 5, 3 }, { 100, 4 }, { 5, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AA58[] = {
|
|
{ -40, 0 }, { 150, 1 }, { 150, 2 }, { 0, 3 }, { 10, 4 }, { 5, 5 }, { 30, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AA80[] = {
|
|
{ -20, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 },
|
|
{ 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 13568, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AAB0[] = {
|
|
{ -40, 0 }, { 150, 1 }, { 150, 2 }, { 10, 4 }, { 50, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AAD0[] = {
|
|
{ -40, 0 }, { 150, 1 }, { 180, 2 }, { 12, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AAF0[] = {
|
|
{ -40, 0 }, { 150, 1 }, { 150, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AB14[] = {
|
|
{ -40, 0 }, { 150, 1 }, { 150, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AB38[] = {
|
|
{ -40, 0 }, { 200, 1 }, { 50, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AB54[] = {
|
|
{ -80, 0 }, { 150, 1 }, { 150, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AB70[] = {
|
|
{ -120, 0 }, { 150, 1 }, { 150, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AB8C[] = {
|
|
{ -40, 0 }, { 150, 1 }, { 150, 2 }, { 0, 3 }, { 100, 4 }, { 5, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011ABB4[] = {
|
|
{ -40, 0 }, { 180, 1 }, { 25, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 60, 7 }, { 50, 8 }, { 8298, 9 }, { -20, 11 }, { 30, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011ABE0[] = {
|
|
{ -20, 0 }, { 280, 1 }, { 300, 2 }, { 20, 3 }, { 15, 4 }, { 5, 5 }, { 40, 6 }, { 60, 7 }, { 100, 8 }, { 4, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AC08[] = {
|
|
{ -50, 0 }, { 250, 1 }, { 70, 3 }, { 0, 10 }, { 15, 4 }, { 5, 5 },
|
|
{ 60, 7 }, { 100, 8 }, { 8202, 9 }, { -50, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011AC34[] = {
|
|
{ -30, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 10, 15 },
|
|
{ 20, 16 }, { 70, 17 }, { 45, 7 }, { 10, 8 }, { 10, 4 }, { 13568, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AC64[] = {
|
|
{ -40, 0 }, { 150, 1 }, { 250, 2 }, { -5, 3 }, { 18, 4 }, { 5, 5 }, { 60, 6 }, { 60, 7 }, { 40, 8 }, { 5, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AC8C[] = {
|
|
{ -50, 0 }, { 220, 1 }, { 250, 2 }, { 10, 3 }, { 16, 4 }, { 20, 5 }, { 60, 7 }, { 100, 8 }, { 1536, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011ACB0[] = {
|
|
{ -40, 0 }, { 180, 1 }, { 220, 2 }, { -2, 3 }, { 12, 4 }, { 100, 5 }, { 45, 7 }, { 100, 8 }, { 9728, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011ACD4[] = {
|
|
{ -7, 0 }, { 14, 1 }, { 100, 2 }, { 10, 4 }, { 0, 19 }, { -30, 20 }, { -5, 21 }, { 40, 7 }, { 9728, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011ACF8[] = {
|
|
{ -60, 0 }, { 180, 1 }, { 220, 2 }, { 25, 13 }, { 45, 14 }, { -5, 15 }, { 15, 16 },
|
|
{ 15, 17 }, { 45, 7 }, { 50, 8 }, { 9729, 9 }, { -60, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011AD2C[] = {
|
|
{ -60, 0 }, { 140, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 },
|
|
{ 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 13568, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AD5C[] = {
|
|
{ -20, 0 }, { 150, 1 }, { 250, 2 }, { 0, 3 }, { 15, 4 }, { 5, 5 }, { 40, 6 }, { 60, 7 }, { 60, 8 }, { 1, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AD84[] = {
|
|
{ -30, 0 }, { 150, 1 }, { 10, 13 }, { 40, 14 }, { -10, 15 }, { 0, 16 },
|
|
{ 25, 17 }, { 60, 7 }, { 40, 8 }, { 8194, 9 }, { -50, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011ADB4[] = {
|
|
{ 0, 0 }, { 150, 1 }, { 300, 2 }, { 0, 3 }, { 12, 4 }, { 5, 5 }, { 70, 6 }, { 70, 7 }, { 40, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011ADDC[] = {
|
|
{ -20, 0 }, { 160, 1 }, { 10, 13 }, { 60, 14 }, { -5, 15 }, { 0, 16 },
|
|
{ 25, 17 }, { 70, 7 }, { 50, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011AE0C[] = {
|
|
{ -20, 0 }, { 150, 1 }, { 300, 2 }, { -5, 3 }, { 15, 4 }, { 5, 5 }, { 40, 6 }, { 70, 7 }, { 70, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AE34[] = {
|
|
{ -30, 0 }, { 125, 1 }, { 10, 13 }, { 10, 14 }, { 0, 15 }, { 0, 16 },
|
|
{ 50, 17 }, { 60, 7 }, { 50, 8 }, { 8194, 9 }, { -50, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011AE64[] = {
|
|
{ 10, 0 }, { 150, 1 }, { 250, 2 }, { 0, 3 }, { 15, 4 }, { 15, 5 }, { 40, 6 }, { 60, 7 }, { 100, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AE8C[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 45, 13 }, { 40, 14 }, { 5, 15 }, { -5, 16 },
|
|
{ 35, 17 }, { 60, 7 }, { 100, 8 }, { 8194, 9 }, { -40, 11 }, { 60, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011AEBC[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 500, 2 }, { 10, 3 }, { 16, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 80, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AEE4[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 20, 13 }, { 60, 14 }, { 0, 15 }, { 10, 16 },
|
|
{ 15, 17 }, { 45, 7 }, { 50, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011AF14[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 500, 2 }, { 10, 3 }, { 20, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 80, 8 }, { 131, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AF3C[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 20, 13 }, { 60, 14 }, { 0, 15 }, { 10, 16 },
|
|
{ 15, 17 }, { 45, 7 }, { 50, 8 }, { 8322, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011AF6C[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 500, 2 }, { 10, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 60, 7 }, { 80, 8 }, { 131, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AF94[] = {
|
|
{ -20, 0 }, { 100, 1 }, { 150, 2 }, { -10, 3 }, { 15, 4 }, { 10, 5 }, { 40, 6 }, { 80, 7 }, { 60, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011AFBC[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 10, 13 }, { 80, 14 }, { -10, 15 }, { 10, 16 },
|
|
{ 25, 17 }, { 70, 7 }, { 40, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011AFEC[] = {
|
|
{ -20, 0 }, { 150, 1 }, { 300, 2 }, { 0, 3 }, { 20, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 80, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B014[] = {
|
|
{ 0, 0 }, { 400, 1 }, { 0, 13 }, { 60, 14 }, { -10, 15 }, { 5, 16 },
|
|
{ 25, 17 }, { 45, 7 }, { 40, 8 }, { 8194, 9 }, { -20, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B044[] = {
|
|
{ -10, 0 }, { 150, 1 }, { 200, 2 }, { -10, 3 }, { 12, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 50, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B06C[] = {
|
|
{ 40, 0 }, { 330, 1 }, { 330, 2 }, { -5, 3 }, { 15, 4 }, { 15, 5 }, { 40, 6 }, { 60, 7 }, { 100, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B094[] = {
|
|
{ -40, 0 }, { 250, 1 }, { 0, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B0B0[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 500, 2 }, { 10, 3 }, { 20, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 80, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B0D8[] = {
|
|
{ -20, 0 }, { 180, 1 }, { 20, 13 }, { 60, 14 }, { 0, 15 }, { 10, 16 },
|
|
{ 25, 17 }, { 45, 7 }, { 50, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B108[] = {
|
|
{ 0, 0 }, { 120, 1 }, { 280, 2 }, { 60, 23 }, { 8, 4 }, { 40, 6 }, { 60, 7 }, { 50, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B12C[] = {
|
|
{ 0, 0 }, { 120, 1 }, { 280, 2 }, { 60, 23 }, { 8, 4 }, { 40, 6 }, { 60, 7 }, { 50, 8 }, { 128, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B150[] = {
|
|
{ 0, 0 }, { 270, 1 }, { 300, 2 }, { 120, 23 }, { 8, 4 }, { 60, 6 }, { 60, 7 }, { 100, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B174[] = {
|
|
{ 0, 0 }, { 270, 1 }, { 300, 2 }, { 120, 23 }, { 6, 4 }, { 60, 6 }, { 60, 7 }, { 100, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B198[] = {
|
|
{ -40, 0 },
|
|
{ 100, 4 },
|
|
{ 60, 7 },
|
|
{ 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B1A8[] = {
|
|
{ -40, 0 },
|
|
{ 100, 4 },
|
|
{ 60, 7 },
|
|
{ 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B1B8[] = {
|
|
{ -40, 0 },
|
|
{ 100, 4 },
|
|
{ 60, 7 },
|
|
{ 13568, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B1C8[] = {
|
|
{ -40, 0 },
|
|
{ 25, 4 },
|
|
{ 60, 7 },
|
|
{ 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B1D8[] = {
|
|
{ -40, 0 }, { 50, 4 }, { 80, 5 }, { 60, 7 }, { 1, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B1EC[] = {
|
|
{ -40, 0 },
|
|
{ 60, 7 },
|
|
{ 16128, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B1F8[] = {
|
|
{ -40, 0 }, { 50, 4 }, { 80, 5 }, { 60, 7 }, { 4, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B20C[] = {
|
|
{ 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B210[] = {
|
|
{ 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B214[] = {
|
|
{ 60, 7 },
|
|
{ 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B21C[] = {
|
|
{ 60, 7 },
|
|
{ 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B224[] = {
|
|
{ 30, 24 },
|
|
{ 0, 25 },
|
|
{ 4, 4 },
|
|
{ 13568, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B234[] = {
|
|
{ -40, 0 },
|
|
{ 60, 7 },
|
|
{ 12800, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B240[] = {
|
|
{ -5, 0 },
|
|
{ 60, 7 },
|
|
{ 12802, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B24C[] = {
|
|
{ -5, 0 },
|
|
{ 60, 7 },
|
|
{ 12810, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B258[] = {
|
|
{ 0, 0 }, { 2, 1 }, { 30, 2 }, { 10, 4 }, { 45, 7 }, { 12800, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B270[] = {
|
|
{ 1, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B274[] = {
|
|
{ -256, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B278[] = {
|
|
{ -255, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B27C[] = {
|
|
{ -40, 0 }, { 100, 4 }, { 80, 5 }, { 60, 7 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B290[] = {
|
|
{ -40, 0 },
|
|
{ 60, 1 },
|
|
{ 60, 7 },
|
|
{ 2, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B2A0[] = {
|
|
{ -30, 0 },
|
|
{ 45, 1 },
|
|
{ 100, 7 },
|
|
{ 8193, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B2B0[] = {
|
|
{ 12800, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B2B4[] = {
|
|
{ -50, 0 }, { 450, 1 }, { 40, 3 }, { 180, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 70, 7 }, { 30, 8 }, { 12, 9 }, { -50, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B2E0[] = {
|
|
{ 13569, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B2E4[] = {
|
|
{ 60, 7 },
|
|
{ 30, 8 },
|
|
{ 12800, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B2F0[] = {
|
|
{ 12818, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B2F4[] = {
|
|
{ -50, 0 }, { 300, 1 }, { 300, 2 }, { 50, 3 }, { 20, 4 }, { 10, 5 }, { 50, 6 }, { 70, 7 }, { 40, 8 }, { 2, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B31C[] = {
|
|
{ -50, 0 }, { 300, 1 }, { 10, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B348[] = {
|
|
{ -50, 0 }, { 300, 1 }, { 300, 2 }, { 12, 4 }, { 35, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B368[] = {
|
|
{ -80, 0 }, { 300, 1 }, { 300, 2 }, { 60, 3 }, { 70, 7 }, { 30, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B384[] = {
|
|
{ -120, 0 }, { 300, 1 }, { 300, 2 }, { 70, 3 }, { 50, 7 }, { 30, 8 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B3A0[] = {
|
|
{ -20, 0 }, { 300, 1 }, { 350, 2 }, { 50, 3 }, { 100, 4 },
|
|
{ 10, 5 }, { 100, 6 }, { 70, 7 }, { 30, 8 }, { -4094, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B3C8[] = {
|
|
{ -50, 0 }, { 200, 1 }, { 200, 2 }, { 20, 3 }, { 16, 4 }, { 10, 5 }, { 50, 6 }, { 60, 7 }, { 50, 8 }, { 2, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B3F0[] = {
|
|
{ -50, 0 }, { 200, 1 }, { 40, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B41C[] = {
|
|
{ -50, 0 }, { 150, 1 }, { 250, 2 }, { 12, 4 }, { 35, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B43C[] = {
|
|
{ -80, 0 }, { 200, 1 }, { 200, 2 }, { 40, 3 }, { 60, 7 }, { 30, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B458[] = {
|
|
{ -120, 0 }, { 200, 1 }, { 200, 2 }, { 60, 3 }, { 50, 7 }, { 30, 8 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B474[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 250, 2 }, { 20, 3 }, { 100, 4 },
|
|
{ 10, 5 }, { 100, 6 }, { 60, 7 }, { 30, 8 }, { -4094, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B49C[] = {
|
|
{ -30, 0 },
|
|
{ 60, 7 },
|
|
{ 266, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B4A8[] = {
|
|
{ -20, 0 },
|
|
{ 150, 1 },
|
|
{ 60, 7 },
|
|
{ 528, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B4B8[] = {
|
|
{ 0, 0 }, { 400, 1 }, { 500, 2 }, { 35, 3 }, { 14, 4 }, { 5, 5 }, { 20, 6 }, { 60, 7 }, { 40, 8 }, { 18, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B4E0[] = {
|
|
{ -20, 0 }, { 250, 1 }, { 5, 13 }, { 10, 14 }, { 30, 15 }, { 20, 16 },
|
|
{ 25, 17 }, { 45, 7 }, { 60, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B510[] = {
|
|
{ 0, 0 }, { 300, 1 }, { 500, 2 }, { 60, 3 }, { 8, 4 }, { 5, 5 }, { 60, 6 }, { 60, 7 }, { 30, 8 }, { 18, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B538[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 500, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 70, 6 }, { 70, 7 }, { 80, 8 }, { 18, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B560[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 70, 7 }, { 80, 8 }, { 8218, 9 }, { -40, 11 }, { 40, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B58C[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 60, 7 }, { 80, 8 }, { 8218, 9 }, { -40, 11 }, { 40, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B5B8[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 500, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 18, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B5E0[] = {
|
|
{ -20, 0 }, { 750, 1 }, { 750, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 70, 6 }, { 70, 7 }, { 80, 8 }, { 18, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B608[] = {
|
|
{ -20, 0 }, { 750, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 70, 7 }, { 80, 8 }, { 8218, 9 }, { -40, 11 }, { 40, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B634[] = {
|
|
{ -20, 0 }, { 750, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 70, 7 }, { 80, 8 }, { 8202, 9 }, { -40, 11 }, { 40, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B660[] = {
|
|
{ -20, 0 }, { 750, 1 }, { 750, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 70, 7 }, { 20, 8 }, { 18, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B688[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 500, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 70, 6 }, { 70, 7 }, { 80, 8 }, { 2, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B6B0[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 70, 7 }, { 80, 8 }, { 8202, 9 }, { -40, 11 }, { 40, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B6DC[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 60, 7 }, { 80, 8 }, { 8202, 9 }, { -40, 11 }, { 40, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B708[] = {
|
|
{ -20, 0 }, { 500, 1 }, { 500, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 2, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B730[] = {
|
|
{ -30, 0 }, { 120, 1 }, { -10, 3 }, { 170, 10 }, { 0, 21 }, { 60, 7 }, { 9474, 9 }, { 25, 4 }, { 6, 22 },
|
|
};
|
|
|
|
CameraModeValue D_8011B754[] = {
|
|
{ 20, 4 },
|
|
{ 12800, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B75C[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 10, 3 }, { 12, 4 }, { 10, 5 }, { 35, 6 }, { 60, 7 }, { 60, 8 }, { 2, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B784[] = {
|
|
{ 0, 0 }, { 200, 1 }, { 300, 2 }, { 20, 3 }, { 12, 4 }, { 10, 5 }, { 35, 6 }, { 55, 7 }, { 60, 8 }, { 3842, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B7AC[] = {
|
|
{ -20, 0 }, { 250, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 45, 7 }, { 50, 8 }, { 12042, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B7D8[] = {
|
|
{ -20, 0 }, { 250, 1 }, { 0, 13 }, { 80, 14 }, { 0, 15 }, { 0, 16 },
|
|
{ 25, 17 }, { 55, 7 }, { 80, 8 }, { 12034, 9 }, { -40, 11 }, { 25, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B808[] = {
|
|
{ -30, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 },
|
|
{ 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 16160, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B838[] = {
|
|
{ 0, 0 }, { 5, 1 }, { 50, 2 }, { 10, 4 }, { 0, 19 }, { 0, 20 }, { 0, 21 }, { 45, 7 }, { 3840, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B85C[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 12, 4 }, { 35, 6 }, { 60, 7 }, { 40, 8 }, { 3840, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B87C[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 300, 2 }, { 15, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 3840, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B89C[] = {
|
|
{ -80, 0 }, { 200, 1 }, { 300, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 3840, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B8B8[] = {
|
|
{ -120, 0 }, { 300, 1 }, { 300, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 12032, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B8D4[] = {
|
|
{ 16128, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B8D8[] = {
|
|
{ 30, 0 }, { 200, 1 }, { 300, 2 }, { -20, 3 }, { 15, 4 }, { 5, 26 }, { 50, 6 }, { 70, 7 }, { 70, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B900[] = {
|
|
{ -30, 0 }, { 160, 1 }, { 10, 13 }, { 10, 14 }, { 0, 15 }, { 0, 16 },
|
|
{ 70, 17 }, { 60, 7 }, { 40, 8 }, { 8194, 9 }, { -50, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B930[] = {
|
|
{ -20, 0 }, { 350, 1 }, { 350, 2 }, { 20, 3 }, { 15, 4 }, { 5, 5 }, { 30, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B958[] = {
|
|
{ -20, 0 }, { 200, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B984[] = {
|
|
{ -20, 0 }, { 180, 1 }, { 10, 13 }, { 80, 14 }, { -10, 15 }, { 10, 16 },
|
|
{ 25, 17 }, { 45, 7 }, { 80, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011B9B4[] = {
|
|
{ -20, 0 }, { 350, 1 }, { 350, 2 }, { 10, 4 }, { 50, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B9D4[] = {
|
|
{ -20, 0 }, { 350, 1 }, { 350, 2 }, { 15, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011B9F4[] = {
|
|
{ -40, 0 }, { 350, 1 }, { 350, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011BA18[] = {
|
|
{ -40, 0 }, { 350, 1 }, { 350, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011BA3C[] = {
|
|
{ -50, 0 }, { 350, 1 }, { 350, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011BA58[] = {
|
|
{ -100, 0 }, { 350, 1 }, { 350, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011BA74[] = {
|
|
{ -10, 0 }, { 350, 1 }, { 350, 2 }, { 20, 3 }, { 100, 4 }, { 5, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011BA9C[] = {
|
|
{ 0, 0 }, { 280, 1 }, { 25, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 },
|
|
{ 70, 7 }, { 30, 8 }, { 8298, 9 }, { -20, 11 }, { 30, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011BAC8[] = {
|
|
{ -10, 0 }, { 280, 1 }, { 320, 2 }, { -8, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 60, 7 }, { 80, 8 }, { 2, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011BAF0[] = {
|
|
{ -20, 0 }, { 180, 1 }, { 200, 2 }, { 35, 13 }, { 45, 14 }, { 0, 15 }, { -5, 16 },
|
|
{ 20, 17 }, { 50, 7 }, { 50, 8 }, { 8193, 9 }, { -50, 11 }, { 30, 12 },
|
|
};
|
|
|
|
CameraModeValue D_8011BB24[] = {
|
|
{ -80, 0 }, { 200, 1 }, { 250, 2 }, { 30, 13 }, { 10, 14 }, { -8, 15 },
|
|
{ -8, 16 }, { 30, 17 }, { 50, 7 }, { 50, 8 }, { 10, 4 }, { 13600, 9 },
|
|
};
|
|
|
|
CameraModeValue D_8011BB54[] = {
|
|
{ -30, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 },
|
|
{ 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 13728, 9 },
|
|
};
|
|
|
|
CameraMode D_8011BB84[] = {
|
|
{ 2, 10, D_8011A3A0 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5FC }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011BC2C[] = {
|
|
{ 2, 10, D_8011A6C0 }, { 7, 11, D_8011A6E8 }, { 12, 13, D_8011A714 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A748 }, { 23, 9, D_8011A7D8 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A7FC }, { 22, 8, D_8011A798 }, { 42, 7, D_8011A83C }, { 42, 7, D_8011A858 },
|
|
{ 22, 8, D_8011A7B8 }, { 30, 7, D_8011A820 }, { 2, 10, D_8011A874 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011BCD4[] = {
|
|
{ 2, 10, D_8011A89C }, { 7, 11, D_8011A8C4 }, { 12, 13, D_8011A8F0 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A924 }, { 23, 9, D_8011A994 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A9B8 }, { 22, 8, D_8011A954 }, { 42, 7, D_8011A9F8 }, { 42, 7, D_8011AA14 },
|
|
{ 22, 8, D_8011A974 }, { 30, 7, D_8011A9DC }, { 2, 10, D_8011AA30 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011BD7C[] = {
|
|
{ 2, 10, D_8011AA58 }, { 7, 11, D_8011A8C4 }, { 12, 13, D_8011A714 }, { 14, 12, D_8011AA80 },
|
|
{ 27, 12, D_8011A924 }, { 23, 9, D_8011AAF0 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011AB14 }, { 22, 8, D_8011AAB0 }, { 42, 7, D_8011AB54 }, { 42, 7, D_8011AB70 },
|
|
{ 22, 8, D_8011AAD0 }, { 30, 7, D_8011AB38 }, { 2, 10, D_8011AB8C }, { 7, 11, D_8011ABB4 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011BE24[] = {
|
|
{ 24, 10, D_8011ABE0 }, { 7, 11, D_8011AC08 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011AC34 },
|
|
{ 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 24, 10, D_8011AC64 }, { 0, 0, NULL },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
};
|
|
|
|
// HORSE0 0x8500018F (10000101000000000000000110001111)
|
|
CameraMode D_8011BEC4[] = {
|
|
{ 4, 9, D_8011AC8C }, { 4, 9, D_8011ACB0 }, { 12, 13, D_8011ACF8 }, { 14, 12, D_8011AD2C }, { 0, 0, NULL },
|
|
{ 0, 0, NULL }, { 0, 0, NULL }, { 19, 9, D_8011ACD4 }, { 19, 9, D_8011A4F4 },
|
|
};
|
|
|
|
CameraMode D_8011BF0C[] = {
|
|
{ 2, 10, D_8011AD5C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011AD84 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A9DC }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011BFB4[] = {
|
|
{ 2, 10, D_8011ADB4 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011ADDC }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C05C[] = {
|
|
{ 2, 10, D_8011AE0C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011AE34 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C104[] = {
|
|
{ 2, 10, D_8011AE64 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011AE8C }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C1AC[] = {
|
|
{ 2, 10, D_8011AEBC }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011AEE4 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C254[] = {
|
|
{ 2, 10, D_8011AF14 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011AF3C }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 2, 10, D_8011AF6C }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 2, 10, D_8011AF6C }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C2FC[] = {
|
|
{ 2, 10, D_8011AF94 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011AFBC }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C3A4[] = {
|
|
{ 2, 10, D_8011AFEC }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011B014 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C44C[] = {
|
|
{ 2, 10, D_8011B044 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011B014 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C4F4[] = {
|
|
{ 2, 10, D_8011B06C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011AE8C }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011B094 }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C59C[] = {
|
|
{ 2, 10, D_8011B0B0 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011B0D8 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C644[] = {
|
|
{ 3, 9, D_8011B108 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 3, 9, D_8011B12C }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C6EC[] = {
|
|
{ 3, 9, D_8011B150 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 3, 9, D_8011B174 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C794[] = {
|
|
{ 32, 4, D_8011B198 },
|
|
{ 0, 0, NULL },
|
|
{ 32, 4, D_8011B1A8 },
|
|
{ 32, 4, D_8011B1B8 },
|
|
};
|
|
|
|
CameraMode D_8011C7B4[] = {
|
|
{ 32, 4, D_8011B1C8 },
|
|
};
|
|
|
|
CameraMode D_8011C7BC[] = {
|
|
{ 33, 5, D_8011B1D8 },
|
|
};
|
|
|
|
CameraMode D_8011C7C4[] = {
|
|
{ 40, 3, D_8011B1EC },
|
|
};
|
|
|
|
CameraMode D_8011C7CC[] = {
|
|
{ 35, 5, D_8011B1F8 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 0, 0, NULL }, { 0, 0, NULL }, { 0, 0, NULL },
|
|
{ 0, 0, NULL }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011C874[] = {
|
|
{ 34, 1, D_8011B20C },
|
|
{ 0, 0, NULL },
|
|
{ 34, 1, D_8011B210 },
|
|
{ 34, 1, D_8011B210 },
|
|
};
|
|
|
|
CameraMode D_8011C894[] = {
|
|
{ 48, 2, D_8011B214 },
|
|
{ 0, 0, NULL },
|
|
{ 48, 2, D_8011B21C },
|
|
{ 11, 4, D_8011B224 },
|
|
};
|
|
|
|
CameraMode D_8011C8B4[] = {
|
|
{ 67, 1, D_8011B20C },
|
|
};
|
|
|
|
CameraMode D_8011C8BC[] = {
|
|
{ 44, 3, D_8011B234 },
|
|
};
|
|
|
|
CameraMode D_8011C8C4[] = {
|
|
{ 70, 3, D_8011B240 },
|
|
{ 70, 3, D_8011B24C },
|
|
};
|
|
|
|
CameraMode D_8011C8D4[] = {
|
|
{ 20, 6, D_8011B258 },
|
|
};
|
|
|
|
CameraMode D_8011C8DC[] = {
|
|
{ 41, 1, D_8011B20C },
|
|
};
|
|
|
|
CameraMode D_8011C8E4[] = {
|
|
{ 41, 1, D_8011B270 },
|
|
};
|
|
|
|
CameraMode D_8011C8EC[] = {
|
|
{ 47, 1, D_8011B274 },
|
|
};
|
|
|
|
CameraMode D_8011C8F4[] = {
|
|
{ 47, 1, D_8011B278 },
|
|
};
|
|
|
|
CameraMode D_8011C8FC[] = {
|
|
{ 33, 5, D_8011B27C },
|
|
};
|
|
|
|
CameraMode D_8011C904[] = {
|
|
{ 43, 4, D_8011B290 },
|
|
{ 43, 4, D_8011B2A0 },
|
|
};
|
|
|
|
CameraMode D_8011C914[] = {
|
|
{ 52, 1, D_8011B2B0 },
|
|
};
|
|
|
|
CameraMode D_8011C91C[] = {
|
|
{ 53, 1, D_8011B2B0 },
|
|
};
|
|
|
|
CameraMode D_8011C924[] = {
|
|
{ 7, 11, D_8011B2B4 },
|
|
{ 0, 0, NULL },
|
|
{ 0, 0, NULL },
|
|
{ 9, 1, D_8011B2E0 },
|
|
};
|
|
|
|
CameraMode D_8011C944[] = {
|
|
{ 54, 3, D_8011B2E4 },
|
|
};
|
|
|
|
CameraMode D_8011C94C[] = {
|
|
{ 55, 3, D_8011B2E4 },
|
|
};
|
|
|
|
CameraMode D_8011C954[] = {
|
|
{ 60, 1, D_8011B2F0 },
|
|
};
|
|
|
|
CameraMode D_8011C95C[] = {
|
|
{ 56, 1, D_8011B2B0 },
|
|
};
|
|
|
|
CameraMode D_8011C964[] = {
|
|
{ 2, 10, D_8011B2F4 }, { 7, 11, D_8011B31C }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011B348 }, { 42, 7, D_8011B368 }, { 42, 7, D_8011B384 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011B3A0 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011CA0C[] = {
|
|
{ 2, 10, D_8011B3C8 }, { 7, 11, D_8011B3F0 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011B41C }, { 42, 7, D_8011B43C }, { 42, 7, D_8011B458 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011B474 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011CAB4[] = {
|
|
{ 70, 3, D_8011B49C },
|
|
};
|
|
|
|
CameraMode D_8011CABC[] = {
|
|
{ 43, 4, D_8011B4A8 },
|
|
};
|
|
|
|
CameraMode D_8011CAC4[] = {
|
|
{ 68, 1, D_8011B20C },
|
|
};
|
|
|
|
CameraMode D_8011CACC[] = {
|
|
{ 65, 1, D_8011B2B0 },
|
|
};
|
|
|
|
CameraMode D_8011CAD4[] = {
|
|
{ 46, 1, D_8011B2B0 },
|
|
};
|
|
|
|
CameraMode D_8011CADC[] = {
|
|
{ 57, 1, D_8011B2B0 },
|
|
};
|
|
|
|
CameraMode D_8011CAE4[] = {
|
|
{ 2, 10, D_8011B4B8 }, { 7, 11, D_8011A8C4 }, { 12, 13, D_8011A8F0 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011B4E0 }, { 23, 9, D_8011A994 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A9B8 }, { 22, 8, D_8011A954 }, { 42, 7, D_8011A9F8 }, { 42, 7, D_8011AA14 },
|
|
{ 22, 8, D_8011A974 }, { 30, 7, D_8011A9DC }, { 2, 10, D_8011B510 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011CB8C[] = {
|
|
{ 2, 10, D_8011B538 }, { 7, 11, D_8011B560 }, { 0, 0, NULL },
|
|
{ 0, 0, NULL }, { 7, 11, D_8011B58C }, { 2, 10, D_8011B5B8 },
|
|
};
|
|
|
|
CameraMode D_8011CBBC[] = {
|
|
{ 2, 10, D_8011B5E0 }, { 7, 11, D_8011B608 }, { 0, 0, NULL },
|
|
{ 0, 0, NULL }, { 7, 11, D_8011B634 }, { 2, 10, D_8011B660 },
|
|
};
|
|
|
|
CameraMode D_8011CBEC[] = {
|
|
{ 2, 10, D_8011B688 }, { 7, 11, D_8011B6B0 }, { 0, 0, NULL },
|
|
{ 0, 0, NULL }, { 7, 11, D_8011B6DC }, { 2, 10, D_8011B708 },
|
|
};
|
|
|
|
CameraMode D_8011CC1C[] = {
|
|
{ 15, 9, D_8011B730 },
|
|
};
|
|
|
|
CameraMode D_8011CC24[] = {
|
|
{ 61, 2, D_8011B754 },
|
|
};
|
|
|
|
CameraMode D_8011CC2C[] = {
|
|
{ 2, 10, D_8011B75C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011CCD4[] = {
|
|
{ 2, 10, D_8011B784 }, { 7, 11, D_8011B7AC }, { 27, 12, D_8011B7D8 }, { 14, 12, D_8011B808 },
|
|
{ 27, 12, D_8011B7D8 }, { 0, 0, NULL }, { 19, 9, D_8011B838 }, { 0, 0, NULL },
|
|
{ 0, 0, NULL }, { 0, 0, NULL }, { 0, 0, NULL }, { 0, 0, NULL },
|
|
{ 0, 0, NULL }, { 22, 8, D_8011B85C }, { 42, 7, D_8011B89C }, { 42, 7, D_8011B8B8 },
|
|
{ 22, 8, D_8011B87C },
|
|
};
|
|
|
|
CameraMode D_8011CD5C[] = {
|
|
{ 50, 1, D_8011B8D4 },
|
|
};
|
|
|
|
CameraMode D_8011CD64[] = {
|
|
{ 2, 10, D_8011B8D8 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011B900 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011CE0C[] = {
|
|
{ 2, 10, D_8011B930 }, { 7, 11, D_8011B958 }, { 12, 13, D_8011A8F0 }, { 14, 12, D_8011A428 },
|
|
{ 27, 12, D_8011B984 }, { 23, 9, D_8011B9F4 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011BA18 }, { 22, 8, D_8011B9B4 }, { 42, 7, D_8011BA3C }, { 42, 7, D_8011BA58 },
|
|
{ 22, 8, D_8011B9D4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011BA74 }, { 7, 11, D_8011BA9C },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011CEB4[] = {
|
|
{ 2, 10, D_8011BAC8 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011BAF0 }, { 14, 12, D_8011BB24 },
|
|
{ 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraMode D_8011CF5C[] = {
|
|
{ 35, 5, D_8011B1F8 }, { 0, 0, NULL }, { 35, 5, D_8011B1F8 }, { 14, 12, D_8011A428 },
|
|
{ 0, 0, NULL }, { 0, 0, NULL }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 0, 0, NULL }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
};
|
|
|
|
CameraMode D_8011CFBC[] = {
|
|
{ 2, 10, D_8011B75C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011BB54 },
|
|
{ 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 },
|
|
{ 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C },
|
|
{ 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 },
|
|
{ 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 },
|
|
{ 12, 13, D_8011A68C },
|
|
};
|
|
|
|
CameraSetting sCameraSettings[] = {
|
|
{ { 0x00000000 }, NULL }, { { 0x051FFFFF }, D_8011BB84 }, { { 0x051FFFFF }, D_8011BC2C },
|
|
{ { 0x051FFFFF }, D_8011BCD4 }, { { 0x051FFFFF }, D_8011BD7C }, { { 0x050FF7FF }, D_8011BE24 },
|
|
{ { 0x8500018F }, D_8011BEC4 }, { { 0x051FFFFF }, D_8011BF0C }, { { 0x051FFFFF }, D_8011BFB4 },
|
|
{ { 0x051FFFFF }, D_8011C05C }, { { 0x051FFFFF }, D_8011C104 }, { { 0x051FFFFF }, D_8011C1AC },
|
|
{ { 0x051FFFFF }, D_8011C254 }, { { 0x051FFFFF }, D_8011C2FC }, { { 0x051FFFFF }, D_8011C3A4 },
|
|
{ { 0x051FFFFF }, D_8011C44C }, { { 0x051FFFFF }, D_8011C4F4 }, { { 0x051FFFFF }, D_8011C59C },
|
|
{ { 0x851FFFFF }, D_8011C644 }, { { 0x851FFFFF }, D_8011C6EC }, { { 0x8500000D }, D_8011C794 },
|
|
{ { 0x85000001 }, D_8011C7B4 }, { { 0x85000001 }, D_8011C7BC }, { { 0x85000001 }, D_8011C7C4 },
|
|
{ { 0x851E1FFF }, D_8011C7CC }, { { 0x8C00000D }, D_8011C874 }, { { 0x8C00000D }, D_8011C894 },
|
|
{ { 0x8C000001 }, D_8011C8B4 }, { { 0xC5000001 }, D_8011C8BC }, { { 0xC5000003 }, D_8011C8C4 },
|
|
{ { 0xC5000001 }, D_8011C8D4 }, { { 0xC5000001 }, D_8011C8DC }, { { 0xC5000001 }, D_8011C8E4 },
|
|
{ { 0x05000001 }, D_8011C8EC }, { { 0x05000001 }, D_8011C8F4 }, { { 0x85000001 }, D_8011C8FC },
|
|
{ { 0x05000003 }, D_8011C904 }, { { 0xCE000001 }, D_8011C914 }, { { 0x4E000001 }, D_8011C91C },
|
|
{ { 0x05000009 }, D_8011C924 }, { { 0x45000001 }, D_8011C944 }, { { 0x45000001 }, D_8011C94C },
|
|
{ { 0x45000001 }, D_8011C954 }, { { 0x45000001 }, D_8011C95C }, { { 0x451FFFFF }, D_8011C964 },
|
|
{ { 0x451FFFFF }, D_8011CA0C }, { { 0xC5000001 }, D_8011CAB4 }, { { 0x45000001 }, D_8011CABC },
|
|
{ { 0x05000001 }, D_8011CAC4 }, { { 0x45000001 }, D_8011CACC }, { { 0x45000001 }, D_8011CAD4 },
|
|
{ { 0x45000001 }, D_8011CADC }, { { 0x451FFFFF }, D_8011CAE4 }, { { 0x05000033 }, D_8011CB8C },
|
|
{ { 0x05000033 }, D_8011CBBC }, { { 0x05000033 }, D_8011CBEC }, { { 0x4A000001 }, D_8011CC1C },
|
|
{ { 0x05000001 }, D_8011CC24 }, { { 0x051FFFFF }, D_8011CC2C }, { { 0x0501E05F }, D_8011CCD4 },
|
|
{ { 0x45000001 }, D_8011CD5C }, { { 0x051FFFFF }, D_8011CD64 }, { { 0x051FFFFF }, D_8011CE0C },
|
|
{ { 0x051FFFFF }, D_8011CEB4 }, { { 0xC5000ECD }, D_8011CF5C }, { { 0x051FFFFF }, D_8011CFBC },
|
|
};
|
|
|
|
s32 Camera_Normal0(Camera* camera);
|
|
s32 Camera_Normal1(Camera* camera);
|
|
s32 Camera_Normal2(Camera* camera);
|
|
s32 Camera_Normal3(Camera* camera);
|
|
s32 Camera_Normal4(Camera* camera);
|
|
s32 Camera_Parallel0(Camera* camera);
|
|
s32 Camera_Parallel1(Camera* camera);
|
|
s32 Camera_Parallel2(Camera* camera);
|
|
void Camera_Parallel3(Camera* camera);
|
|
s32 Camera_Parallel4(Camera* camera);
|
|
s32 Camera_KeepOn0(Camera* camera);
|
|
s32 Camera_KeepOn1(Camera* camera);
|
|
s32 Camera_KeepOn2(Camera* camera);
|
|
s32 Camera_KeepOn3(Camera* camera);
|
|
s32 Camera_KeepOn4(Camera* camera);
|
|
s32 Camera_Subj0(Camera* camera);
|
|
s32 Camera_Subj1(Camera* camera);
|
|
s32 Camera_Subj2(Camera* camera);
|
|
s32 Camera_Subj3(Camera* camera);
|
|
s32 Camera_Subj4(Camera* camera);
|
|
s32 Camera_Jump0(Camera* camera);
|
|
s32 Camera_Jump1(Camera* camera);
|
|
s32 Camera_Jump2(Camera* camera);
|
|
s32 Camera_Jump3(Camera* camera);
|
|
s32 Camera_Jump4(Camera* camera);
|
|
s32 Camera_Battle0(Camera* camera);
|
|
s32 Camera_Battle1(Camera* camera);
|
|
s32 Camera_Battle2(Camera* camera);
|
|
s32 Camera_Battle3(Camera* camera);
|
|
s32 Camera_Battle4(Camera* camera);
|
|
s32 Camera_Fixed0(Camera* camera);
|
|
s32 Camera_Fixed1(Camera* camera);
|
|
s32 Camera_Fixed2(Camera* camera);
|
|
s32 Camera_Fixed3(Camera* camera);
|
|
s32 Camera_Fixed4(Camera* camera);
|
|
s32 Camera_Data0(Camera* camera);
|
|
s32 Camera_Data1(Camera* camera);
|
|
s32 Camera_Data2(Camera* camera);
|
|
s32 Camera_Data3(Camera* camera);
|
|
s32 Camera_Data4(Camera* camera);
|
|
s32 Camera_Unique0(Camera* camera);
|
|
s32 Camera_Unique1(Camera* camera);
|
|
s32 Camera_Unique2(Camera* camera);
|
|
s32 Camera_Unique3(Camera* camera);
|
|
s32 Camera_Unique4(Camera* camera);
|
|
s32 Camera_Unique5(Camera* camera);
|
|
s32 Camera_Unique6(Camera* camera);
|
|
s32 Camera_Unique7(Camera* camera);
|
|
s32 Camera_Unique8(Camera* camera);
|
|
s32 Camera_Unique9(Camera* camera);
|
|
s32 Camera_Demo0(Camera* camera);
|
|
s32 Camera_Demo1(Camera* camera);
|
|
s32 Camera_Demo2(Camera* camera);
|
|
s32 Camera_Demo3(Camera* camera);
|
|
s32 Camera_Demo4(Camera* camera);
|
|
s32 Camera_Demo5(Camera* camera);
|
|
s32 Camera_Demo6(Camera* camera);
|
|
void Camera_Demo7(Camera* camera);
|
|
s32 Camera_Demo8(Camera* camera);
|
|
s32 Camera_Demo9(Camera* camera);
|
|
s32 Camera_Special0(Camera* camera);
|
|
s32 Camera_Special1(Camera* camera);
|
|
s32 Camera_Special2(Camera* camera);
|
|
s32 Camera_Special3(Camera* camera);
|
|
s32 Camera_Special4(Camera* camera);
|
|
s32 Camera_Special5(Camera* camera);
|
|
s32 Camera_Special6(Camera* camera);
|
|
s32 Camera_Special7(Camera* camera);
|
|
s32 Camera_Special8(Camera* camera);
|
|
s32 Camera_Special9(Camera* camera);
|
|
|
|
void* sCameraFunctions[] = {
|
|
NULL,
|
|
Camera_Normal0,
|
|
Camera_Normal1,
|
|
Camera_Normal2,
|
|
Camera_Normal3,
|
|
Camera_Normal4,
|
|
Camera_Parallel0,
|
|
Camera_Parallel1,
|
|
Camera_Parallel2,
|
|
Camera_Parallel3,
|
|
Camera_Parallel4,
|
|
Camera_KeepOn0,
|
|
Camera_KeepOn1,
|
|
Camera_KeepOn2,
|
|
Camera_KeepOn3,
|
|
Camera_KeepOn4,
|
|
Camera_Subj0,
|
|
Camera_Subj1,
|
|
Camera_Subj2,
|
|
Camera_Subj3,
|
|
Camera_Subj4,
|
|
Camera_Jump0,
|
|
Camera_Jump1,
|
|
Camera_Jump2,
|
|
Camera_Jump3,
|
|
Camera_Jump4,
|
|
Camera_Battle0,
|
|
Camera_Battle1,
|
|
Camera_Battle2,
|
|
Camera_Battle3,
|
|
Camera_Battle4,
|
|
Camera_Fixed0,
|
|
Camera_Fixed1,
|
|
Camera_Fixed2,
|
|
Camera_Fixed3,
|
|
Camera_Fixed4,
|
|
Camera_Data0,
|
|
Camera_Data1,
|
|
Camera_Data2,
|
|
Camera_Data3,
|
|
Camera_Data4,
|
|
Camera_Unique0,
|
|
Camera_Unique1,
|
|
Camera_Unique2,
|
|
Camera_Unique3,
|
|
Camera_Unique4,
|
|
Camera_Unique5,
|
|
Camera_Unique6,
|
|
Camera_Unique7,
|
|
Camera_Unique8,
|
|
Camera_Unique9,
|
|
Camera_Demo0,
|
|
Camera_Demo1,
|
|
Camera_Demo2,
|
|
Camera_Demo3,
|
|
Camera_Demo4,
|
|
Camera_Demo5,
|
|
Camera_Demo6,
|
|
Camera_Demo7,
|
|
Camera_Demo8,
|
|
Camera_Demo9,
|
|
Camera_Special0,
|
|
Camera_Special1,
|
|
Camera_Special2,
|
|
Camera_Special3,
|
|
Camera_Special4,
|
|
Camera_Special5,
|
|
Camera_Special6,
|
|
Camera_Special7,
|
|
Camera_Special8,
|
|
Camera_Special9,
|
|
};
|
|
|
|
s32 sInitRegs = 1; // 8011D390
|
|
|
|
UNK_TYPE D_8011D394 = 0;
|
|
s32 D_8011D398 = -1;
|
|
s16 D_8011D39C = 0; // size = 4 ?
|
|
u_D_8011D3A0 D_8011D3A0 = { {
|
|
0x0000,
|
|
0x0001,
|
|
} };
|
|
|
|
s32 D_8011D3A4 = 0x02;
|
|
s32 D_8011D3A8 = 0x20;
|
|
s32 D_8011D3AC = -1;
|
|
|
|
s16 D_8011D3B0[] = {
|
|
0x0AAA, 0xF556, 0x1555, 0xEAAB, 0x2AAA, 0xD556, 0x3FFF, 0xC001, 0x5555, 0xAAAB, 0x6AAA, 0x9556, 0x7FFF, 0x0000,
|
|
};
|
|
|
|
s16 D_8011D3CC[] = {
|
|
0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, 0xFD3A, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, 0xFA74, 0x0000,
|
|
};
|
|
|
|
s32 D_8011D3E8 = 0; // size = 8?
|
|
s32 D_8011D3EC = 0;
|
|
s32 D_8011D3F0 = 0;
|
|
|
|
s32 D_8011D3F4 = -16;
|
|
|
|
char sCameraFunctionNames[][8] = {
|
|
"NONE ", "NORM0()", "NORM1()", "NORM2()", "NORM3()", "NORM4()", "PARA0()", "PARA1()", "PARA2()", "PARA3()",
|
|
"PARA4()", "KEEP0()", "KEEP1()", "KEEP2()", "KEEP3()", "KEEP4()", "SUBJ0()", "SUBJ1()", "SUBJ2()", "SUBJ3()",
|
|
"SUBJ4()", "JUMP0()", "JUMP1()", "JUMP2()", "JUMP3()", "JUMP4()", "BATT0()", "BATT1()", "BATT2()", "BATT3()",
|
|
"BATT4()", "FIXD0()", "FIXD1()", "FIXD2()", "FIXD3()", "FIXD4()", "DATA0()", "DATA1()", "DATA2()", "DATA3()",
|
|
"DATA4()", "UNIQ0()", "UNIQ1()", "UNIQ2()", "UNIQ3()", "UNIQ4()", "UNIQ5()", "UNIQ6()", "UNIQ7()", "UNIQ8()",
|
|
"UNIQ9()", "DEMO0()", "DEMO1()", "DEMO2()", "DEMO3()", "DEMO4()", "DEMO5()", "DEMO6()", "DEMO7()", "DEMO8()",
|
|
"DEMO9()", "SPEC0()", "SPEC1()", "SPEC2()", "SPEC3()", "SPEC4()", "SPEC5()", "SPEC6()", "SPEC7()", "SPEC8()",
|
|
"SPEC9()", "", "", "", "", "",
|
|
};
|
|
|
|
u8 D_8011D658[] = {
|
|
0x42, 0x48, 0x00, 0x00, 0xEE, 0x3A, 0xD5, 0x58, 0x42, 0x96, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08,
|
|
0x42, 0xA0, 0x00, 0x00, 0xEE, 0x3A, 0x80, 0x08, 0x41, 0x70, 0x00, 0x00, 0xEE, 0x3A, 0x80, 0x08,
|
|
};
|
|
|
|
u8 D_8011D678[] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x42, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
|
|
0xC0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00,
|
|
};
|
|
|
|
s32 D_8011D6A8 = -200;
|
|
|
|
u8 D_8011D6AC[] = {
|
|
0x8F, 0xFF, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFF, 0x03, 0x03,
|
|
};
|
|
|
|
u8 D_8011D6D8[] = {
|
|
0x00, 0x13, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xFF,
|
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF,
|
|
0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011D724[] = {
|
|
0x8F, 0xFF, 0x24, 0x24, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
|
|
0xC1, 0xA0, 0x00, 0x00, 0x81, 0xFF, 0x21, 0x21, 0x00, 0x13, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x3F, 0x80,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70,
|
|
0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011D79C[] = {
|
|
0xCF, 0xFF, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0x03, 0x03, 0x00, 0x13, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3F, 0x80,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xC1, 0x20, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0xC1, 0xFF, 0x03, 0x03, 0x00, 0x09, 0x00, 0x00, 0x42, 0x70,
|
|
0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01,
|
|
0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011D83C[] = {
|
|
0x83, 0xFF, 0x21, 0x41, 0x00, 0x14, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
|
0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011D88C[] = {
|
|
0x81, 0xFF, 0x03, 0x03, 0x00, 0x14, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
|
0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011D8DC[] = {
|
|
0x8F, 0xFF, 0x04, 0x04, 0x00, 0x14, 0x00, 0x01, 0x42, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
|
|
0xC2, 0xA0, 0x00, 0x00, 0x82, 0xFF, 0x21, 0x21, 0x00, 0x05, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00,
|
|
0x40, 0xA0, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70,
|
|
0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011D954[] = {
|
|
0x0F, 0xFF, 0xC1, 0xC1, 0x00, 0x14, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x43, 0x7A, 0x00, 0x00, 0x83, 0xFF, 0x05, 0xB1, 0x00, 0x05, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3D, 0xCC,
|
|
0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x41, 0x20, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x82, 0xFF, 0x21, 0x21, 0x00, 0x05, 0x00, 0x02, 0x42, 0x70,
|
|
0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01,
|
|
0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011D9F4[] = {
|
|
0x8F, 0xFF, 0x05, 0x04, 0x00, 0x14, 0x00, 0x02, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00,
|
|
0x43, 0x96, 0x00, 0x00, 0x82, 0xFF, 0x21, 0x21, 0x00, 0x05, 0x00, 0x02, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x41, 0xA0, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70,
|
|
0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011DA6C[] = {
|
|
0x45, 0x3E, 0xA0, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xDB, 0x60, 0x00,
|
|
0x45, 0x55, 0x70, 0x00, 0xC3, 0xBE, 0x00, 0x00, 0xC5, 0x43, 0x00, 0x00, 0x45, 0x45, 0x80, 0x00,
|
|
0x43, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x43, 0x70, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011DA9C[] = {
|
|
0x45, 0x45, 0x80, 0x00, 0x45, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xBD, 0x60, 0x00,
|
|
0x45, 0x81, 0x10, 0x00, 0xC4, 0x50, 0xC0, 0x00, 0xC5, 0x3E, 0x00, 0x00, 0x45, 0x81, 0x38, 0x00,
|
|
0x43, 0x66, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0xC2, 0x96, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011DACC[] = {
|
|
0x44, 0xC4, 0x40, 0x00, 0x45, 0x66, 0x00, 0x00, 0x45, 0x67, 0x40, 0x00, 0x43, 0xC5, 0x80, 0x00,
|
|
};
|
|
|
|
u8 D_8011DADC[] = {
|
|
0x43, 0xA0, 0x00, 0x00, 0x43, 0xA0, 0x00, 0x00, 0x43, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
u8 D_8011DAEC[] = {
|
|
0xF8, 0x30, 0xFC, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
s16 D_8011DAFC[] = {
|
|
1, 2, 58, 3, 4, 62,
|
|
};
|
|
|
|
s16 D_8011DB08 = 1008;
|
|
|
|
s16 D_8011DB0C = 342;
|
|
|
|
s32 D_8011DB10 = 0;
|
|
|
|
s32 D_8011DB14 = 0;
|
|
|
|
// BSS
|
|
extern GlobalContext* D_8015BD7C;
|
|
extern DbgCamera D_8015BD80;
|
|
extern Vec3f D_8015BD84;
|
|
extern Vec3f D_8015BD90;
|
|
extern Vec3f D_8015BD9C;
|
|
extern f32 D_8015BDC8;
|
|
extern Vec3s D_8015CE46;
|
|
extern CollisionPoly* D_8015CE4C;
|
|
|
|
/*===============================================================*/
|
|
typedef struct {
|
|
Vec3f unk_00;
|
|
Vec3f unk_0C;
|
|
CollisionPoly* unk_18;
|
|
char unk_1C[0x8];
|
|
s32 unk_24;
|
|
} struct_80043D18;
|
|
|
|
f32 func_800437F0(f32 arg0, f32 arg1) {
|
|
f32 percent = 0.4f;
|
|
f32 ret = fabsf(arg1);
|
|
|
|
if (arg0 < ret) {
|
|
ret = 1;
|
|
} else if (ret < (f32)arg0 * (1 - percent)) { //! float cast needed to match
|
|
ret = (SQ(arg1) * (1 - percent)) / SQ((1 - percent) * arg0);
|
|
} else {
|
|
ret = 1 - (0.4f * SQ(arg0 - ret)) / SQ(0.4f * arg0);
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
f32 func_8004389C(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
|
|
f32 temp1 = arg0 - arg1;
|
|
f32 temp2;
|
|
f32 ret;
|
|
|
|
if (fabsf(temp1) >= arg3) {
|
|
temp2 = temp1 * arg2;
|
|
ret = arg1 + temp2;
|
|
} else {
|
|
ret = arg0;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
f32 func_800438DC(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
|
|
f32 temp1 = arg0 - arg1;
|
|
f32 temp2;
|
|
f32 ret;
|
|
|
|
if (fabsf(temp1) >= arg3) {
|
|
temp2 = temp1 * arg2;
|
|
ret = arg1 + temp2;
|
|
} else {
|
|
ret = arg1;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
s16 func_8004391C(s16 arg0, s16 arg1, f32 arg2, s16 arg3) {
|
|
s16 temp1 = arg0 - arg1;
|
|
s16 temp2;
|
|
s32 ret;
|
|
|
|
if (ABS(temp1) >= arg3) {
|
|
temp2 = temp1 * arg2 + 0.5f;
|
|
ret = arg1 + temp2;
|
|
} else {
|
|
ret = arg0;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
s16 func_800439AC(s16 arg0, s16 arg1, f32 arg2, s16 arg3) {
|
|
s16 temp1 = arg0 - arg1;
|
|
s16 temp2;
|
|
s32 ret;
|
|
|
|
if (ABS(temp1) >= arg3) {
|
|
temp2 = temp1 * arg2 + 0.5f;
|
|
ret = arg1 + temp2;
|
|
} else {
|
|
ret = arg1;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
void func_80043A3C(Vec3f* arg0, Vec3f* arg1, f32 arg2, f32 arg3, f32 arg4) {
|
|
arg1->x = func_8004389C(arg0->x, arg1->x, arg3, arg4);
|
|
arg1->y = func_8004389C(arg0->y, arg1->y, arg2, arg4);
|
|
arg1->z = func_8004389C(arg0->z, arg1->z, arg3, arg4);
|
|
}
|
|
|
|
void func_80043ABC(Camera* camera) {
|
|
camera->unk_C0.z = 100.0f;
|
|
camera->unk_C0.y = OREG(7);
|
|
camera->unk_C0.x = OREG(6);
|
|
camera->unk_CC.x = OREG(2) * 0.01f;
|
|
camera->unk_CC.y = OREG(3) * 0.01f;
|
|
camera->unk_CC.z = OREG(4) * 0.01f;
|
|
}
|
|
|
|
void func_80043B60(Camera* camera) {
|
|
camera->unk_C0.x = OREG(27);
|
|
camera->unk_C0.z = OREG(27);
|
|
camera->unk_C0.y = OREG(27);
|
|
camera->unk_CC.x = 0.001f;
|
|
camera->unk_CC.y = 0.001f;
|
|
camera->unk_CC.z = 0.001f;
|
|
}
|
|
|
|
Vec3f* func_80043BC4(Vec3f* arg0, Vec3s* arg1) {
|
|
Vec3f sp4;
|
|
|
|
sp4.x = arg1->x;
|
|
sp4.y = arg1->y;
|
|
sp4.z = arg1->z;
|
|
|
|
*arg0 = sp4;
|
|
return arg0;
|
|
}
|
|
|
|
Vec3f* func_80043C28(Vec3f* arg0, Vec3f* arg1, VecSph* arg2) {
|
|
Vec3f sp24, sp18;
|
|
OLib_VecSphGeoToVec3f(&sp18, arg2);
|
|
|
|
sp24.x = arg1->x + sp18.x;
|
|
sp24.y = arg1->y + sp18.y;
|
|
sp24.z = arg1->z + sp18.z;
|
|
|
|
*arg0 = sp24;
|
|
return arg0;
|
|
}
|
|
|
|
Vec3f* func_80043CAC(Vec3f* arg0, Vec3f* arg1, Vec3f* arg2, f32 arg3) {
|
|
Vec3f sp4;
|
|
|
|
sp4.x = arg1->x + (arg2->x * arg3);
|
|
sp4.y = arg1->y + (arg2->y * arg3);
|
|
sp4.z = arg1->z + (arg2->z * arg3);
|
|
|
|
*arg0 = sp4;
|
|
return arg0;
|
|
}
|
|
|
|
s32 func_80043D18(Camera* camera, Vec3f* arg1, struct_80043D18* arg2) {
|
|
CollisionContext* colCtx;
|
|
Vec3f sp68, sp5C, sp50;
|
|
f32 temp_ret;
|
|
CollisionPoly* sp48;
|
|
s32 sp44;
|
|
VecSph sp3C;
|
|
|
|
colCtx = &camera->globalCtx->colCtx;
|
|
OLib_Vec3fDiffToVecSphGeo(&sp3C, arg1, &arg2->unk_00);
|
|
sp3C.r += 8.0f;
|
|
func_80043C28(&sp5C, arg1, &sp3C);
|
|
|
|
if (func_8003DD6C(colCtx, arg1, &sp5C, &sp68, &arg2->unk_18, 1, 1, 1, -1, &arg2->unk_24) == 0) {
|
|
OLib_Vec3fDistNormalize(&sp50, arg1, &arg2->unk_00);
|
|
|
|
arg2->unk_0C.x = -sp50.x;
|
|
arg2->unk_0C.y = -sp50.y;
|
|
arg2->unk_0C.z = -sp50.z;
|
|
|
|
sp68 = arg2->unk_00;
|
|
sp68.y += 5.0f;
|
|
temp_ret = func_8003CCA4(colCtx, &sp48, &sp44, &sp68);
|
|
|
|
if ((arg2->unk_00.y - temp_ret) > 5.0f) {
|
|
arg2->unk_00.x += arg2->unk_0C.x;
|
|
arg2->unk_00.y += arg2->unk_0C.y;
|
|
arg2->unk_00.z += arg2->unk_0C.z;
|
|
return 0;
|
|
}
|
|
|
|
arg2->unk_18 = sp48;
|
|
sp68.y = temp_ret + 1.0f;
|
|
arg2->unk_24 = sp44;
|
|
}
|
|
|
|
arg2->unk_0C.x = arg2->unk_18->norm.x * (1.f / 32767);
|
|
arg2->unk_0C.y = arg2->unk_18->norm.y * (1.f / 32767);
|
|
arg2->unk_0C.z = arg2->unk_18->norm.z * (1.f / 32767);
|
|
arg2->unk_00.x = arg2->unk_0C.x + sp68.x;
|
|
arg2->unk_00.y = arg2->unk_0C.y + sp68.y;
|
|
arg2->unk_00.z = arg2->unk_0C.z + sp68.z;
|
|
|
|
return sp44 + 1;
|
|
}
|
|
|
|
void func_80043F34(Camera* camera, Vec3f* arg1, Vec3f* arg2) {
|
|
struct_80043D18 sp20;
|
|
Vec3s unused;
|
|
|
|
sp20.unk_00 = *arg2;
|
|
func_80043D18(camera, arg1, &sp20);
|
|
*arg2 = sp20.unk_00;
|
|
}
|
|
|
|
// 242 lines
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80043F94.s")
|
|
|
|
void func_80044340(Camera* camera, Vec3f* arg1, Vec3f* arg2) {
|
|
struct_80043D18 sp20;
|
|
Vec3s unused;
|
|
|
|
sp20.unk_00 = *arg2;
|
|
func_80043F94(camera, arg1, &sp20);
|
|
*arg2 = sp20.unk_00;
|
|
}
|
|
|
|
s32 func_800443A0(Camera* camera, Vec3f* arg1, Vec3f* arg2) {
|
|
s32 pad;
|
|
Vec3f sp40;
|
|
s32 pad2;
|
|
s32 sp38;
|
|
CollisionPoly* sp34;
|
|
CollisionContext* colCtx;
|
|
colCtx = &camera->globalCtx->colCtx;
|
|
|
|
sp34 = NULL;
|
|
if (func_8003DD6C(colCtx, arg1, arg2, &sp40, &sp34, 1, 1, 1, 0, &sp38) && (func_80038B7C(sp34, arg1) < 0.0f)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
f32 func_80044434(Camera* camera, Vec3f* arg1, Vec3f* arg2, s32* arg3) {
|
|
s32 sp2C; // unused
|
|
CollisionPoly* sp28;
|
|
f32 temp_ret = func_8003C940(&camera->globalCtx->colCtx, &sp28, arg3, arg2);
|
|
|
|
if (temp_ret == -32000.0f) {
|
|
arg1->x = 0.0f;
|
|
arg1->z = 0.0f;
|
|
arg1->y = 1.0f;
|
|
} else {
|
|
arg1->x = sp28->norm.x * (1.f / 32767);
|
|
arg1->y = sp28->norm.y * (1.f / 32767);
|
|
arg1->z = sp28->norm.z * (1.f / 32767);
|
|
}
|
|
|
|
return temp_ret;
|
|
}
|
|
|
|
f32 func_80044510(Camera* camera, Vec3f* arg1) {
|
|
Vec3f sp2C, sp20;
|
|
s32 sp1C;
|
|
|
|
sp2C = *arg1;
|
|
sp2C.y += 80.0f;
|
|
|
|
return func_80044434(camera, &sp20, &sp2C, &sp1C);
|
|
}
|
|
|
|
// 125 lines (loop)
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80044568.s")
|
|
|
|
s16 func_80044740(Camera* camera, s32 arg1) {
|
|
return func_80041A4C(&camera->globalCtx->colCtx, arg1, 50);
|
|
}
|
|
|
|
struct_80041C10_ret* func_8004476C(Camera* camera) {
|
|
return func_80041C10(&camera->globalCtx->colCtx, camera->unk_148, 50);
|
|
}
|
|
|
|
s32 func_8004479C(Camera* camera, s32* arg1, Vec3f* arg2) {
|
|
s32 temp_ret;
|
|
PosRot sp20;
|
|
s32 ret;
|
|
|
|
func_8002EF44(&sp20, &camera->player->actor);
|
|
temp_ret = func_80041A28(&camera->globalCtx->colCtx, arg2, *arg1);
|
|
|
|
if (func_80041A4C(&camera->globalCtx->colCtx, temp_ret, *arg1) == 0) {
|
|
ret = -1;
|
|
} else {
|
|
ret = temp_ret;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
s32 func_8004481C(Camera* camera, s16* arg1) {
|
|
CollisionPoly* sp44;
|
|
s32 sp40; // unused
|
|
s32 sp3C;
|
|
PosRot sp28;
|
|
|
|
func_8002EF44(&sp28, &camera->player->actor);
|
|
sp28.pos.y += Player_GetCameraYOffset(camera->player);
|
|
if (func_8003C940(&camera->globalCtx->colCtx, &sp44, &sp3C, &sp28.pos) == -32000.0f) {
|
|
return 0;
|
|
}
|
|
*arg1 = func_80041B80(&camera->globalCtx->colCtx, sp44, sp3C);
|
|
return func_80041C98(&camera->globalCtx->colCtx, sp44, sp3C);
|
|
}
|
|
|
|
s32 func_800448CC(Camera* camera, f32* arg1) {
|
|
PosRot sp34;
|
|
s32 sp30;
|
|
s32 temp_ret;
|
|
|
|
func_8002EF44(&sp34, &camera->player->actor);
|
|
*arg1 = sp34.pos.y;
|
|
|
|
if (func_8004213C(camera->globalCtx, &camera->globalCtx->colCtx, sp34.pos.x, sp34.pos.z, arg1, &sp30) == 0) {
|
|
*arg1 = -32000.0f;
|
|
return -1;
|
|
}
|
|
if (!(camera->player->stateFlags1 & 0x8000000)) {
|
|
*arg1 = -32000.0f;
|
|
return -1;
|
|
}
|
|
|
|
temp_ret = func_80042538(&camera->globalCtx->colCtx, sp30);
|
|
if ((temp_ret <= 0) || (func_80042548(&camera->globalCtx->colCtx, sp30) <= 0)) {
|
|
return -2;
|
|
}
|
|
|
|
return temp_ret;
|
|
}
|
|
|
|
f32 func_800449AC(Camera* camera, Vec3f* arg1, s32* arg2) {
|
|
PosRot sp2C;
|
|
f32 sp28;
|
|
s32 sp24;
|
|
|
|
func_8002EF44(&sp2C, &camera->player->actor);
|
|
sp28 = sp2C.pos.y;
|
|
|
|
if (func_8004213C(camera->globalCtx, &camera->globalCtx->colCtx, arg1->x, arg1->z, &sp28, &sp24) == 0) {
|
|
return -32000.f;
|
|
}
|
|
if (sp28 < arg1->y) {
|
|
return -32000.f;
|
|
}
|
|
|
|
*arg2 = func_8004259C(&camera->globalCtx->colCtx, sp24);
|
|
return sp28;
|
|
}
|
|
|
|
s16 func_80044A74(Vec3f* arg0, Vec3f* arg1) {
|
|
return Math_atan2f(arg1->x - arg0->x, arg1->z - arg0->z) * (180.0f / M_PI) * (32767.5f / 180.0f) + 0.5f;
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80044ADC.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80044E68.s")
|
|
|
|
f32 func_800450A4(Camera* camera, f32 arg1) {
|
|
f32 ret;
|
|
|
|
if (camera->unk_100 < (OREG(41) * 0.01f)) {
|
|
ret = OREG(41) * 0.01f;
|
|
} else if (arg1 <= camera->unk_100) {
|
|
ret = arg1;
|
|
} else {
|
|
ret = OREG(42) * 0.01f * camera->unk_100;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
void Camera_CopyModeValuesToPREG(Camera* camera, s16 mode) {
|
|
s32 i;
|
|
|
|
if (PREG(82)) {
|
|
osSyncPrintf("camera: res: stat (%d/%d/%d)\n", camera->unk_164, camera->setting, mode);
|
|
}
|
|
for (i = 0; i < sCameraSettings[camera->setting].cameraModes[mode].valueCnt; i++) {
|
|
CameraModeValue* phi_s0 = &sCameraSettings[camera->setting].cameraModes[mode].values[i];
|
|
PREG(phi_s0->param) = phi_s0->val;
|
|
if (PREG(82)) {
|
|
osSyncPrintf("camera: res: PREG(%02d) = %d\n", phi_s0->param, phi_s0->val);
|
|
}
|
|
}
|
|
camera->unk_15E = 0;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_CopyModeValuesToPREG.s")
|
|
#endif
|
|
|
|
#ifdef NON_MATCHING
|
|
s32 Camera_CopyPREGToModeValues(Camera* camera) {
|
|
CameraModeValue* phi_s0;
|
|
s32 i;
|
|
|
|
for (i = 0; i < sCameraSettings[camera->setting].cameraModes[camera->mode].valueCnt; i++) {
|
|
phi_s0 = &sCameraSettings[camera->setting].cameraModes[camera->mode].values[i];
|
|
phi_s0->val = PREG(phi_s0->param);
|
|
if (PREG(82)) {
|
|
osSyncPrintf("camera: res: %d = PREG(%02d)\n", phi_s0->val, phi_s0->param);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_CopyPREGToModeValues.s")
|
|
#endif
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045350.s")
|
|
|
|
void* func_8004545C(Vec3f* arg0, s32 arg1, s32 arg2, struct_80043D18* arg3, struct_80043D18* arg4) {
|
|
Vec3f sp24;
|
|
|
|
if (func_800427B4(arg3->unk_18, arg4->unk_18, arg1, arg2, &sp24) == 0) {
|
|
osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: corner check no cross point %x %x\n" VT_RST, arg3, arg4);
|
|
*arg0 = arg3->unk_00;
|
|
return arg0;
|
|
}
|
|
|
|
*arg0 = sp24;
|
|
return arg0;
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045508.s")
|
|
|
|
#ifdef NON_MATCHING
|
|
// CLOSE: stack is 4 bytes too big
|
|
f32 func_80045714(Vec3f* arg0, s16 arg1, s16 arg2, f32 arg3) {
|
|
VecSph sp1C;
|
|
f32 sp18;
|
|
|
|
OLib_Vec3fToVecSphGeo(&sp1C, arg0);
|
|
sp18 = Math_Coss(sp1C.pitch);
|
|
sp18 = fabsf(Math_Coss(arg1 - sp1C.yaw) * sp18);
|
|
return Math_Coss(arg1 - arg2) * (sp18 * arg3);
|
|
}
|
|
#else
|
|
f32 func_80045714(Vec3f* a, s16 b, s16 c, f32 arg3);
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045714.s")
|
|
#endif
|
|
|
|
f32 OLib_ClampMaxDist(f32, f32);
|
|
|
|
s32 func_800457A8(Camera* camera, VecSph* arg1, f32 arg2, s16 arg3) {
|
|
f32 unused;
|
|
Vec3f sp50;
|
|
Vec3f sp44;
|
|
s32 unused2;
|
|
PosRot* sp2C;
|
|
f32 temp_ret;
|
|
|
|
temp_ret = Player_GetCameraYOffset(camera->player);
|
|
|
|
sp50.x = 0.f;
|
|
sp50.z = 0.f;
|
|
sp50.y = temp_ret + arg2;
|
|
|
|
sp2C = &camera->playerPosRot;
|
|
if (arg3 != 0) {
|
|
sp50.y -= OLib_ClampMaxDist(func_80045714(&camera->unk_108, sp2C->rot.y, arg1->yaw, OREG(9)), temp_ret);
|
|
}
|
|
func_80043A3C(&sp50, &camera->unk_E4, camera->unk_CC.y, camera->unk_CC.x, 0.1f);
|
|
|
|
sp44.x = sp2C->pos.x + camera->unk_E4.x;
|
|
sp44.y = sp2C->pos.y + camera->unk_E4.y;
|
|
sp44.z = sp2C->pos.z + camera->unk_E4.z;
|
|
func_80043A3C(&sp44, &camera->at, camera->unk_100, camera->unk_100, 0.2f);
|
|
|
|
return 1;
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
// CLOSE: regalloc
|
|
s32 func_800458D4(Camera* camera, VecSph* arg1, f32 arg2, f32* arg3, s16 arg4) {
|
|
f32 phi_f2;
|
|
Vec3f sp60;
|
|
Vec3f sp54;
|
|
f32 temp_ret;
|
|
PosRot* temp_s1;
|
|
f32 sp48;
|
|
s32 pad[2];
|
|
|
|
sp60.y = Player_GetCameraYOffset(camera->player) + arg2;
|
|
sp60.x = 0.0f;
|
|
sp60.z = 0.0f;
|
|
|
|
temp_s1 = &camera->playerPosRot;
|
|
if (arg4 != 0) {
|
|
sp60.y -= func_80045714(&camera->unk_108, temp_s1->rot.y, arg1->yaw, OREG(9));
|
|
}
|
|
|
|
sp48 = temp_s1->pos.y - *arg3;
|
|
temp_ret = Math_atan2f(sp48, OLib_Vec3fDistXZ(&camera->at, &camera->eye)); // f2 and f14 are swapped
|
|
|
|
if (OREG(32) * (M_PI / 180) < temp_ret) {
|
|
phi_f2 = 1.0f - sinf(temp_ret - OREG(32) * (M_PI / 180));
|
|
} else if (OREG(33) * (M_PI / 180) > temp_ret) {
|
|
phi_f2 = 1.0f - sinf(OREG(33) * (M_PI / 180) - temp_ret);
|
|
} else {
|
|
phi_f2 = 1.0f;
|
|
}
|
|
|
|
sp60.y -= sp48 * phi_f2;
|
|
func_80043A3C(&sp60, &camera->unk_E4, OREG(29) * 0.01f, OREG(30) * 0.01f, 0.1f);
|
|
|
|
sp54.x = temp_s1->pos.x + camera->unk_E4.x;
|
|
sp54.y = temp_s1->pos.y + camera->unk_E4.y;
|
|
sp54.z = temp_s1->pos.z + camera->unk_E4.z;
|
|
func_80043A3C(&sp54, &camera->at, camera->unk_100, camera->unk_100, 0.2f);
|
|
|
|
return 1;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800458D4.s")
|
|
#endif
|
|
|
|
s32 func_80045B08(Camera* camera, VecSph* arg1, f32 arg2, s16 arg3) {
|
|
f32 phi_f2;
|
|
Vec3f sp48;
|
|
Vec3f sp3C;
|
|
f32 sp38; // unused
|
|
f32 temp_ret;
|
|
PosRot* temp_s1;
|
|
|
|
sp48.y = Player_GetCameraYOffset(camera->player) + arg2;
|
|
sp48.x = 0.0f;
|
|
sp48.z = 0.0f;
|
|
|
|
temp_ret = Math_Sins(arg3);
|
|
temp_s1 = &camera->playerPosRot;
|
|
|
|
if (temp_ret < 0.0f) {
|
|
phi_f2 = Math_Coss(temp_s1->rot.y - arg1->yaw);
|
|
} else {
|
|
phi_f2 = -Math_Coss(temp_s1->rot.y - arg1->yaw);
|
|
}
|
|
|
|
sp48.y -= temp_ret * phi_f2 * OREG(9);
|
|
func_80043A3C(&sp48, &camera->unk_E4, camera->unk_CC.y, camera->unk_CC.x, 0.1f);
|
|
|
|
sp3C.x = temp_s1->pos.x + camera->unk_E4.x;
|
|
sp3C.y = temp_s1->pos.y + camera->unk_E4.y;
|
|
sp3C.z = temp_s1->pos.z + camera->unk_E4.z;
|
|
func_80043A3C(&sp3C, &camera->at, camera->unk_100, camera->unk_100, 0.2f);
|
|
|
|
return 1;
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045C74.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800460A8.s")
|
|
|
|
s32 func_800466F8(Camera* camera, VecSph* arg1, f32 arg2, f32* arg3, s16 arg4) {
|
|
s32 phi_v0;
|
|
Vec3f sp60;
|
|
Vec3f sp54;
|
|
f32 sp50; // unused
|
|
f32 sp4C; // unused
|
|
f32 sp48; // I doubt this is a Vec3f
|
|
Player* sp44;
|
|
PosRot sp30;
|
|
|
|
sp48 = Player_GetCameraYOffset(camera->player);
|
|
sp44 = camera->player;
|
|
func_8002EF44(&sp30, sp44->rideActor);
|
|
|
|
if ((*(s32*)((s32)(sp44->rideActor) + 0x1F0) & 4) != 0) { // actors aren't this big, is rideActor a different type?
|
|
phi_v0 = 1;
|
|
} else {
|
|
phi_v0 = 0;
|
|
}
|
|
|
|
if (phi_v0 != 0) {
|
|
sp30.pos.y -= 49.f;
|
|
*arg3 = func_8004389C(sp30.pos.y, *arg3, 0.1f, 0.2f);
|
|
camera->unk_100 = func_8004389C(0.4f, camera->unk_100, 0.2f, 0.02f);
|
|
} else {
|
|
*arg3 = func_8004389C(sp30.pos.y, *arg3, 0.5f, 0.2f);
|
|
}
|
|
|
|
sp60.x = 0.0f;
|
|
sp60.z = 0.0f;
|
|
sp60.y = sp48 + arg2;
|
|
|
|
if (arg4 != 0) {
|
|
sp60.y -= func_80045714(&camera->unk_108, camera->playerPosRot.rot.y, arg1->yaw, OREG(9));
|
|
}
|
|
|
|
func_80043A3C(&sp60, &camera->unk_E4, camera->unk_CC.y, camera->unk_CC.x, 0.1f);
|
|
|
|
sp54.x = camera->unk_E4.x + sp30.pos.x;
|
|
sp54.y = camera->unk_E4.y + sp30.pos.y;
|
|
sp54.z = camera->unk_E4.z + sp30.pos.z;
|
|
func_80043A3C(&sp54, &camera->at, camera->unk_100, camera->unk_100, 0.2f);
|
|
|
|
return 1;
|
|
}
|
|
|
|
void func_800468CC(Camera* camera, f32 arg1, f32 arg2, f32 arg3) {
|
|
f32 sp1C;
|
|
f32 phi_f12;
|
|
|
|
if (arg1 < arg2) {
|
|
sp1C = arg2;
|
|
phi_f12 = OREG(6);
|
|
} else if (arg3 < arg1) {
|
|
sp1C = arg3;
|
|
phi_f12 = OREG(6);
|
|
} else {
|
|
sp1C = arg1;
|
|
phi_f12 = 1.0f;
|
|
}
|
|
|
|
camera->unk_C0.x = func_8004389C(phi_f12, camera->unk_C0.x, OREG(25) * 0.01f, 0.1f);
|
|
func_8004389C(sp1C, camera->dist, 1.f / camera->unk_C0.x, 0.2f);
|
|
}
|
|
|
|
f32 func_800469C0(Camera* camera, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
|
|
f32 sp1C;
|
|
f32 phi_f12;
|
|
|
|
if (arg1 < arg2) {
|
|
sp1C = arg2;
|
|
|
|
if (arg4 != 0) {
|
|
phi_f12 = OREG(6) * 0.5f;
|
|
} else {
|
|
phi_f12 = OREG(6);
|
|
}
|
|
} else if (arg3 < arg1) {
|
|
sp1C = arg3;
|
|
|
|
if (arg4 != 0) {
|
|
phi_f12 = OREG(6) * 0.5f;
|
|
} else {
|
|
phi_f12 = OREG(6);
|
|
}
|
|
} else {
|
|
sp1C = arg1;
|
|
|
|
if (arg4 != 0) {
|
|
phi_f12 = OREG(6);
|
|
} else {
|
|
phi_f12 = 1.0f;
|
|
}
|
|
}
|
|
|
|
camera->unk_C0.x = func_8004389C(phi_f12, camera->unk_C0.x, OREG(25) * 0.01f, 0.1f);
|
|
return func_8004389C(sp1C, camera->dist, 1.f / camera->unk_C0.x, 0.2f);
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
// lots of regalloc and stack issues, but that's it
|
|
void func_80046B44(Camera* camera, s16 arg1, s16 arg2, s16 arg3) {
|
|
s32 pad[2];
|
|
s16 sp1C;
|
|
s16 phi_v1;
|
|
s16 phi_v0;
|
|
f32 phi_a2;
|
|
|
|
phi_v1 = ABS(arg1);
|
|
phi_v0 = arg3 > 0 ? (s16)(Math_Coss(arg3) * arg3) : arg3;
|
|
sp1C = arg2 - phi_v0;
|
|
if (ABS(sp1C) < phi_v1) {
|
|
phi_a2 = (1.0f / camera->unk_C0.y) * 3.0f;
|
|
} else {
|
|
phi_a2 = (1.0f / camera->unk_C0.y) * func_800437F0(0.8f, 1.0f - phi_v0 * (1.0f / OREG(5)));
|
|
}
|
|
func_8004391C(sp1C, arg1, phi_a2, 0xa);
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80046B44.s")
|
|
#endif
|
|
|
|
#ifdef NON_MATCHING
|
|
// stack, regalloc, tiny bit of ordering
|
|
s16 func_80046CB4(Camera* camera, s16 arg1, s16 arg2, f32 arg3, f32 arg4) {
|
|
f32 sp34;
|
|
s16 sp1C;
|
|
f32 temp_ret;
|
|
f32 phi_f14;
|
|
s16 temp;
|
|
|
|
if (camera->unk_D8 > 0.001f) {
|
|
temp = arg1 - 0x7FFF;
|
|
sp1C = arg2 - temp;
|
|
phi_f14 = (s16)(sp1C - 0x7FFF) * (1.0f / 32767.0f);
|
|
} else {
|
|
temp = arg1 - 0x7FFF;
|
|
sp1C = arg2 - temp;
|
|
phi_f14 = OREG(48) * 0.01f;
|
|
}
|
|
temp_ret = func_800437F0(arg3, phi_f14);
|
|
sp34 = ((1.0f - temp_ret) * arg4) + temp_ret;
|
|
if (sp34 < 0.0f) {
|
|
sp34 = 0.0f;
|
|
}
|
|
// ordering stuff here
|
|
return arg1 + (s16)(sp1C * sp34 * (1.0f / camera->unk_C0.z) * func_800437F0(0.5f, camera->unk_E0)) + arg1;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80046CB4.s")
|
|
#endif
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80046E20.s")
|
|
|
|
s32 func_80047394(Camera* camera) {
|
|
return 1;
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal1.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal2.s")
|
|
#define NEXTSETTING ((values++)->val)
|
|
#ifdef NON_MATCHING
|
|
s32 Camera_Normal3(Camera* camera) {
|
|
f32 sp98;
|
|
f32 sp94;
|
|
f32 sp90;
|
|
f32 sp8C;
|
|
VecSph sp84;
|
|
VecSph sp7C;
|
|
VecSph sp74;
|
|
Vec3f* sp48;
|
|
Vec3f* sp44;
|
|
Vec3f* sp40;
|
|
f32 temp_f0;
|
|
f32 temp_f0_3;
|
|
f32 temp_f16;
|
|
f32 temp_f16_2;
|
|
f32 temp_f2;
|
|
f32 temp_f6;
|
|
s16 temp_t3;
|
|
s16 temp_v0_2;
|
|
s16 temp_v0_3;
|
|
s16 temp_v0_4;
|
|
s32 temp_a0;
|
|
s16 phi_v1;
|
|
s32 phi_v1_2;
|
|
s32 phi_a0;
|
|
CameraModeValue* values;
|
|
Normal3* normal3 = &camera->unk_00.normal3;
|
|
Normal3_Unk20* unk20;
|
|
PosRot* playerPostRot;
|
|
|
|
temp_f2 = Player_GetCameraYOffset(camera->player);
|
|
if ((((camera->unk_15E == 0) || (camera->unk_15E == 0xA)) || (camera->unk_15E == 0x14)) || QREG(0)) {
|
|
temp_f2 *= 0.01f;
|
|
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
|
|
// temp_t2 = sCameraSettings[camera->setting].unk_00 + (camera->mode * 8);
|
|
// temp_t3 = *temp_t2->unk4;
|
|
// temp_v0 = temp_t2->unk4 + 0x20;
|
|
normal3->unk_00 = temp_f2 * NEXTSETTING;
|
|
// normal3->unk_00 = (f32) ((f32) temp_t3 * temp_f2);
|
|
|
|
normal3->unk_04 = temp_f2 * NEXTSETTING;
|
|
// normal3->unk_04 = (f32) ((f32) temp_v0->unk-1C * temp_f2);
|
|
|
|
normal3->unk_08 = temp_f2 * NEXTSETTING;
|
|
// normal3->unk_08 = (f32) ((f32) temp_v0->unk-18 * temp_f2);
|
|
|
|
normal3->unk_1C = (65535.0f / 360.0f) * NEXTSETTING + 0.5f;
|
|
// normal3->unk_1C = (s16) (s32) (((f32) temp_v0->unk-14 * 182.0416717529297f) + 0.5f);
|
|
|
|
normal3->unk_0C = NEXTSETTING;
|
|
// normal3->unk_0C = (f32) temp_v0->unk-10;
|
|
|
|
normal3->unk_10 = NEXTSETTING;
|
|
// normal3->unk_10 = (f32) temp_v0->unk-C;
|
|
|
|
normal3->unk_14 = NEXTSETTING;
|
|
// normal3->unk_14 = (f32) temp_v0->unk-8;
|
|
|
|
normal3->unk_18 = NEXTSETTING * 0.01f;
|
|
// normal3->unk_18 = (f32) ((f32) temp_v0->unk-4 * 0.009999999776482582f);
|
|
|
|
normal3->unk_1E = NEXTSETTING;
|
|
// normal3->unk_1E = (s16) temp_v0->unk0;
|
|
}
|
|
|
|
if (QREG(0)) {
|
|
Camera_CopyPREGToModeValues(camera);
|
|
}
|
|
|
|
sp48 = &camera->eye;
|
|
sp44 = &camera->at;
|
|
sp40 = &camera->eyeNext;
|
|
playerPostRot = &camera->playerPosRot;
|
|
OLib_Vec3fDiffToVecSphGeo(&sp7C, sp44, sp48);
|
|
OLib_Vec3fDiffToVecSphGeo(&sp74, sp44, sp40);
|
|
D_8011D3E8 = 1;
|
|
D_8011D3A0.w = normal3->unk_1E;
|
|
unk20 = &normal3->unk_20;
|
|
|
|
// ordering here.
|
|
switch (camera->unk_15E) {
|
|
case 0:
|
|
case 0xA:
|
|
case 0x14:
|
|
case 0x19:
|
|
unk20->unk_0C = 0;
|
|
unk20->unk_24 = 0;
|
|
unk20->unk_1C = 0;
|
|
unk20->unk_14 = unk20->unk_16 = unk20->unk_18 = 0;
|
|
// unk20->unk_14 = (s16) unk20->unk_18;
|
|
// unk20->unk_16 = (s16) unk20->unk_18;
|
|
|
|
unk20->unk_20 = camera->unk_104;
|
|
unk20->unk_10 = normal3->unk_0C;
|
|
unk20->unk_2A = 0xA;
|
|
unk20->unk_26 = (1.0f / OREG(23)) * (s16)(playerPostRot->rot.y - 0x7FFF - sp7C.yaw);
|
|
unk20->unk_28 = OREG(23);
|
|
camera->unk_15E = 1;
|
|
unk20->unk_1A = 0;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
DECR(unk20->unk_2A);
|
|
/*temp_v0_2 = unk20->unk_2A;
|
|
if (temp_v0_2 != 0) {
|
|
unk20->unk_2A = (s16) (temp_v0_2 - 1);
|
|
}
|
|
*/
|
|
temp_f6 = OREG(25) * 0.01f;
|
|
temp_f16 = temp_f6 * camera->unk_E0;
|
|
sp94 = (OREG(26) * 0.01f) * camera->unk_E0;
|
|
temp_v0_3 = unk20->unk_1A;
|
|
if (temp_v0_3 != 0) {
|
|
camera->unk_C0.z = func_8004389C(normal3->unk_0C + (temp_v0_3 * 2), camera->unk_C0.z, temp_f16, 0.1f);
|
|
camera->unk_C0.y = func_8004389C((f32)OREG(7) + (unk20->unk_1A * 2), camera->unk_C0.y, sp94, 0.1f);
|
|
unk20->unk_1A--;
|
|
} else {
|
|
camera->unk_C0.z = func_8004389C(normal3->unk_0C, camera->unk_C0.z, temp_f16, 0.1f);
|
|
camera->unk_C0.y = func_8004389C(OREG(7), camera->unk_C0.y, sp94, 0.1f);
|
|
}
|
|
camera->unk_CC.x = func_8004389C(OREG(2) * 0.01f, camera->unk_CC.x, temp_f16, 0.1f);
|
|
camera->unk_CC.y = func_8004389C(OREG(3) * 0.01f, camera->unk_CC.y, sp94, 0.1f);
|
|
camera->unk_CC.z = func_8004389C(OREG(4) * 0.01f, camera->unk_CC.z, sp94, 0.1f);
|
|
temp_f0 = (1.0f / normal3->unk_10) * 0.5f;
|
|
unk20->unk_24 = func_8004391C(func_80044ADC(camera, sp7C.yaw - 0x7FFF, 1), unk20->unk_24,
|
|
temp_f0 + (temp_f0 * (1.0f - camera->unk_E0)), 0xF);
|
|
func_800466F8(camera, &sp74, normal3->unk_00, &unk20->unk_20, 1);
|
|
sp90 = (normal3->unk_08 + normal3->unk_04) * 0.5f;
|
|
OLib_Vec3fDiffToVecSphGeo(&sp84, sp44, sp40);
|
|
sp84.r = func_800469C0(camera, sp84.r, normal3->unk_04, normal3->unk_08, unk20->unk_2A);
|
|
camera->dist = sp84.r;
|
|
if (0.001f < camera->unk_D8) {
|
|
sp84.r += (sp90 - sp84.r) * 0.002f;
|
|
}
|
|
sp84.pitch = func_8004391C(normal3->unk_1C - unk20->unk_24, sp74.pitch, 1.0f / camera->unk_C0.y, 0xA);
|
|
if (OREG(5) < sp84.pitch) {
|
|
sp84.pitch = OREG(5);
|
|
}
|
|
if (sp84.pitch < OREG(34)) {
|
|
sp84.pitch = OREG(34);
|
|
}
|
|
|
|
// Probably some type of abs/clamp.
|
|
temp_a0 = playerPostRot->rot.y - (sp74.yaw - 0x7FFF);
|
|
phi_v1_2 = -temp_a0;
|
|
if (temp_a0 >= 0) {
|
|
phi_v1_2 = temp_a0;
|
|
}
|
|
phi_a0 = temp_a0;
|
|
if (phi_v1_2 >= 0x2AF9) {
|
|
if (temp_a0 > 0) {
|
|
phi_a0 = 0x2AF8;
|
|
} else {
|
|
phi_a0 = -0x2AF8;
|
|
}
|
|
}
|
|
temp_f16_2 = (phi_a0 * ((camera->unk_E0 * (1.0f - 0.5f)) + 0.5f)) / camera->unk_C0.z;
|
|
if ((150.0f * (1.0f - camera->unk_E0)) < fabsf(temp_f16_2)) {
|
|
sp84.yaw = sp74.yaw + temp_f16_2;
|
|
// sp8A = sp74.yaw + temp_f16_2;
|
|
} else {
|
|
sp84.yaw = sp74.yaw;
|
|
// sp8A = sp7A;
|
|
}
|
|
if (unk20->unk_28 > 0) {
|
|
sp84.yaw += unk20->unk_26;
|
|
// sp8A = sp8A + unk20->unk_26;
|
|
|
|
unk20->unk_28--;
|
|
}
|
|
func_80043C28(sp40, sp44, &sp84);
|
|
if (camera->status == 7) {
|
|
func_80046E20(camera, &sp84, normal3->unk_04, normal3->unk_0C, &sp8C, &normal3->unk_20);
|
|
} else {
|
|
*sp48 = *sp40;
|
|
}
|
|
camera->fov = func_8004389C(normal3->unk_14, camera->fov, camera->unk_CC.z, 1.0f);
|
|
camera->roll = func_8004391C(0, camera->roll, 0.5f, 0xA);
|
|
camera->unk_100 = func_800450A4(camera, normal3->unk_18);
|
|
return 1;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal3.s")
|
|
#endif
|
|
|
|
s32 Camera_Normal4(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Normal0(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Parallel1.s")
|
|
|
|
s32 Camera_Parallel2(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
void Camera_Parallel3(Camera* camera) {
|
|
CameraModeValue* reg = &sCameraSettings[camera->setting].cameraModes[camera->mode].values[0];
|
|
s16 val = reg->val;
|
|
|
|
D_8011D3A0.w = val;
|
|
if (val & 1) {
|
|
camera->unk_14C |= 0x400;
|
|
}
|
|
if (val & 2) {
|
|
camera->unk_14C |= 0x10;
|
|
}
|
|
}
|
|
|
|
s32 Camera_Parallel4(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Parallel0(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump1.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump2.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump3.s")
|
|
|
|
s32 Camera_Jump4(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Jump0(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle1.s")
|
|
|
|
s32 Camera_Battle2(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Battle3(Camera* camera) {
|
|
func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle4.s")
|
|
|
|
s32 Camera_Battle0(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn1.s")
|
|
|
|
s32 Camera_KeepOn2(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn3.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn4.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn0.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed1.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed2.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed3.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed4.s")
|
|
|
|
s32 Camera_Fixed0(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Subj1(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Subj2(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subj3.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subj4.s")
|
|
|
|
s32 Camera_Subj0(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Data0(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Data1(Camera* camera) {
|
|
osSyncPrintf("chau!chau!\n");
|
|
return Camera_Normal1(camera);
|
|
}
|
|
|
|
s32 Camera_Data2(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Data3(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Data4.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique1.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique2.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique3.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique0.s")
|
|
|
|
s32 Camera_Unique4(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Unique5(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Unique6(Camera* camera) {
|
|
CameraModeValue* val;
|
|
s32 pad;
|
|
Vec3f sp2C;
|
|
Vec3f* playerPosRot;
|
|
f32 offset;
|
|
|
|
if (camera->unk_15E == 0 || camera->unk_15E == 0xA || camera->unk_15E == 0x14 || QREG(0)) {
|
|
val = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
|
|
camera->unk_00.sh[0] = val[0].val;
|
|
}
|
|
if (QREG(0)) {
|
|
Camera_CopyPREGToModeValues(camera);
|
|
}
|
|
D_8011D3A0.w = camera->unk_00.sh[0];
|
|
if (camera->unk_15E == 0) {
|
|
camera->unk_15E++;
|
|
func_80043ABC(camera);
|
|
}
|
|
if (camera->player != NULL) {
|
|
offset = Player_GetCameraYOffset(camera->player);
|
|
playerPosRot = &camera->playerPosRot.pos;
|
|
sp2C = *playerPosRot;
|
|
sp2C.y += offset;
|
|
camera->dist = OLib_Vec3fDist(&sp2C, &camera->eye);
|
|
camera->unk_E4.x = camera->at.x - playerPosRot->x;
|
|
camera->unk_E4.y = camera->at.y - playerPosRot->y;
|
|
camera->unk_E4.z = camera->at.z - playerPosRot->z;
|
|
} else {
|
|
camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye);
|
|
}
|
|
if (camera->unk_00.sh[0] & 1) {
|
|
if (camera->unk_160 > 0) {
|
|
camera->unk_160--;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique7.s")
|
|
|
|
s32 Camera_Unique8(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique9.s")
|
|
|
|
void Camera_DebugPrintSplineArray(char* name, s16 length, CutsceneCameraPoint cameraPoints[]) {
|
|
s32 i;
|
|
|
|
osSyncPrintf("static SplinedatZ %s[] = {\n", name);
|
|
for (i = 0; i < length; i++) {
|
|
osSyncPrintf(" /* key frame %2d */ {\n", i);
|
|
osSyncPrintf(" /* code */ %d,\n", cameraPoints[i].continueFlag);
|
|
osSyncPrintf(" /* z */ %d,\n", cameraPoints[i].cameraRoll);
|
|
osSyncPrintf(" /* T */ %d,\n", cameraPoints[i].nextPointFrame);
|
|
osSyncPrintf(" /* zoom */ %f,\n", cameraPoints[i].viewAngle);
|
|
osSyncPrintf(" /* pos */ { %d, %d, %d }\n", cameraPoints[i].pos.x, cameraPoints[i].pos.y,
|
|
cameraPoints[i].pos.z);
|
|
osSyncPrintf(" },\n");
|
|
}
|
|
osSyncPrintf("};\n\n");
|
|
}
|
|
|
|
void Camera_Vec3fCopy(Vec3f* src, Vec3f* dst) {
|
|
dst->x = src->x;
|
|
dst->y = src->y;
|
|
dst->z = src->z;
|
|
}
|
|
|
|
void func_80054478(PosRot* arg0, Vec3f* arg1, Vec3f* arg2) {
|
|
VecSph sp28;
|
|
Vec3f sp1C;
|
|
|
|
Camera_Vec3fCopy(arg1, &sp1C);
|
|
OLib_Vec3fToVecSphGeo(&sp28, &sp1C);
|
|
sp28.yaw += arg0->rot.y;
|
|
func_80043C28(arg2, &arg0->pos, &sp28);
|
|
}
|
|
|
|
s32 func_800BB2B4(Vec3f*, f32*, f32*, CutsceneCameraPoint*, s16*, Demo1_unk_04*);
|
|
|
|
#ifdef NON_MATCHING
|
|
s32 Camera_Demo1(Camera* camera) {
|
|
Vec3f* at;
|
|
Vec3f* eyeNext;
|
|
Vec3f* eye;
|
|
char* t;
|
|
CutsceneCameraPoint* sp84;
|
|
CutsceneCameraPoint* sp80;
|
|
PosRot sp68;
|
|
Vec3f sp5C;
|
|
Vec3f sp50;
|
|
f32 sp4C;
|
|
s16* relativeToPlayer;
|
|
CameraModeValue* values;
|
|
Demo1_unk_04* unk_04;
|
|
s32 pad;
|
|
|
|
sp84 = camera->atPoints;
|
|
sp80 = camera->eyePoints;
|
|
if (camera->unk_15E == 0 || camera->unk_15E == 0xA || camera->unk_15E == 0x14 || QREG(0)) {
|
|
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
|
|
camera->unk_00.demo1.unk_00 = values->val;
|
|
}
|
|
D_8011D3A0.w = camera->unk_00.demo1.unk_00;
|
|
unk_04 = &camera->unk_00.demo1.unk_04;
|
|
|
|
relativeToPlayer = &camera->relativeToPlayer;
|
|
eyeNext = &camera->eyeNext;
|
|
at = &camera->at;
|
|
eye = &camera->eye;
|
|
switch (camera->unk_15E) {
|
|
case 0:
|
|
unk_04->unk_04 = 0;
|
|
unk_04->unk_00 = 0.0f;
|
|
camera->unk_15E++;
|
|
// absolute / relative
|
|
t = *relativeToPlayer == 0 ? "絶対" : "相対";
|
|
osSyncPrintf("\x1b[1m%06u:\x1b[m camera: spline demo: start %s \n", camera->globalCtx->state.frames, t);
|
|
if (PREG(93)) {
|
|
Camera_DebugPrintSplineArray("CENTER", 5, sp84);
|
|
Camera_DebugPrintSplineArray(" EYE", 5, sp80);
|
|
}
|
|
case 1:
|
|
// follow CutsceneCameraPoints. function returns 1 if at the end.
|
|
// unk_15E appears to be some kind of state of the cutscene? 0 is init, 1 is update, anything else is stop.
|
|
if (func_800BB2B4(&sp5C, &sp4C, &camera->fov, sp80, &unk_04->unk_04, unk_04) ||
|
|
func_800BB2B4(&sp50, &sp4C, &camera->fov, sp84, &unk_04->unk_04, unk_04)) {
|
|
camera->unk_15E++;
|
|
}
|
|
if (*relativeToPlayer) {
|
|
if (camera->player != NULL && camera->player->actor.update != NULL) {
|
|
func_8002EF14(&sp68, &camera->player->actor);
|
|
func_80054478(&sp68, &sp5C, eyeNext);
|
|
func_80054478(&sp68, &sp50, at);
|
|
} else {
|
|
osSyncPrintf("\x1b[41;37mcamera: spline demo: owner dead\n\x1b[m");
|
|
}
|
|
} else {
|
|
Camera_Vec3fCopy(&sp5C, eyeNext);
|
|
Camera_Vec3fCopy(&sp50, at);
|
|
}
|
|
*eye = *eyeNext;
|
|
camera->roll = sp4C * 256.0f;
|
|
camera->dist = OLib_Vec3fDist(at, eye);
|
|
break;
|
|
}
|
|
return 1;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo1.s")
|
|
#endif
|
|
|
|
s32 Camera_Demo2(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo3.s")
|
|
|
|
s32 Camera_Demo4(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo5.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo6.s")
|
|
|
|
void Camera_Demo7(Camera* camera) {
|
|
if (camera->unk_15E == 0) {
|
|
camera->unk_14C &= ~4;
|
|
camera->unk_14C |= 0x1000;
|
|
camera->unk_15E++;
|
|
}
|
|
}
|
|
|
|
s32 Camera_Demo8(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo9.s")
|
|
|
|
s32 Camera_Demo0(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Special0(Camera* camera) {
|
|
s32 pad;
|
|
CameraModeValue* val;
|
|
Vec3f* playerPosRot;
|
|
|
|
if (camera->unk_15E == 0 || camera->unk_15E == 0xA || camera->unk_15E == 0x14 || QREG(0)) {
|
|
val = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
|
|
camera->unk_00.spec0.unk_00 = val->val * 0.01f;
|
|
val++;
|
|
camera->unk_00.spec0.unk_04 = val->val;
|
|
}
|
|
|
|
if (QREG(0)) {
|
|
Camera_CopyPREGToModeValues(camera);
|
|
}
|
|
|
|
D_8011D3A0.w = camera->unk_00.spec0.unk_04;
|
|
|
|
if (camera->unk_15E == 0) {
|
|
camera->unk_15E++;
|
|
}
|
|
if ((camera->target == NULL) || (camera->target->update == NULL)) {
|
|
if (camera->target == NULL) {
|
|
osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: circle: target is not valid, stop!\n" VT_RST);
|
|
}
|
|
camera->target = NULL;
|
|
return true;
|
|
}
|
|
|
|
func_8002EEE4(&camera->targetPosRot, camera->target);
|
|
func_80043A3C(&camera->targetPosRot, &camera->at, camera->unk_00.f, camera->unk_00.f, 0.1f);
|
|
if (1) {
|
|
playerPosRot = &camera->playerPosRot.pos;
|
|
}
|
|
camera->unk_E4.x = camera->at.x - playerPosRot->x;
|
|
camera->unk_E4.y = camera->at.y - playerPosRot->y;
|
|
camera->unk_E4.z = camera->at.z - playerPosRot->z;
|
|
camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye);
|
|
camera->unk_D8 = 0.0f;
|
|
if (camera->unk_160 > 0) {
|
|
camera->unk_160--;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
s32 Camera_Special1(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
s32 Camera_Special2(Camera* camera) {
|
|
return Camera_Unique2(camera);
|
|
}
|
|
|
|
s32 Camera_Special3(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
s32 Camera_Special4(Camera* camera) {
|
|
PosRot sp3C;
|
|
s32 temp_v0;
|
|
s16 sp3A;
|
|
s16* unk_160 = &camera->unk_160;
|
|
|
|
if (camera->unk_15E == 0) {
|
|
D_8011D3A0.w = 0x3200;
|
|
camera->unk_15E++;
|
|
camera->fov = 40.0f;
|
|
camera->unk_00.sh[0] = *unk_160;
|
|
}
|
|
camera->fov = func_8004389C(80.0f, camera->fov, 1.0f / *unk_160, 0.1f);
|
|
if ((camera->unk_00.sh[0] - *unk_160) < 0xF) {
|
|
*unk_160 = *unk_160 - 1;
|
|
return 0;
|
|
}
|
|
camera->roll = -0x1F4;
|
|
func_8002EF14(&sp3C, camera->target);
|
|
camera->at = sp3C.pos;
|
|
camera->at.y -= 150.0f;
|
|
temp_v0 = (s16)(sp3C.rot.y - 0x7FFF) + 0x3E8;
|
|
sp3A = temp_v0;
|
|
camera->eyeNext.y = (f32)camera->at.y;
|
|
camera->eye.x = camera->eyeNext.x = (Math_Sins(temp_v0) * 780.0f) + camera->at.x;
|
|
camera->eye.z = camera->eyeNext.z = (Math_Coss(sp3A) * 780.0f) + camera->at.z;
|
|
camera->eye.y = sp3C.pos.y;
|
|
camera->eye.y = func_80044510(camera, &camera->eye) + 20.0f;
|
|
camera->unk_160--;
|
|
return 1;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special4.s")
|
|
#endif
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special5.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special7.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special6.s")
|
|
|
|
s32 Camera_Special8(Camera* camera) {
|
|
return func_80047394(camera);
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special9.s")
|
|
|
|
Camera* func_80057B98(View* view, CollisionContext* colCtx, GlobalContext* globalCtx) {
|
|
Camera* newCamera = ZeldaArena_MallocDebug(sizeof(*newCamera), "../z_camera.c", 9370);
|
|
if (newCamera != NULL) {
|
|
osSyncPrintf(VT_FGCOL(BLUE) "camera: create --- allocate %d byte" VT_RST "\n", sizeof(*newCamera) * 4);
|
|
func_80057C6C(newCamera, view, colCtx, globalCtx);
|
|
} else {
|
|
osSyncPrintf(VT_COL(RED, WHITE) "camera: create: not enough memory\n" VT_RST);
|
|
}
|
|
return newCamera;
|
|
}
|
|
|
|
void func_80057C14(Camera* camera) {
|
|
if (camera != NULL) {
|
|
osSyncPrintf(VT_FGCOL(BLUE) "camera: destroy ---" VT_RST "\n");
|
|
ZeldaArena_FreeDebug(camera, "../z_camera.c", 9391);
|
|
} else {
|
|
osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: destroy: already cleared\n" VT_RST);
|
|
}
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
void func_80057C6C(Camera* camera, View* view, CollisionContext* colCtx, GlobalContext* globalCtx) {
|
|
Camera* temp_v0;
|
|
s16 temp_a1;
|
|
s32 temp_a1_2;
|
|
s32 temp_v1;
|
|
s32 temp_v1_2;
|
|
s32 temp_v1_3;
|
|
s16* phi_a0;
|
|
s32 phi_v0;
|
|
s32 phi_v1;
|
|
s16* phi_a0_2;
|
|
s32 phi_v0_2;
|
|
s32 phi_v1_2;
|
|
s32 phi_a1;
|
|
s16 phi_v1_3;
|
|
s32 phi_v1_4;
|
|
s16 phi_a1_2;
|
|
s32 i;
|
|
s32 j;
|
|
Camera* cam;
|
|
s16 t;
|
|
|
|
func_80106860((void*)camera, 0, 0x16CU);
|
|
if (sInitRegs) {
|
|
for (i = 0; i < sOREGInitCnt; i++) {
|
|
OREG(i) = sOREGInit[i];
|
|
}
|
|
|
|
for (i = 0; i < sPREGInitCnt; i++) {
|
|
PREG(i) = sPREGInit[i];
|
|
}
|
|
|
|
func_800B958C(camera, &D_8015BD80, &gGameInfo);
|
|
sInitRegs = false;
|
|
PREG(88) = -1;
|
|
}
|
|
camera->globalCtx = D_8015BD7C = globalCtx;
|
|
func_800B4D58(&D_8015BD80, camera);
|
|
temp_a1 = D_8011D39C;
|
|
D_8011D39C++;
|
|
for (temp_a1 = D_8011D39C, D_8011D39C++; temp_a1 != 0; temp_a1 = D_8011D39C, D_8011D39C++) {
|
|
if (temp_a1 == 0) {
|
|
D_8011D39C++;
|
|
}
|
|
for (phi_v1_3 = 0; phi_v1_3 < 4; phi_v1_3++) {
|
|
temp_v0 = camera->globalCtx->cameraPtrs[phi_v1_3];
|
|
if (temp_v0 != NULL && temp_a1 == temp_v0->uid) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (phi_v1_3 == 4) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
camera->unk_134.y = 0x3FFF;
|
|
camera->unk_13A = camera->unk_134;
|
|
camera->uid = temp_a1;
|
|
camera->unk_C0.x = 10.0f;
|
|
camera->unk_C0.z = 10.0f;
|
|
camera->unk_68.y = 1.0f;
|
|
camera->unk_68.x = 0.0f;
|
|
camera->unk_68.z = 0.0f;
|
|
camera->fov = 60.0f;
|
|
D_8011D3A8 = 0x20;
|
|
D_8011D3A4 = 0;
|
|
camera->unk_C0.y = OREG(7);
|
|
camera->unk_CC.x = OREG(2) * 0.01f;
|
|
camera->unk_CC.y = OREG(3) * 0.01f;
|
|
camera->unk_CC.z = OREG(4) * 0.01f;
|
|
|
|
camera->unk_14C = 0;
|
|
camera->unk_154 = 0x21U;
|
|
camera->unk_166 = -1;
|
|
camera->mode = 0;
|
|
camera->unk_146 = 0x32;
|
|
camera->unk_168 = 0x7FFF;
|
|
camera->unk_160 = -1;
|
|
camera->unk_14C |= 0x4000;
|
|
camera->unk_68.y = 1.0f;
|
|
camera->unk_68.z = 0.0f;
|
|
camera->unk_68.x = 0.0f;
|
|
camera->unk_80.x = 0.0f;
|
|
camera->unk_80.y = 0.0f;
|
|
camera->unk_80.z = 0.0f;
|
|
camera->setting = camera->unk_154;
|
|
camera->unk_148 = camera->unk_166;
|
|
camera->unk_100 = 1.0f;
|
|
D_8011D3A0.w = 0xFF00;
|
|
D_8011D398 = -1;
|
|
D_8011D3F0 = 3;
|
|
osSyncPrintf(VT_FGCOL(BLUE) "camera: initialize --- " VT_RST " UID %d\n", camera->uid);
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80057C6C.s")
|
|
#endif
|
|
|
|
s32 func_8005AD40(Camera* camera, Actor* doorActor, s16 arg2, f32 arg3, s16 arg4, s16 arg5, s16 arg6);
|
|
|
|
void func_80057FC4(Camera* camera) {
|
|
if (camera != &camera->globalCtx->mainCamera) {
|
|
camera->unk_154 = camera->setting = CAM_SET_FREE0;
|
|
camera->unk_14C &= ~0x4;
|
|
} else if (camera->globalCtx->roomCtx.curRoom.mesh->polygon.type != 1) {
|
|
switch (camera->globalCtx->roomCtx.curRoom.unk_03) {
|
|
case 1:
|
|
func_8005AD40(camera, 0, -99, 0, 0, 18, 10);
|
|
camera->unk_154 = camera->setting = CAM_SET_DUNGEON0;
|
|
break;
|
|
case 0:
|
|
osSyncPrintf("camera: room type: default set field\n");
|
|
func_8005AD40(camera, 0, -99, 0, 0, 18, 10);
|
|
camera->unk_154 = camera->setting = CAM_SET_NORMAL0;
|
|
break;
|
|
default:
|
|
osSyncPrintf("camera: room type: default set etc (%d)\n", camera->globalCtx->roomCtx.curRoom.unk_03);
|
|
func_8005AD40(camera, 0, -99, 0, 0, 18, 10);
|
|
camera->unk_154 = camera->setting = CAM_SET_NORMAL0;
|
|
camera->unk_14C |= 4;
|
|
break;
|
|
}
|
|
} else {
|
|
osSyncPrintf("camera: room type: prerender\n");
|
|
camera->unk_154 = camera->setting = CAM_SET_FREE0;
|
|
camera->unk_14C &= ~0x4;
|
|
}
|
|
}
|
|
|
|
void Camera_Stub80058140(Camera* camera) {
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
void func_80058148(Camera* camera, Player* player) {
|
|
s32 pad;
|
|
PosRot sp54;
|
|
VecSph sp4C;
|
|
s32 sp48;
|
|
Vec3f sp3C;
|
|
f32 temp_f0;
|
|
|
|
func_8002EF44(&sp54, &player->actor);
|
|
temp_f0 = Player_GetCameraYOffset(player);
|
|
camera->player = player;
|
|
camera->playerPosRot = sp54;
|
|
sp4C.r = 180.0f;
|
|
camera->dist = 180.0f;
|
|
camera->unk_134.y = sp54.rot.y;
|
|
sp4C.pitch = 0x71C;
|
|
sp4C.yaw = camera->unk_134.y - 0x7FFF;
|
|
camera->unk_134.x = 0x71C;
|
|
camera->unk_134.z = 0;
|
|
camera->unk_13A = camera->unk_134;
|
|
camera->unk_D8 = 0.0f;
|
|
camera->unk_F0.y = 0.0f;
|
|
camera->at = sp54.pos;
|
|
camera->unk_E4.y = temp_f0;
|
|
camera->unk_E4.x = 0.0f;
|
|
camera->unk_E4.z = 0.0f;
|
|
camera->at.y += temp_f0;
|
|
func_80043C28(&camera->eyeNext, &camera->at, &sp4C);
|
|
camera->eye = camera->eyeNext;
|
|
camera->roll = 0;
|
|
camera->unk_68.z = 0.0f;
|
|
camera->unk_68.x = 0.0f;
|
|
camera->unk_68.y = 1.0f;
|
|
if (func_80044434(camera, &sp3C, &camera->at, &sp48) != -32000.0f) {
|
|
camera->unk_146 = sp48;
|
|
}
|
|
camera->unk_118 = -1;
|
|
camera->unk_11C = -1;
|
|
camera->unk_14C |= 4;
|
|
if (camera == &camera->globalCtx->mainCamera) {
|
|
D_8011D3A0.w = 0xB200;
|
|
} else {
|
|
D_8011D3A0.w = 0;
|
|
}
|
|
func_80057FC4(camera);
|
|
camera->unk_14A = 0;
|
|
camera->unk_15C = 0;
|
|
camera->unk_156 = -1;
|
|
camera->unk_100 = 1.0f;
|
|
Camera_CopyModeValuesToPREG(camera, camera->mode);
|
|
func_8005B044();
|
|
osSyncPrintf(VT_FGCOL(BLUE) "camera: personalize ---" VT_RST "\n");
|
|
if (camera->unk_164 == 0) {
|
|
func_800588B4(camera);
|
|
}
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80058148.s")
|
|
#endif
|
|
|
|
#ifdef NON_MATCHING
|
|
void Camera_ChangeStatus(Camera* camera, s16 status) {
|
|
s32 temp_s1;
|
|
CameraMode* temp_v0;
|
|
s32 phi_a1;
|
|
s32 phi_a2;
|
|
s16 phi_v0;
|
|
CameraModeValue* phi_s0;
|
|
s32 phi_s1;
|
|
|
|
if (PREG(82)) {
|
|
phi_a1 = status == 7 ? 0x6F : 0x78;
|
|
phi_a2 = camera->status != 7 ? 0x6F : 0x78;
|
|
osSyncPrintf("camera: change camera status: cond %c%c\n", phi_a1, phi_a2);
|
|
}
|
|
if (PREG(82)) {
|
|
osSyncPrintf("camera: res: stat (%d/%d/%d)\n", camera->unk_164, camera->setting, camera->mode);
|
|
}
|
|
if (status == 7 && camera->status != 7) {
|
|
temp_v0 = &sCameraSettings[camera->setting].cameraModes[camera->mode];
|
|
if (temp_v0->valueCnt > 0) {
|
|
phi_s0 = temp_v0->values;
|
|
phi_s1 = 0;
|
|
loop_12:
|
|
PREG(phi_s0->param) = phi_s0->val;
|
|
if (PREG(82) != 0) {
|
|
osSyncPrintf("camera: change camera status: PREG(%02d) = %d\n", phi_s0->param, phi_s0->val);
|
|
}
|
|
temp_s1 = phi_s1 + 1;
|
|
phi_s0 = phi_s0 + 4;
|
|
phi_s1 = temp_s1;
|
|
if (temp_s1 < sCameraSettings[camera->setting].cameraModes[camera->mode].valueCnt) {
|
|
goto loop_12;
|
|
}
|
|
}
|
|
}
|
|
camera->status = status;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ChangeStatus.s")
|
|
#endif
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800584E8.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800588B4.s")
|
|
|
|
s32 func_80058CF8(Camera* camera) {
|
|
camera->unk_152 &= ~1;
|
|
|
|
if (camera->globalCtx->roomCtx.curRoom.unk_02 == 3) {
|
|
camera->unk_152 |= 1;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
s32 func_80058D34(Camera* camera) {
|
|
s32 phi_a2 = 0;
|
|
|
|
if (D_8011D394 == 0) {
|
|
if (camera->globalCtx->activeCamera == 0) {
|
|
if (CHECK_PAD(D_8015BD7C->state.input[2].press, U_CBUTTONS)) {
|
|
osSyncPrintf("attention sound URGENCY\n");
|
|
func_80078884(NA_SE_SY_ATTENTION_URGENCY);
|
|
}
|
|
if (CHECK_PAD(D_8015BD7C->state.input[2].press, D_CBUTTONS)) {
|
|
osSyncPrintf("attention sound NORMAL\n");
|
|
func_80078884(NA_SE_SY_ATTENTION_ON);
|
|
}
|
|
|
|
if (CHECK_PAD(D_8015BD7C->state.input[2].press, R_CBUTTONS)) {
|
|
phi_a2 = 1;
|
|
}
|
|
if (CHECK_PAD(D_8015BD7C->state.input[2].press, L_CBUTTONS)) {
|
|
phi_a2 = -1;
|
|
}
|
|
if (phi_a2 != 0) {
|
|
D_8011D398 = (D_8011D398 + phi_a2) % 6;
|
|
if (func_8005A77C(camera, D_8011DAFC[D_8011D398]) > 0) {
|
|
osSyncPrintf("camera: force change SET to %s!\n", sCameraSettingNames[D_8011DAFC[D_8011D398]]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80058E8C.s")
|
|
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800591EC.s")
|
|
|
|
void func_80059EC8(Camera* camera) {
|
|
Camera* sp24 = camera->globalCtx->cameraPtrs[0];
|
|
Player* player = (Player*)camera->globalCtx->actorCtx.actorList[2].first;
|
|
|
|
if (camera->unk_160 == 0) {
|
|
Gameplay_ChangeCameraStatus(camera->globalCtx, camera->unk_162, 7);
|
|
|
|
if ((camera->unk_162 == 0) && (camera->unk_168 != 0)) {
|
|
player->actor.freezeTimer = 0;
|
|
player->stateFlags1 &= ~0x20000000;
|
|
|
|
if (player->action != 0) {
|
|
func_8002DF54(camera->globalCtx, &player->actor, 7);
|
|
osSyncPrintf("camera: player demo end!!\n");
|
|
}
|
|
|
|
sp24->unk_14C |= 8;
|
|
}
|
|
|
|
if (camera->globalCtx->cameraPtrs[camera->unk_14E]->unk_162 == camera->unk_164) {
|
|
camera->globalCtx->cameraPtrs[camera->unk_14E]->unk_162 = camera->unk_162;
|
|
}
|
|
|
|
if (camera->globalCtx->cameraPtrs[camera->unk_162]->unk_14E == camera->unk_164) {
|
|
camera->globalCtx->cameraPtrs[camera->unk_162]->unk_14E = camera->unk_14E;
|
|
}
|
|
|
|
if (camera->globalCtx->cameraPtrs[camera->unk_162]->unk_164 == 0) {
|
|
camera->globalCtx->cameraPtrs[camera->unk_162]->unk_15E = 0;
|
|
}
|
|
|
|
camera->unk_162 = 0;
|
|
camera->unk_14E = camera->unk_162;
|
|
camera->unk_160 = -1;
|
|
camera->globalCtx->envCtx.unk_E1 = 0;
|
|
|
|
Gameplay_ClearCamera(camera->globalCtx, camera->unk_164);
|
|
}
|
|
}
|
|
|
|
s32 func_8005A02C(Camera* camera) {
|
|
camera->unk_14C |= 0xC;
|
|
camera->unk_14C &= ~(0x1000 | 0x8);
|
|
return 1;
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
extern s32 D_8011DB14;
|
|
s32 Camera_ChangeMode(Camera* camera, s16 mode, u8 arg2) {
|
|
s32 phi_v0;
|
|
u32 temp_t8;
|
|
s32 phi_at;
|
|
|
|
if (QREG(89)) {
|
|
osSyncPrintf("+=+(%d)+=+ recive request -> %s\n", camera->globalCtx->state.frames, sCameraModeNames[mode]);
|
|
}
|
|
|
|
if ((camera->unk_14C & 0x20) && (arg2 == 0)) {
|
|
camera->unk_14A |= 0x20;
|
|
return -1;
|
|
} else if (!(sCameraSettings[camera->setting].validModes & (1 << mode))) {
|
|
if (mode == CAM_MODE_SUBJECT) {
|
|
osSyncPrintf("camera: error sound\n");
|
|
func_80078884(NA_SE_SY_ERROR);
|
|
}
|
|
if (camera->mode != CAM_MODE_NORMAL) {
|
|
osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: change camera mode: force NORMAL: %s %s refused\n" VT_RST,
|
|
sCameraSettingNames[camera->setting], sCameraModeNames[mode]);
|
|
camera->mode = CAM_MODE_NORMAL;
|
|
Camera_CopyModeValuesToPREG(camera, camera->mode);
|
|
func_8005A02C(camera);
|
|
phi_at = 0xC0000000;
|
|
} else {
|
|
camera->unk_14A = (s16)(camera->unk_14A | 0x20);
|
|
camera->unk_14A = (s16)(camera->unk_14A | 2);
|
|
return 0;
|
|
}
|
|
} else if ((mode == camera->mode) && (arg2 == 0)) {
|
|
camera->unk_14A |= 0x20;
|
|
camera->unk_14A |= 2;
|
|
return -1;
|
|
} else {
|
|
camera->unk_14A |= 0x20;
|
|
camera->unk_14A |= 2;
|
|
camera = camera;
|
|
Camera_CopyModeValuesToPREG(camera, mode);
|
|
temp_t8 = mode - 1;
|
|
phi_v0 = 0;
|
|
switch (mode) {
|
|
default:
|
|
break;
|
|
case 5: // switch 1
|
|
phi_v0 = 0x20;
|
|
break;
|
|
case 3: // switch 1
|
|
phi_v0 = 4;
|
|
break;
|
|
case 1: // switch 1
|
|
phi_v0 = 0;
|
|
if (camera->target != NULL) {
|
|
phi_v0 = 0;
|
|
if (camera->target->id != ACTOR_EN_BOOM) {
|
|
phi_v0 = 8;
|
|
}
|
|
}
|
|
break;
|
|
case 0: // switch 1
|
|
case 2: // switch 1
|
|
case 7: // switch 1
|
|
case 14: // switch 1
|
|
case 18: // switch 1
|
|
phi_v0 = 2;
|
|
break;
|
|
}
|
|
|
|
switch (camera->mode) {
|
|
default:
|
|
break;
|
|
case 6: // switch 2
|
|
if ((phi_v0 & 0x20) != 0) {
|
|
camera->unk_15E = (u16)0xAU;
|
|
}
|
|
break;
|
|
case 1: // switch 2
|
|
if ((phi_v0 & 0x10) != 0) {
|
|
camera->unk_15E = (u16)0xAU;
|
|
}
|
|
phi_v0 |= 1;
|
|
break;
|
|
case 17: // switch 2
|
|
phi_v0 |= 1;
|
|
break;
|
|
case 2: // switch 2
|
|
if ((phi_v0 & 8) != 0) {
|
|
camera->unk_15E = (u16)0xAU;
|
|
}
|
|
phi_v0 |= 1;
|
|
break;
|
|
case 4: // switch 2
|
|
if ((phi_v0 & 4) != 0) {
|
|
camera->unk_15E = (u16)0xAU;
|
|
}
|
|
phi_v0 |= 1;
|
|
break;
|
|
case 8: // switch 2
|
|
case 15: // switch 2
|
|
case 19: // switch 2
|
|
phi_v0 |= 1;
|
|
break;
|
|
case 0: // switch 2
|
|
if ((phi_v0 & 0x10) != 0) {
|
|
camera->unk_15E = (u16)0xAU;
|
|
}
|
|
break;
|
|
}
|
|
phi_v0 &= ~0x10;
|
|
D_8011DB14 = phi_v0;
|
|
if (camera->status == 7) {
|
|
switch (phi_v0) {
|
|
case 1:
|
|
func_80078884(NA_SE_PL_WALK_GROUND - SFX_FLAG);
|
|
break;
|
|
case 2:
|
|
if (1 == camera->globalCtx->roomCtx.curRoom.unk_03) {
|
|
func_80078884(NA_SE_SY_ATTENTION_URGENCY);
|
|
} else {
|
|
func_80078884(NA_SE_SY_ATTENTION_ON);
|
|
}
|
|
break;
|
|
case 4:
|
|
func_80078884(NA_SE_SY_ATTENTION_URGENCY);
|
|
break;
|
|
case 8:
|
|
func_80078884(NA_SE_SY_ATTENTION_ON);
|
|
break;
|
|
}
|
|
}
|
|
func_8005A02C(camera);
|
|
camera->mode = mode;
|
|
phi_at = 0x80000000;
|
|
}
|
|
return mode | phi_at;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ChangeMode.s")
|
|
#endif
|
|
|
|
void func_8005A444(Camera* camera, s16 arg1) {
|
|
Camera_ChangeMode(camera, arg1, 0);
|
|
}
|
|
|
|
s32 func_8005A470(Camera* camera, s16 arg1) {
|
|
s32 phi_return;
|
|
|
|
if (QREG(89) != 0) {
|
|
osSyncPrintf("+=+=+=+ recive asking -> %s (%s)\n", sCameraModeNames[arg1],
|
|
sCameraSettingNames[camera->setting]);
|
|
}
|
|
if (!(sCameraSettings[camera->setting].validModes & (1 << arg1))) {
|
|
return 0;
|
|
} else if (arg1 == camera->mode) {
|
|
return -1;
|
|
} else {
|
|
return arg1 | 0x80000000;
|
|
}
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
s16 Camera_ChangeSetting(Camera* camera, s16 setting, s16 arg2) {
|
|
s16 temp_t1;
|
|
s32 t;
|
|
|
|
if ((camera->unk_14A & 1) && (((sCameraSettings[camera->setting].unk_00 & 0xF000000) >> 0x18) >=
|
|
(sCameraSettings[setting].unk_00 & 0xF000000) >> 0x18)) {
|
|
camera->unk_14A |= 0x10;
|
|
return -2;
|
|
}
|
|
|
|
if ((setting == CAM_SET_SPOT05A || setting == CAM_SET_SPOT05B) && LINK_IS_ADULT &&
|
|
(camera->globalCtx->sceneNum == 0x56)) {
|
|
camera->unk_14A |= 0x10;
|
|
return -5;
|
|
}
|
|
|
|
if (setting == CAM_SET_NONE || setting >= CAM_SET_MAX) {
|
|
osSyncPrintf(VT_COL(RED, WHITE) "camera: error: illegal camera set (%d) !!!!\n" VT_RST, setting);
|
|
return -0x63;
|
|
}
|
|
|
|
if (setting == camera->setting && !(arg2 & 1)) {
|
|
camera->unk_14A |= 0x10;
|
|
if (!(arg2 & 2)) {
|
|
camera->unk_14A |= 1;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
camera->unk_14A |= 0x10;
|
|
|
|
if (1 && !(arg2 & 2)) {
|
|
camera->unk_14A |= 1;
|
|
}
|
|
|
|
camera->unk_14C |= (0x8 | 0x4);
|
|
camera->unk_14C &= ~(0x1000 | 0x8);
|
|
if (!(sCameraSettings[camera->setting].unk_bit1)) {
|
|
camera->unk_154 = camera->setting;
|
|
}
|
|
|
|
t = sCameraSettings[camera->setting].unk_00 & 0x40000000;
|
|
if (arg2 & 8) {
|
|
camera->unk_148 = camera->unk_166;
|
|
camera->unk_166 = -1;
|
|
} else if (!(arg2 & 4)) {
|
|
if (!t) {
|
|
camera->unk_166 = camera->unk_148;
|
|
}
|
|
camera->unk_148 = -1;
|
|
}
|
|
|
|
camera->setting = setting;
|
|
|
|
if (Camera_ChangeMode(camera, camera->mode, 1) >= 0) {
|
|
Camera_CopyModeValuesToPREG(camera, camera->mode);
|
|
}
|
|
|
|
osSyncPrintf(VT_SGR("1") "%06u:" VT_RST " camera: change camera[%d] set %s\n", camera->globalCtx->state.frames,
|
|
camera->unk_164, sCameraSettingNames[camera->setting]);
|
|
|
|
return setting;
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ChangeSetting.s")
|
|
#endif
|
|
|
|
s32 func_8005A77C(Camera* camera, s16 setting) {
|
|
return Camera_ChangeSetting(camera, setting, 0);
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
s16 func_8005A7A8(Camera* arg0, s32 arg1) {
|
|
s16 temp_v0;
|
|
s16 temp_v1;
|
|
|
|
if (arg1 == -1 || arg1 == arg0->unk_148) {
|
|
arg0->unk_14A |= 0x40;
|
|
return -1;
|
|
} else if (!(arg0->unk_14A & 0x40)) {
|
|
temp_v0 = func_80044740(arg0, arg1);
|
|
arg0->unk_14A |= 0x40;
|
|
temp_v1 = (Camera_ChangeSetting(arg0, temp_v0, 5) < 0) ^ 1;
|
|
if ((temp_v1 != 0) || sCameraSettings[arg0->setting].unk_00 & 0x80000000) {
|
|
arg0->unk_148 = arg1;
|
|
arg0->unk_14A |= 4;
|
|
Camera_CopyModeValuesToPREG(arg0, arg0->mode);
|
|
} else if (temp_v1 < -1) {
|
|
osSyncPrintf(VT_COL(RED, WHITE) "camera: error: illegal camera ID (%d) !! (%d|%d|%d)\n" VT_RST, arg1,
|
|
arg0->unk_164, 0x32, temp_v0);
|
|
}
|
|
return temp_v1;
|
|
}
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_8005A7A8.s")
|
|
#endif
|
|
|
|
#ifdef NON_MATCHING
|
|
// this code uses lw, then lhu. D_8015CD46 is probably part of a struct.
|
|
Vec3s* func_8005A8C4(Vec3s* arg0, Camera* camera) {
|
|
if (D_8011D394 != 0) {
|
|
*arg0 = D_8015CE46;
|
|
return arg0;
|
|
} else {
|
|
*arg0 = camera->unk_134;
|
|
return arg0;
|
|
}
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_8005A8C4.s")
|
|
#endif
|
|
|
|
s16 func_8005A948(Camera* camera) {
|
|
Vec3s sp18;
|
|
|
|
func_8005A8C4(&sp18, camera);
|
|
return sp18.y;
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
// Same issue as func_8005A8C4
|
|
Vec3s* func_8005A970(Vec3s* arg0, Camera* arg1) {
|
|
if (D_8011D394 != 0) {
|
|
*arg0 = D_8015CE46;
|
|
return arg0;
|
|
} else {
|
|
*arg0 = arg1->unk_13A;
|
|
return arg0;
|
|
}
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_8005A970.s")
|
|
#endif
|
|
|
|
s16 func_8005A9CC(s32 arg0) {
|
|
Vec3s sp18;
|
|
|
|
func_8005A970(&sp18, arg0);
|
|
return sp18.x;
|
|
}
|
|
|
|
s16 func_8005A9F4(Camera* camera) {
|
|
Vec3s sp18;
|
|
|
|
func_8005A970(&sp18, camera);
|
|
return sp18.y;
|
|
}
|
|
|
|
s32 func_8005AA1C(Camera* camera, s32 arg1, s16 y, s32 countdown) {
|
|
s16 quakeIdx;
|
|
|
|
quakeIdx = Quake_Add(camera, 3);
|
|
if (quakeIdx == 0) {
|
|
return 0;
|
|
}
|
|
Quake_SetSpeed(quakeIdx, 0x61A8);
|
|
Quake_SetQuakeValues(quakeIdx, y, 0, 0, 0);
|
|
Quake_SetCountdown(quakeIdx, countdown);
|
|
return 1;
|
|
}
|
|
|
|
#ifdef NON_MATCHING
|
|
// additional move v0, zero added.
|
|
s32 Camera_SetParam(Camera* camera, s32 param, void* value) {
|
|
s32 pad;
|
|
Vec3f sp4;
|
|
|
|
if (value != NULL) {
|
|
switch (param) {
|
|
case 1:
|
|
camera->unk_15C &= ~(0x10 | 0x8 | 0x1);
|
|
camera->at = *(Vec3f*)value;
|
|
break;
|
|
case 16:
|
|
camera->unk_15C &= ~(0x10 | 0x8 | 0x1);
|
|
camera->targetPosRot.pos = *(Vec3f*)value;
|
|
break;
|
|
case 8:
|
|
if (camera->setting == CAM_SET_DEMOC || camera->setting == CAM_SET_DEMO4) {
|
|
break;
|
|
}
|
|
camera->target = (Actor*)value;
|
|
camera->unk_15C &= ~(0x10 | 0x8 | 0x1);
|
|
break;
|
|
case 2:
|
|
sp4 = *(Vec3f*)value;
|
|
camera->eyeNext = sp4;
|
|
camera->eye = sp4;
|
|
break;
|
|
case 4:
|
|
camera->unk_68 = *(Vec3f*)value;
|
|
break;
|
|
case 0x40:
|
|
camera->roll = *(f32*)value * (M_PI / 180.0f) + 0.5f;
|
|
break;
|
|
case 32:
|
|
camera->fov = *(f32*)value;
|
|
break;
|
|
case 3:
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
case 9:
|
|
case 10:
|
|
case 11:
|
|
case 12:
|
|
case 13:
|
|
case 14:
|
|
case 15:
|
|
case 17:
|
|
case 18:
|
|
case 19:
|
|
case 20:
|
|
case 21:
|
|
case 22:
|
|
case 23:
|
|
case 24:
|
|
case 25:
|
|
case 26:
|
|
case 27:
|
|
case 28:
|
|
case 29:
|
|
case 30:
|
|
case 31:
|
|
return false;
|
|
default:
|
|
return false;
|
|
}
|
|
camera->unk_15C |= param;
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
#else
|
|
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_SetParam.s")
|
|
#endif
|
|
|
|
s32 func_8005AC24(Camera* camera, s16 arg1) {
|
|
camera->unk_15C &= ~arg1;
|
|
return true;
|
|
}
|
|
|
|
s32 func_8005AC48(Camera* camera, s16 arg1) {
|
|
camera->unk_14C = arg1;
|
|
return 1;
|
|
}
|
|
|
|
s32 func_8005AC60(Camera* camera) {
|
|
camera->unk_15E = 0;
|
|
return 1;
|
|
}
|
|
|
|
s32 func_8005AC6C(Camera* camera, CutsceneCameraPoint* atPoints, CutsceneCameraPoint* eyePoints, Player* player,
|
|
s16 relativeToPlayer) {
|
|
PosRot sp24;
|
|
|
|
camera->atPoints = atPoints;
|
|
camera->eyePoints = eyePoints;
|
|
camera->relativeToPlayer = relativeToPlayer;
|
|
|
|
if (camera->relativeToPlayer != 0) {
|
|
camera->player = player;
|
|
func_8002EF44(&sp24, &player->actor);
|
|
camera->playerPosRot = sp24;
|
|
|
|
camera->unk_156 = -1;
|
|
camera->unk_D8 = 0.0f;
|
|
camera->unk_E0 = 0.0f;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
s16 func_8005ACFC(Camera* camera, s16 arg1) {
|
|
camera->unk_14C |= arg1;
|
|
return camera->unk_14C;
|
|
}
|
|
|
|
s16 func_8005AD1C(Camera* camera, s16 arg1) {
|
|
camera->unk_14C &= ~arg1;
|
|
return camera->unk_14C;
|
|
}
|
|
|
|
s32 func_8005AD40(Camera* camera, Actor* doorActor, s16 arg2, f32 arg3, s16 arg4, s16 arg5, s16 arg6) {
|
|
if ((camera->setting == CAM_SET_DEMO4) || (camera->setting == CAM_SET_DOORC)) {
|
|
return 0;
|
|
}
|
|
|
|
camera->unk_00.doorCam.door = doorActor;
|
|
camera->unk_00.doorCam.unk_06 = arg4;
|
|
camera->unk_00.doorCam.unk_08 = arg5;
|
|
camera->unk_00.doorCam.unk_0A = arg6;
|
|
camera->unk_00.doorCam.unk_04 = arg2;
|
|
|
|
if (arg2 == -99) {
|
|
Camera_CopyModeValuesToPREG(camera, camera->mode);
|
|
return -99;
|
|
}
|
|
|
|
if (arg2 == -1) {
|
|
func_8005A77C(camera, CAM_SET_DOORC);
|
|
osSyncPrintf(".... change default door camera (set %d)\n", CAM_SET_DOORC);
|
|
} else {
|
|
s32 ret = func_80044740(camera, arg2);
|
|
camera->unk_14A |= 0x40;
|
|
|
|
if (func_8005A77C(camera, ret) >= 0) {
|
|
camera->unk_148 = arg2;
|
|
camera->unk_14A |= 4;
|
|
}
|
|
|
|
osSyncPrintf("....change door camera ID %d (set %d)\n", camera->unk_148, camera->setting);
|
|
}
|
|
|
|
Camera_CopyModeValuesToPREG(camera, camera->mode);
|
|
return -1;
|
|
}
|
|
|
|
s32 func_8005AE64(Camera* camera, Camera* otherCamera) {
|
|
s32 unused;
|
|
Vec3f sp30;
|
|
|
|
camera->unk_E4.x = 0.0f;
|
|
camera->unk_E4.y = 0.0f;
|
|
camera->unk_E4.z = 0.0f;
|
|
camera->unk_100 = 0.1f;
|
|
camera->at = otherCamera->at;
|
|
|
|
sp30 = otherCamera->eye;
|
|
camera->eyeNext = sp30;
|
|
camera->eye = sp30;
|
|
|
|
camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye);
|
|
camera->fov = otherCamera->fov;
|
|
camera->roll = otherCamera->roll;
|
|
func_80043B60(camera);
|
|
|
|
if (camera->player != NULL) {
|
|
func_8002EF14(&camera->playerPosRot, &camera->player->actor);
|
|
camera->unk_E4.x = camera->at.x - camera->playerPosRot.pos.x;
|
|
camera->unk_E4.y = camera->at.y - camera->playerPosRot.pos.y;
|
|
camera->unk_E4.z = camera->at.z - camera->playerPosRot.pos.z;
|
|
camera->dist = OLib_Vec3fDist(&camera->playerPosRot.pos, &camera->eye);
|
|
camera->unk_CC.x = 1.0f;
|
|
camera->unk_CC.y = 1.0f;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
s32 func_8005AFA8() {
|
|
return D_8011D394;
|
|
}
|
|
|
|
Vec3f* func_8005AFB4(Vec3f* dst, Camera* camera) {
|
|
*dst = camera->unk_80;
|
|
return dst;
|
|
}
|
|
|
|
void Camera_SetCameraData(Camera* camera, s16 arg1, CutsceneCameraPoint* atPoints, CutsceneCameraPoint* eyePoints,
|
|
s16 relativeToPlayer, s16 arg5) {
|
|
if (arg1 & 0x1) {
|
|
camera->atPoints = atPoints;
|
|
}
|
|
|
|
if (arg1 & 0x2) {
|
|
camera->eyePoints = eyePoints;
|
|
}
|
|
|
|
if (arg1 & 0x4) {
|
|
camera->relativeToPlayer = relativeToPlayer;
|
|
}
|
|
|
|
if (arg1 & 0x8) {
|
|
camera->unk_12E = arg5;
|
|
}
|
|
|
|
if (arg1 & 0x10) {
|
|
osSyncPrintf(VT_COL(RED, WHITE) "camera: setCameraData: last argument not alive!\n" VT_RST);
|
|
}
|
|
}
|
|
|
|
s32 func_8005B044() {
|
|
if (QREG(0) == 0) {
|
|
QREG(2) = 1;
|
|
QREG(10) = -1;
|
|
QREG(11) = 100;
|
|
QREG(12) = 80;
|
|
QREG(20) = 90;
|
|
QREG(21) = 10;
|
|
QREG(22) = 10;
|
|
QREG(23) = 50;
|
|
QREG(24) = 6000;
|
|
QREG(25) = 240;
|
|
QREG(26) = 40;
|
|
QREG(27) = 85;
|
|
QREG(28) = 55;
|
|
QREG(29) = 87;
|
|
QREG(30) = 23;
|
|
QREG(31) = 20;
|
|
QREG(32) = 4;
|
|
QREG(33) = 5;
|
|
QREG(50) = 1;
|
|
QREG(51) = 20;
|
|
QREG(52) = 200;
|
|
QREG(53) = 1;
|
|
QREG(54) = 15;
|
|
QREG(55) = 60;
|
|
QREG(56) = 15;
|
|
QREG(57) = 30;
|
|
QREG(58) = 0;
|
|
}
|
|
|
|
QREG(65) = 50;
|
|
return 1;
|
|
}
|
|
|
|
s32 func_8005B198() {
|
|
return D_8011D3AC;
|
|
}
|
|
|
|
s16 func_8005B1A4(Camera* camera) {
|
|
camera->unk_14C |= 0x8;
|
|
|
|
if ((camera->unk_164 == 0) && (camera->globalCtx->activeCamera != 0)) {
|
|
camera->globalCtx->cameraPtrs[camera->globalCtx->activeCamera]->unk_14C |= 0x8;
|
|
return camera->globalCtx->activeCamera;
|
|
}
|
|
|
|
return camera->unk_164;
|
|
}
|