SSBM Decomp
Loading...
Searching...
No Matches
camera.c File Reference

Data Structures

struct  CameraStaticData

Functions

static void Camera_80029AAC (CameraBounds *bounds, CameraTransformState *transform, f32 speed)
static void fn_800301D0 (HSD_GObj *, intptr_t)
static void camera_sdata2_order (void)
static float vec_len (Vec3 *offset)
void Camera_Init (int n_subjects)
void Camera_80028F5C (CmSubject *subject, CmSubjectState statestate)
CmSubject * Camera_80029020 (void)
CmSubject * Camera_80029044 (int arg0)
void Camera_800290D4 (CmSubject *subject)
u32 Camera_80029124 (Vec3 *subject_pos, s32 distance)
static bool cam_bound (float x)
bool Camera_8002928C (CmSubject *subject)
void Camera_800293E0 (void)
void Camera_8002958C (CameraBounds *bounds, CameraTransformState *transform)
static float get_follow_speed (float temp_f4, float spread, CameraUnkGlobals *globals)
static float get_delta (float temp_f)
void Camera_80029BC4 (CameraBounds *bounds, CameraTransformState *transform)
void Camera_80029C88 (CameraBounds *unused, CameraTransformState *transform, f32 arg_scale)
static f32 get_y_bias (f32 spread)
void Camera_80029CF8 (CameraBounds *bounds, CameraTransformState *transform)
void Camera_ApplyQuake (CameraBounds *bounds, CameraTransformState *statestate)
void Camera_SetQuakeOffset (f32 x, f32 y)
void Camera_UpdateQuakes (CameraBounds *bounds)
static float get_stage_floor_height (GrKind kind)
void Camera_8002A4AC (HSD_GObj *gobj)
void Camera_8002A768 (CameraTransformState *transform, s32 arg1)
void Camera_8002AF68 (HSD_CObj *cobj, CameraTransformState *transform)
void Camera_8002B0E0 (void)
void Camera_8002B1F8 (CameraTransformState *transform)
static bool fighter_z_out_of_range (Vec3 *fighter_pos)
static void update_zoom_distance (void)
static void update_transform (CameraBounds *bounds, CameraTransformState *ts)
static void update_avg_bounds_width (void)
static void update_bounds (CameraBounds *bounds, CameraBounds *bounds_copy)
void Camera_8002B3D4 (void *arg0)
 update gameplay camera
static HSD_PadStatus * get_slot_pad (u8 arg0)
static f32 get_stick_x (HSD_PadStatus *arg0)
static f32 get_stick_y (HSD_PadStatus *arg0)
static f32 get_substick_x (HSD_PadStatus *arg0)
static f32 get_substick_y (HSD_PadStatus *arg0)
void Camera_8002B694 (CameraInputs *inputs, s32 slot)
s32 Camera_8002BA00 (s32 slot, s32 arg1)
void Camera_8002BAA8 (f32 zoom_amt)
 Camera_PauseZoom.
static void OrthonormalizeBasis (Vec3 *forward, Vec3 *up, Vec3 *right)
s32 Camera_8002BC78 (Vec3 *forward, Vec3 *up, Vec3 *right)
void Camera_8002BD88 (f32 x, f32 y)
 Camera_PauseRotate.
void Camera_8002C010 (f32 farg0, f32 farg1)
static void Camera_8002C1A8_inline (void)
static f32 getPauseScale (void)
void Camera_8002C1A8 (void)
static float eye_offset_len (Vec3 *offset)
void Camera_8002C5B4 (Camera_x2D0 *arg0)
static bool get_subject_pos (Vec3 *pos, const s8 *slot_ptr)
static Vec3 * get_target_interest (CameraTransformState *transform)
static void track_subject (CameraTransformState *transform, Vec3 *interest_diff, Vec3 *eye_diff)
void Camera_8002C908 (void *arg0)
static f32 absf (f32 x)
void Camera_8002CB0C (CameraBounds *bounds)
 Camera_PauseThink.
void Camera_8002CDDC (void *unused)
static f32 compute_orbit_distance (s32 slot)
static Vec3 * get_subject_x1C (CmSubject *subject)
void Camera_8002D318 (void *unused)
void Camera_8002D85C (void *unused)
static void set_bounds_z (CameraBounds *bounds, Vec3 *interest, Vec3 *position)
static void smooth_fixed_camera_interest (CameraTransformState *transform_copy, Camera *cam, CameraUnkGlobals *globals)
void Camera_8002DDC4 (void *unused)
s32 Camera_8002DFE4 (Vec3 *start, Vec3 *end, Vec3 *out)
bool Camera_8002E158 (f32 *arg0, f32 farg0, f32 farg1)
bool Camera_8002E234 (void)
static f32 getX378 (void)
void Camera_8002E490 (void *unused)
void Camera_8002E6FC (int arg0)
void Camera_8002E818 (Vec3 *pos)
void Camera_8002E948 (bool(*cb)(Vec *))
void Camera_8002EA64 (Vec *arg0)
void Camera_8002EB5C (float arg0)
void Camera_8002EC7C (float arg0)
void Camera_8002ED9C (float arg0)
void Camera_8002EEC8 (f32 fov)
void Camera_8002EF14 (void)
void Camera_8002F0E4 (s32 arg0)
bool Camera_8002F260 (void)
void Camera_8002F274 (void)
void fn_8002F360 (HSD_GObj *x)
static HSD_GObj * getCameraGObj (void)
void Camera_8002F3AC (void)
void Camera_SetModeToStandard (void)
s32 Camera_SetBounds (Vec4 *arg0)
void Camera_SetUpPauseCamera (s8 pauserSlot, s8 pauserId, s32 arg2)
 Switches the camera to pause-camera mode.
void Camera_SetUpPauseCameraWithDefaultZoom (s8 pauserSlot, s8 pauserId)
 Switches the camera to pause-camera mode with default stage zoom.
void Camera_8002F760 (s8 arg0, s8 arg1)
void Camera_8002F784 (s8 slot, s8 arg1)
 Camera_SetModeTraining.
void Camera_8002F7AC (s8 slot)
void Camera_SetModeToFixed (void)
s32 fn_8002F908 (HSD_RectF32 *arg0)
void Camera_8002F9E4 (s8 arg0, s8 arg1)
s32 fn_8002FBA0 (HSD_RectF32 *arg0)
void Camera_8002FC7C (s8 arg0, s8 arg1)
void Camera_8002FE38 (void)
void Camera_8002FEEC (s32 arg0)
void Camera_8003006C (void)
void Camera_800300F0 (void)
bool Camera_8003010C (void)
bool Camera_80030130 (void)
bool Camera_80030154 (void)
bool Camera_80030178 (void)
Vec3 * Camera_8003019C (void)
static s64 gxlink_prio8 (void)
static s64 gxlink_prio1 (void)
static s64 gxlink_prio80 (void)
static void render_gxlink_pass (HSD_GObj *gobj, int pass, int gxlink)
void Camera_800304E0 (HSD_GObj *gobj)
void Camera_Create (void)
void Camera_80030730 (f32 arg8)
void Camera_SetBackgroundColor (u8 r, u8 g, u8 b)
GXColor Camera_GetBackgroundColor (void)
void Camera_GetTransformPosition (Vec3 *arg0)
void Camera_GetTransformInterest (Vec *arg0)
static void project_ground_x (f32 *value, Vec3 *eye_pos, f32 dir_x, f32 dir_z)
static bool same_side (f32 fwd_z, f32 dir_z)
bool Camera_800307D0 (f32 *left, f32 *center, f32 *right)
HSD_GObj * Camera_80030A50 (void)
void Camera_80030A60 (bool arg0)
bool Camera_80030A78 (void)
void Camera_80030A8C (bool arg0)
void Camera_SetStageVisible (int arg0)
bool Camera_80030AC4 (void)
void Camera_80030AE0 (bool arg0)
bool Camera_80030AF8 (void)
void Camera_80030B0C (bool arg0)
bool Camera_80030B24 (void)
void Camera_80030B38 (bool arg0)
bool Camera_80030B50 (void)
void Camera_80030B64 (bool arg0)
bool Camera_80030B7C (void)
void Camera_80030B90 (bool arg0)
bool Camera_80030BA8 (void)
bool Camera_80030BBC (Vec3 *arg0, S32Vec2 *arg1)
 Camera_ToScreen.
bool Camera_80030CD8 (CmSubject *arg0, S32Vec2 *arg1)
bool Camera_80030CFC (CmSubject *cam_box, f32 tolerance)
 Camera_IsSubjectOnScreen.
void Camera_80030DE4 (f32 arg8, f32 arg9)
void Camera_80030DF8 (void)
float Camera_80030E10 (void)
void Camera_SetQuakeScale (f32 scale)
void Camera_RequestQuake (CmQuakeKind kind, Vec3 *pos)
void Camera_StopQuake (CmQuakeKind kind)
enum_t Camera_80031060 (void)
void Camera_80031074 (u8 arg0)
enum_t Camera_8003108C (void)
void Camera_800310A0 (u8 arg0)
HSD_CObj * Camera_800310B8 (void)
void Camera_800310E8 (void)
f32 Camera_80031144 (void)
bool Camera_80031154 (Vec3 *arg0)
bool Camera_8003118C (Vec3 *arg0, float arg1)
void Camera_800311CC (f32 arg8)
void Camera_800311DC (f32 arg8)
static s64 inline_cam_gx_b0 (void)
static s64 inline_cam_gx_b1 (void)
static s64 inline_cam_gx_b4 (void)
void Camera_800311EC (HSD_GObj *gobj, u64 prios)
void Camera_80031328 (HSD_GObj *gobj, u64 prios)
void Camera_800313E0 (HSD_GObj *gobj, u64 prios)

Variables

static Camera game_camera
 The main camera used in game scenes.
CameraDebugMode cm_80453004
static CameraModeCallbacks cm_803BCB18
static HSD_WObjDesc cm_803BCB3C
static HSD_WObjDesc cm_803BCB50
static HSD_CameraDescPerspective cm_803BCB64
static float cm_803BCB9C [] = { 0.0f, 1.5f, 1.32f, 1.16f, 1.0f }
CameraUnkGlobals cm_803BCCA0
static Vec3 const cm_WorldForward = { 0.0f, 0.0f, -1.0f }
static Vec3 const cm_803B73C4 = { 0.0f }
static Vec3 const cm_WorldUp = { 0.0f, 1.0f, 0.0f }
static Vec3 const cm_803B73DC = { 0.0f, 1.0f, 0.0f }
CmSubject * cm_804D6468
HSD_CObj * cm_804D6464
CmSubject * cm_804D6460
CmSubject * cm_804D645C
CmSubject * cm_804D6458
static char lbl_803BCC70 [0x16] = "rate>0.0F&&rate<=1.0F"
static char lbl_803BCC88 [0x14] = "snapshot! ptr=%08x\n"
DATA char gap_07_803BCC9C_data [4] = ""

Function Documentation

◆ Camera_80029AAC()

void Camera_80029AAC ( CameraBounds * bounds,
CameraTransformState * transform,
f32 speed )
static
Todo
this makes it match, but its weird to pass in x38 as a param

◆ fn_800301D0()

void fn_800301D0 ( HSD_GObj * gobj,
intptr_t arg1 )
static

◆ camera_sdata2_order()

void camera_sdata2_order ( void )
inlinestatic
Todo
sdata2 order hack

◆ vec_len()

float vec_len ( Vec3 * offset)
inlinestatic

◆ Camera_Init()

void Camera_Init ( int n_subjects)

◆ Camera_80028F5C()

void Camera_80028F5C ( CmSubject * subject,
CmSubjectState state )

◆ Camera_80029020()

CmSubject * Camera_80029020 ( void )

◆ Camera_80029044()

CmSubject * Camera_80029044 ( int arg0)

◆ Camera_800290D4()

void Camera_800290D4 ( CmSubject * subject)

◆ Camera_80029124()

u32 Camera_80029124 ( Vec3 * subject_pos,
s32 distance )
Todo
lots of ways to match this without the padding

◆ cam_bound()

bool cam_bound ( float x)
inlinestatic

◆ Camera_8002928C()

bool Camera_8002928C ( CmSubject * subject)

◆ Camera_800293E0()

void Camera_800293E0 ( void )

◆ Camera_8002958C()

void Camera_8002958C ( CameraBounds * bounds,
CameraTransformState * transform )

◆ get_follow_speed()

float get_follow_speed ( float temp_f4,
float spread,
CameraUnkGlobals * globals )
inlinestatic

◆ get_delta()

float get_delta ( float temp_f)
inlinestatic

◆ Camera_80029BC4()

void Camera_80029BC4 ( CameraBounds * bounds,
CameraTransformState * transform )

◆ Camera_80029C88()

void Camera_80029C88 ( CameraBounds * unused,
CameraTransformState * transform,
f32 arg_scale )

◆ get_y_bias()

f32 get_y_bias ( f32 spread)
inlinestatic

◆ Camera_80029CF8()

void Camera_80029CF8 ( CameraBounds * bounds,
CameraTransformState * transform )
Todo
another inline probably resolves this stack issue

◆ Camera_ApplyQuake()

void Camera_ApplyQuake ( CameraBounds * bounds,
CameraTransformState * state )

◆ Camera_SetQuakeOffset()

void Camera_SetQuakeOffset ( f32 x,
f32 y )

◆ Camera_UpdateQuakes()

void Camera_UpdateQuakes ( CameraBounds * bounds)

◆ get_stage_floor_height()

float get_stage_floor_height ( GrKind kind)
inlinestatic
Note
doesnt check all stages... probably was a bandaid for problem stages

◆ Camera_8002A4AC()

void Camera_8002A4AC ( HSD_GObj * gobj)

◆ Camera_8002A768()

void Camera_8002A768 ( CameraTransformState * transform,
s32 arg1 )

arg1 is always 0

◆ Camera_8002AF68()

void Camera_8002AF68 ( HSD_CObj * cobj,
CameraTransformState * transform )

◆ Camera_8002B0E0()

void Camera_8002B0E0 ( void )

◆ Camera_8002B1F8()

void Camera_8002B1F8 ( CameraTransformState * transform)

◆ fighter_z_out_of_range()

bool fighter_z_out_of_range ( Vec3 * fighter_pos)
inlinestatic

◆ update_zoom_distance()

void update_zoom_distance ( void )
inlinestatic

◆ update_transform()

void update_transform ( CameraBounds * bounds,
CameraTransformState * ts )
inlinestatic

◆ update_avg_bounds_width()

void update_avg_bounds_width ( void )
inlinestatic

◆ update_bounds()

void update_bounds ( CameraBounds * bounds,
CameraBounds * bounds_copy )
inlinestatic

◆ Camera_8002B3D4()

void Camera_8002B3D4 ( void * arg0)

update gameplay camera

◆ get_slot_pad()

HSD_PadStatus * get_slot_pad ( u8 arg0)
inlinestatic

◆ get_stick_x()

f32 get_stick_x ( HSD_PadStatus * arg0)
inlinestatic

◆ get_stick_y()

f32 get_stick_y ( HSD_PadStatus * arg0)
inlinestatic

◆ get_substick_x()

f32 get_substick_x ( HSD_PadStatus * arg0)
inlinestatic

◆ get_substick_y()

f32 get_substick_y ( HSD_PadStatus * arg0)
inlinestatic

◆ Camera_8002B694()

void Camera_8002B694 ( CameraInputs * inputs,
s32 slot )

◆ Camera_8002BA00()

s32 Camera_8002BA00 ( s32 slot,
s32 arg1 )

◆ Camera_8002BAA8()

void Camera_8002BAA8 ( f32 zoom_amt)

Camera_PauseZoom.

◆ OrthonormalizeBasis()

void OrthonormalizeBasis ( Vec3 * forward,
Vec3 * up,
Vec3 * right )
inlinestatic

◆ Camera_8002BC78()

s32 Camera_8002BC78 ( Vec3 * forward,
Vec3 * up,
Vec3 * right )

◆ Camera_8002BD88()

void Camera_8002BD88 ( f32 x,
f32 y )

Camera_PauseRotate.

◆ Camera_8002C010()

void Camera_8002C010 ( f32 farg0,
f32 farg1 )

◆ Camera_8002C1A8_inline()

void Camera_8002C1A8_inline ( void )
inlinestatic

◆ getPauseScale()

f32 getPauseScale ( void )
inlinestatic

◆ Camera_8002C1A8()

void Camera_8002C1A8 ( void )

◆ eye_offset_len()

float eye_offset_len ( Vec3 * offset)
inlinestatic

◆ Camera_8002C5B4()

void Camera_8002C5B4 ( Camera_x2D0 * arg0)
Todo
figure out how to get rid of this gross hack

◆ get_subject_pos()

bool get_subject_pos ( Vec3 * pos,
const s8 * slot_ptr )
inlinestatic

◆ get_target_interest()

Vec3 * get_target_interest ( CameraTransformState * transform)
inlinestatic

◆ track_subject()

void track_subject ( CameraTransformState * transform,
Vec3 * interest_diff,
Vec3 * eye_diff )
inlinestatic

◆ Camera_8002C908()

void Camera_8002C908 ( void * arg0)
Todo
this and Camera_8002C908 share the body of track_subject, there always seems to be a regswap though

◆ absf()

f32 absf ( f32 x)
inlinestatic

◆ Camera_8002CB0C()

void Camera_8002CB0C ( CameraBounds * bounds)

Camera_PauseThink.

◆ Camera_8002CDDC()

void Camera_8002CDDC ( void * unused)

◆ compute_orbit_distance()

f32 compute_orbit_distance ( s32 slot)
inlinestatic

◆ get_subject_x1C()

Vec3 * get_subject_x1C ( CmSubject * subject)
inlinestatic
Todo
i dont think this is real but it fixes some reg swaps in Camera_8002D318

◆ Camera_8002D318()

void Camera_8002D318 ( void * unused)
Todo
this and Camera_8002D85C are very similar but i cant quite figure out the helpers for them. there is also a pattern stack gaps of 24 bytes

◆ Camera_8002D85C()

void Camera_8002D85C ( void * unused)

◆ set_bounds_z()

void set_bounds_z ( CameraBounds * bounds,
Vec3 * interest,
Vec3 * position )
inlinestatic

◆ smooth_fixed_camera_interest()

void smooth_fixed_camera_interest ( CameraTransformState * transform_copy,
Camera * cam,
CameraUnkGlobals * globals )
inlinestatic

◆ Camera_8002DDC4()

void Camera_8002DDC4 ( void * unused)
Todo
there is a clear pattern inside here

◆ Camera_8002DFE4()

s32 Camera_8002DFE4 ( Vec3 * start,
Vec3 * end,
Vec3 * out )

◆ Camera_8002E158()

bool Camera_8002E158 ( f32 * arg0,
f32 farg0,
f32 farg1 )

◆ Camera_8002E234()

bool Camera_8002E234 ( void )

◆ getX378()

f32 getX378 ( void )
inlinestatic

◆ Camera_8002E490()

void Camera_8002E490 ( void * unused)

◆ Camera_8002E6FC()

void Camera_8002E6FC ( int arg0)

◆ Camera_8002E818()

void Camera_8002E818 ( Vec3 * pos)

◆ Camera_8002E948()

void Camera_8002E948 ( bool(* cb )(Vec *))

◆ Camera_8002EA64()

void Camera_8002EA64 ( Vec * arg0)

◆ Camera_8002EB5C()

void Camera_8002EB5C ( float arg0)

◆ Camera_8002EC7C()

void Camera_8002EC7C ( float arg0)

◆ Camera_8002ED9C()

void Camera_8002ED9C ( float arg0)

◆ Camera_8002EEC8()

void Camera_8002EEC8 ( f32 fov)

◆ Camera_8002EF14()

void Camera_8002EF14 ( void )

◆ Camera_8002F0E4()

void Camera_8002F0E4 ( s32 arg0)

◆ Camera_8002F260()

bool Camera_8002F260 ( void )

◆ Camera_8002F274()

void Camera_8002F274 ( void )

◆ fn_8002F360()

void fn_8002F360 ( HSD_GObj * x)

◆ getCameraGObj()

HSD_GObj * getCameraGObj ( void )
inlinestatic

◆ Camera_8002F3AC()

void Camera_8002F3AC ( void )

◆ Camera_SetModeToStandard()

void Camera_SetModeToStandard ( void )

◆ Camera_SetBounds()

s32 Camera_SetBounds ( Vec4 * arg0)

◆ Camera_SetUpPauseCamera()

void Camera_SetUpPauseCamera ( s8 pauserSlot,
s8 pauserId,
s32 arg2 )

Switches the camera to pause-camera mode.

Configures pause-camera bounds, eye offset, and zoom from stage data for the given pauser. Called when a match is paused (e.g. via gm_EnablePlayerPauseCamera or Camera_8002F760).

Parameters
[in]pauserSlotPlayer slot to center the pause camera on, or a special slot id. Valid player slots are 0-5; slots 0xA and 0xB are also accepted (0xB is used when no valid slot is available). Out-of-range values default to 0.
[in]pauserIdController port / player id of the pauser. Valid ids are 0-3; ids 4-5 are also accepted. Out-of-range values default to 4.
[in]arg2Initial zoom preset: 0 uses the stage's default pause distance; 1 uses the current minimum zoom.

◆ Camera_SetUpPauseCameraWithDefaultZoom()

void Camera_SetUpPauseCameraWithDefaultZoom ( s8 pauserSlot,
s8 pauserId )

Switches the camera to pause-camera mode with default stage zoom.

Wrapper around Camera_SetUpPauseCamera with arg2 set to 0.

◆ Camera_8002F760()

void Camera_8002F760 ( s8 arg0,
s8 arg1 )

◆ Camera_8002F784()

void Camera_8002F784 ( s8 slot,
s8 arg1 )

Camera_SetModeTraining.

◆ Camera_8002F7AC()

void Camera_8002F7AC ( s8 slot)

◆ Camera_SetModeToFixed()

void Camera_SetModeToFixed ( void )

◆ fn_8002F908()

s32 fn_8002F908 ( HSD_RectF32 * arg0)

◆ Camera_8002F9E4()

void Camera_8002F9E4 ( s8 arg0,
s8 arg1 )

◆ fn_8002FBA0()

s32 fn_8002FBA0 ( HSD_RectF32 * arg0)

◆ Camera_8002FC7C()

void Camera_8002FC7C ( s8 arg0,
s8 arg1 )

◆ Camera_8002FE38()

void Camera_8002FE38 ( void )

◆ Camera_8002FEEC()

void Camera_8002FEEC ( s32 arg0)

◆ Camera_8003006C()

void Camera_8003006C ( void )

◆ Camera_800300F0()

void Camera_800300F0 ( void )

◆ Camera_8003010C()

bool Camera_8003010C ( void )

◆ Camera_80030130()

bool Camera_80030130 ( void )

◆ Camera_80030154()

bool Camera_80030154 ( void )

◆ Camera_80030178()

bool Camera_80030178 ( void )

◆ Camera_8003019C()

Vec3 * Camera_8003019C ( void )

◆ gxlink_prio8()

s64 gxlink_prio8 ( void )
inlinestatic
Todo
these are probably somewhat fake, but maybe a combination of this + render_gxlink_pass is the real deal.

◆ gxlink_prio1()

s64 gxlink_prio1 ( void )
inlinestatic

◆ gxlink_prio80()

s64 gxlink_prio80 ( void )
inlinestatic

◆ render_gxlink_pass()

void render_gxlink_pass ( HSD_GObj * gobj,
int pass,
int gxlink )
inlinestatic

◆ Camera_800304E0()

void Camera_800304E0 ( HSD_GObj * gobj)

◆ Camera_Create()

void Camera_Create ( void )

◆ Camera_80030730()

void Camera_80030730 ( f32 arg8)

◆ Camera_SetBackgroundColor()

void Camera_SetBackgroundColor ( u8 r,
u8 g,
u8 b )
Parameters
rThe red component.
gThe green component.
bThe blue component.

◆ Camera_GetBackgroundColor()

GXColor Camera_GetBackgroundColor ( void )

◆ Camera_GetTransformPosition()

void Camera_GetTransformPosition ( Vec3 * arg0)

◆ Camera_GetTransformInterest()

void Camera_GetTransformInterest ( Vec * arg0)

◆ project_ground_x()

void project_ground_x ( f32 * value,
Vec3 * eye_pos,
f32 dir_x,
f32 dir_z )
inlinestatic

◆ same_side()

bool same_side ( f32 fwd_z,
f32 dir_z )
inlinestatic

◆ Camera_800307D0()

bool Camera_800307D0 ( f32 * left,
f32 * center,
f32 * right )
Todo
would make more sense if these two blocks were the inlines

◆ Camera_80030A50()

HSD_GObj * Camera_80030A50 ( void )

◆ Camera_80030A60()

void Camera_80030A60 ( bool arg0)

◆ Camera_80030A78()

bool Camera_80030A78 ( void )

◆ Camera_80030A8C()

void Camera_80030A8C ( bool arg0)

◆ Camera_SetStageVisible()

void Camera_SetStageVisible ( int arg0)

◆ Camera_80030AC4()

bool Camera_80030AC4 ( void )

◆ Camera_80030AE0()

void Camera_80030AE0 ( bool arg0)

◆ Camera_80030AF8()

bool Camera_80030AF8 ( void )

◆ Camera_80030B0C()

void Camera_80030B0C ( bool arg0)

◆ Camera_80030B24()

bool Camera_80030B24 ( void )

◆ Camera_80030B38()

void Camera_80030B38 ( bool arg0)

◆ Camera_80030B50()

bool Camera_80030B50 ( void )

◆ Camera_80030B64()

void Camera_80030B64 ( bool arg0)

◆ Camera_80030B7C()

bool Camera_80030B7C ( void )

◆ Camera_80030B90()

void Camera_80030B90 ( bool arg0)

◆ Camera_80030BA8()

bool Camera_80030BA8 ( void )

◆ Camera_80030BBC()

bool Camera_80030BBC ( Vec3 * arg0,
S32Vec2 * arg1 )

Camera_ToScreen.

◆ Camera_80030CD8()

bool Camera_80030CD8 ( CmSubject * arg0,
S32Vec2 * arg1 )

◆ Camera_80030CFC()

bool Camera_80030CFC ( CmSubject * cam_box,
f32 tolerance )

Camera_IsSubjectOnScreen.

◆ Camera_80030DE4()

void Camera_80030DE4 ( f32 arg8,
f32 arg9 )

◆ Camera_80030DF8()

void Camera_80030DF8 ( void )

◆ Camera_80030E10()

float Camera_80030E10 ( void )

◆ Camera_SetQuakeScale()

void Camera_SetQuakeScale ( f32 scale)

◆ Camera_RequestQuake()

void Camera_RequestQuake ( CmQuakeKind kind,
Vec3 * pos )

◆ Camera_StopQuake()

void Camera_StopQuake ( CmQuakeKind kind)

◆ Camera_80031060()

enum_t Camera_80031060 ( void )

◆ Camera_80031074()

void Camera_80031074 ( u8 arg0)

◆ Camera_8003108C()

enum_t Camera_8003108C ( void )

◆ Camera_800310A0()

void Camera_800310A0 ( u8 arg0)

◆ Camera_800310B8()

HSD_CObj * Camera_800310B8 ( void )

◆ Camera_800310E8()

void Camera_800310E8 ( void )

◆ Camera_80031144()

f32 Camera_80031144 ( void )

◆ Camera_80031154()

bool Camera_80031154 ( Vec3 * arg0)

◆ Camera_8003118C()

bool Camera_8003118C ( Vec3 * arg0,
float arg1 )

◆ Camera_800311CC()

void Camera_800311CC ( f32 arg8)

◆ Camera_800311DC()

void Camera_800311DC ( f32 arg8)

◆ inline_cam_gx_b0()

s64 inline_cam_gx_b0 ( void )
inlinestatic

◆ inline_cam_gx_b1()

s64 inline_cam_gx_b1 ( void )
inlinestatic

◆ inline_cam_gx_b4()

s64 inline_cam_gx_b4 ( void )
inlinestatic

◆ Camera_800311EC()

void Camera_800311EC ( HSD_GObj * gobj,
u64 prios )

◆ Camera_80031328()

void Camera_80031328 ( HSD_GObj * gobj,
u64 prios )

◆ Camera_800313E0()

void Camera_800313E0 ( HSD_GObj * gobj,
u64 prios )

Variable Documentation

◆ game_camera

Camera game_camera
static

The main camera used in game scenes.

◆ cm_80453004

CameraDebugMode cm_80453004

◆ cm_803BCB18

CameraModeCallbacks cm_803BCB18
static
Initial value:
= {
0,
0,
}
void Camera_8002CDDC(void *unused)
Definition camera.c:2405
void Camera_8002B3D4(void *arg0)
update gameplay camera
Definition camera.c:1551
void Camera_8002E490(void *unused)
Definition camera.c:2946
void Camera_8002C908(void *arg0)
Definition camera.c:2233
void Camera_8002D85C(void *unused)
Definition camera.c:2588
void Camera_8002DDC4(void *unused)
Definition camera.c:2723
void Camera_8002D318(void *unused)
Definition camera.c:2483

◆ cm_803BCB3C

HSD_WObjDesc cm_803BCB3C
static
Initial value:
= {
NULL, { 0.0f, 40.241425f, 300.241f }, 0
}
#define NULL
Definition stddef.h:19

◆ cm_803BCB50

HSD_WObjDesc cm_803BCB50
static
Initial value:
= {
{ 0.0f, 10.0f, 0.0f },
0,
}

◆ cm_803BCB64

HSD_CameraDescPerspective cm_803BCB64
static
Initial value:
= {
0,
0,
1,
{ 0, 0x280, 0, 0x1E0 },
{ 0, 0x280, 0, 0x1E0 },
0.0f,
0.1f,
16384.0f,
30.0f,
1.2173333f
}
static HSD_WObjDesc cm_803BCB50
Definition camera.c:71
static HSD_WObjDesc cm_803BCB3C
Definition camera.c:68

◆ cm_803BCB9C

float cm_803BCB9C[] = { 0.0f, 1.5f, 1.32f, 1.16f, 1.0f }
static

◆ cm_803BCCA0

CameraUnkGlobals cm_803BCCA0
Initial value:
= {
83.0f, 1000.0f, -30.0f, 5.0f, -7.0f, 17.5f, -17.5f, 0.0f, 0.0682f,
60.0f, 120.0f, 0.05f, 0.1f, 120.0f, 900.0f, 0.15f, 38.0f, 0.1f,
0.1f, 0.001f, 0.1f, 1.0f, 1.0f, 0.6f, 0.6f, 0.05f, 0.1f,
29.0f, 0.1f, 0.1f, 0.1f, 0.1f, 0.5f, 0.5f, 0.4f, -11.0f,
400.0f, 0.2f, 4.0f, 0.05f, 1.0f, -7.0f, 7.0f, 0.5f, 0.5f,
0.004f, 0.2f, 0.025f, 0.2f, 0.003f, 0.2f, 0.025f, 0.2f, 0.02f,
1.0f, 0.14f, 1200.0f, -0.2f, 1.2f, 0.0f,
}
Todo
Fix placement
Todo
Move to its own split

◆ cm_WorldForward

Vec3 const cm_WorldForward = { 0.0f, 0.0f, -1.0f }
static

◆ cm_803B73C4

Vec3 const cm_803B73C4 = { 0.0f }
static

◆ cm_WorldUp

Vec3 const cm_WorldUp = { 0.0f, 1.0f, 0.0f }
static

◆ cm_803B73DC

Vec3 const cm_803B73DC = { 0.0f, 1.0f, 0.0f }
static

◆ cm_804D6468

CmSubject* cm_804D6468

◆ cm_804D6464

HSD_CObj* cm_804D6464

◆ cm_804D6460

CmSubject* cm_804D6460

◆ cm_804D645C

CmSubject* cm_804D645C

◆ cm_804D6458

CmSubject* cm_804D6458

◆ lbl_803BCC70

char lbl_803BCC70[0x16] = "rate>0.0F&&rate<=1.0F"
static

◆ lbl_803BCC88

char lbl_803BCC88[0x14] = "snapshot! ptr=%08x\n"
static

◆ gap_07_803BCC9C_data

DATA char gap_07_803BCC9C_data[4] = ""