8 #define ABS(x) ((x) > 0.f ? (x) : -(x)) 9 #define ABS2(x) ((x) >= 0.f ? (x) : -(x)) 11 #define AREA_BBH 0x0041 12 #define AREA_CCM_OUTSIDE 0x0051 13 #define AREA_CCM_SLIDE 0x0052 14 #define AREA_CASTLE_LOBBY 0x0061 15 #define AREA_CASTLE_TIPPY 0x0062 16 #define AREA_CASTLE_BASTEMENT 0x0063 17 #define AREA_HMC 0x0071 18 #define AREA_SSL_OUTSIDE 0x0081 19 #define AREA_SSL_PYRAMID 0x0082 20 #define AREA_SSL_EYEROK 0x0083 21 #define AREA_BOB 0x0091 22 #define AREA_SL_OUTSIDE 0x00A1 23 #define AREA_SL_IGLOO 0x00A2 24 #define AREA_WDW_MAIN 0x00B1 25 #define AREA_WDW_TOWN 0x00B2 26 #define AREA_JRB_MAIN 0x00C1 27 #define AREA_JRB_SHIP 0x00C2 28 #define AREA_THI_HUGE 0x00D1 29 #define AREA_THI_TINY 0x00D2 30 #define AREA_THI_WIGGLER 0x00D3 31 #define AREA_TTC 0x00E1 32 #define AREA_RR 0x00F1 33 #define AREA_OUTSIDE_CASTLE 0x0101 34 #define AREA_BITDW 0x0111 35 #define AREA_VCUTM 0x0121 36 #define AREA_BITFS 0x0131 37 #define AREA_SA 0x0141 38 #define AREA_BITS 0x0151 39 #define AREA_LLL_OUTSIDE 0x0161 40 #define AREA_LLL_VOLCANO 0x0162 41 #define AREA_DDD_WHIRLPOOL 0x0171 42 #define AREA_DDD_SUB 0x0172 43 #define AREA_WF 0x0181 44 #define AREA_ENDING 0x0191 45 #define AREA_COURTYARD 0x01A1 46 #define AREA_PSS 0x01B1 47 #define AREA_COTMC 0x01C1 48 #define AREA_TOTWC 0x01D1 49 #define AREA_BOWSER_1 0x01E1 50 #define AREA_WMOTR 0x01F1 51 #define AREA_BOWSER_2 0x0211 52 #define AREA_BOWSER_3 0x0221 53 #define AREA_TTM_OUTSIDE 0x0241 55 #define CAM_MODE_MARIO_ACTIVE 0x01 56 #define CAM_MODE_LAKITU_WAS_ZOOMED_OUT 0x02 57 #define CAM_MODE_MARIO_SELECTED 0x04 59 #define CAM_MOVE_RETURN_TO_MIDDLE 0x0001 60 #define CAM_MOVE_ZOOMED_OUT 0x0002 61 #define CAM_MOVE_ROTATE_RIGHT 0x0004 62 #define CAM_MOVE_ROTATE_LEFT 0x0008 63 #define CAM_MOVE_UNKNOWN_5 0x0010 64 #define CAM_MOVE_UNKNOWN_6 0x0020 65 #define CAM_MOVE_UNKNOWN_7 0x0040 66 #define CAM_MOVE_UNKNOWN_8 0x0080 67 #define CAM_MOVE_INTO_C_UP 0x0100 68 #define CAM_MOVE_UNKNOWN_10 0x0200 69 #define CAM_MOVE_UNKNOWN_11 0x0400 70 #define CAM_MOVE_INIT_CAMERA 0x0800 71 #define CAM_MOVE_UNK1000 0x1000 72 #define CAM_MOVE_C_UP_MODE 0x2000 73 #define CAM_MOVE_SUBMERGED 0x4000 74 #define CAM_MOVE_PAUSE_SCREEN 0x8000 76 #define CAM_FLAG_1_UNKNOWN_0 0x01 77 #define CAM_FLAG_1_UNKNOWN_1 0x02 78 #define CAM_FLAG_1_UNKNOWN_2 0x04 79 #define CAM_FLAG_1_UNUSED_3 0x08 80 #define CAM_FLAG_1_UNUSED_4 0x10 81 #define CAM_FLAG_1_UNKNOWN_5 0x20 83 #define CAM_FLAG_2_SMOOTH_MOVEMENT 0x0001 84 #define CAM_FLAG_2_UNKNOWN_1 0x0002 85 #define CAM_FLAG_2_FRAME_AFTER_CAM_INIT 0x0004 86 #define CAM_FLAG_2_UNKNOWN_3 0x0008 87 #define CAM_FLAG_2_CCM_SLIDE_SHORTCUT 0x0010 88 #define CAM_FLAG_2_COLLIDING_WITH_WALL 0x0020 89 #define CAM_FLAG_2_SLEEPING 0x0040 90 #define CAM_FLAG_2_UNUSED_7 0x0080 91 #define CAM_FLAG_2_UNUSED_8 0x0100 92 #define CAM_FLAG_2_UNKNOWN_9 0x0200 93 #define CAM_FLAG_2_UNKNOWN_10 0x0400 94 #define CAM_FLAG_2_UNKNOWN_11 0x0800 95 #define CAM_FLAG_2_BLOCK_LEVEL_SPECIFIC_UPDATES 0x1000 96 #define CAM_FLAG_2_UNUSED_13 0x2000 97 #define CAM_FLAG_2_UNUSED_CUTSCENE_ACTIVE 0x4000 98 #define CAM_FLAG_2_BEHIND_MARIO_POST_DOOR 0x8000 100 #define SHAKE_ATTACK 1 101 #define SHAKE_GROUND_POUND 2 102 #define SHAKE_SMALL_DAMAGE 3 103 #define SHAKE_MED_DAMAGE 4 104 #define SHAKE_LARGE_DAMAGE 5 105 #define SHAKE_HIT_FROM_BELOW 8 106 #define SHAKE_FALL_DAMAGE 9 107 #define SHAKE_SHOCK 10 109 #define SHAKE_2_UNKNOWN_1 1 110 #define SHAKE_2_UNKNOWN_2 2 111 #define SHAKE_2_UNKNOWN_3 3 112 #define SHAKE_2_UNKNOWN_5 5 113 #define SHAKE_2_UNKNOWN_6 6 114 #define SHAKE_2_UNKNOWN_7 7 115 #define SHAKE_2_UNKNOWN_8 8 116 #define SHAKE_2_JRB_SHIP_DRAIN 9 117 #define SHAKE_2_FALLING_BITS_PLAT 10 119 #define CUTSCENE_DOOR_0 130 120 #define CUTSCENE_DOOR_1 131 121 #define CUTSCENE_ENTER_CANNON 133 122 #define CUTSCENE_ENTER_PAINTING 134 123 #define CUTSCENE_DEATH_EXIT 135 124 #define CUTSCENE_DOOR_WARP 139 125 #define CUTSCENE_DOOR_A 140 126 #define CUTSCENE_DOOR_B 141 127 #define CUTSCENE_INTRO_PEACH 142 128 #define CUTSCENE_STAR_DANCE_1_1 143 129 #define CUTSCENE_ENTER_BOWSER_ARENA 144 130 #define CUTSCENE_0F_TODO 145 131 #define CUTSCENE_11_TODO 147 132 #define CUTSCENE_SLIDING_DOORS_OPEN 149 133 #define CUTSCENE_PREPARE_CANNON 150 134 #define CUTSCENE_UNLOCK_KEY_DOOR 151 135 #define CUTSCENE_STANDING_DEATH 152 136 #define CUTSCENE_DEATH_2 153 137 #define CUTSCENE_DEATH_ON_BACK 154 138 #define CUTSCENE_QUICKSAND_DEATH 155 139 #define CUTSCENE_SUFFOCATION_DEATH 156 140 #define CUTSCENE_EXIT_BOWSER_SUCC 157 141 #define CUTSCENE_1C_TODO 158 142 #define CUTSCENE_WATER_DEATH 159 //Not in cutscene switch 143 #define CUTSCENE_EXIT_PAINTING_SUCC 160 144 #define CUTSCENE_CAP_SWITCH_PRESS 161 145 #define CUTSCENE_DIALOG_1 162 146 #define CUTSCENE_DIALOG_2 163 147 #define CUTSCENE_ENTER_PYRAMID_TOP 164 148 #define CUTSCENE_STAR_DANCE_2 165 149 #define CUTSCENE_STAR_DANCE_3 166 150 #define CUTSCENE_KEY_DANCE 167 151 #define CUTSCENE_26_TODO 168 152 #define CUTSCENE_EXIT_BBH_SUCC 169 153 #define CUTSCENE_NONPAINTING_DEATH 170 154 #define CUTSCENE_READ_MESSAGE 171 155 #define CUTSCENE_PEACH_END 172 156 #define CUTSCENE_STAR_SPAWN 173 157 #define CUTSCENE_GRAND_STAR 174 158 #define CUTSCENE_STAR_DANCE_1_2 175 159 #define CUTSCENE_SPECIAL_STAR_SPAWN 176 160 #define CUTSCENE_END_WAVING 177 161 #define CUTSCENE_CREDITS 178 162 #define CUTSCENE_EXIT_WATERFALL 179 163 #define CUTSCENE_EXIT_FALL_WMOTR 180 164 #define CUTSCENE_ENTER_POOL 181 208 u8 filler34[0x3A-0x34];
363 #ifndef INCLUDED_FROM_CAMERA_C s16 func_8028F9A4(u8, struct Object *)
Definition: camera.c:5308
f32 currFloorHeight
Definition: camera.h:265
s32 select_or_activate_mario_cam(s32)
Definition: camera.c:2708
f32 Vec3f[3]
Definition: types.h:23
Vec3f unk4
Definition: camera.h:317
Vec3f unk0
Definition: camera.h:281
s16 shakeRollMagIncrement
Definition: camera.h:349
Vec3f sFixedPresetBasePosition
Definition: camera.c:124
s16 unk1C
Definition: camera.h:284
void play_camera_buzz_if_cbutton(void)
Definition: camera.c:3632
Vec3f marioPos
Definition: camera.h:187
s16 shakeYawIncrement
Definition: camera.h:351
s8 unk0
Definition: camera.h:193
s32 find_c_buttons_pressed(u16, u16, u16)
Definition: camera.c:2834
void object_pos_to_vec3f(Vec3f, struct Object *)
Definition: camera.c:2599
void func_8028AA80(s16, s16, s16, f32, f32, f32, f32)
Definition: camera.c:3497
s16 gCameraFlags1
Definition: camera.c:63
s32 unk18
Definition: camera.h:205
f32 fieldOfView
Definition: camera.h:246
signed char s8
Definition: ultratypes.h:11
s32 find_and_return_count_wall_collisions(Vec3f, f32, f32)
Definition: camera.c:2887
void set_camera_cutscene_table(struct LevelCamera *a, u8 b)
If camera's cutscene table is not already set to a value, set it to that value.
Definition: camera.c:3834
s16 unk1C[2]
Definition: camera.h:174
s16 calculate_verticle_angle(Vec3f, Vec3f)
Definition: camera.c:3399
struct CameraState gCameraStatus
Definition: camera.c:66
Vec3f pos
Definition: camera.h:308
void dummy_802877EC(struct LevelCamera *)
void set_camera_shake_2(s16)
Definition: camera.c:258
CmdRet(* CameraCommandProc)(struct LevelCamera *a)
Definition: camera.h:222
u8 modeActive
Definition: camera.h:327
unsigned short int u16
Definition: ultratypes.h:14
u8 pad
Definition: camera.h:188
s32 clamp_positions_and_find_yaw_angle(Vec3f, Vec3f, f32, f32, f32, f32)
Definition: camera.c:3238
Vec3f unkC
Definition: camera.h:282
s16 cameraKeyCutsceneRollOffset
Definition: camera.h:357
s32 camera_approach_f32_symmetric_bool(f32 *, f32, f32)
Approaches a value by a given increment, returns FALSE if the target is reached.
Definition: camera.c:3129
s32 func_8028AF24(struct LevelCamera *a, s16 b)
Definition: camera.c:3581
void update_camera(struct LevelCamera *)
Definition: camera.c:2121
CameraCommandProc unk4
Definition: camera.h:227
s32 timer
Definition: camera.h:186
u8 return_cutscene_table()
signed short int s16
Definition: ultratypes.h:13
Vec3f focus
Definition: camera.h:309
void operate_c_up_looking(struct LevelCamera *)
u32 lastFrameAction
Definition: camera.h:358
void vec3f_to_object_pos(struct Object *, Vec3f)
Definition: camera.c:2605
s16 shakeYawMagIncrement
Definition: camera.h:352
void set_pos_from_face_angle_and_vec3f(Vec3f, Vec3f, Vec3f, Vec3s)
Definition: camera.c:4048
float unkA4
Definition: camera.h:353
Vec3f pos
Definition: camera.h:346
void reset_camera(struct LevelCamera *)
Definition: camera.c:2293
s32 camera_approach_s16_symmetric_bool(s16 *a, s16 b, s16 c)
Definition: camera.c:3068
long long int force_structure_alignment
Definition: camera.h:196
s16 gCameraModeFlags
Definition: camera.c:59
s16 pitch2
Definition: camera.h:183
void set_spline_values(u8)
Definition: camera.c:2752
u8 modeDefault
Definition: camera.h:328
s16 pitch1
Definition: camera.h:180
void shake_camera_roll(s16 *)
Definition: camera.c:3568
void set_face_angle_from_spline(Vec3f, Vec3f)
Definition: camera.c:2786
f32 unk10
Definition: camera.h:249
u8 func_8028F834(u8)
Definition: camera.c:5274
void calculate_angles(Vec3f, Vec3f, s16 *, s16 *)
Definition: camera.c:3417
Vec3f unk28
Definition: camera.h:207
f32 unk1C
Definition: camera.h:311
s16 currCeilType
Definition: camera.h:268
void rotate_in_xz(Vec3f, Vec3f, s16)
Rotates a vector in the horizontal plane and copies it to a new vector.
Definition: camera.c:3452
u8 D_8032D0B8[]
Definition: camera.c:1135
s16 shakePitchOffset
Definition: camera.h:335
s16 yaw1
Definition: camera.h:181
s16 unkC
Definition: camera.h:230
void play_camera_buzz_if_cdown(void)
Definition: camera.c:3627
f32 prevCeilHeight
Definition: camera.h:274
s32 unk0
Definition: camera.h:316
s16 Vec3s[3]
Definition: types.h:24
void vec3f_sub(Vec3f, Vec3f)
Definition: camera.c:2593
void find_mario_relative_geometry(struct PlayerGeometry *)
Definition: camera.c:5239
void shake_camera_pitch()
u16 gCButtonsPressed
Definition: camera.c:64
s16 unk16
Definition: camera.h:251
f32 unk14
Definition: camera.h:303
void scale_along_line(Vec3f, Vec3f, Vec3f, f32)
Calculates the distance between two points and sets a vector to a point scaled along a line between t...
Definition: camera.c:3371
s32 update_camera_status(struct LevelCamera *)
Definition: camera.c:2869
void func_80285BD8(struct LevelCamera *, s16, s16)
Definition: camera.c:1999
s16 currFloorType
Definition: camera.h:266
Vec3f unk10
Definition: camera.h:318
struct LevelCamera * gCurrLevelCamera
Definition: camera.c:102
s8 unk0
Definition: camera.h:257
struct Surface * currCeil
Definition: camera.h:267
Vec3f unk4
Definition: camera.h:301
s16 shakeRollOffset
Definition: camera.h:347
s32 func_80299C60(s32, s16)
Definition: camera.c:8309
s16 unk3A
Definition: camera.h:209
f32 unk10
Definition: camera.h:302
s16 unk18
Definition: camera.h:252
s16 func_8028F9E8(u8, struct Object *)
Definition: camera.c:5313
void approach_camera_height(struct LevelCamera *, f32, f32)
Definition: camera.c:4010
void func_8027F440(s16, f32, f32, f32)
Definition: camera.c:299
float f32
Definition: ultratypes.h:29
Vec3f unk60
Definition: camera.h:339
f32 prevFloorHeight
Definition: camera.h:271
s16 unk4
Definition: camera.h:292
struct CameraPlayerStatus gPlayerStatusForCamera[2]
Definition: camera.c:35
s16 shakePitchIncrement
Definition: camera.h:336
void set_camera_roll_shake(s16, s16, s16)
Definition: camera.c:3489
s16 unk0
Definition: camera.h:290
s16 unk1E
Definition: camera.h:285
s16 gCameraMovementFlags
Definition: camera.c:90
at end of structure union member declaration In standard C each member declaration must be terminated by a
Definition: err.english.cc:690
s32 clamp_pitch(Vec3f a, Vec3f b, s16 c, s16 d)
Definition: camera.c:2937
s32 gCutsceneActive
Definition: camera.c:100
s16 yaw2
Definition: camera.h:184
void func_8028B36C(void)
Definition: camera.c:3663
s16 unk10
Definition: camera.h:232
s32 func_8028F2F0(struct LevelCamera *, Vec3f, s16 *, s16)
Definition: camera.c:5169
Vec3s unk2
Definition: camera.h:259
u8 unk0
Definition: camera.h:245
void instant_warp_camera_update(f32, f32, f32)
Definition: camera.c:3989
void set_camera_shake(s16)
Definition: camera.c:185
s32 func_80287CFC(Vec3f, struct CinematicCameraTable[], s16 *, f32 *)
Definition: camera.c:2659
void select_mario_cam_mode(void)
Definition: camera.c:2541
f32 unk18
Definition: camera.h:310
Vec3f pos
Definition: camera.h:171
s16 yaw
Definition: camera.h:332
s16 prevCeilType
Definition: camera.h:275
f32 dist2
Definition: camera.h:185
s16 unk14
Definition: camera.h:234
s32 is_within_100_units_of_mario(f32, f32, f32)
Definition: camera.c:2956
struct Surface * prevFloor
Definition: camera.h:270
Vec3s unk1C
Definition: camera.h:319
f32 currCeilHeight
Definition: camera.h:269
Vec3f focus
Definition: camera.h:345
f32 unk8
Definition: camera.h:247
void set_or_approach_vec3f_exponential(Vec3f, Vec3f, f32, f32, f32)
Definition: camera.c:3051
s16 unk2
Definition: camera.h:291
struct Object * gCutsceneFocus
Definition: camera.c:106
void approach_vec3f_exponential(Vec3f, Vec3f, f32, f32, f32)
Applies the approach_f32_exponential_bool function to each of the X, Y, & Z components of the given v...
Definition: camera.c:3044
Vec3s shakeMagnitude
Definition: camera.h:334
s32 approach_s16_exponential(s16, s16, s16)
Approaches an s16 value in the same fashion as approach_f32_exponential, returns the new value...
Definition: camera.c:3026
s16 storedYaw
Definition: camera.h:344
struct Surface * prevCeil
Definition: camera.h:273
Vec3f unk1C
Definition: camera.h:206
void play_sound_rbutton_changed(void)
Definition: camera.c:3659
s16 pitch
Definition: camera.h:331
s16 shakeYawOffset
Definition: camera.h:350
f32 camera_approach_f32_symmetric(f32, f32, f32)
Nearly the same as the above function, this one returns the new value in place of a bool...
Definition: camera.c:3156
f32 calc_hor_dist(Vec3f, Vec3f)
Finds the horizontal distance between two vectors.
Definition: camera.c:3441
s16 unkBC
Definition: camera.h:359
s16 unkE
Definition: camera.h:231
void set_camera_yaw_shake(s16, s16, s16)
Definition: camera.c:3481
struct Object * gSecondCameraFocus
Definition: camera.c:109
f32 dist1
Definition: camera.h:182
Vec3s unk8
Definition: camera.h:195
s16 shakeRollIncrement
Definition: camera.h:348
void handle_cutscenes(struct LevelCamera *)
Definition: camera.c:8214
s16 unk12
Definition: camera.h:233
Vec3s faceAngle
Definition: camera.h:172
s32 set_or_approach_f32_exponential(f32 *, f32, f32)
Definition: camera.c:2966
f32 calc_abs_dist(Vec3f, Vec3f)
Finds the distance between two vectors.
Definition: camera.c:3429
void handle_c_button_movement(struct LevelCamera *)
Definition: camera.c:3764
f32 unk18
Definition: camera.h:283
void set_camera_pitch_shake(s16, s16, s16)
Definition: camera.c:3473
void play_sound_cbutton_up(void)
Definition: camera.c:3643
s32 CmdRet
Definition: camera.h:219
u32 unkC
Definition: camera.h:248
void dummy_802877D8(struct LevelCamera *)
s16 trueYaw
Definition: camera.h:343
s8 area
Definition: camera.h:226
float focusDistance
Definition: camera.h:330
u32 action
Definition: camera.h:170
float unkAC
Definition: camera.h:355
s16 unk6
Definition: camera.h:293
s16 unk8
Definition: camera.h:228
f32 waterHeight
Definition: camera.h:276
void init_camera(struct LevelCamera *)
Definition: camera.c:2366
s16 sCameraSideCFlags
Definition: camera.c:61
s32 call_cutscene_func_in_time_range(CameraCommandProc, struct LevelCamera *, s16, s16)
Definition: camera.c:8300
unsigned char u8
Definition: ultratypes.h:12
s32 test_or_set_mario_cam_active(s32)
Definition: camera.c:2726
s16 level_specific_camera_update(struct LevelCamera *)
Definition: camera.c:4973
s32 set_or_approach_s16_symmetric(s16 *a, s16 b, s16 c)
Definition: camera.c:3113
s16 unk0
Definition: camera.h:300
void init_transitional_movement(UNUSED struct LevelCamera *, s16)
Definition: camera.c:1969
s16 func_8028C824(Vec3f a, Vec3f b, Vec3f c, Vec3f d, Vec3f e, Vec3f f, s16 g)
Definition: camera.c:4078
s32 func_8028B3DC(struct LevelCamera *a, f32 b)
void func_8029A494(u8)
Definition: camera.c:8481
#define UNUSED
Definition: macros.h:13
struct Object * usedObj
Definition: camera.h:175
s16 unk14
Definition: camera.h:250
s16 func_8028F8E0(u8, struct Object *, s16)
Definition: camera.c:5290
void play_camera_buzz_if_c_sideways(void)
Definition: camera.c:3637
void play_sound_button_change_blocked(void)
Definition: camera.c:3655
s32 stop_mario(s32)
Definition: camera.c:3753
s16 prevFloorType
Definition: camera.h:272
s32 func_8028A0D4(Vec3f a, Vec3f b, struct Surface *c, s16 d, s16 e)
Definition: camera.c:3334
s32 approach_s16_exponential_bool(s16 *, s16, s16)
Approaches an s16 value in the same fashion as approach_f32_exponential_bool, returns TRUE if target ...
Definition: camera.c:3005
s16 unk4
Definition: camera.h:240
CameraCommandProc unk0
Definition: camera.h:239
signed int s32
Definition: ultratypes.h:15
void set_fixed_cam_axis_sa_lobby(s16 preset)
void func_80299C98(s16, s16, s16)
Definition: camera.c:8315
u8 unk1
Definition: camera.h:258
s16 unk22
Definition: camera.h:320
void func_8029A514(u8, f32, f32, f32)
Definition: camera.c:8492
void func_8029A7DC(struct Object *, Vec3f, s16, s16, s16, s16)
Definition: camera.c:8524
Vec3s unk6C
Definition: camera.h:340
void resolve_geometry_collisions(Vec3f, Vec3f)
void set_fov_function(u8)
Definition: camera.c:8477
s16 unkA
Definition: camera.h:229
s16 roll
Definition: camera.h:342
s16 shakePitchMagIncrement
Definition: camera.h:337
struct Surface * currFloor
Definition: camera.h:264
unsigned int u32
Definition: ultratypes.h:16
void random_vec3s(Vec3s a, s16 b, s16 c, s16 d)
Generate a vector with all three values about zero.
Definition: camera.c:3181
void rotate_in_yz(Vec3f, Vec3f, s16)
Rotates a vector in the YZ plane and copies it to a new vector.
Definition: camera.c:3464
Vec3s unk16
Definition: camera.h:173
s32 approach_f32_exponential_bool(f32 *, f32, f32)
Approaches an f32 value by taking the difference between the target and current value and adding a fr...
Definition: camera.c:2982
float unkA8
Definition: camera.h:354
f32 approach_f32_exponential(f32, f32, f32)
Nearly the same as the above function, returns new value instead.
Definition: camera.c:2995
float unkB0
Definition: camera.h:356
void play_sound_cbutton_down(void)
Definition: camera.c:3647
s16 calculate_yaw(Vec3f, Vec3f)
Definition: camera.c:3408
void play_sound_cbutton_side(void)
Definition: camera.c:3651