Merge remote-tracking branch 'upstream/master' into sys_math3d

This commit is contained in:
angie
2023-05-23 21:54:23 -04:00
127 changed files with 11801 additions and 2659 deletions
+76 -75
View File
@@ -1,79 +1,80 @@
<Root>
<!-- Assets for Anju in a wedding dress -->
<File Name="object_and" Segment="6">
<Animation Name="object_and_Anim_0000C8" Offset="0xC8" /> <!-- Original name is "and_test" -->
<DList Name="object_and_DL_004670" Offset="0x4670" />
<DList Name="object_and_DL_004708" Offset="0x4708" />
<DList Name="object_and_DL_0047F0" Offset="0x47F0" />
<DList Name="object_and_DL_004998" Offset="0x4998" />
<DList Name="object_and_DL_004BE0" Offset="0x4BE0" />
<DList Name="object_and_DL_004D90" Offset="0x4D90" />
<DList Name="object_and_DL_004E50" Offset="0x4E50" />
<DList Name="object_and_DL_004F20" Offset="0x4F20" />
<DList Name="object_and_DL_005038" Offset="0x5038" />
<DList Name="object_and_DL_0056C0" Offset="0x56C0" />
<DList Name="object_and_DL_005888" Offset="0x5888" />
<DList Name="object_and_DL_005938" Offset="0x5938" />
<DList Name="object_and_DL_0059C8" Offset="0x59C8" />
<DList Name="object_and_DL_005A80" Offset="0x5A80" />
<DList Name="object_and_DL_005BA8" Offset="0x5BA8" />
<DList Name="object_and_DL_005C60" Offset="0x5C60" />
<DList Name="object_and_DL_005D80" Offset="0x5D80" />
<DList Name="object_and_DL_005F10" Offset="0x5F10" />
<DList Name="object_and_DL_005FF8" Offset="0x5FF8" />
<DList Name="object_and_DL_006240" Offset="0x6240" />
<DList Name="object_and_DL_0063D8" Offset="0x63D8" />
<DList Name="object_and_DL_0064C0" Offset="0x64C0" />
<DList Name="object_and_DL_006708" Offset="0x6708" />
<DList Name="object_and_DL_0067E0" Offset="0x67E0" />
<Texture Name="object_and_Tex_006C30" OutName="tex_006C30" Format="rgba16" Width="8" Height="8" Offset="0x6C30" />
<Texture Name="object_and_Tex_006CB0" OutName="tex_006CB0" Format="rgba16" Width="8" Height="16" Offset="0x6CB0" />
<Texture Name="object_and_Tex_006DB0" OutName="tex_006DB0" Format="rgba16" Width="16" Height="16" Offset="0x6DB0" />
<Texture Name="object_and_Tex_006FB0" OutName="tex_006FB0" Format="rgba16" Width="16" Height="16" Offset="0x6FB0" />
<Texture Name="object_and_Tex_0071B0" OutName="tex_0071B0" Format="i8" Width="8" Height="8" Offset="0x71B0" />
<Texture Name="object_and_Tex_0071F0" OutName="tex_0071F0" Format="i8" Width="32" Height="32" Offset="0x71F0" />
<Texture Name="object_and_Tex_0075F0" OutName="tex_0075F0" Format="rgba16" Width="16" Height="16" Offset="0x75F0" />
<Texture Name="object_and_Tex_0077F0" OutName="tex_0077F0" Format="rgba16" Width="32" Height="16" Offset="0x77F0" />
<Texture Name="object_and_Tex_007BF0" OutName="tex_007BF0" Format="rgba16" Width="16" Height="16" Offset="0x7BF0" />
<Texture Name="object_and_Tex_007DF0" OutName="tex_007DF0" Format="rgba16" Width="32" Height="32" Offset="0x7DF0" />
<Texture Name="object_and_Tex_0085F0" OutName="tex_0085F0" Format="rgba16" Width="32" Height="32" Offset="0x85F0" />
<Texture Name="object_and_Tex_008DF0" OutName="tex_008DF0" Format="rgba16" Width="32" Height="32" Offset="0x8DF0" />
<Texture Name="object_and_Tex_0095F0" OutName="tex_0095F0" Format="rgba16" Width="32" Height="32" Offset="0x95F0" />
<Texture Name="object_and_Tex_009DF0" OutName="tex_009DF0" Format="rgba16" Width="32" Height="16" Offset="0x9DF0" />
<Texture Name="object_and_Tex_00A1F0" OutName="tex_00A1F0" Format="rgba16" Width="32" Height="16" Offset="0xA1F0" />
<Texture Name="object_and_Tex_00A5F0" OutName="tex_00A5F0" Format="i8" Width="32" Height="64" Offset="0xA5F0" />
<Texture Name="object_and_Tex_00ADF0" OutName="tex_00ADF0" Format="i8" Width="32" Height="32" Offset="0xADF0" />
<Limb Name="object_and_Standardlimb_00B1F0" Type="Standard" EnumName="OBJECT_AND_LIMB_01" Offset="0xB1F0" />
<Limb Name="object_and_Standardlimb_00B1FC" Type="Standard" EnumName="OBJECT_AND_LIMB_02" Offset="0xB1FC" />
<Limb Name="object_and_Standardlimb_00B208" Type="Standard" EnumName="OBJECT_AND_LIMB_03" Offset="0xB208" />
<Limb Name="object_and_Standardlimb_00B214" Type="Standard" EnumName="OBJECT_AND_LIMB_04" Offset="0xB214" />
<Limb Name="object_and_Standardlimb_00B220" Type="Standard" EnumName="OBJECT_AND_LIMB_05" Offset="0xB220" />
<Limb Name="object_and_Standardlimb_00B22C" Type="Standard" EnumName="OBJECT_AND_LIMB_06" Offset="0xB22C" />
<Limb Name="object_and_Standardlimb_00B238" Type="Standard" EnumName="OBJECT_AND_LIMB_07" Offset="0xB238" />
<Limb Name="object_and_Standardlimb_00B244" Type="Standard" EnumName="OBJECT_AND_LIMB_08" Offset="0xB244" />
<Limb Name="object_and_Standardlimb_00B250" Type="Standard" EnumName="OBJECT_AND_LIMB_09" Offset="0xB250" />
<Limb Name="object_and_Standardlimb_00B25C" Type="Standard" EnumName="OBJECT_AND_LIMB_0A" Offset="0xB25C" />
<Limb Name="object_and_Standardlimb_00B268" Type="Standard" EnumName="OBJECT_AND_LIMB_0B" Offset="0xB268" />
<Limb Name="object_and_Standardlimb_00B274" Type="Standard" EnumName="OBJECT_AND_LIMB_0C" Offset="0xB274" />
<Limb Name="object_and_Standardlimb_00B280" Type="Standard" EnumName="OBJECT_AND_LIMB_0D" Offset="0xB280" />
<Limb Name="object_and_Standardlimb_00B28C" Type="Standard" EnumName="OBJECT_AND_LIMB_0E" Offset="0xB28C" />
<Limb Name="object_and_Standardlimb_00B298" Type="Standard" EnumName="OBJECT_AND_LIMB_0F" Offset="0xB298" />
<Limb Name="object_and_Standardlimb_00B2A4" Type="Standard" EnumName="OBJECT_AND_LIMB_10" Offset="0xB2A4" />
<Limb Name="object_and_Standardlimb_00B2B0" Type="Standard" EnumName="OBJECT_AND_LIMB_11" Offset="0xB2B0" />
<Limb Name="object_and_Standardlimb_00B2BC" Type="Standard" EnumName="OBJECT_AND_LIMB_12" Offset="0xB2BC" />
<Limb Name="object_and_Standardlimb_00B2C8" Type="Standard" EnumName="OBJECT_AND_LIMB_13" Offset="0xB2C8" />
<Limb Name="object_and_Standardlimb_00B2D4" Type="Standard" EnumName="OBJECT_AND_LIMB_14" Offset="0xB2D4" />
<Limb Name="object_and_Standardlimb_00B2E0" Type="Standard" EnumName="OBJECT_AND_LIMB_15" Offset="0xB2E0" />
<Limb Name="object_and_Standardlimb_00B2EC" Type="Standard" EnumName="OBJECT_AND_LIMB_16" Offset="0xB2EC" />
<Limb Name="object_and_Standardlimb_00B2F8" Type="Standard" EnumName="OBJECT_AND_LIMB_17" Offset="0xB2F8" />
<Limb Name="object_and_Standardlimb_00B304" Type="Standard" EnumName="OBJECT_AND_LIMB_18" Offset="0xB304" />
<Limb Name="object_and_Standardlimb_00B310" Type="Standard" EnumName="OBJECT_AND_LIMB_19" Offset="0xB310" />
<Skeleton Name="object_and_Skel_00B380" Type="Flex" LimbType="Standard" LimbNone="OBJECT_AND_LIMB_NONE" LimbMax="OBJECT_AND_LIMB_MAX" EnumName="ObjectAndLimb" Offset="0xB380" />
<Animation Name="object_and_Anim_00DA58" Offset="0xDA58" /> <!-- Original name is "wa_aruku" ("walk") -->
<Animation Name="object_and_Anim_00EE00" Offset="0xEE00" /> <!-- Original name is "wa_hidari" ("left; left hand side") -->
<Animation Name="object_and_Anim_00F6C4" Offset="0xF6C4" /> <!-- Original name is "wa_hidari_loop" -->
<Animation Name="object_and_Anim_00FE64" Offset="0xFE64" /> <!-- Original name is "wa_kaoage" ("raising face") -->
<Animation Name="object_and_Anim_01067C" Offset="0x1067C" /> <!-- Original name is "wa_kaoage_loop" -->
<Animation Name="object_and_Anim_011AFC" Offset="0x11AFC" /> <!-- Original name is "wa_kaoaruki" (probably a combination of "kaoage" and "aruki") -->
<Animation Name="object_and_Anim_0122D0" Offset="0x122D0" /> <!-- Original name is "wa_utumuki_loop" ("looking down") -->
<Animation Name="gAndStaticAnim" Offset="0xC8" /> <!-- Original name is "and_test" -->
<DList Name="gAndTrainDL" Offset="0x4670" />
<DList Name="gAndCalvesDL" Offset="0x4708" />
<DList Name="gAndShinsDL" Offset="0x47F0" />
<DList Name="gAndThighsDL" Offset="0x4998" />
<DList Name="gAndPelvisDL" Offset="0x4BE0" />
<DList Name="gAndLowerVeilDL" Offset="0x4D90" />
<DList Name="gAndUpperVeilDL" Offset="0x4E50" />
<DList Name="gAndVeilBaseDL" Offset="0x4F20" />
<DList Name="gAndHeadDL" Offset="0x5038" />
<DList Name="gAndBouquetDL" Offset="0x56C0" />
<DList Name="gAndCenterLeavesTipDL" Offset="0x5888" />
<DList Name="gAndCenterLeavesDL" Offset="0x5938" />
<DList Name="gAndRightLeavesTipDL" Offset="0x59C8" />
<DList Name="gAndRightLeavesDL" Offset="0x5A80" />
<DList Name="gAndLeftLeavesTipDL" Offset="0x5BA8" />
<DList Name="gAndLeftLeavesDL" Offset="0x5C60" />
<DList Name="gAndRightHandDL" Offset="0x5D80" />
<DList Name="gAndRightForearmDL" Offset="0x5F10" />
<DList Name="gAndRightUpperArmDL" Offset="0x5FF8" />
<DList Name="gAndLeftHandDL" Offset="0x6240" />
<DList Name="gAndLeftForearmDL" Offset="0x63D8" />
<DList Name="gAndLeftUpperArmDL" Offset="0x64C0" />
<DList Name="gAndSymbolDL" Offset="0x6708" />
<DList Name="gAndTorsoDL" Offset="0x67E0" />
<Texture Name="gAndSkinShadowTex" OutName="and_skin_shadow" Format="rgba16" Width="8" Height="8" Offset="0x6C30" />
<Texture Name="gAndHairTex" OutName="and_hair" Format="rgba16" Width="8" Height="16" Offset="0x6CB0" />
<Texture Name="gAndEarTex" OutName="and_ear" Format="rgba16" Width="16" Height="16" Offset="0x6DB0" />
<Texture Name="gAndFingersTex" OutName="and_fingers" Format="rgba16" Width="16" Height="16" Offset="0x6FB0" />
<Texture Name="gAndDressGradientTex" OutName="and_dress_gradient" Format="i8" Width="8" Height="8" Offset="0x71B0" />
<Texture Name="gAndDressSymbolTex" OutName="and_dress_symbol" Format="i8" Width="32" Height="32" Offset="0x71F0" />
<Texture Name="gAndPearlTex" OutName="and_pearl" Format="rgba16" Width="16" Height="16" Offset="0x75F0" />
<Texture Name="gAndLeavesTex" OutName="and_leaves" Format="rgba16" Width="32" Height="16" Offset="0x77F0" />
<Texture Name="gAndFlowerTex" OutName="and_flower" Format="rgba16" Width="16" Height="16" Offset="0x7BF0" />
<Texture Name="gAndEyeOpenTex" OutName="and_eye_open" Format="rgba16" Width="32" Height="32" Offset="0x7DF0" />
<Texture Name="gAndEyeClosingTex" OutName="and_eye_closing" Format="rgba16" Width="32" Height="32" Offset="0x85F0" />
<Texture Name="gAndEyeClosedTex" OutName="and_eye_closed" Format="rgba16" Width="32" Height="32" Offset="0x8DF0" />
<Texture Name="gAndEyeOpeningTex" OutName="and_eye_opening" Format="rgba16" Width="32" Height="32" Offset="0x95F0" />
<Texture Name="gAndMouthNeutralTex" OutName="and_mouth_neutral" Format="rgba16" Width="32" Height="16" Offset="0x9DF0" />
<Texture Name="gAndMouthSmileTex" OutName="and_mouth_smile" Format="rgba16" Width="32" Height="16" Offset="0xA1F0" />
<Texture Name="gAndDressSpotsTex" OutName="and_dress_spots" Format="i8" Width="32" Height="64" Offset="0xA5F0" />
<Texture Name="gAndDressCircleTex" OutName="and_dress_circle" Format="i8" Width="32" Height="32" Offset="0xADF0" />
<Limb Name="gAndRootLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_ROOT" Offset="0xB1F0" />
<Limb Name="gAndTorsoLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_TORSO" Offset="0xB1FC" />
<Limb Name="gAndSymbolLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_SYMBOL" Offset="0xB208" />
<Limb Name="gAndLeftUpperArmLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_UPPER_ARM" Offset="0xB214" />
<Limb Name="gAndLeftForearmLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_FOREARM" Offset="0xB220" />
<Limb Name="gAndLeftHandLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_HAND" Offset="0xB22C" />
<Limb Name="gAndRightUpperArmLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_UPPER_ARM" Offset="0xB238" />
<Limb Name="gAndRightForearmLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_FOREARM" Offset="0xB244" />
<Limb Name="gAndRightHandLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_HAND" Offset="0xB250" />
<Limb Name="gAndBouquetLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_BOUQUET" Offset="0xB25C" />
<Limb Name="gAndLeftLeavesLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_LEAVES" Offset="0xB268" />
<Limb Name="gAndLeftLeavesTipLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_LEAVES_TIP" Offset="0xB274" />
<Limb Name="gAndRightLeavesLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_LEAVES" Offset="0xB280" />
<Limb Name="gAndRightLeavesTipLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_LEAVES_TIP" Offset="0xB28C" />
<Limb Name="gAndCenterLeavesLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_CENTER_LEAVES" Offset="0xB298" />
<Limb Name="gAndCenterLeavesTipLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_CENTER_LEAVES_TIP" Offset="0xB2A4" />
<Limb Name="gAndVeilBaseLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_VEIL_BASE" Offset="0xB2B0" />
<Limb Name="gAndHeadLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_HEAD" Offset="0xB2BC" />
<Limb Name="gAndUpperVeilLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_UPPER_VEIL" Offset="0xB2C8" />
<Limb Name="gAndLowerVeilLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LOWER_VEIL" Offset="0xB2D4" />
<Limb Name="gAndPelvisLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_PELVIS" Offset="0xB2E0" />
<Limb Name="gAndThighsLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_THIGHS" Offset="0xB2EC" />
<Limb Name="gAndShinsLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_SHINS" Offset="0xB2F8" />
<Limb Name="gAndCalvesLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_CALVES" Offset="0xB304" />
<Limb Name="gAndTrainLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_TRAIN" Offset="0xB310" />
<Skeleton Name="gAndSkel" Type="Flex" LimbType="Standard" LimbNone="OBJECT_AND_LIMB_NONE" LimbMax="OBJECT_AND_LIMB_MAX" EnumName="ObjectAndLimb" Offset="0xB380" />
<Animation Name="gAndWalkAnim" Offset="0xDA58" /> <!-- Original name is "wa_aruku" ("walk") -->
<Animation Name="gAndRaiseHandAnim" Offset="0xEE00" /> <!-- Original name is "wa_hidari" ("left; left hand side") -->
<Animation Name="gAndRaisedHandLoopAnim" Offset="0xF6C4" /> <!-- Original name is "wa_hidari_loop" -->
<Animation Name="gAndRaiseHeadAnim" Offset="0xFE64" /> <!-- Original name is "wa_kaoage" ("raising face") -->
<Animation Name="gAndRaisedHeadLoopAnim" Offset="0x1067C" /> <!-- Original name is "wa_kaoage_loop" -->
<Animation Name="gAndRaisedHandWalkAnim" Offset="0x11AFC" /> <!-- Original name is "wa_kaoaruki" (probably a combination of "kaoage" and "aruki") -->
<Animation Name="gAndIdleAnim" Offset="0x122D0" /> <!-- Original name is "wa_utumuki_loop" ("looking down") -->
</File>
</Root>
+45 -47
View File
@@ -133,7 +133,7 @@ void SystemArena_FreeNullCheck(void* ptr);
void SystemArena_RunInits(void);
void SystemArena_Init(void* start, size_t size);
s32 func_80086620(OSMesgQueue* param_1, PadMgr* param_2, OSContStatus* param_3);
// void func_80086760(void);
f32 func_80086760(f32 x);
// void func_80086794(void);
// void func_800867B4(void);
// void func_800867D4(void);
@@ -609,8 +609,8 @@ void Flags_SetCollectible(PlayState* play, s32 flag);
void TitleCard_InitBossName(GameState* gameState, TitleCardContext* titleCtx, TexturePtr texture, s16 x, s16 y, u8 width, u8 height);
s32 func_800B648C(PlayState* play, s32 arg1, s32 timer, f32 arg3, Vec3f* arg4);
f32 func_800B64FC(PlayState* play, f32 arg1, Vec3f* arg2, u32* arg3);
s32 Actor_SetPlayerImpact(PlayState* play, PlayerImpactType type, s32 timer, f32 dist, Vec3f* pos);
f32 Actor_GetPlayerImpact(PlayState* play, f32 range, Vec3f* pos, PlayerImpactType* type);
void* func_800B6584(PlayState* play, s16 id, void* arg2, size_t size);
void* func_800B6608(PlayState* play, s16 id);
void* func_800B6680(PlayState* play, s16 id);
@@ -739,9 +739,9 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16
s32 Actor_IsTargeted(PlayState* play, Actor* actor);
s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor);
void func_800BC620(Vec3f* pos, Vec3f* scale, u8 alpha, PlayState* play);
void Actor_AddQuake(PlayState* play, s16 verticalMag, s16 countdown);
void Actor_AddQuakeWithSpeed(PlayState* play, s16 verticalMag, s16 countdown, s16 speed);
void func_800BC848(Actor* actor, PlayState* play, s16 y, s16 countdown);
void Actor_RequestQuake(PlayState* play, s16 y, s16 duration);
void Actor_RequestQuakeWithSpeed(PlayState* play, s16 y, s16 duration, s16 speed);
void Actor_RequestQuakeAndRumble(Actor* actor, PlayState* play, s16 quakeY, s16 quakeDuration);
void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type);
void Actor_SetColorFilter(Actor* actor, u16 colorFlag, u16 colorIntensityMax, u16 bufFlag, u16 duration);
Hilite* func_800BCBF4(Vec3f* arg0, PlayState* play);
@@ -797,47 +797,45 @@ s32 DynaPolyActor_IsSwitchPressed(DynaPolyActor* dynaActor);
s32 DynaPolyActor_IsHeavySwitchPressed(DynaPolyActor* dynaActor);
s32 DynaPolyActor_ValidateMove(PlayState* play, DynaPolyActor* dynaActor, s16 startRadius, s16 endRadius, s16 startHeight);
Camera* Camera_Alloc(View* view, CollisionContext* bg, PlayState* play);
void Camera_Free(Camera* camera);
void Camera_Init(Camera* camera, View* view, CollisionContext* bg, PlayState* play);
// void func_800DDFE0(void);
void Camera_InitPlayerSettings(Camera* camera, Player* player);
Camera* Camera_Create(View* view, CollisionContext* colCtx, PlayState* play);
void Camera_Destroy(Camera* camera);
void Camera_Init(Camera* camera, View* view, CollisionContext* colCtx, PlayState* play);
void func_800DDFE0(Camera* camera);
void Camera_InitFocalActorSettings(Camera* camera, Actor* focalActor);
s32 Camera_ChangeStatus(Camera* camera, s16 status);
// void func_800DE324(void);
// void func_800DE62C(void);
// void func_800DE840(void);
// void func_800DE890(void);
// UNK_TYPE4 func_800DE954(Camera* camera);
Vec3s* Camera_Update(Vec3s* param_1, Camera* camera);
// void func_800DF498(void);
u32 Camera_SetMode(Camera* camera, s16 mode, s8 param_3);
s32 Camera_UpdateWater(Camera* camera);
void Camera_EarthquakeDay3(Camera* camera);
s32 Camera_UpdateHotRoom(Camera* camera);
s32 Camera_SetSwordDistortion(Camera* camera);
s32 Camera_RequestGiantsMaskSetting(Camera* camera);
Vec3s* Camera_Update(Vec3s* inputDir, Camera* camera);
s32 func_800DF498(Camera* camera);
s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 forceChange);
s32 Camera_ChangeMode(Camera* camera, s16 mode);
s32 func_800DF86C(Camera* camera, s16 arg1);
// void func_800DF8EC(void);
s32 Camera_CheckValidMode(Camera* camera, s16 mode);
s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags);
s32 Camera_ChangeSetting(Camera* camera, s16 setting);
s32 Camera_ChangeDataIdx(Camera* camera, s32 camDataIdx);
// void func_800DFC1C(void);
// void func_800DFC40(void);
s32 Camera_GetInputDirYaw(Camera* camera);
void Camera_GetCamDir(Vec3s* dst, Camera* camera);
s32 Camera_ChangeActorCsCamIndex(Camera* camera, s32 bgCamIndex);
Vec3s* Camera_GetInputDir(Vec3s* dst, Camera* camera);
s16 Camera_GetInputDirPitch(Camera* camera);
s16 Camera_GetInputDirYaw(Camera* camera);
Vec3s* Camera_GetCamDir(Vec3s* dst, Camera* camera);
s16 Camera_GetCamDirPitch(Camera* camera);
s16 Camera_GetCamDirYaw(Camera* camera);
void Camera_AddQuake(Camera* camera, s32 arg1, s16 y, s32 countdown);
s32 Camera_AddQuake(Camera* camera, s32 arg1, s16 y, s32 countdown);
s32 Camera_SetViewParam(Camera* camera, s32 viewFlag, void* param);
// UNK_TYPE4 func_800DFEF0(s32 param_1, u16 param_2);
void func_800DFF18(Camera* camera, s32 arg1);
// UNK_TYPE4 func_800DFF34(s32 param_1);
// UNK_TYPE4 func_800DFF44(void);
s16 Camera_SetFlags(Camera* iParm1, s16 flags);
s16 Camera_ClearFlags(Camera* camera, s16 flags);
s32 Camera_UnsetViewFlag(Camera* camera, s16 viewFlag);
s32 Camera_OverwriteStateFlags(Camera* camera, s16 stateFlags);
s16 Camera_SetStateFlag(Camera* camera, s16 flags);
s16 Camera_UnsetStateFlag(Camera* camera, s16 flags);
s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 bgCamIndex, f32 arg3, s16 timer1, s16 timer2, s16 timer3);
s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera);
// UNK_TYPE4 func_800E01AC(void);
Vec3f* Camera_GetQuakeOffset(Vec3f* dst, Camera* camera);
// void func_800E01DC(s32 param_1, u32 param_2, UNK_TYPE4 param_3, UNK_TYPE4 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6);
// UNK_TYPE4 func_800E0228(void);
void func_800E0238(Camera* camera);
void Camera_SetToTrackActor(Camera* camera, Actor* actor);
s32 Camera_Copy(Camera* dstCam, Camera* srcCam);
s32 Camera_IsDbgCamEnabled(void);
Vec3f* Camera_GetQuakeOffset(Vec3f* quakeOffset, Camera* camera);
void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3);
s32 Camera_GetNegOne(void);
s16 func_800E0238(Camera* camera);
void Camera_SetFocalActor(Camera* camera, Actor* actor);
void Camera_SetTargetActor(Camera* camera, Actor* actor);
f32 Camera_GetWaterYPos(Camera* camera);
void func_800E0348(Camera* camera);
@@ -1292,7 +1290,7 @@ void* func_801068FC(PlayState* play, void* arg1, size_t size);
void func_80108AF8(PlayState* play);
s32 func_801090B0(s32 arg0);
s32 func_80109124(s16 arg0);
// void func_801091F0(void);
void func_801091F0(PlayState* play);
void func_80109428(PlayState* play);
// void func_801094A0(void);
// void func_801094C8(void);
@@ -1411,17 +1409,17 @@ f32 OLib_ClampMinDist(f32 val, f32 min);
f32 OLib_ClampMaxDist(f32 val, f32 max);
Vec3f* OLib_Vec3fDistNormalize(Vec3f* dest, Vec3f* a, Vec3f* b);
Vec3f* OLib_VecSphToVec3f(Vec3f* dest, VecSph* sph);
Vec3f* OLib_VecSphGeoToVec3f(Vec3f* dest, VecSph* sph);
Vec3f* OLib_VecGeoToVec3f(Vec3f* dest, VecGeo* geo);
VecSph* OLib_Vec3fToVecSph(VecSph* dest, Vec3f* vec);
VecSph* OLib_Vec3fToVecSphGeo(VecSph* dest, Vec3f* vec);
VecGeo* OLib_Vec3fToVecGeo(VecGeo* dest, Vec3f* vec);
VecSph* OLib_Vec3fDiffToVecSph(VecSph* dest, Vec3f* a, Vec3f* b);
VecSph* OLib_Vec3fDiffToVecSphGeo(VecSph* dest, Vec3f* a, Vec3f* b);
Vec3f* OLib_VecSphAddToVec3f(Vec3f* dest, Vec3f* a, VecSph* sph);
VecGeo* OLib_Vec3fDiffToVecGeo(VecGeo* dest, Vec3f* a, Vec3f* b);
Vec3f* OLib_AddVecGeoToVec3f(Vec3f* dest, Vec3f* a, VecGeo* geo);
Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b);
Vec3f* OLib_Vec3fDiffDegF(Vec3f* dest, Vec3f* a, Vec3f* b);
Vec3s* OLib_Vec3fDiffBinAng(Vec3s* dest, Vec3f* a, Vec3f* b);
void OLib_DbCameraVec3fDiff(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
void OLib_DbCameraVec3fSum(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
void OLib_Vec3fDiff(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
void OLib_Vec3fAdd(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
Gfx* Gfx_DrawTexRectRGBA16(Gfx* gfx, TexturePtr texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
Gfx* Gfx_DrawTexRectIA8(Gfx* gfx, TexturePtr texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
-12
View File
@@ -1,12 +0,0 @@
#ifndef _INITVARS_H_
#define _INITVARS_H_
extern TransitionInit TransitionFade_InitVars;
extern TransitionInit TransitionTriforce_InitVars;
extern TransitionInit TransitionWipe1_InitVars;
extern TransitionInit TransitionWipe3_InitVars;
extern TransitionInit TransitionWipe4_InitVars;
extern TransitionInit TransitionCircle_InitVars;
extern TransitionInit TransitionWipe5_InitVars;
#endif
-6
View File
@@ -88,12 +88,6 @@ DECLARE_OVERLAY_SEGMENT(player_actor)
#undef DEFINE_ACTOR_INTERNAL
#undef DEFINE_ACTOR_UNSET
DECLARE_OVERLAY_SEGMENT(fbdemo_triforce)
DECLARE_OVERLAY_SEGMENT(fbdemo_wipe1)
DECLARE_OVERLAY_SEGMENT(fbdemo_wipe3)
DECLARE_OVERLAY_SEGMENT(fbdemo_wipe4)
DECLARE_OVERLAY_SEGMENT(fbdemo_wipe5)
#define DEFINE_OBJECT(name, _enumValue) DECLARE_ROM_SEGMENT(name)
#define DEFINE_OBJECT_UNSET(_enumValue)
#define DEFINE_OBJECT_SIZE_ZERO(_name, _enumValue)
+21
View File
@@ -0,0 +1,21 @@
/**
* Transition Table
*
* DEFINE_TRANSITION should be used for normal transitions
* - Argument 0: Enum value for this transition
* - Argument 1: Name of the effect struct
* - Argument 2: Instance name
* - Argument 3: Name of the effect (without the ovl_ part)
*
* DEFINE_TRANSITION_INTERNAL should be used for transitions that aren't an overlay
* - Argument 0: Enum value for this transition
* - Argument 1: Name of the effect struct
* - Argument 2: Instance name
*/
/* 0 */ DEFINE_TRANSITION_INTERNAL(FBDEMO_FADE, TransitionFade, fade)
/* 1 */ DEFINE_TRANSITION(FBDEMO_TRIFORCE, TransitionTriforce, triforce, fbdemo_triforce)
/* 2 */ DEFINE_TRANSITION(FBDEMO_WIPE1, TransitionWipe1, wipe1, fbdemo_wipe1)
/* 3 */ DEFINE_TRANSITION(FBDEMO_WIPE3, TransitionWipe3, wipe3, fbdemo_wipe3)
/* 4 */ DEFINE_TRANSITION(FBDEMO_WIPE4, TransitionWipe4, wipe4, fbdemo_wipe4)
/* 5 */ DEFINE_TRANSITION_INTERNAL(FBDEMO_CIRCLE, TransitionCircle, circle)
/* 6 */ DEFINE_TRANSITION(FBDEMO_WIPE5, TransitionWipe5, wipe5, fbdemo_wipe5)
+1 -33
View File
@@ -384,23 +384,6 @@ extern BgCheckSceneSubdivisionEntry sSceneSubdivisionList[];
extern BgSpecialSceneMaxObjects sCustomDynapolyMem[];
// extern UNK_TYPE1 D_801B4708;
// extern UNK_TYPE4 D_801B9E0C;
// extern UNK_TYPE4 D_801B9E10;
// extern UNK_TYPE4 D_801B9E14;
// extern UNK_TYPE2 D_801B9E18;
// extern UNK_TYPE2 D_801B9E34;
// extern UNK_TYPE4 D_801B9E50;
// extern UNK_TYPE4 D_801B9E54;
// extern UNK_TYPE4 D_801B9E58;
// extern UNK_TYPE4 D_801B9E5C;
// extern UNK_TYPE4 D_801B9E60;
// extern UNK_TYPE1 D_801B9E64;
// extern UNK_TYPE1 D_801B9E84;
// extern UNK_TYPE4 D_801B9EB4;
// extern UNK_TYPE4 D_801B9ED4;
// extern UNK_TYPE4 sEarthquakeFreq;
// extern UNK_TYPE2 sEarthquakeTimer;
extern UNK_TYPE4 D_801B9F10;
extern DamageTable sDamageTablePresets[23];
extern f32 damageMultipliers[16];
extern Collider defaultCollider;
@@ -746,7 +729,6 @@ extern char D_801D039C[];
extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[2];
// extern UNK_TYPE1 D_801D0B8C;
extern KaleidoMgrOverlay* gKaleidoMgrCurOvl;
// extern UNK_TYPE4 D_801D0BB0;
// extern UNK_TYPE1 D_801D0C80;
// extern UNK_TYPE1 D_801D0CB0;
extern s32 gDbgCamEnabled;
@@ -2241,7 +2223,7 @@ extern f32 D_801ED8D0;
// extern UNK_TYPE1 D_801ED8D8;
// extern UNK_TYPE1 D_801ED8DC;
extern Mtx D_801ED8E0;
// extern UNK_TYPE1 D_801ED920;
extern Actor* D_801ED920;
extern FaultClient sActorOverlayTableFaultClient;
extern FaultAddrConvClient sActorOverlayTableFaultAddrConvClient;
extern char D_801ED950[80];
@@ -2257,20 +2239,6 @@ extern Vec3f D_801EDB70[3];
extern Plane D_801EDB98;
extern Sphere16 D_801EDBA8;
extern TriNorm D_801EDBB0;
// extern UNK_TYPE1 D_801EDBD4;
// extern UNK_TYPE1 D_801EDBD8;
// extern UNK_TYPE1 D_801EDBDC;
// extern UNK_TYPE1 D_801EDBE0;
// extern s16 D_801EDBF0;
// extern f32 D_801EDBF4;
// extern f32 D_801EDBF8;
// extern CameraCollision D_801EDC00;
// extern PlayState* sCamPlayState;
// extern SwingAnimation D_801EDC30[4];
// extern Vec3f D_801EDDD0;
// extern Vec3f D_801EDDE0;
// extern Vec3f D_801EDDF0;
extern Vec3f D_801EDE00;
extern Vec3f D_801EDE10;
+7 -7
View File
@@ -261,11 +261,11 @@ typedef struct {
/* 0x188 */ Vtx* questPageVtx;
/* 0x18C */ Vtx* maskPageVtx;
/* 0x190 */ Vtx* itemVtx;
/* 0x194 */ Vtx* mapVtx;
/* 0x194 */ Vtx* mapVtx; // inferred
/* 0x198 */ Vtx* questVtx;
/* 0x19C */ Vtx* maskVtx;
/* 0x1A0 */ Vtx* unk_1A0;
/* 0x1A4 */ Vtx* unk_1A4;
/* 0x1A0 */ Vtx* promptPageVtx;
/* 0x1A4 */ Vtx* infoPanelVtx;
/* 0x1A8 */ Vtx* cursorVtx;
/* 0x1AC */ OcarinaStaff* ocarinaStaff;
/* 0x1B0 */ UNK_TYPE1 unk_1B0[0x20];
@@ -281,10 +281,10 @@ typedef struct {
/* 0x206 */ u16 switchPageTimer;
/* 0x208 */ u16 savePromptState;
/* 0x20C */ f32 unk_20C;
/* 0x210 */ f32 itemPageRoll; // rotation (-z) of the item page into the screen
/* 0x214 */ f32 mapPageRoll; // rotation (+x) of the map page into the screen
/* 0x218 */ f32 questPageRoll; // rotation (+z) of the quest page into the screen
/* 0x21C */ f32 maskPageRoll; // rotation (-z) of the mask page into the screen
/* 0x210 */ f32 itemPageRoll; // rotation (-z) of the item page into the screen
/* 0x214 */ f32 mapPageRoll; // rotation (+x) of the map page into the screen
/* 0x218 */ f32 questPageRoll; // rotation (+z) of the quest page into the screen
/* 0x21C */ f32 maskPageRoll; // rotation (-z) of the mask page into the screen
/* 0x220 */ f32 roll;
/* 0x224 */ u16 alpha;
/* 0x226 */ s16 offsetY;
+14 -8
View File
@@ -389,12 +389,18 @@ typedef struct {
/* 0xE */ s16 intensity;
} TitleCardContext; // size = 0x10
typedef struct ActorContext_unk_1F4 {
/* 0x00 */ u8 unk_00;
typedef enum {
/* 0 */ PLAYER_IMPACT_GORON_GROUND_POUND,
/* 1 */ PLAYER_IMPACT_ZORA_BARRIER,
/* 2 */ PLAYER_IMPACT_BONK // also activated by goron attack
} PlayerImpactType;
typedef struct PlayerImpact {
/* 0x00 */ u8 type;
/* 0x01 */ u8 timer;
/* 0x04 */ f32 unk_04;
/* 0x08 */ Vec3f unk_08;
} ActorContext_unk_1F4; // size = 0x14
/* 0x04 */ f32 dist;
/* 0x08 */ Vec3f pos;
} PlayerImpact; // size = 0x14
typedef struct ActorContext_unk_20C {
/* 0x0 */ s16 id;
@@ -458,7 +464,7 @@ typedef struct ActorContext {
/* 0x120 */ TargetContext targetContext;
/* 0x1B8 */ ActorContextSceneFlags sceneFlags;
/* 0x1E4 */ TitleCardContext titleCtxt;
/* 0x1F4 */ ActorContext_unk_1F4 unk_1F4;
/* 0x1F4 */ PlayerImpact playerImpact;
/* 0x208 */ UNK_TYPE1 unk_208[0x4];
/* 0x20C */ ActorContext_unk_20C unk_20C[8];
/* 0x24C */ UNK_TYPE1 unk_24C[0x4];
@@ -526,8 +532,8 @@ typedef enum {
#define ACTOR_FLAG_400 (1 << 10)
//
#define ACTOR_FLAG_800 (1 << 11)
//
#define ACTOR_FLAG_1000 (1 << 12)
// Actor will not shake when a quake occurs
#define ACTOR_FLAG_IGNORE_QUAKE (1 << 12)
//
#define ACTOR_FLAG_2000 (1 << 13)
//
+1 -1
View File
@@ -255,7 +255,7 @@ typedef struct {
/* 0x14 */ u16 numPolygons;
/* 0x18 */ CollisionPoly* polyList;
/* 0x1C */ SurfaceType* surfaceTypeList;
/* 0x20 */ CamData* bgCamList;
/* 0x20 */ BgCamInfo* bgCamList;
/* 0x24 */ u16 numWaterBoxes;
/* 0x28 */ WaterBox* waterBoxes;
} CollisionHeader; // size = 0x2C
+54 -54
View File
@@ -90,18 +90,18 @@
#define CAM_BEHAVIOR_SETTING_2 (1 << 4)
// Mode (0x2, 0x20)
#define CAM_BEHAVIOR_MODE_1 (1 << 1)
#define CAM_BEHAVIOR_MODE_2 (1 << 5)
#define CAM_BEHAVIOR_MODE_VALID (1 << 5)
// bgCam (0x4, 0x40)
#define CAM_BEHAVIOR_BGCAM_1 (1 << 2)
#define CAM_BEHAVIOR_BGCAM_2 (1 << 6)
// Camera stateFlags. Variety of generic flags
#define CAM_STATE_0 (1 << 0) // Must be set for the camera from changing settings based on the bg surface
#define CAM_STATE_1 (1 << 1)
#define CAM_STATE_CHECK_WATER (1 << 1)
#define CAM_STATE_2 (1 << 2)
#define CAM_STATE_3 (1 << 3)
#define CAM_STATE_4 (1 << 4)
#define CAM_STATE_5 (1 << 5)
#define CAM_STATE_DISABLE_MODE_CHANGE (1 << 5)
#define CAM_STATE_6 (1 << 6)
#define CAM_STATE_7 (1 << 7)
#define CAM_STATE_UNDERWATER (1 << 8)
@@ -110,7 +110,7 @@
#define CAM_STATE_11 (1 << 11)
#define CAM_STATE_12 (1 << 12)
#define CAM_STATE_13 (1 << 13)
#define CAM_STATE_14 (1 << 14)
#define CAM_STATE_INITIALIZED (1 << 14)
#define CAM_STATE_15 ((s16)(1 << 15))
// Camera viewFlags. Set params related to view
@@ -340,13 +340,13 @@ typedef enum {
} CameraFuncType;
typedef enum {
/* 0x00 */ CAM_DATA_00,
/* 0x00 */ CAM_DATA_Y_OFFSET,
/* 0x01 */ CAM_DATA_01,
/* 0x02 */ CAM_DATA_02,
/* 0x03 */ CAM_DATA_03,
/* 0x03 */ CAM_DATA_PITCH_TARGET,
/* 0x04 */ CAM_DATA_04,
/* 0x05 */ CAM_DATA_05,
/* 0x06 */ CAM_DATA_06,
/* 0x06 */ CAM_DATA_YAW_DIFF_RANGE,
/* 0x07 */ CAM_DATA_FOV,
/* 0x08 */ CAM_DATA_08,
/* 0x09 */ CAM_DATA_INTERFACE_FLAGS,
@@ -374,7 +374,7 @@ typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ Vec3f norm;
/* 0x18 */ CollisionPoly* poly;
/* 0x1C */ VecSph sphNorm;
/* 0x1C */ VecGeo geoNorm;
/* 0x24 */ s32 bgId;
} CameraCollision; // size = 0x28
@@ -405,13 +405,13 @@ typedef struct {
*/
#define CAM_FUNCDATA_NORM1(yOffset, data01, data02, pitchTarget, eyeStepScale, posStepScale, yawDiffRange, fov, data08, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ pitchTarget, CAM_DATA_03 }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ eyeStepScale, CAM_DATA_04 }, \
{ posStepScale, CAM_DATA_05 }, \
{ yawDiffRange, CAM_DATA_06 }, \
{ yawDiffRange, CAM_DATA_YAW_DIFF_RANGE }, \
{ fov, CAM_DATA_FOV }, \
{ data08, CAM_DATA_08 }, \
{ interfaceFlags, CAM_DATA_INTERFACE_FLAGS }
@@ -462,10 +462,10 @@ typedef struct {
// Unused Camera RemoteBomb Setting
#define CAM_FUNCDATA_NORM2(yOffset, data01, data02, pitchTarget, data04, fov, data08, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ pitchTarget, CAM_DATA_03 }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ data04, CAM_DATA_04 }, \
{ fov, CAM_DATA_FOV }, \
{ data08, CAM_DATA_08 }, \
@@ -480,10 +480,10 @@ typedef struct {
*/
#define CAM_FUNCDATA_NORM3(yOffset, data01, data02, pitchTarget, eyeStepScale, posStepScale, fov, data08, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ pitchTarget, CAM_DATA_03 }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ eyeStepScale, CAM_DATA_04 }, \
{ posStepScale, CAM_DATA_05 }, \
{ fov, CAM_DATA_FOV }, \
@@ -530,12 +530,12 @@ typedef struct {
*/
#define CAM_FUNCDATA_NORM0(yOffset, data01, data02, data21, data04, yawDiffRange, fov, data08, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ data21, CAM_DATA_21 }, \
{ data04, CAM_DATA_04 }, \
{ yawDiffRange, CAM_DATA_06 }, \
{ yawDiffRange, CAM_DATA_YAW_DIFF_RANGE }, \
{ fov, CAM_DATA_FOV }, \
{ data08, CAM_DATA_08 }, \
{ interfaceFlags, CAM_DATA_INTERFACE_FLAGS }
@@ -581,10 +581,10 @@ typedef struct {
*/
#define CAM_FUNCDATA_PARA1(yOffset, data01, data02, pitchTarget, data10, data04, data05, fov, data08, interfaceFlags, data11, data12) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ pitchTarget, CAM_DATA_03 }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ data10, CAM_DATA_10 }, \
{ data04, CAM_DATA_04 }, \
{ data05, CAM_DATA_05 }, \
@@ -596,10 +596,10 @@ typedef struct {
// Same as above but with extra unused entry
#define CAM_FUNCDATA_PARA1_ALT(yOffset, data01, data02, pitchTarget, data10, data04, data05, fov, data08, interfaceFlags, data11, data12, data18) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ pitchTarget, CAM_DATA_03 }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ data10, CAM_DATA_10 }, \
{ data04, CAM_DATA_04 }, \
{ data05, CAM_DATA_05 }, \
@@ -662,10 +662,10 @@ typedef struct {
// Unused Camera Maze Setting
#define CAM_FUNCDATA_PARA2(yOffset, data02, data01, pitchTarget, data04, fov, data08, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data02, CAM_DATA_02 }, \
{ data01, CAM_DATA_01 }, \
{ pitchTarget, CAM_DATA_03 }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ data04, CAM_DATA_04 }, \
{ fov, CAM_DATA_FOV }, \
{ data08, CAM_DATA_08 }, \
@@ -680,7 +680,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_JUMP2(yOffset, data01, data02, data20, data04, data05, fov, data08, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ data20, CAM_DATA_20 }, \
@@ -729,13 +729,13 @@ typedef struct {
*/
#define CAM_FUNCDATA_JUMP3(yOffset, data01, data02, pitchTarget, data04, data05, yawDiffRange, fov, data08, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ pitchTarget, CAM_DATA_03 }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ data04, CAM_DATA_04 }, \
{ data05, CAM_DATA_05 }, \
{ yawDiffRange, CAM_DATA_06 }, \
{ yawDiffRange, CAM_DATA_YAW_DIFF_RANGE }, \
{ fov, CAM_DATA_FOV }, \
{ data08, CAM_DATA_08 }, \
{ interfaceFlags, CAM_DATA_INTERFACE_FLAGS }
@@ -785,7 +785,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_BATT1(yOffset, data01, data02, data13, data14, data15, data16, data17, fov, data08, interfaceFlags, data11, data18) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ data13, CAM_DATA_13 }, \
@@ -845,7 +845,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_KEEP1(yOffset, data01, data02, data13, data14, data15, data16, data17, fov, data08, interfaceFlags, data11) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ data13, CAM_DATA_13 }, \
@@ -902,7 +902,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_KEEP3(yOffset, data01, data02, data13, data14, data15, data16, data17, fov, data08, timer, interfaceFlags, data18) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ data13, CAM_DATA_13 }, \
@@ -957,9 +957,9 @@ typedef struct {
*/
#define CAM_FUNCDATA_KEEP4(yOffset, data01, pitchTarget, data10, data18, fov, interfaceFlags, data04, timer) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ pitchTarget, CAM_DATA_03 }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ data10, CAM_DATA_10 }, \
{ data18, CAM_DATA_18 }, \
{ fov, CAM_DATA_FOV }, \
@@ -1008,7 +1008,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_FIXD1(yOffset, data04, fov, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data04, CAM_DATA_04 }, \
{ fov, CAM_DATA_FOV }, \
{ interfaceFlags, CAM_DATA_INTERFACE_FLAGS }
@@ -1040,7 +1040,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_FIXD2(yOffset, data01, data02, data04, data05, fov, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ data04, CAM_DATA_04 }, \
@@ -1097,7 +1097,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_SUBJ1(yOffset, data01, data02, data04, data19, data17, data18, fov, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ data02, CAM_DATA_02 }, \
{ data04, CAM_DATA_04 }, \
@@ -1140,7 +1140,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_UNIQ2(yOffset, data01, fov, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data01, CAM_DATA_01 }, \
{ fov, CAM_DATA_FOV }, \
{ interfaceFlags, CAM_DATA_INTERFACE_FLAGS }
@@ -1175,7 +1175,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_UNIQ0(yOffset, data04, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ data04, CAM_DATA_04 }, \
{ interfaceFlags, CAM_DATA_INTERFACE_FLAGS }
@@ -1244,8 +1244,8 @@ typedef struct {
typedef struct {
/* 0x00 */ Vec3f unk_00;
/* 0x0C */ VecSph unk_0C;
/* 0x14 */ VecSph unk_14;
/* 0x0C */ VecGeo unk_0C;
/* 0x14 */ VecGeo unk_14;
/* 0x1C */ s16 unk_1C;
} Demo1ReadWriteData; // size = 0x20
@@ -1319,7 +1319,7 @@ typedef struct {
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ VecSph unk_18;
/* 0x18 */ VecGeo unk_18;
/* 0x20 */ s16 unk_20;
/* 0x22 */ s16 timer;
} Demo4ReadWriteData; // size = 0x24
@@ -1345,7 +1345,7 @@ typedef struct {
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ VecSph unk_1C;
/* 0x1C */ VecGeo unk_1C;
/* 0x24 */ s16 unk_24;
/* 0x26 */ s16 timer;
} Demo5ReadWriteData; // size = 0x28
@@ -1367,8 +1367,8 @@ typedef struct {
typedef struct {
/* 0x00 */ f32 unk_00;
/* 0x04 */ VecSph subAtToEye;
/* 0x0C */ VecSph atToEye;
/* 0x04 */ VecGeo subAtToEye;
/* 0x0C */ VecGeo atToEye;
/* 0x14 */ s16 unk_14;
/* 0x16 */ s16 unk_16;
/* 0x18 */ s16 unk_18;
@@ -1387,10 +1387,10 @@ typedef struct {
*/
#define CAM_FUNCDATA_SPEC5(yOffset, eyeDist, minDistForRot, fov, atMaxLERPScale, timerInit, pitch, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ eyeDist, CAM_DATA_01 }, \
{ minDistForRot, CAM_DATA_02 }, \
{ fov, CAM_DATA_03 }, \
{ fov, CAM_DATA_PITCH_TARGET }, \
{ atMaxLERPScale, CAM_DATA_FOV }, \
{ timerInit, CAM_DATA_08 }, \
{ pitch, CAM_DATA_12 }, \
@@ -1446,7 +1446,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_SPEC8(yOffset, eyeStepScale, posStepScale, fov, spiralDoorCsLength, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ eyeStepScale, CAM_DATA_04 }, \
{ posStepScale, CAM_DATA_05 }, \
{ fov, CAM_DATA_FOV }, \
@@ -1483,7 +1483,7 @@ typedef struct {
*/
#define CAM_FUNCDATA_SPEC9(yOffset, fov, interfaceFlags) \
{ yOffset, CAM_DATA_00 }, \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ fov, CAM_DATA_FOV }, \
{ interfaceFlags, CAM_DATA_INTERFACE_FLAGS }
@@ -1565,11 +1565,11 @@ typedef struct Camera {
/* 0x0D8 */ f32 xzSpeed;
/* 0x0DC */ f32 dist;
/* 0x0E0 */ f32 speedRatio;
/* 0x0E4 */ Vec3f atActorOffset;
/* 0x0F0 */ Vec3f focalActorOffset;
/* 0x0E4 */ Vec3f focalActorAtOffset; // Offset between the camera's at Pos and the focalActor's Pos
/* 0x0F0 */ Vec3f unk_0F0; // Offset between the focalActor's Pos and the camera's focalActor's Pos from the previous frame
/* 0x0FC */ f32 fov;
/* 0x100 */ f32 atLerpStepScale;
/* 0x104 */ f32 playerFloorHeight;
/* 0x104 */ f32 focalActorFloorHeight;
/* 0x108 */ Vec3f floorNorm;
/* 0x114 */ f32 waterYPos;
/* 0x118 */ s32 waterPrevBgCamDataId;
@@ -1588,11 +1588,11 @@ typedef struct Camera {
/* 0x142 */ s16 setting;
/* 0x144 */ s16 mode;
/* 0x146 */ s16 bgId;
/* 0x148 */ s16 bgCamDataId;
/* 0x148 */ s16 bgCamIndex;
/* 0x14A */ s16 behaviorFlags;
/* 0x14C */ s16 stateFlags;
/* 0x14E */ s16 childCamId;
/* 0x150 */ s16 doorTimer1; // a door timer used when door cam is indexed from bgCamDataId
/* 0x150 */ s16 doorTimer1; // a door timer used when door cam is indexed from bgCamIndex
/* 0x152 */ s16 unk152;
/* 0x154 */ s16 prevSetting;
/* 0x156 */ s16 nextCamSceneDataId;
@@ -1600,8 +1600,8 @@ typedef struct Camera {
/* 0x15A */ s16 roll;
/* 0x15C */ s16 viewFlags;
/* 0x15E */ s16 animState; // Determines the current state of the current camera behavior function
/* 0x160 */ s16 unk160;
/* 0x162 */ s16 doorTimer2; // a door timer used when door cam is indexed from bgCamDataId
/* 0x160 */ s16 timer; // Unused remnant of OoT: originally destoryed subCamera when timer ran out
/* 0x162 */ s16 doorTimer2; // a door timer used when door cam is indexed from bgCamIndex
/* 0x164 */ s16 camId;
/* 0x166 */ s16 prevBgCamDataId;
/* 0x168 */ s16 unk168;
+25 -5
View File
@@ -87,12 +87,32 @@ typedef struct {
/* 0x0C */ Vec3f b;
} Linef; // size = 0x18
// Defines a point in the spherical coordinate system
typedef struct {
/* 0x0 */ f32 r; // radius
/* 0x4 */ s16 pitch; // polar (zenith) angle
/* 0x6 */ s16 yaw; // azimuthal angle
} VecSph; // size = 0x8
/* 0x0 */ f32 r; // radius
/* 0x4 */ s16 pitch; // depends on coordinate system. See below.
/* 0x6 */ s16 yaw; // azimuthal angle
} VecSphGeo; // size = 0x8
// Defines a point in the spherical coordinate system.
// Pitch is 0 along the positive y-axis (up)
typedef VecSphGeo VecSph;
// Defines a point in the geographic coordinate system.
// Pitch is 0 along the xz-plane (horizon)
typedef VecSphGeo VecGeo;
// To be used with OLib_Vec3fAdd()
typedef enum {
/* 0 */ OLIB_ADD_COPY, // Copy `b` to dest
/* 1 */ OLIB_ADD_OFFSET, // Add `a` and `b` to dest, and also add the yaw of `a` to the dest
/* 2 */ OLIB_ADD, // Add `a` and `b` to dest
} OlibVec3fAdd;
typedef enum {
/* 0 */ OLIB_DIFF_COPY, // Copy `b` to dest
/* 1 */ OLIB_DIFF_OFFSET, // Sub `a` and `b` to dest, and also subs the yaw of `a` to the dest
/* 2 */ OLIB_DIFF, // Sub `a` and `b` to dest
} OlibVec3fDiff;
#define LERPIMP(v0, v1, t) ((v0) + (((v1) - (v0)) * (t)))
#define F32_LERP(v0, v1, t) ((1.0f - (t)) * (f32)(v0) + (t) * (f32)(v1))
+6 -6
View File
@@ -677,7 +677,7 @@ typedef enum PlayerCsMode {
#define PLAYER_STATE1_1 (1 << 0)
//
#define PLAYER_STATE1_2 (1 << 1)
//
// Climbing ledge
#define PLAYER_STATE1_4 (1 << 2)
//
#define PLAYER_STATE1_8 (1 << 3)
@@ -697,7 +697,7 @@ typedef enum PlayerCsMode {
#define PLAYER_STATE1_400 (1 << 10)
//
#define PLAYER_STATE1_800 (1 << 11)
//
// charging spin attack
#define PLAYER_STATE1_1000 (1 << 12)
//
#define PLAYER_STATE1_2000 (1 << 13)
@@ -731,7 +731,7 @@ typedef enum PlayerCsMode {
#define PLAYER_STATE1_8000000 (1 << 27)
//
#define PLAYER_STATE1_10000000 (1 << 28)
//
// Time is stopped but Link & NPC animations continue
#define PLAYER_STATE1_20000000 (1 << 29)
//
#define PLAYER_STATE1_40000000 (1 << 30)
@@ -761,7 +761,7 @@ typedef enum PlayerCsMode {
#define PLAYER_STATE2_200 (1 << 9)
//
#define PLAYER_STATE2_400 (1 << 10)
//
// Diving
#define PLAYER_STATE2_800 (1 << 11)
//
#define PLAYER_STATE2_1000 (1 << 12)
@@ -773,7 +773,7 @@ typedef enum PlayerCsMode {
#define PLAYER_STATE2_8000 (1 << 15)
//
#define PLAYER_STATE2_10000 (1 << 16)
//
// A non-magic spin attack
#define PLAYER_STATE2_20000 (1 << 17)
//
#define PLAYER_STATE2_40000 (1 << 18)
@@ -821,7 +821,7 @@ typedef enum PlayerCsMode {
#define PLAYER_STATE3_40 (1 << 6)
//
#define PLAYER_STATE3_80 (1 << 7)
// Related to form Deku
// Deku flower dive
#define PLAYER_STATE3_100 (1 << 8)
//
#define PLAYER_STATE3_200 (1 << 9)
+43 -47
View File
@@ -1,68 +1,64 @@
#ifndef Z64QUAKE_H
#define Z64QUAKE_H
#include "z64camera.h"
#include "z64math.h"
struct PlayState;
struct Camera;
typedef struct {
/* 0x00 */ Vec3f atOffset;
/* 0x0C */ Vec3f eyeOffset;
/* 0x18 */ s16 rollOffset;
/* 0x1A */ s16 zoom;
/* 0x1C */ f32 max; // Set to scaled max data of struct (mag for Vec3f), never used
} QuakeCamCalc; // size = 0x20
#define QUAKE_SPEED (1 << 0)
#define QUAKE_VERTICAL_MAG (1 << 1)
#define QUAKE_HORIZONTAL_MAG (1 << 2)
#define QUAKE_ZOOM (1 << 3)
#define QUAKE_ROLL_OFFSET (1 << 4)
#define QUAKE_SHAKE_PLANE_OFFSET_X (1 << 5)
#define QUAKE_SHAKE_PLANE_OFFSET_Y (1 << 6)
#define QUAKE_SHAKE_PLANE_OFFSET_Z (1 << 7)
#define QUAKE_COUNTDOWN (1 << 8)
#define QUAKE_IS_SHAKE_PERPENDICULAR (1 << 9)
/* 0x18 */ s16 upRollOffset;
/* 0x1A */ s16 fovOffset;
/* 0x1C */ f32 maxOffset; // Set to scaled max data of struct (mag for Vec3f), never used
} ShakeInfo; // size = 0x20
typedef enum {
/* 1 */ QUAKE_TYPE_1 = 1,
/* 2 */ QUAKE_TYPE_2,
/* 3 */ QUAKE_TYPE_3,
/* 4 */ QUAKE_TYPE_4,
/* 5 */ QUAKE_TYPE_5,
/* 6 */ QUAKE_TYPE_6
/* 0 */ QUAKE_TYPE_NONE,
/* 1 */ QUAKE_TYPE_1, // Periodic, sustaining, random X perturbations
/* 2 */ QUAKE_TYPE_2, // Aperiodic, sustaining, random X perturbations
/* 3 */ QUAKE_TYPE_3, // Periodic, decaying
/* 4 */ QUAKE_TYPE_4, // Aperiodic, decaying, random X perturbations
/* 5 */ QUAKE_TYPE_5, // Periodic, sustaining
/* 6 */ QUAKE_TYPE_6 // See below
} QuakeType;
u32 Quake_SetValue(s16 quakeIndex, s16 valueType, s16 value);
u32 Quake_SetSpeed(s16 quakeIndex, s16 speed);
u32 Quake_SetCountdown(s16 quakeIndex, s16 countdown);
s16 Quake_GetCountdown(s16 quakeIndex);
u32 Quake_SetQuakeValues(s16 quakeIndex, s16 verticalMag, s16 horizontalMag, s16 zoom, s16 rollOffset);
u32 Quake_SetQuakeValues2(s16 quakeIndex, s16 isShakePerpendicular, Vec3s shakePlaneOffset);
s16 Quake_Add(Camera* camera, u32 type);
s16 Quake_Calc(Camera* camera, QuakeCamCalc* camData);
u32 Quake_Remove(s16 index);
s32 Quake_NumActiveQuakes(void);
s16 Quake_Request(Camera* camera, u32 type);
u32 Quake_SetSpeed(s16 index, s16 speed);
u32 Quake_SetPerturbations(s16 index, s16 y, s16 x, s16 fov, s16 roll);
u32 Quake_SetDuration(s16 index, s16 duration);
u32 Quake_SetOrientation(s16 index, s16 isRelativeToScreen, Vec3s orientation);
s16 Quake_GetTimeLeft(s16 index);
s32 Quake_GetNumActiveQuakes(void);
u32 Quake_RemoveRequest(s16 index);
void Quake_Init(void);
s16 Quake_Update(Camera* camera, ShakeInfo* camShake);
#define DISTORTION_TYPE_0 (1 << 0)
#define DISTORTION_TYPE_NON_ZORA_SWIMMING (1 << 2)
#define DISTORTION_TYPE_ZORA_SWIMMING (1 << 3)
#define DISTORTION_TYPE_UNDERWATER_ENTRY (1 << 4)
#define DISTORTION_TYPE_5 (1 << 5)
#define DISTORTION_TYPE_6 (1 << 6)
#define DISTORTION_TYPE_7 (1 << 7)
#define DISTORTION_TYPE_8 (1 << 8)
#define DISTORTION_TYPE_9 (1 << 9)
#define DISTORTION_TYPE_A (1 << 10)
#define DISTORTION_TYPE_B (1 << 11)
#define DISTORTION_TYPE_HOT_ROOM (1 << 0) // Hot Room
#define DISTORTION_TYPE_NON_ZORA_SWIMMING (1 << 2) // Non-Zora swimming
#define DISTORTION_TYPE_ZORA_SWIMMING (1 << 3) // Zora swimming, also used for boss warp pad part 1
void Distortion_SetCountdown(s16 countdown);
s16 Distortion_GetCountdown(void);
#define DISTORTION_TYPE_UNDERWATER_ENTRY (1 << 4) // Entering water, also used for boss warp pad part 2
#define DISTORTION_TYPE_SONG_OF_TIME (1 << 5) // Song of Time effects
#define DISTORTION_TYPE_ZORA_KICK (1 << 6) // PLAYER_MWA_ZORA_PUNCH_KICK
#define DISTORTION_TYPE_UNK_ATTACK (1 << 7) // Impossible to achieve, inferred to be another `PLAYER_MWA_`,
#define DISTORTION_TYPE_GORON_BUTT (1 << 8) // PLAYER_MWA_GORON_PUNCH_BUTT
#define DISTORTION_TYPE_MASK_TRANSFORM_1 (1 << 9) // Mask transformation part 1
#define DISTORTION_TYPE_BOSS_WARP (1 << 10) // Boss warp pad part 3
#define DISTORTION_TYPE_MASK_TRANSFORM_2 (1 << 11) // Mask transformation part 2
void Distortion_Request(s32 type);
void Distortion_SetDuration(s16 duration);
s16 Distortion_GetTimeLeft(void);
s16 Distortion_GetType(void);
void Distortion_SetType(s32 type);
void Distortion_ClearType(s32 type);
void Distortion_RemoveRequest(s32 type);
void Distortion_Init(PlayState* play);
void Distortion_Update(void);
+72 -91
View File
@@ -594,7 +594,7 @@ typedef enum {
#define WEEKEVENTREG_08_04 PACK_WEEKEVENTREG_FLAG(8, 0x04)
#define WEEKEVENTREG_08_08 PACK_WEEKEVENTREG_FLAG(8, 0x08)
#define WEEKEVENTREG_08_10 PACK_WEEKEVENTREG_FLAG(8, 0x10)
#define WEEKEVENTREG_08_20 PACK_WEEKEVENTREG_FLAG(8, 0x20)
#define WEEKEVENTREG_RECEIVED_DOGGY_RACETRACK_HEART_PIECE PACK_WEEKEVENTREG_FLAG(8, 0x20)
// Related to final hours
#define WEEKEVENTREG_08_40 PACK_WEEKEVENTREG_FLAG(8, 0x40)
@@ -857,7 +857,7 @@ typedef enum {
#define WEEKEVENTREG_34_02 PACK_WEEKEVENTREG_FLAG(34, 0x02)
#define WEEKEVENTREG_34_04 PACK_WEEKEVENTREG_FLAG(34, 0x04)
#define WEEKEVENTREG_SWAMP_SPIDER_HOUSE_TALKED PACK_WEEKEVENTREG_FLAG(34, 0x08)
#define WEEKEVENTREG_TALKED_SWAMP_SPIDER_HOUSE_MAN PACK_WEEKEVENTREG_FLAG(34, 0x08)
#define WEEKEVENTREG_34_10 PACK_WEEKEVENTREG_FLAG(34, 0x10)
#define WEEKEVENTREG_34_20 PACK_WEEKEVENTREG_FLAG(34, 0x20)
#define WEEKEVENTREG_RECEIVED_MASK_OF_TRUTH PACK_WEEKEVENTREG_FLAG(34, 0x40)
@@ -924,62 +924,11 @@ typedef enum {
#define WEEKEVENTREG_41_20 PACK_WEEKEVENTREG_FLAG(41, 0x20)
#define WEEKEVENTREG_41_40 PACK_WEEKEVENTREG_FLAG(41, 0x40)
#define WEEKEVENTREG_41_80 PACK_WEEKEVENTREG_FLAG(41, 0x80)
#define WEEKEVENTREG_42_01 PACK_WEEKEVENTREG_FLAG(42, 0x01)
#define WEEKEVENTREG_42_02 PACK_WEEKEVENTREG_FLAG(42, 0x02)
#define WEEKEVENTREG_42_04 PACK_WEEKEVENTREG_FLAG(42, 0x04)
#define WEEKEVENTREG_42_08 PACK_WEEKEVENTREG_FLAG(42, 0x08)
#define WEEKEVENTREG_42_10 PACK_WEEKEVENTREG_FLAG(42, 0x10)
#define WEEKEVENTREG_42_20 PACK_WEEKEVENTREG_FLAG(42, 0x20)
#define WEEKEVENTREG_42_40 PACK_WEEKEVENTREG_FLAG(42, 0x40)
#define WEEKEVENTREG_42_80 PACK_WEEKEVENTREG_FLAG(42, 0x80)
#define WEEKEVENTREG_43_01 PACK_WEEKEVENTREG_FLAG(43, 0x01)
#define WEEKEVENTREG_43_02 PACK_WEEKEVENTREG_FLAG(43, 0x02)
#define WEEKEVENTREG_43_04 PACK_WEEKEVENTREG_FLAG(43, 0x04)
#define WEEKEVENTREG_43_08 PACK_WEEKEVENTREG_FLAG(43, 0x08)
#define WEEKEVENTREG_43_10 PACK_WEEKEVENTREG_FLAG(43, 0x10)
#define WEEKEVENTREG_43_20 PACK_WEEKEVENTREG_FLAG(43, 0x20)
#define WEEKEVENTREG_43_40 PACK_WEEKEVENTREG_FLAG(43, 0x40)
#define WEEKEVENTREG_43_80 PACK_WEEKEVENTREG_FLAG(43, 0x80)
#define WEEKEVENTREG_44_01 PACK_WEEKEVENTREG_FLAG(44, 0x01)
#define WEEKEVENTREG_44_02 PACK_WEEKEVENTREG_FLAG(44, 0x02)
#define WEEKEVENTREG_44_04 PACK_WEEKEVENTREG_FLAG(44, 0x04)
#define WEEKEVENTREG_44_08 PACK_WEEKEVENTREG_FLAG(44, 0x08)
#define WEEKEVENTREG_44_10 PACK_WEEKEVENTREG_FLAG(44, 0x10)
#define WEEKEVENTREG_44_20 PACK_WEEKEVENTREG_FLAG(44, 0x20)
#define WEEKEVENTREG_44_40 PACK_WEEKEVENTREG_FLAG(44, 0x40)
#define WEEKEVENTREG_44_80 PACK_WEEKEVENTREG_FLAG(44, 0x80)
#define WEEKEVENTREG_45_01 PACK_WEEKEVENTREG_FLAG(45, 0x01)
#define WEEKEVENTREG_45_02 PACK_WEEKEVENTREG_FLAG(45, 0x02)
#define WEEKEVENTREG_45_04 PACK_WEEKEVENTREG_FLAG(45, 0x04)
#define WEEKEVENTREG_45_08 PACK_WEEKEVENTREG_FLAG(45, 0x08)
#define WEEKEVENTREG_45_10 PACK_WEEKEVENTREG_FLAG(45, 0x10)
#define WEEKEVENTREG_45_20 PACK_WEEKEVENTREG_FLAG(45, 0x20)
#define WEEKEVENTREG_45_40 PACK_WEEKEVENTREG_FLAG(45, 0x40)
#define WEEKEVENTREG_45_80 PACK_WEEKEVENTREG_FLAG(45, 0x80)
#define WEEKEVENTREG_46_01 PACK_WEEKEVENTREG_FLAG(46, 0x01)
#define WEEKEVENTREG_46_02 PACK_WEEKEVENTREG_FLAG(46, 0x02)
#define WEEKEVENTREG_46_04 PACK_WEEKEVENTREG_FLAG(46, 0x04)
#define WEEKEVENTREG_46_08 PACK_WEEKEVENTREG_FLAG(46, 0x08)
#define WEEKEVENTREG_46_10 PACK_WEEKEVENTREG_FLAG(46, 0x10)
#define WEEKEVENTREG_46_20 PACK_WEEKEVENTREG_FLAG(46, 0x20)
#define WEEKEVENTREG_46_40 PACK_WEEKEVENTREG_FLAG(46, 0x40)
#define WEEKEVENTREG_46_80 PACK_WEEKEVENTREG_FLAG(46, 0x80)
#define WEEKEVENTREG_47_01 PACK_WEEKEVENTREG_FLAG(47, 0x01)
#define WEEKEVENTREG_47_02 PACK_WEEKEVENTREG_FLAG(47, 0x02)
#define WEEKEVENTREG_47_04 PACK_WEEKEVENTREG_FLAG(47, 0x04)
#define WEEKEVENTREG_47_08 PACK_WEEKEVENTREG_FLAG(47, 0x08)
#define WEEKEVENTREG_47_10 PACK_WEEKEVENTREG_FLAG(47, 0x10)
#define WEEKEVENTREG_47_20 PACK_WEEKEVENTREG_FLAG(47, 0x20)
#define WEEKEVENTREG_47_40 PACK_WEEKEVENTREG_FLAG(47, 0x40)
#define WEEKEVENTREG_47_80 PACK_WEEKEVENTREG_FLAG(47, 0x80)
#define WEEKEVENTREG_48_01 PACK_WEEKEVENTREG_FLAG(48, 0x01)
#define WEEKEVENTREG_48_02 PACK_WEEKEVENTREG_FLAG(48, 0x02)
#define WEEKEVENTREG_48_04 PACK_WEEKEVENTREG_FLAG(48, 0x04)
#define WEEKEVENTREG_48_08 PACK_WEEKEVENTREG_FLAG(48, 0x08)
#define WEEKEVENTREG_48_10 PACK_WEEKEVENTREG_FLAG(48, 0x10)
#define WEEKEVENTREG_48_20 PACK_WEEKEVENTREG_FLAG(48, 0x20)
#define WEEKEVENTREG_48_40 PACK_WEEKEVENTREG_FLAG(48, 0x40)
#define WEEKEVENTREG_48_80 PACK_WEEKEVENTREG_FLAG(48, 0x80)
// Used for storing the text ID offsets for the dogs in the Doggy Racetrack (56 entries)
// The number of weekEventRegs used needs to be kept in sync with RACEDOG_COUNT in z_en_aob_01.h
// PACK_WEEKEVENTREG_FLAG(42, 0x01) to PACK_WEEKEVENTREG_FLAG(48, 0x80)
#define WEEKEVENTREG_49_01 PACK_WEEKEVENTREG_FLAG(49, 0x01)
#define WEEKEVENTREG_49_02 PACK_WEEKEVENTREG_FLAG(49, 0x02)
#define WEEKEVENTREG_49_04 PACK_WEEKEVENTREG_FLAG(49, 0x04)
@@ -1013,10 +962,7 @@ typedef enum {
#define WEEKEVENTREG_52_04 PACK_WEEKEVENTREG_FLAG(52, 0x04)
#define WEEKEVENTREG_52_08 PACK_WEEKEVENTREG_FLAG(52, 0x08)
#define WEEKEVENTREG_52_10 PACK_WEEKEVENTREG_FLAG(52, 0x10)
// cleared Stone Tower Temple
#define WEEKEVENTREG_CLEARED_STONE_TOWER_TEMPLE PACK_WEEKEVENTREG_FLAG(52, 0x20)
#define WEEKEVENTREG_52_40 PACK_WEEKEVENTREG_FLAG(52, 0x40)
#define WEEKEVENTREG_52_80 PACK_WEEKEVENTREG_FLAG(52, 0x80)
#define WEEKEVENTREG_53_01 PACK_WEEKEVENTREG_FLAG(53, 0x01)
@@ -1130,12 +1076,12 @@ typedef enum {
#define WEEKEVENTREG_64_10 PACK_WEEKEVENTREG_FLAG(64, 0x10)
#define WEEKEVENTREG_64_20 PACK_WEEKEVENTREG_FLAG(64, 0x20)
#define WEEKEVENTREG_64_40 PACK_WEEKEVENTREG_FLAG(64, 0x40)
#define WEEKEVENTREG_64_80 PACK_WEEKEVENTREG_FLAG(64, 0x80)
#define WEEKEVENTREG_65_01 PACK_WEEKEVENTREG_FLAG(65, 0x01)
#define WEEKEVENTREG_65_02 PACK_WEEKEVENTREG_FLAG(65, 0x02)
#define WEEKEVENTREG_65_04 PACK_WEEKEVENTREG_FLAG(65, 0x04)
#define WEEKEVENTREG_65_08 PACK_WEEKEVENTREG_FLAG(65, 0x08)
#define WEEKEVENTREG_65_10 PACK_WEEKEVENTREG_FLAG(65, 0x10)
#define WEEKEVENTREG_TALKED_DOGGY_RACETRACK_OWNER_DAY_1 PACK_WEEKEVENTREG_FLAG(64, 0x80)
#define WEEKEVENTREG_TALKED_DOGGY_RACETRACK_OWNER_NIGHT_1 PACK_WEEKEVENTREG_FLAG(65, 0x01)
#define WEEKEVENTREG_TALKED_DOGGY_RACETRACK_OWNER_DAY_2 PACK_WEEKEVENTREG_FLAG(65, 0x02)
#define WEEKEVENTREG_TALKED_DOGGY_RACETRACK_OWNER_NIGHT_2 PACK_WEEKEVENTREG_FLAG(65, 0x04)
#define WEEKEVENTREG_TALKED_DOGGY_RACETRACK_OWNER_DAY_3 PACK_WEEKEVENTREG_FLAG(65, 0x08)
#define WEEKEVENTREG_TALKED_DOGGY_RACETRACK_OWNER_NIGHT_3 PACK_WEEKEVENTREG_FLAG(65, 0x10)
#define WEEKEVENTREG_65_20 PACK_WEEKEVENTREG_FLAG(65, 0x20)
#define WEEKEVENTREG_65_40 PACK_WEEKEVENTREG_FLAG(65, 0x40)
#define WEEKEVENTREG_65_80 PACK_WEEKEVENTREG_FLAG(65, 0x80)
@@ -1385,10 +1331,8 @@ typedef enum {
#define WEEKEVENTREG_91_40 PACK_WEEKEVENTREG_FLAG(91, 0x40)
#define WEEKEVENTREG_91_80 PACK_WEEKEVENTREG_FLAG(91, 0x80)
// RACE_FLAGS
//#define WEEKEVENTREG_92_01 PACK_WEEKEVENTREG_FLAG(92, 0x01)
//#define WEEKEVENTREG_92_02 PACK_WEEKEVENTREG_FLAG(92, 0x02)
//#define WEEKEVENTREG_92_04 PACK_WEEKEVENTREG_FLAG(92, 0x04)
// HORSE_RACE_STATE (3 entries)
// WEEKEVENTREG_92_01 to WEEKEVENTREG_92_04
#define WEEKEVENTREG_92_08 PACK_WEEKEVENTREG_FLAG(92, 0x08)
#define WEEKEVENTREG_92_10 PACK_WEEKEVENTREG_FLAG(92, 0x10)
@@ -1460,34 +1404,52 @@ typedef enum {
#define SET_WEEKEVENTREG(flag) (WEEKEVENTREG((flag) >> 8) = GET_WEEKEVENTREG((flag) >> 8) | ((flag) & 0xFF))
#define CLEAR_WEEKEVENTREG(flag) (WEEKEVENTREG((flag) >> 8) = GET_WEEKEVENTREG((flag) >> 8) & (u8)~((flag) & 0xFF))
#define WEEKEVENTREG_RACE_FLAG_END 0
#define WEEKEVENTREG_RACE_FLAG_START 1
#define WEEKEVENTREG_RACE_FLAG_2 2
#define WEEKEVENTREG_RACE_FLAG_3 3
#define WEEKEVENTREG_RACE_FLAG_4 4
#define WEEKEVENTREG_RACE_FLAGS 7
typedef enum {
/* 0 */ WEEKEVENTREG_HORSE_RACE_STATE_END,
/* 1 */ WEEKEVENTREG_HORSE_RACE_STATE_START,
/* 2 */ WEEKEVENTREG_HORSE_RACE_STATE_2,
/* 3 */ WEEKEVENTREG_HORSE_RACE_STATE_3,
/* 4 */ WEEKEVENTREG_HORSE_RACE_STATE_4,
/* 7 */ WEEKEVENTREG_HORSE_RACE_STATE_MAX = 7
} WeekEventRegHorseRaceState;
#define GET_WEEKEVENTREG_RACE_FLAGS (WEEKEVENTREG(92) & WEEKEVENTREG_RACE_FLAGS)
#define GET_WEEKEVENTREG_HORSE_RACE_STATE (WEEKEVENTREG(92) & WEEKEVENTREG_HORSE_RACE_STATE_MAX)
#define SET_WEEKEVENTREG_RACE_FLAGS(flag) \
{ \
WEEKEVENTREG(92) &= (u8)~WEEKEVENTREG_RACE_FLAGS; \
WEEKEVENTREG(92) = WEEKEVENTREG(92) | (u8)((WEEKEVENTREG(92) & ~WEEKEVENTREG_RACE_FLAGS) | (flag)); \
} \
#define SET_WEEKEVENTREG_HORSE_RACE_STATE(state) \
{ \
WEEKEVENTREG(92) &= (u8)~WEEKEVENTREG_HORSE_RACE_STATE_MAX; \
WEEKEVENTREG(92) = WEEKEVENTREG(92) | (u8)((WEEKEVENTREG(92) & ~WEEKEVENTREG_HORSE_RACE_STATE_MAX) | (state)); \
} \
(void)0
#define GET_WEEKEVENTREG_DOG_RACE_TEXT(index, baseTextId) \
(index % 2) ? (baseTextId + (((WEEKEVENTREG(42 + (index / 2))) & 0xF0) >> 4)) \
: (baseTextId + ((WEEKEVENTREG(42 + (index / 2))) & 0x0F));
#define SET_WEEKEVENTREG_DOG_RACE_TEXT_OFFSETS(index, packedOffsets) \
{ \
WEEKEVENTREG(42 + index) = ((void)0, WEEKEVENTREG(42 + index)) | packedOffsets; \
}
#define CLEAR_WEEKEVENTREG_DOG_RACE_TEXT_OFFSETS(index) \
{ \
WEEKEVENTREG(42 + index) = 0; \
}
/**
* gSaveContext.eventInf
*/
#define EVENTINF_00 0x00
#define EVENTINF_01 0x01
#define EVENTINF_02 0x02
#define EVENTINF_03 0x03
#define EVENTINF_04 0x04
#define EVENTINF_05 0x05
#define EVENTINF_06 0x06
#define EVENTINF_07 0x07
// gSaveContext.eventInf[0] is used to dog race information
// #define EVENTINF_00 0x00
// #define EVENTINF_01 0x01
// #define EVENTINF_02 0x02
// #define EVENTINF_03 0x03
// #define EVENTINF_04 0x04
// #define EVENTINF_05 0x05
// #define EVENTINF_06 0x06
// #define EVENTINF_07 0x07
#define EVENTINF_10 0x10
#define EVENTINF_11 0x11
#define EVENTINF_12 0x12
@@ -1561,6 +1523,25 @@ typedef enum {
#define CLEAR_EVENTINF(flag) (gSaveContext.eventInf[(flag) >> 4] &= (u8)~(1 << ((flag) & 0xF)))
#define CLEAR_EVENTINF_ALT(flag) (gSaveContext.eventInf[(flag) >> 4] &= ~(1 << ((flag) & 0xF)))
typedef enum {
/* 0 */ EVENTINF_DOG_RACE_STATE_NOT_STARTED,
/* 2 */ EVENTINF_DOG_RACE_STATE_STARTED = 2,
/* 3 */ EVENTINF_DOG_RACE_STATE_ENDED,
/* 7 */ EVENTINF_DOG_RACE_STATE_MAX = 7
} EventInfDogRaceState;
#define GET_EVENTINF_DOG_RACE_STATE (gSaveContext.eventInf[0] & EVENTINF_DOG_RACE_STATE_MAX)
#define SET_EVENTINF_DOG_RACE_STATE(state) \
(gSaveContext.eventInf[0] = ((gSaveContext.eventInf[0] & (u8)~EVENTINF_DOG_RACE_STATE_MAX) | (state)))
#define GET_EVENTINF_DOG_RACE_SELECTED_DOG_INDEX ((gSaveContext.eventInf[0] & (u8)~EVENTINF_DOG_RACE_STATE_MAX) >> 3)
#define SET_EVENTINF_DOG_RACE_SELECTED_DOG_INDEX(selectedDogIndex) \
(gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & EVENTINF_DOG_RACE_STATE_MAX) | (selectedDogIndex << 3))
// This is exactly the same as the selected dog index; they never need both of them at the same time.
#define GET_EVENTINF_DOG_RACE_RACE_STANDING ((gSaveContext.eventInf[0] & (u8)~EVENTINF_DOG_RACE_STATE_MAX) >> 3)
#define SET_EVENTINF_DOG_RACE_RACE_STANDING(raceStanding) \
(gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & EVENTINF_DOG_RACE_STATE_MAX) | (raceStanding << 3))
typedef enum {
/* 0 */ DUNGEON_INDEX_WOODFALL_TEMPLE,
+21 -17
View File
@@ -2,6 +2,7 @@
#define Z64TRANSITION_H
#include "ultra64.h"
#include "libc/stdint.h"
#include "overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h"
#include "overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h"
#include "overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h"
@@ -164,31 +165,34 @@ typedef enum {
/* 86 */ TRANS_TYPE_86 = 86
} TransitionType;
typedef enum {
/* 0 */ FBDEMO_FADE,
/* 1 */ FBDEMO_TRIFORCE,
/* 2 */ FBDEMO_WIPE1,
/* 3 */ FBDEMO_WIPE3,
/* 4 */ FBDEMO_WIPE4,
/* 5 */ FBDEMO_CIRCLE,
/* 6 */ FBDEMO_WIPE5
#define DEFINE_TRANSITION(enumValue, _structName, _instanceName, _name) enumValue,
#define DEFINE_TRANSITION_INTERNAL(enumValue, _structName, _instanceName) enumValue,
typedef enum FbDemoType {
#include "tables/transition_table.h"
/* 7 */ FBDEMO_MAX
} FbDemoType;
#undef DEFINE_TRANSITION
#undef DEFINE_TRANSITION_INTERNAL
#define TRANS_NEXT_TYPE_DEFAULT 0xFF
#define DEFINE_TRANSITION(_enumValue, structName, instanceName, _name) structName instanceName;
#define DEFINE_TRANSITION_INTERNAL(_enumValue, structName, instanceName) structName instanceName;
typedef union TransitionInstance {
#include "tables/transition_table.h"
} TransitionInstance; // size = 0x218
#undef DEFINE_TRANSITION
#undef DEFINE_TRANSITION_INTERNAL
typedef struct {
/* 0x000 */ s16 transitionType;
/* 0x002 */ s8 fbdemoType;
/* 0x003 */ char unk_003[0x5];
/* 0x008 */ union {
TransitionFade fade;
TransitionCircle circle;
TransitionTriforce triforce;
TransitionWipe1 wipe1;
TransitionWipe3 wipe3;
TransitionWipe4 wipe4;
TransitionWipe5 wipe5;
} instanceData;
/* 0x008 */ TransitionInstance instanceData;
/* 0x220 */ char unk_220[0x10];
/* 0x230 */ void* (*init)(void* transition);
/* 0x234 */ void (*destroy)(void* transition);
+2 -7
View File
@@ -2962,11 +2962,7 @@ beginseg
name "ovl_En_Tru"
compress
include "build/src/overlays/actors/ovl_En_Tru/z_en_tru.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_En_Tru/ovl_En_Tru_reloc.o"
#else
include "build/data/ovl_En_Tru/ovl_En_Tru.reloc.o"
#endif
include "build/src/overlays/actors/ovl_En_Tru/ovl_En_Tru_reloc.o"
endseg
beginseg
@@ -4888,8 +4884,7 @@ beginseg
name "ovl_En_And"
compress
include "build/src/overlays/actors/ovl_En_And/z_en_and.o"
include "build/data/ovl_En_And/ovl_En_And.data.o"
include "build/data/ovl_En_And/ovl_En_And.reloc.o"
include "build/src/overlays/actors/ovl_En_And/ovl_En_And_reloc.o"
endseg
beginseg
-1
View File
@@ -1,4 +1,3 @@
#include "prevent_bss_reordering.h"
#include "global.h"
#include "stack.h"
#include "stackcheck.h"
+1
View File
@@ -1,3 +1,4 @@
#include "prevent_bss_reordering.h"
#include "global.h"
#include "stack.h"
#include "stackcheck.h"
+20 -20
View File
@@ -119,23 +119,23 @@ u8 CutsceneCamera_ProcessSpline(CutsceneCamera* csCamera) {
switch (csCamera->atCmd[csCamera->eyeInterp.curPoint].relativeTo) {
case CS_CAM_REL_2:
OLib_DbCameraVec3fDiff(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, 2);
OLib_Vec3fDiff(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, OLIB_DIFF);
break;
case CS_CAM_REL_3:
OLib_DbCameraVec3fDiff(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, 1);
OLib_Vec3fDiff(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, OLIB_DIFF_OFFSET);
break;
case CS_CAM_REL_1:
OLib_DbCameraVec3fDiff(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, 1);
OLib_Vec3fDiff(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, OLIB_DIFF_OFFSET);
break;
case CS_CAM_REL_4:
OLib_DbCameraVec3fDiff(&target->world, &csCamera->camera->at, &csCamera->camera->at, 1);
OLib_Vec3fDiff(&target->world, &csCamera->camera->at, &csCamera->camera->at, OLIB_DIFF_OFFSET);
break;
case CS_CAM_REL_5:
OLib_DbCameraVec3fDiff(&target->world, &csCamera->camera->at, &csCamera->camera->at, 2);
OLib_Vec3fDiff(&target->world, &csCamera->camera->at, &csCamera->camera->at, OLIB_DIFF);
break;
default: // CS_CAM_REL_0
@@ -147,24 +147,24 @@ u8 CutsceneCamera_ProcessSpline(CutsceneCamera* csCamera) {
switch (csCamera->atCmd[csCamera->eyeInterp.curPoint].relativeTo) {
case CS_CAM_REL_2:
OLib_DbCameraVec3fSum(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, 2);
OLib_Vec3fAdd(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, OLIB_ADD);
break;
case CS_CAM_REL_3:
OLib_DbCameraVec3fSum(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, 1);
OLib_Vec3fAdd(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, OLIB_ADD_OFFSET);
csCamera->camera->at.y += func_80163660(&player->actor);
break;
case CS_CAM_REL_1:
OLib_DbCameraVec3fSum(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, 1);
OLib_Vec3fAdd(&player->actor.world, &csCamera->camera->at, &csCamera->camera->at, OLIB_ADD_OFFSET);
break;
case CS_CAM_REL_4:
OLib_DbCameraVec3fSum(&target->world, &csCamera->camera->at, &csCamera->camera->at, 1);
OLib_Vec3fAdd(&target->world, &csCamera->camera->at, &csCamera->camera->at, OLIB_ADD_OFFSET);
break;
case CS_CAM_REL_5:
OLib_DbCameraVec3fSum(&target->world, &csCamera->camera->at, &csCamera->camera->at, 2);
OLib_Vec3fAdd(&target->world, &csCamera->camera->at, &csCamera->camera->at, OLIB_ADD);
break;
default: // CS_CAM_REL_0
@@ -189,23 +189,23 @@ u8 CutsceneCamera_ProcessSpline(CutsceneCamera* csCamera) {
switch (csCamera->eyeCmd[csCamera->atInterp.curPoint].relativeTo) {
case CS_CAM_REL_2:
OLib_DbCameraVec3fDiff(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, 2);
OLib_Vec3fDiff(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_DIFF);
break;
case CS_CAM_REL_3:
OLib_DbCameraVec3fDiff(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, 1);
OLib_Vec3fDiff(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_DIFF_OFFSET);
break;
case CS_CAM_REL_1:
OLib_DbCameraVec3fDiff(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, 1);
OLib_Vec3fDiff(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_DIFF_OFFSET);
break;
case CS_CAM_REL_4:
OLib_DbCameraVec3fDiff(&target->world, &csCamera->camera->eye, &csCamera->camera->eye, 1);
OLib_Vec3fDiff(&target->world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_DIFF_OFFSET);
break;
case CS_CAM_REL_5:
OLib_DbCameraVec3fDiff(&target->world, &csCamera->camera->eye, &csCamera->camera->eye, 2);
OLib_Vec3fDiff(&target->world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_DIFF);
break;
default: // CS_CAM_REL_0
@@ -217,24 +217,24 @@ u8 CutsceneCamera_ProcessSpline(CutsceneCamera* csCamera) {
switch (csCamera->eyeCmd[csCamera->atInterp.curPoint].relativeTo) {
case CS_CAM_REL_2:
OLib_DbCameraVec3fSum(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, 2);
OLib_Vec3fAdd(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_ADD);
break;
case CS_CAM_REL_3:
OLib_DbCameraVec3fSum(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, 1);
OLib_Vec3fAdd(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_ADD_OFFSET);
csCamera->camera->eye.y += func_80163660(&player->actor);
break;
case CS_CAM_REL_1:
OLib_DbCameraVec3fSum(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, 1);
OLib_Vec3fAdd(&player->actor.world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_ADD_OFFSET);
break;
case CS_CAM_REL_4:
OLib_DbCameraVec3fSum(&target->world, &csCamera->camera->eye, &csCamera->camera->eye, 1);
OLib_Vec3fAdd(&target->world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_ADD_OFFSET);
break;
case CS_CAM_REL_5:
OLib_DbCameraVec3fSum(&target->world, &csCamera->camera->eye, &csCamera->camera->eye, 2);
OLib_Vec3fAdd(&target->world, &csCamera->camera->eye, &csCamera->camera->eye, OLIB_ADD);
break;
default: // CS_CAM_REL_0
+1
View File
@@ -1,3 +1,4 @@
#include "prevent_bss_reordering.h"
#include "global.h"
#include "stackcheck.h"

Some files were not shown because too many files have changed in this diff Show More