mirror of https://github.com/PrimeDecomp/prime.git
CScriptCameraHint, CCameraManager progress & renaming from MPR
This commit is contained in:
parent
141d88c0f7
commit
4147a9fdec
|
@ -132,10 +132,10 @@ DeleteCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x8000957C
|
||||||
AddActiveCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x80009664; // type:function size:0xCC scope:global
|
AddActiveCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x80009664; // type:function size:0xCC scope:global
|
||||||
HasBallCameraInitialPositionHint__14CCameraManagerCFR13CStateManager = .text:0x80009730; // type:function size:0x7C scope:global
|
HasBallCameraInitialPositionHint__14CCameraManagerCFR13CStateManager = .text:0x80009730; // type:function size:0x7C scope:global
|
||||||
UpdateCameraHints__14CCameraManagerFfR13CStateManager = .text:0x800097AC; // type:function size:0xAF0 scope:global
|
UpdateCameraHints__14CCameraManagerFfR13CStateManager = .text:0x800097AC; // type:function size:0xAF0 scope:global
|
||||||
RestoreHintlessCamera__14CCameraManagerFR13CStateManager = .text:0x8000A29C; // type:function size:0x1EC scope:global
|
NoCameraHintsLeft__14CCameraManagerFR13CStateManager = .text:0x8000A29C; // type:function size:0x1EC scope:global
|
||||||
ApplyCameraHint__14CCameraManagerFRC17CScriptCameraHintR13CStateManager = .text:0x8000A488; // type:function size:0x218 scope:global
|
UseCameraHint__14CCameraManagerFRC17CScriptCameraHintR13CStateManager = .text:0x8000A488; // type:function size:0x218 scope:global
|
||||||
SkipBallCameraCinematic__14CCameraManagerFR13CStateManager = .text:0x8000A6A0; // type:function size:0xC8 scope:global
|
CinematicCut__14CCameraManagerFR13CStateManager = .text:0x8000A6A0; // type:function size:0xC8 scope:global
|
||||||
InterpolateToBallCamera__14CCameraManagerFRC12CTransform4f9TUniqueIdRC9CVector3ffffbR13CStateManager = .text:0x8000A768; // type:function size:0xE0 scope:global
|
SetupInterpolation__14CCameraManagerFRC12CTransform4f9TUniqueId9CVector3ffffbR13CStateManager = .text:0x8000A768; // type:function size:0xE0 scope:global
|
||||||
SetPlayerCamera__14CCameraManagerFR13CStateManager9TUniqueId = .text:0x8000A848; // type:function size:0x84 scope:global
|
SetPlayerCamera__14CCameraManagerFR13CStateManager9TUniqueId = .text:0x8000A848; // type:function size:0x84 scope:global
|
||||||
ShouldBypassInterpolationCamera__14CCameraManagerCFv = .text:0x8000A8CC; // type:function size:0x8 scope:global
|
ShouldBypassInterpolationCamera__14CCameraManagerCFv = .text:0x8000A8CC; // type:function size:0x8 scope:global
|
||||||
IsInterpolationCameraActive__14CCameraManagerCFv = .text:0x8000A8D4; // type:function size:0x10 scope:global
|
IsInterpolationCameraActive__14CCameraManagerCFv = .text:0x8000A8D4; // type:function size:0x10 scope:global
|
||||||
|
@ -151,7 +151,7 @@ create_node__Q24rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>FPQ34rs
|
||||||
__dt__16CCameraShakeDataFv = .text:0x8000AD2C; // type:function size:0x7C scope:global
|
__dt__16CCameraShakeDataFv = .text:0x8000AD2C; // type:function size:0x7C scope:global
|
||||||
__ct__16CCameraShakeDataFRC16CCameraShakeData = .text:0x8000ADA8; // type:function size:0x1A8 scope:global
|
__ct__16CCameraShakeDataFRC16CCameraShakeData = .text:0x8000ADA8; // type:function size:0x1A8 scope:global
|
||||||
__dt__22CCameraShakerComponentFv = .text:0x8000AF50; // type:function size:0x48 scope:global
|
__dt__22CCameraShakerComponentFv = .text:0x8000AF50; // type:function size:0x48 scope:global
|
||||||
SkipCinematic__14CCameraManagerFR13CStateManager = .text:0x8000AF98; // type:function size:0xC0 scope:global
|
StopCinematics__14CCameraManagerFR13CStateManager = .text:0x8000AF98; // type:function size:0xC0 scope:global
|
||||||
EnterCinematic__14CCameraManagerFR13CStateManager = .text:0x8000B058; // type:function size:0x16C scope:global
|
EnterCinematic__14CCameraManagerFR13CStateManager = .text:0x8000B058; // type:function size:0x16C scope:global
|
||||||
RemoveCinemaCamera__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x8000B1C4; // type:function size:0x94 scope:global
|
RemoveCinemaCamera__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x8000B1C4; // type:function size:0x94 scope:global
|
||||||
erase__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>FQ24rstl110pointer_iterator<9TUniqueId,Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator> = .text:0x8000B258; // type:function size:0x4C scope:global
|
erase__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>FQ24rstl110pointer_iterator<9TUniqueId,Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator> = .text:0x8000B258; // type:function size:0x4C scope:global
|
||||||
|
@ -160,34 +160,34 @@ AddCinemaCamera__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x8000B33C;
|
||||||
ProcessInput__14CCameraManagerFRC11CFinalInputR13CStateManager = .text:0x8000B46C; // type:function size:0xB0 scope:global
|
ProcessInput__14CCameraManagerFRC11CFinalInputR13CStateManager = .text:0x8000B46C; // type:function size:0xB0 scope:global
|
||||||
SetInsideFluid__14CCameraManagerFb9TUniqueId = .text:0x8000B51C; // type:function size:0x30 scope:global
|
SetInsideFluid__14CCameraManagerFb9TUniqueId = .text:0x8000B51C; // type:function size:0x30 scope:global
|
||||||
Update__14CCameraManagerFfR13CStateManager = .text:0x8000B54C; // type:function size:0x80 scope:global
|
Update__14CCameraManagerFfR13CStateManager = .text:0x8000B54C; // type:function size:0x80 scope:global
|
||||||
SetFogDensity__14CCameraManagerFff = .text:0x8000B5CC; // type:function size:0x28 scope:global
|
SetWaterFogScale__14CCameraManagerFff = .text:0x8000B5CC; // type:function size:0x28 scope:global
|
||||||
CalculateFogDensity__14CCameraManagerFR13CStateManagerPC12CScriptWater = .text:0x8000B5F4; // type:function size:0x8C scope:global
|
GetWaterFarDistance__14CCameraManagerFR13CStateManagerPC12CScriptWater = .text:0x8000B5F4; // type:function size:0x8C scope:global
|
||||||
UpdateFog__14CCameraManagerFfR13CStateManager = .text:0x8000B680; // type:function size:0x1F8 scope:global
|
UpdateFilters__14CCameraManagerFfR13CStateManager = .text:0x8000B680; // type:function size:0x1F8 scope:global
|
||||||
UpdateRumble__14CCameraManagerFfR13CStateManager = .text:0x8000B878; // type:function size:0x1B0 scope:global
|
UpdateScreenShake__14CCameraManagerFfR13CStateManager = .text:0x8000B878; // type:function size:0x1B0 scope:global
|
||||||
UpdateSfxListener__14CCameraManagerFR13CStateManager = .text:0x8000BA28; // type:function size:0x9C scope:global
|
UpdateAudioListener__14CCameraManagerFR13CStateManager = .text:0x8000BA28; // type:function size:0x9C scope:global
|
||||||
SetCurrentCameraId__14CCameraManagerF9TUniqueId = .text:0x8000BAC4; // type:function size:0xC scope:global
|
SetCurrentCameraId__14CCameraManagerF9TUniqueId = .text:0x8000BAC4; // type:function size:0xC scope:global
|
||||||
GetLastCineCamera__14CCameraManagerCFR13CStateManager = .text:0x8000BAD0; // type:function size:0x48 scope:global
|
GetCurrentCinematicCamera__14CCameraManagerCFR13CStateManager = .text:0x8000BAD0; // type:function size:0x48 scope:global
|
||||||
GetCurrentCamera__14CCameraManagerCFRC13CStateManager = .text:0x8000BB18; // type:function size:0x48 scope:global
|
GetCurrentCamera__14CCameraManagerCFRC13CStateManager = .text:0x8000BB18; // type:function size:0x48 scope:global
|
||||||
CurrentCamera__14CCameraManagerFR13CStateManager = .text:0x8000BB60; // type:function size:0x48 scope:global
|
CurrentCamera__14CCameraManagerFR13CStateManager = .text:0x8000BB60; // type:function size:0x48 scope:global
|
||||||
GetLastCineCameraId__14CCameraManagerCFv = .text:0x8000BBA8; // type:function size:0x30 scope:global
|
GetCurrentCinematicCameraId__14CCameraManagerCFv = .text:0x8000BBA8; // type:function size:0x30 scope:global
|
||||||
GetCurrentCameraId__14CCameraManagerCFv = .text:0x8000BBD8; // type:function size:0x30 scope:global
|
GetCurrentCameraId__14CCameraManagerCFv = .text:0x8000BBD8; // type:function size:0x30 scope:global
|
||||||
RenderCameras__14CCameraManagerFRC13CStateManager = .text:0x8000BC08; // type:function size:0x88 scope:global
|
Render__14CCameraManagerFRC13CStateManager = .text:0x8000BC08; // type:function size:0x88 scope:global
|
||||||
ResetCameras__14CCameraManagerFR13CStateManager = .text:0x8000BC90; // type:function size:0xD0 scope:global
|
ResetCameras__14CCameraManagerFR13CStateManager = .text:0x8000BC90; // type:function size:0xD0 scope:global
|
||||||
ThinkCameras__14CCameraManagerFfR13CStateManager = .text:0x8000BD60; // type:function size:0xF8 scope:global
|
UpdateCameras__14CCameraManagerFfR13CStateManager = .text:0x8000BD60; // type:function size:0xF8 scope:global
|
||||||
CreateStandardCameras__14CCameraManagerFR13CStateManager = .text:0x8000BE58; // type:function size:0x260 scope:global
|
CreateCameras__14CCameraManagerFR13CStateManager = .text:0x8000BE58; // type:function size:0x260 scope:global
|
||||||
DefaultAspect__14CCameraManagerFv = .text:0x8000C0B8; // type:function size:0x8 scope:global
|
GetDefaultAspectRatio__14CCameraManagerFv = .text:0x8000C0B8; // type:function size:0x8 scope:global
|
||||||
DefaultFarPlane__14CCameraManagerFv = .text:0x8000C0C0; // type:function size:0x8 scope:global
|
GetDefaultFirstPersonFarClipDistance__14CCameraManagerFv = .text:0x8000C0C0; // type:function size:0x8 scope:global
|
||||||
DefaultNearPlane__14CCameraManagerFv = .text:0x8000C0C8; // type:function size:0x8 scope:global
|
GetDefaultFirstPersonNearClipDistance__14CCameraManagerFv = .text:0x8000C0C8; // type:function size:0x8 scope:global
|
||||||
DefaultFirstPersonFov__14CCameraManagerFv = .text:0x8000C0D0; // type:function size:0x8 scope:global
|
GetDefaultFirstPersonVerticalFOV__14CCameraManagerFv = .text:0x8000C0D0; // type:function size:0x8 scope:global
|
||||||
DefaultThirdPersonFov__14CCameraManagerFv = .text:0x8000C0D8; // type:function size:0x8 scope:global
|
GetDefaultThirdPersonVerticalFOV__14CCameraManagerFv = .text:0x8000C0D8; // type:function size:0x8 scope:global
|
||||||
__ct__14CCameraManagerF9TUniqueId = .text:0x8000C0E0; // type:function size:0x1D4 scope:global
|
__ct__14CCameraManagerF9TUniqueId = .text:0x8000C0E0; // type:function size:0x1D4 scope:global
|
||||||
Clamp<f>__5CMathFRCfRCfRCf = .text:0x8000C2B4; // type:function size:0x2C scope:global
|
Clamp<f>__5CMathFRCfRCfRCf = .text:0x8000C2B4; // type:function size:0x2C scope:global
|
||||||
fn_8000C2E0 = .text:0x8000C2E0; // type:function size:0x128
|
sort<PQ24rstl18pair<i,9TUniqueId>,Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>>>__4rstlFPQ24rstl18pair<i,9TUniqueId>PQ24rstl18pair<i,9TUniqueId>Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>> = .text:0x8000C2E0; // type:function size:0x128
|
||||||
reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi = .text:0x8000C408; // type:function size:0xEC scope:global
|
reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi = .text:0x8000C408; // type:function size:0xEC scope:global
|
||||||
erase__Q24rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>FRCQ34rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>8iterator = .text:0x8000C4F4; // type:function size:0xC0 scope:global
|
erase__Q24rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>FRCQ34rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>8iterator = .text:0x8000C4F4; // type:function size:0xC0 scope:global
|
||||||
fn_8000C5B4 = .text:0x8000C5B4; // type:function size:0xC0
|
fn_8000C5B4 = .text:0x8000C5B4; // type:function size:0xC0
|
||||||
fn_8000C674 = .text:0x8000C674; // type:function size:0x84
|
__insertion_sort<PQ24rstl18pair<i,9TUniqueId>,Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>>>__4rstlFPQ24rstl18pair<i,9TUniqueId>PQ24rstl18pair<i,9TUniqueId>Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>> = .text:0x8000C674; // type:function size:0x84
|
||||||
fn_8000C6F8 = .text:0x8000C6F8; // type:function size:0x90
|
__sort3<Q24rstl18pair<i,9TUniqueId>,Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>>>__4rstlFRQ24rstl18pair<i,9TUniqueId>RQ24rstl18pair<i,9TUniqueId>RQ24rstl18pair<i,9TUniqueId>Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>> = .text:0x8000C6F8; // type:function size:0x90
|
||||||
SetCommandFiltered__13ControlMapperFQ213ControlMapper9ECommandsb = .text:0x8000C788; // type:function size:0x14 scope:global
|
SetCommandFiltered__13ControlMapperFQ213ControlMapper9ECommandsb = .text:0x8000C788; // type:function size:0x14 scope:global
|
||||||
ResetCommandFilters__13ControlMapperFv = .text:0x8000C79C; // type:function size:0x34 scope:global
|
ResetCommandFilters__13ControlMapperFv = .text:0x8000C79C; // type:function size:0x34 scope:global
|
||||||
GetPressInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput = .text:0x8000C7D0; // type:function size:0xA4 scope:global
|
GetPressInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput = .text:0x8000C7D0; // type:function size:0xA4 scope:global
|
||||||
|
@ -266,7 +266,7 @@ __dt__Q24rstl21reserved_vector<b,67>Fv = .text:0x8000E050; // type:function size
|
||||||
GetGunFollowTransform__18CFirstPersonCameraCFv = .text:0x8000E0E4; // type:function size:0x8 scope:global
|
GetGunFollowTransform__18CFirstPersonCameraCFv = .text:0x8000E0E4; // type:function size:0x8 scope:global
|
||||||
Accept__18CFirstPersonCameraFR8IVisitor = .text:0x8000E0EC; // type:function size:0x38 scope:global
|
Accept__18CFirstPersonCameraFR8IVisitor = .text:0x8000E0EC; // type:function size:0x38 scope:global
|
||||||
Think__18CFirstPersonCameraFfR13CStateManager = .text:0x8000E124; // type:function size:0x1F4 scope:global
|
Think__18CFirstPersonCameraFfR13CStateManager = .text:0x8000E124; // type:function size:0x1F4 scope:global
|
||||||
SkipCinematic__18CFirstPersonCameraFv = .text:0x8000E318; // type:function size:0x28 scope:global
|
CancelCinematicOffset__18CFirstPersonCameraFv = .text:0x8000E318; // type:function size:0x28 scope:global
|
||||||
Reset__18CFirstPersonCameraFRC12CTransform4fR13CStateManager = .text:0x8000E340; // type:function size:0x88 scope:global
|
Reset__18CFirstPersonCameraFRC12CTransform4fR13CStateManager = .text:0x8000E340; // type:function size:0x88 scope:global
|
||||||
Render__18CFirstPersonCameraCFRC13CStateManager = .text:0x8000E3C8; // type:function size:0x4 scope:global
|
Render__18CFirstPersonCameraCFRC13CStateManager = .text:0x8000E3C8; // type:function size:0x4 scope:global
|
||||||
PreThink__18CFirstPersonCameraFfR13CStateManager = .text:0x8000E3CC; // type:function size:0x4 scope:global
|
PreThink__18CFirstPersonCameraFfR13CStateManager = .text:0x8000E3CC; // type:function size:0x4 scope:global
|
||||||
|
@ -1418,7 +1418,7 @@ AddToRenderer__7CEffectCFRC14CFrustumPlanesRC13CStateManager = .text:0x8005AD48;
|
||||||
Render__7CEffectCFRC13CStateManager = .text:0x8005AD4C; // type:function size:0x4 scope:global
|
Render__7CEffectCFRC13CStateManager = .text:0x8005AD4C; // type:function size:0x4 scope:global
|
||||||
__ct__7CEffectF9TUniqueIdRC11CEntityInfobRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f = .text:0x8005AD50; // type:function size:0xEC scope:global
|
__ct__7CEffectF9TUniqueIdRC11CEntityInfobRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f = .text:0x8005AD50; // type:function size:0xEC scope:global
|
||||||
UpdatePerspective__11CGameCameraFf = .text:0x8005AE3C; // type:function size:0xDC scope:global
|
UpdatePerspective__11CGameCameraFf = .text:0x8005AE3C; // type:function size:0xDC scope:global
|
||||||
SetFovInterpolation__11CGameCameraFffff = .text:0x8005AF18; // type:function size:0x70 scope:global
|
InterpolateFOV__11CGameCameraFffff = .text:0x8005AF18; // type:function size:0x70 scope:global
|
||||||
SkipFovInterpolation__11CGameCameraFv = .text:0x8005AF88; // type:function size:0x38 scope:global
|
SkipFovInterpolation__11CGameCameraFv = .text:0x8005AF88; // type:function size:0x38 scope:global
|
||||||
ValidateCameraTransform__11CGameCameraFRC12CTransform4fRC12CTransform4f = .text:0x8005AFC0; // type:function size:0x314 scope:global
|
ValidateCameraTransform__11CGameCameraFRC12CTransform4fRC12CTransform4f = .text:0x8005AFC0; // type:function size:0x314 scope:global
|
||||||
Accept__11CGameCameraFR8IVisitor = .text:0x8005B2D4; // type:function size:0x38 scope:global
|
Accept__11CGameCameraFR8IVisitor = .text:0x8005B2D4; // type:function size:0x38 scope:global
|
||||||
|
@ -1925,7 +1925,7 @@ __ct__8CMapAreaFR12CInputStreamUi = .text:0x80080EFC; // type:function size:0x11
|
||||||
__sinit_CMapArea_cpp = .text:0x80081010; // type:function size:0x38 scope:local
|
__sinit_CMapArea_cpp = .text:0x80081010; // type:function size:0x38 scope:local
|
||||||
SplineIntersectTest__11CBallCameraCFR13CMaterialListR13CStateManager = .text:0x80081048; // type:function size:0x788 scope:global
|
SplineIntersectTest__11CBallCameraCFR13CMaterialListR13CStateManager = .text:0x80081048; // type:function size:0x788 scope:global
|
||||||
CheckFailsafeFromMorphBallState__11CBallCameraCFR13CStateManager = .text:0x800817D0; // type:function size:0x6B0 scope:global
|
CheckFailsafeFromMorphBallState__11CBallCameraCFR13CStateManager = .text:0x800817D0; // type:function size:0x6B0 scope:global
|
||||||
ApplyCameraHint__11CBallCameraFR13CStateManager = .text:0x80081E80; // type:function size:0x8A0 scope:global
|
OverrideCameraInfo__11CBallCameraFR13CStateManager = .text:0x80081E80; // type:function size:0x8A0 scope:global
|
||||||
Accept__11CBallCameraFR8IVisitor = .text:0x80082720; // type:function size:0x38 scope:global
|
Accept__11CBallCameraFR8IVisitor = .text:0x80082720; // type:function size:0x38 scope:global
|
||||||
AcceptScriptMsg__11CBallCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager = .text:0x80082758; // type:function size:0x3B4 scope:global
|
AcceptScriptMsg__11CBallCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager = .text:0x80082758; // type:function size:0x3B4 scope:global
|
||||||
ProcessInput__11CBallCameraFRC11CFinalInputR13CStateManager = .text:0x80082B0C; // type:function size:0x190 scope:global
|
ProcessInput__11CBallCameraFRC11CFinalInputR13CStateManager = .text:0x80082B0C; // type:function size:0x190 scope:global
|
||||||
|
@ -1959,7 +1959,7 @@ UpdateCameraPositions__11CBallCameraFfRC12CTransform4fRC12CTransform4f = .text:0
|
||||||
ConstrainYawAngle__11CBallCameraCFRC7CPlayerfffR13CStateManager = .text:0x80089374; // type:function size:0x358 scope:global
|
ConstrainYawAngle__11CBallCameraCFRC7CPlayerfffR13CStateManager = .text:0x80089374; // type:function size:0x358 scope:global
|
||||||
ConstrainElevationAndDistance__11CBallCameraFRfRffR13CStateManager = .text:0x800896CC; // type:function size:0x230 scope:global
|
ConstrainElevationAndDistance__11CBallCameraFRfRffR13CStateManager = .text:0x800896CC; // type:function size:0x230 scope:global
|
||||||
UpdateObjectTooCloseId__11CBallCameraFR13CStateManager = .text:0x800898FC; // type:function size:0x284 scope:global
|
UpdateObjectTooCloseId__11CBallCameraFR13CStateManager = .text:0x800898FC; // type:function size:0x284 scope:global
|
||||||
UpdateLookDirection__11CBallCameraFRC9CVector3fR13CStateManager = .text:0x80089B80; // type:function size:0x134 scope:global
|
FindDesiredTransform__11CBallCameraF9CVector3fR13CStateManager = .text:0x80089B80; // type:function size:0x134 scope:global
|
||||||
FindDesiredPosition__11CBallCameraFff9CVector3fR13CStateManagerb = .text:0x80089CB4; // type:function size:0xD48 scope:global
|
FindDesiredPosition__11CBallCameraFff9CVector3fR13CStateManagerb = .text:0x80089CB4; // type:function size:0xD48 scope:global
|
||||||
DetectCollision__11CBallCameraFRC9CVector3fRC9CVector3ffRfR13CStateManager = .text:0x8008A9FC; // type:function size:0x71C scope:global
|
DetectCollision__11CBallCameraFRC9CVector3fRC9CVector3ffRfR13CStateManager = .text:0x8008A9FC; // type:function size:0x71C scope:global
|
||||||
AvoidGeometry__11CBallCameraFRC12CTransform4fRCQ24rstl32reserved_vector<9TUniqueId,1024>fR13CStateManager = .text:0x8008B118; // type:function size:0x134 scope:global
|
AvoidGeometry__11CBallCameraFRC12CTransform4fRCQ24rstl32reserved_vector<9TUniqueId,1024>fR13CStateManager = .text:0x8008B118; // type:function size:0x134 scope:global
|
||||||
|
@ -1979,7 +1979,7 @@ __ct__15CCameraColliderFRC15CCameraCollider = .text:0x8008C6CC; // type:function
|
||||||
__dt__15CCameraColliderFv = .text:0x8008C77C; // type:function size:0x48 scope:global
|
__dt__15CCameraColliderFv = .text:0x8008C77C; // type:function size:0x48 scope:global
|
||||||
ResetToTweaks__11CBallCameraFR13CStateManager = .text:0x8008C7C4; // type:function size:0x234 scope:global
|
ResetToTweaks__11CBallCameraFR13CStateManager = .text:0x8008C7C4; // type:function size:0x234 scope:global
|
||||||
TeleportCamera__11CBallCameraFRC12CTransform4fR13CStateManager = .text:0x8008C9F8; // type:function size:0x98 scope:global
|
TeleportCamera__11CBallCameraFRC12CTransform4fR13CStateManager = .text:0x8008C9F8; // type:function size:0x98 scope:global
|
||||||
ResetPosition__11CBallCameraFR13CStateManager = .text:0x8008CA90; // type:function size:0x8C scope:global
|
TeleportLookAtStuff__11CBallCameraFR13CStateManager = .text:0x8008CA90; // type:function size:0x8C scope:global
|
||||||
TeleportCamera__11CBallCameraFRC9CVector3fR13CStateManager = .text:0x8008CB1C; // type:function size:0x100 scope:global
|
TeleportCamera__11CBallCameraFRC9CVector3fR13CStateManager = .text:0x8008CB1C; // type:function size:0x100 scope:global
|
||||||
TeleportColliders__11CBallCameraFRQ24rstl52vector<15CCameraCollider,Q24rstl17rmemory_allocator>9CVector3f = .text:0x8008CC1C; // type:function size:0xD4 scope:global
|
TeleportColliders__11CBallCameraFRQ24rstl52vector<15CCameraCollider,Q24rstl17rmemory_allocator>9CVector3f = .text:0x8008CC1C; // type:function size:0xD4 scope:global
|
||||||
__dt__11CBallCameraFv = .text:0x8008CCF0; // type:function size:0x1BC scope:global
|
__dt__11CBallCameraFv = .text:0x8008CCF0; // type:function size:0x1BC scope:global
|
||||||
|
@ -5731,17 +5731,17 @@ __dt__11CScriptDockFv = .text:0x800C43CC; // type:function size:0x60 scope:globa
|
||||||
__ct__11CScriptDockF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC9CVector3fRC9CVector3fi7TAreaIdbib = .text:0x800C442C; // type:function size:0x260 scope:global
|
__ct__11CScriptDockF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC9CVector3fRC9CVector3fi7TAreaIdbib = .text:0x800C442C; // type:function size:0x260 scope:global
|
||||||
Accept__17CScriptCameraHintFR8IVisitor = .text:0x800C468C; // type:function size:0x38 scope:global
|
Accept__17CScriptCameraHintFR8IVisitor = .text:0x800C468C; // type:function size:0x38 scope:global
|
||||||
AcceptScriptMsg__17CScriptCameraHintF20EScriptObjectMessage9TUniqueIdR13CStateManager = .text:0x800C46C4; // type:function size:0x2E0 scope:global
|
AcceptScriptMsg__17CScriptCameraHintF20EScriptObjectMessage9TUniqueIdR13CStateManager = .text:0x800C46C4; // type:function size:0x2E0 scope:global
|
||||||
InitializeInArea__17CScriptCameraHintFR13CStateManager = .text:0x800C49A4; // type:function size:0x1F4 scope:global
|
CheckLegacyConnections__17CScriptCameraHintFR13CStateManager = .text:0x800C49A4; // type:function size:0x1F4 scope:global
|
||||||
fn_800C4B98 = .text:0x800C4B98; // type:function size:0x4C
|
erase__Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>FQ24rstl116pointer_iterator<11SConnection,Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator> = .text:0x800C4B98; // type:function size:0x4C
|
||||||
fn_800C4BE4 = .text:0x800C4BE4; // type:function size:0xB4
|
erase__Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>FQ24rstl116pointer_iterator<11SConnection,Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl116pointer_iterator<11SConnection,Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator> = .text:0x800C4BE4; // type:function size:0xB4
|
||||||
RemoveHelper__17CScriptCameraHintF9TUniqueId = .text:0x800C4C98; // type:function size:0xD0 scope:global
|
RemoveSender__17CScriptCameraHintF9TUniqueIdR13CStateManager = .text:0x800C4C98; // type:function size:0xD0 scope:global
|
||||||
AddHelper__17CScriptCameraHintF9TUniqueId = .text:0x800C4D68; // type:function size:0x58 scope:global
|
AddSender__17CScriptCameraHintF9TUniqueId = .text:0x800C4D68; // type:function size:0x58 scope:global
|
||||||
ClearIdList__17CScriptCameraHintFv = .text:0x800C4DC0; // type:function size:0x58 scope:global
|
ClearSenders__17CScriptCameraHintFv = .text:0x800C4DC0; // type:function size:0x58 scope:global
|
||||||
GetFirstHelper__17CScriptCameraHintCFv = .text:0x800C4E18; // type:function size:0x24 scope:global
|
GetSenderId__17CScriptCameraHintCFv = .text:0x800C4E18; // type:function size:0x24 scope:global
|
||||||
__dt__17CScriptCameraHintFv = .text:0x800C4E3C; // type:function size:0xD4 scope:global
|
__dt__17CScriptCameraHintFv = .text:0x800C4E3C; // type:function size:0xD4 scope:global
|
||||||
__ct__17CScriptCameraHintF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fbiQ211CBallCamera20EBallCameraBehaviourifffRC13CCameraSpringRC13CCameraSpringfRC9CVector3fRC9CVector3ff = .text:0x800C4F10; // type:function size:0x27C scope:global
|
__ct__17CScriptCameraHintF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fbiQ211CBallCamera20EBallCameraBehaviourifffRC9CVector3fRC9CVector3fRC9CVector3fffffffffff = .text:0x800C4F10; // type:function size:0x27C scope:global
|
||||||
__dt__11CCameraHintFv = .text:0x800C518C; // type:function size:0x48 scope:global
|
__dt__19CCameraOverrideInfoFv = .text:0x800C518C; // type:function size:0x48 scope:global
|
||||||
__ct__11CCameraHintFiQ211CBallCamera20EBallCameraBehaviourfffRC9CVector3fRC9CVector3fRC9CVector3fffffffffff = .text:0x800C51D4; // type:function size:0xA8 scope:global
|
__ct__19CCameraOverrideInfoFUiQ211CBallCamera20EBallCameraBehaviourfffRC9CVector3fRC9CVector3fRC9CVector3fffffffffff = .text:0x800C51D4; // type:function size:0xA8 scope:global
|
||||||
LoadEnergyBall__12ScriptLoaderFR13CStateManagerR12CInputStreamiRC11CEntityInfo = .text:0x800C527C; // type:function size:0x3A0 scope:global
|
LoadEnergyBall__12ScriptLoaderFR13CStateManagerR12CInputStreamiRC11CEntityInfo = .text:0x800C527C; // type:function size:0x3A0 scope:global
|
||||||
__ct__16CActorParametersFRC16CActorParameters = .text:0x800C561C; // type:function size:0xE0 scope:global
|
__ct__16CActorParametersFRC16CActorParameters = .text:0x800C561C; // type:function size:0xE0 scope:global
|
||||||
LoadShadowProjector__12ScriptLoaderFR13CStateManagerR12CInputStreamiRC11CEntityInfo = .text:0x800C56FC; // type:function size:0x15C scope:global
|
LoadShadowProjector__12ScriptLoaderFR13CStateManagerR12CInputStreamiRC11CEntityInfo = .text:0x800C56FC; // type:function size:0x15C scope:global
|
||||||
|
@ -18206,8 +18206,8 @@ lbl_803DF4E8 = .data:0x803DF4E8; // type:object size:0x10
|
||||||
__vt__13CScriptPickup = .data:0x803DF4F8; // type:object size:0x84 scope:global
|
__vt__13CScriptPickup = .data:0x803DF4F8; // type:object size:0x84 scope:global
|
||||||
lbl_803DF580 = .data:0x803DF580; // type:object size:0x84
|
lbl_803DF580 = .data:0x803DF580; // type:object size:0x84
|
||||||
jumptable_803DF604 = .data:0x803DF604; // type:object size:0x80 scope:local
|
jumptable_803DF604 = .data:0x803DF604; // type:object size:0x80 scope:local
|
||||||
lbl_803DF688 = .data:0x803DF688; // type:object size:0x6C
|
__vt__17CScriptCameraHint = .data:0x803DF688; // type:object size:0x6C
|
||||||
lbl_803DF6F4 = .data:0x803DF6F4; // type:object size:0xC
|
__vt__19CCameraOverrideInfo = .data:0x803DF6F4; // type:object size:0xC
|
||||||
__vt__41TObjOwnerDerivedFromIObj<13CStateMachine> = .data:0x803DF700; // type:object size:0xC scope:weak
|
__vt__41TObjOwnerDerivedFromIObj<13CStateMachine> = .data:0x803DF700; // type:object size:0xC scope:weak
|
||||||
__vt__11CPlasmaBeam = .data:0x803DF710; // type:object size:0x44 scope:global
|
__vt__11CPlasmaBeam = .data:0x803DF710; // type:object size:0x44 scope:global
|
||||||
__vt__10CPowerBeam = .data:0x803DF758; // type:object size:0x44 scope:global
|
__vt__10CPowerBeam = .data:0x803DF758; // type:object size:0x44 scope:global
|
||||||
|
|
|
@ -132,10 +132,10 @@ DeleteCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x800095F8
|
||||||
AddActiveCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x800096E0; // type:function size:0xCC scope:global
|
AddActiveCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x800096E0; // type:function size:0xCC scope:global
|
||||||
HasBallCameraInitialPositionHint__14CCameraManagerCFR13CStateManager = .text:0x800097AC; // type:function size:0x7C scope:global
|
HasBallCameraInitialPositionHint__14CCameraManagerCFR13CStateManager = .text:0x800097AC; // type:function size:0x7C scope:global
|
||||||
UpdateCameraHints__14CCameraManagerFfR13CStateManager = .text:0x80009828; // type:function size:0xAF0 scope:global
|
UpdateCameraHints__14CCameraManagerFfR13CStateManager = .text:0x80009828; // type:function size:0xAF0 scope:global
|
||||||
RestoreHintlessCamera__14CCameraManagerFR13CStateManager = .text:0x8000A318; // type:function size:0x1EC scope:global
|
NoCameraHintsLeft__14CCameraManagerFR13CStateManager = .text:0x8000A318; // type:function size:0x1EC scope:global
|
||||||
ApplyCameraHint__14CCameraManagerFRC17CScriptCameraHintR13CStateManager = .text:0x8000A504; // type:function size:0x218 scope:global
|
UseCameraHint__14CCameraManagerFRC17CScriptCameraHintR13CStateManager = .text:0x8000A504; // type:function size:0x218 scope:global
|
||||||
SkipBallCameraCinematic__14CCameraManagerFR13CStateManager = .text:0x8000A71C; // type:function size:0xC8 scope:global
|
CinematicCut__14CCameraManagerFR13CStateManager = .text:0x8000A71C; // type:function size:0xC8 scope:global
|
||||||
InterpolateToBallCamera__14CCameraManagerFRC12CTransform4f9TUniqueIdRC9CVector3ffffbR13CStateManager = .text:0x8000A7E4; // type:function size:0xE0 scope:global
|
SetupInterpolation__14CCameraManagerFRC12CTransform4f9TUniqueId9CVector3ffffbR13CStateManager = .text:0x8000A7E4; // type:function size:0xE0 scope:global
|
||||||
SetPlayerCamera__14CCameraManagerFR13CStateManager9TUniqueId = .text:0x8000A8C4; // type:function size:0x84 scope:global
|
SetPlayerCamera__14CCameraManagerFR13CStateManager9TUniqueId = .text:0x8000A8C4; // type:function size:0x84 scope:global
|
||||||
ShouldBypassInterpolationCamera__14CCameraManagerCFv = .text:0x8000A948; // type:function size:0x8 scope:global
|
ShouldBypassInterpolationCamera__14CCameraManagerCFv = .text:0x8000A948; // type:function size:0x8 scope:global
|
||||||
IsInterpolationCameraActive__14CCameraManagerCFv = .text:0x8000A950; // type:function size:0x10 scope:global
|
IsInterpolationCameraActive__14CCameraManagerCFv = .text:0x8000A950; // type:function size:0x10 scope:global
|
||||||
|
@ -151,7 +151,7 @@ create_node__Q24rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>FPQ34rs
|
||||||
__dt__16CCameraShakeDataFv = .text:0x8000ADA8; // type:function size:0x7C scope:global
|
__dt__16CCameraShakeDataFv = .text:0x8000ADA8; // type:function size:0x7C scope:global
|
||||||
__ct__16CCameraShakeDataFRC16CCameraShakeData = .text:0x8000AE24; // type:function size:0x1A8 scope:global
|
__ct__16CCameraShakeDataFRC16CCameraShakeData = .text:0x8000AE24; // type:function size:0x1A8 scope:global
|
||||||
__dt__22CCameraShakerComponentFv = .text:0x8000AFCC; // type:function size:0x48 scope:global
|
__dt__22CCameraShakerComponentFv = .text:0x8000AFCC; // type:function size:0x48 scope:global
|
||||||
SkipCinematic__14CCameraManagerFR13CStateManager = .text:0x8000B014; // type:function size:0xC0 scope:global
|
StopCinematics__14CCameraManagerFR13CStateManager = .text:0x8000B014; // type:function size:0xC0 scope:global
|
||||||
EnterCinematic__14CCameraManagerFR13CStateManager = .text:0x8000B0D4; // type:function size:0x16C scope:global
|
EnterCinematic__14CCameraManagerFR13CStateManager = .text:0x8000B0D4; // type:function size:0x16C scope:global
|
||||||
RemoveCinemaCamera__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x8000B240; // type:function size:0x94 scope:global
|
RemoveCinemaCamera__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x8000B240; // type:function size:0x94 scope:global
|
||||||
erase__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>FQ24rstl110pointer_iterator<9TUniqueId,Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator> = .text:0x8000B2D4; // type:function size:0x4C scope:global
|
erase__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>FQ24rstl110pointer_iterator<9TUniqueId,Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator> = .text:0x8000B2D4; // type:function size:0x4C scope:global
|
||||||
|
@ -160,34 +160,34 @@ AddCinemaCamera__14CCameraManagerF9TUniqueIdR13CStateManager = .text:0x8000B3B8;
|
||||||
ProcessInput__14CCameraManagerFRC11CFinalInputR13CStateManager = .text:0x8000B4E8; // type:function size:0xB0 scope:global
|
ProcessInput__14CCameraManagerFRC11CFinalInputR13CStateManager = .text:0x8000B4E8; // type:function size:0xB0 scope:global
|
||||||
SetInsideFluid__14CCameraManagerFb9TUniqueId = .text:0x8000B598; // type:function size:0x30 scope:global
|
SetInsideFluid__14CCameraManagerFb9TUniqueId = .text:0x8000B598; // type:function size:0x30 scope:global
|
||||||
Update__14CCameraManagerFfR13CStateManager = .text:0x8000B5C8; // type:function size:0x80 scope:global
|
Update__14CCameraManagerFfR13CStateManager = .text:0x8000B5C8; // type:function size:0x80 scope:global
|
||||||
SetFogDensity__14CCameraManagerFff = .text:0x8000B648; // type:function size:0x28 scope:global
|
SetWaterFogScale__14CCameraManagerFff = .text:0x8000B648; // type:function size:0x28 scope:global
|
||||||
CalculateFogDensity__14CCameraManagerFR13CStateManagerPC12CScriptWater = .text:0x8000B670; // type:function size:0x8C scope:global
|
GetWaterFarDistance__14CCameraManagerFR13CStateManagerPC12CScriptWater = .text:0x8000B670; // type:function size:0x8C scope:global
|
||||||
UpdateFog__14CCameraManagerFfR13CStateManager = .text:0x8000B6FC; // type:function size:0x1F8 scope:global
|
UpdateFilters__14CCameraManagerFfR13CStateManager = .text:0x8000B6FC; // type:function size:0x1F8 scope:global
|
||||||
UpdateRumble__14CCameraManagerFfR13CStateManager = .text:0x8000B8F4; // type:function size:0x1B0 scope:global
|
UpdateScreenShake__14CCameraManagerFfR13CStateManager = .text:0x8000B8F4; // type:function size:0x1B0 scope:global
|
||||||
UpdateSfxListener__14CCameraManagerFR13CStateManager = .text:0x8000BAA4; // type:function size:0x9C scope:global
|
UpdateAudioListener__14CCameraManagerFR13CStateManager = .text:0x8000BAA4; // type:function size:0x9C scope:global
|
||||||
SetCurrentCameraId__14CCameraManagerF9TUniqueId = .text:0x8000BB40; // type:function size:0xC scope:global
|
SetCurrentCameraId__14CCameraManagerF9TUniqueId = .text:0x8000BB40; // type:function size:0xC scope:global
|
||||||
GetLastCineCamera__14CCameraManagerCFR13CStateManager = .text:0x8000BB4C; // type:function size:0x48 scope:global
|
GetCurrentCinematicCamera__14CCameraManagerCFR13CStateManager = .text:0x8000BB4C; // type:function size:0x48 scope:global
|
||||||
GetCurrentCamera__14CCameraManagerCFRC13CStateManager = .text:0x8000BB94; // type:function size:0x48 scope:global
|
GetCurrentCamera__14CCameraManagerCFRC13CStateManager = .text:0x8000BB94; // type:function size:0x48 scope:global
|
||||||
CurrentCamera__14CCameraManagerFR13CStateManager = .text:0x8000BBDC; // type:function size:0x48 scope:global
|
CurrentCamera__14CCameraManagerFR13CStateManager = .text:0x8000BBDC; // type:function size:0x48 scope:global
|
||||||
GetLastCineCameraId__14CCameraManagerCFv = .text:0x8000BC24; // type:function size:0x30 scope:global
|
GetCurrentCinematicCameraId__14CCameraManagerCFv = .text:0x8000BC24; // type:function size:0x30 scope:global
|
||||||
GetCurrentCameraId__14CCameraManagerCFv = .text:0x8000BC54; // type:function size:0x30 scope:global
|
GetCurrentCameraId__14CCameraManagerCFv = .text:0x8000BC54; // type:function size:0x30 scope:global
|
||||||
RenderCameras__14CCameraManagerFRC13CStateManager = .text:0x8000BC84; // type:function size:0x88 scope:global
|
Render__14CCameraManagerFRC13CStateManager = .text:0x8000BC84; // type:function size:0x88 scope:global
|
||||||
ResetCameras__14CCameraManagerFR13CStateManager = .text:0x8000BD0C; // type:function size:0xD0 scope:global
|
ResetCameras__14CCameraManagerFR13CStateManager = .text:0x8000BD0C; // type:function size:0xD0 scope:global
|
||||||
ThinkCameras__14CCameraManagerFfR13CStateManager = .text:0x8000BDDC; // type:function size:0xF8 scope:global
|
UpdateCameras__14CCameraManagerFfR13CStateManager = .text:0x8000BDDC; // type:function size:0xF8 scope:global
|
||||||
CreateStandardCameras__14CCameraManagerFR13CStateManager = .text:0x8000BED4; // type:function size:0x260 scope:global
|
CreateCameras__14CCameraManagerFR13CStateManager = .text:0x8000BED4; // type:function size:0x260 scope:global
|
||||||
DefaultAspect__14CCameraManagerFv = .text:0x8000C134; // type:function size:0x8 scope:global
|
GetDefaultAspectRatio__14CCameraManagerFv = .text:0x8000C134; // type:function size:0x8 scope:global
|
||||||
DefaultFarPlane__14CCameraManagerFv = .text:0x8000C13C; // type:function size:0x8 scope:global
|
GetDefaultFirstPersonFarClipDistance__14CCameraManagerFv = .text:0x8000C13C; // type:function size:0x8 scope:global
|
||||||
DefaultNearPlane__14CCameraManagerFv = .text:0x8000C144; // type:function size:0x8 scope:global
|
GetDefaultFirstPersonNearClipDistance__14CCameraManagerFv = .text:0x8000C144; // type:function size:0x8 scope:global
|
||||||
DefaultFirstPersonFov__14CCameraManagerFv = .text:0x8000C14C; // type:function size:0x8 scope:global
|
GetDefaultFirstPersonVerticalFOV__14CCameraManagerFv = .text:0x8000C14C; // type:function size:0x8 scope:global
|
||||||
DefaultThirdPersonFov__14CCameraManagerFv = .text:0x8000C154; // type:function size:0x8 scope:global
|
GetDefaultThirdPersonVerticalFOV__14CCameraManagerFv = .text:0x8000C154; // type:function size:0x8 scope:global
|
||||||
__ct__14CCameraManagerF9TUniqueId = .text:0x8000C15C; // type:function size:0x1D4 scope:global
|
__ct__14CCameraManagerF9TUniqueId = .text:0x8000C15C; // type:function size:0x1D4 scope:global
|
||||||
Clamp<f>__5CMathFRCfRCfRCf = .text:0x8000C330; // type:function size:0x2C scope:global
|
Clamp<f>__5CMathFRCfRCfRCf = .text:0x8000C330; // type:function size:0x2C scope:global
|
||||||
fn_8000C2E0 = .text:0x8000C35C; // type:function size:0x128 scope:global
|
sort<PQ24rstl18pair<i,9TUniqueId>,Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>>>__4rstlFPQ24rstl18pair<i,9TUniqueId>PQ24rstl18pair<i,9TUniqueId>Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>> = .text:0x8000C35C; // type:function size:0x128 scope:global
|
||||||
reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi = .text:0x8000C484; // type:function size:0xEC scope:global
|
reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi = .text:0x8000C484; // type:function size:0xEC scope:global
|
||||||
erase__Q24rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>FRCQ34rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>8iterator = .text:0x8000C570; // type:function size:0xC0 scope:global
|
erase__Q24rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>FRCQ34rstl51list<16CCameraShakeData,Q24rstl17rmemory_allocator>8iterator = .text:0x8000C570; // type:function size:0xC0 scope:global
|
||||||
fn_8000C5B4 = .text:0x8000C630; // type:function size:0xC0 scope:global
|
fn_8000C5B4 = .text:0x8000C630; // type:function size:0xC0 scope:global
|
||||||
fn_8000C674 = .text:0x8000C6F0; // type:function size:0x84 scope:global
|
__insertion_sort<PQ24rstl18pair<i,9TUniqueId>,Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>>>__4rstlFPQ24rstl18pair<i,9TUniqueId>PQ24rstl18pair<i,9TUniqueId>Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>> = .text:0x8000C6F0; // type:function size:0x84 scope:global
|
||||||
fn_8000C6F8 = .text:0x8000C774; // type:function size:0x90 scope:global
|
__sort3<Q24rstl18pair<i,9TUniqueId>,Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>>>__4rstlFRQ24rstl18pair<i,9TUniqueId>RQ24rstl18pair<i,9TUniqueId>RQ24rstl18pair<i,9TUniqueId>Q24rstl63pair_sorter_finder<Q24rstl18pair<i,9TUniqueId>,Q24rstl7less<i>> = .text:0x8000C774; // type:function size:0x90 scope:global
|
||||||
SetCommandFiltered__13ControlMapperFQ213ControlMapper9ECommandsb = .text:0x8000C804; // type:function size:0x14 scope:global
|
SetCommandFiltered__13ControlMapperFQ213ControlMapper9ECommandsb = .text:0x8000C804; // type:function size:0x14 scope:global
|
||||||
ResetCommandFilters__13ControlMapperFv = .text:0x8000C818; // type:function size:0x34 scope:global
|
ResetCommandFilters__13ControlMapperFv = .text:0x8000C818; // type:function size:0x34 scope:global
|
||||||
GetPressInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput = .text:0x8000C84C; // type:function size:0xA4 scope:global
|
GetPressInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput = .text:0x8000C84C; // type:function size:0xA4 scope:global
|
||||||
|
@ -266,7 +266,7 @@ __dt__Q24rstl21reserved_vector<b,67>Fv = .text:0x8000E0CC; // type:function size
|
||||||
GetGunFollowTransform__18CFirstPersonCameraCFv = .text:0x8000E160; // type:function size:0x8 scope:global
|
GetGunFollowTransform__18CFirstPersonCameraCFv = .text:0x8000E160; // type:function size:0x8 scope:global
|
||||||
Accept__18CFirstPersonCameraFR8IVisitor = .text:0x8000E168; // type:function size:0x38 scope:global
|
Accept__18CFirstPersonCameraFR8IVisitor = .text:0x8000E168; // type:function size:0x38 scope:global
|
||||||
Think__18CFirstPersonCameraFfR13CStateManager = .text:0x8000E1A0; // type:function size:0x1F4 scope:global
|
Think__18CFirstPersonCameraFfR13CStateManager = .text:0x8000E1A0; // type:function size:0x1F4 scope:global
|
||||||
SkipCinematic__18CFirstPersonCameraFv = .text:0x8000E394; // type:function size:0x28 scope:global
|
CancelCinematicOffset__18CFirstPersonCameraFv = .text:0x8000E394; // type:function size:0x28 scope:global
|
||||||
Reset__18CFirstPersonCameraFRC12CTransform4fR13CStateManager = .text:0x8000E3BC; // type:function size:0x88 scope:global
|
Reset__18CFirstPersonCameraFRC12CTransform4fR13CStateManager = .text:0x8000E3BC; // type:function size:0x88 scope:global
|
||||||
Render__18CFirstPersonCameraCFRC13CStateManager = .text:0x8000E444; // type:function size:0x4 scope:global
|
Render__18CFirstPersonCameraCFRC13CStateManager = .text:0x8000E444; // type:function size:0x4 scope:global
|
||||||
PreThink__18CFirstPersonCameraFfR13CStateManager = .text:0x8000E448; // type:function size:0x4 scope:global
|
PreThink__18CFirstPersonCameraFfR13CStateManager = .text:0x8000E448; // type:function size:0x4 scope:global
|
||||||
|
@ -1418,7 +1418,7 @@ AddToRenderer__7CEffectCFRC14CFrustumPlanesRC13CStateManager = .text:0x8005ADC4;
|
||||||
Render__7CEffectCFRC13CStateManager = .text:0x8005ADC8; // type:function size:0x4 scope:global
|
Render__7CEffectCFRC13CStateManager = .text:0x8005ADC8; // type:function size:0x4 scope:global
|
||||||
__ct__7CEffectF9TUniqueIdRC11CEntityInfobRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f = .text:0x8005ADCC; // type:function size:0xEC scope:global
|
__ct__7CEffectF9TUniqueIdRC11CEntityInfobRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f = .text:0x8005ADCC; // type:function size:0xEC scope:global
|
||||||
UpdatePerspective__11CGameCameraFf = .text:0x8005AEB8; // type:function size:0xDC scope:global
|
UpdatePerspective__11CGameCameraFf = .text:0x8005AEB8; // type:function size:0xDC scope:global
|
||||||
SetFovInterpolation__11CGameCameraFffff = .text:0x8005AF94; // type:function size:0x70 scope:global
|
InterpolateFOV__11CGameCameraFffff = .text:0x8005AF94; // type:function size:0x70 scope:global
|
||||||
SkipFovInterpolation__11CGameCameraFv = .text:0x8005B004; // type:function size:0x38 scope:global
|
SkipFovInterpolation__11CGameCameraFv = .text:0x8005B004; // type:function size:0x38 scope:global
|
||||||
ValidateCameraTransform__11CGameCameraFRC12CTransform4fRC12CTransform4f = .text:0x8005B03C; // type:function size:0x314 scope:global
|
ValidateCameraTransform__11CGameCameraFRC12CTransform4fRC12CTransform4f = .text:0x8005B03C; // type:function size:0x314 scope:global
|
||||||
Accept__11CGameCameraFR8IVisitor = .text:0x8005B350; // type:function size:0x38 scope:global
|
Accept__11CGameCameraFR8IVisitor = .text:0x8005B350; // type:function size:0x38 scope:global
|
||||||
|
@ -1925,7 +1925,7 @@ __ct__8CMapAreaFR12CInputStreamUi = .text:0x80080F78; // type:function size:0x11
|
||||||
__sinit_CMapArea_cpp = .text:0x8008108C; // type:function size:0x38 scope:global
|
__sinit_CMapArea_cpp = .text:0x8008108C; // type:function size:0x38 scope:global
|
||||||
SplineIntersectTest__11CBallCameraCFR13CMaterialListR13CStateManager = .text:0x800810C4; // type:function size:0x788 scope:global
|
SplineIntersectTest__11CBallCameraCFR13CMaterialListR13CStateManager = .text:0x800810C4; // type:function size:0x788 scope:global
|
||||||
CheckFailsafeFromMorphBallState__11CBallCameraCFR13CStateManager = .text:0x8008184C; // type:function size:0x6B0 scope:global
|
CheckFailsafeFromMorphBallState__11CBallCameraCFR13CStateManager = .text:0x8008184C; // type:function size:0x6B0 scope:global
|
||||||
ApplyCameraHint__11CBallCameraFR13CStateManager = .text:0x80081EFC; // type:function size:0x8A0 scope:global
|
OverrideCameraInfo__11CBallCameraFR13CStateManager = .text:0x80081EFC; // type:function size:0x8A0 scope:global
|
||||||
Accept__11CBallCameraFR8IVisitor = .text:0x8008279C; // type:function size:0x38 scope:global
|
Accept__11CBallCameraFR8IVisitor = .text:0x8008279C; // type:function size:0x38 scope:global
|
||||||
AcceptScriptMsg__11CBallCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager = .text:0x800827D4; // type:function size:0x3B4 scope:global
|
AcceptScriptMsg__11CBallCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager = .text:0x800827D4; // type:function size:0x3B4 scope:global
|
||||||
ProcessInput__11CBallCameraFRC11CFinalInputR13CStateManager = .text:0x80082B88; // type:function size:0x190 scope:global
|
ProcessInput__11CBallCameraFRC11CFinalInputR13CStateManager = .text:0x80082B88; // type:function size:0x190 scope:global
|
||||||
|
@ -1959,7 +1959,7 @@ UpdateCameraPositions__11CBallCameraFfRC12CTransform4fRC12CTransform4f = .text:0
|
||||||
ConstrainYawAngle__11CBallCameraCFRC7CPlayerfffR13CStateManager = .text:0x800893F0; // type:function size:0x358 scope:global
|
ConstrainYawAngle__11CBallCameraCFRC7CPlayerfffR13CStateManager = .text:0x800893F0; // type:function size:0x358 scope:global
|
||||||
ConstrainElevationAndDistance__11CBallCameraFRfRffR13CStateManager = .text:0x80089748; // type:function size:0x230 scope:global
|
ConstrainElevationAndDistance__11CBallCameraFRfRffR13CStateManager = .text:0x80089748; // type:function size:0x230 scope:global
|
||||||
UpdateObjectTooCloseId__11CBallCameraFR13CStateManager = .text:0x80089978; // type:function size:0x284 scope:global
|
UpdateObjectTooCloseId__11CBallCameraFR13CStateManager = .text:0x80089978; // type:function size:0x284 scope:global
|
||||||
UpdateLookDirection__11CBallCameraFRC9CVector3fR13CStateManager = .text:0x80089BFC; // type:function size:0x134 scope:global
|
FindDesiredTransform__11CBallCameraF9CVector3fR13CStateManager = .text:0x80089BFC; // type:function size:0x134 scope:global
|
||||||
FindDesiredPosition__11CBallCameraFff9CVector3fR13CStateManagerb = .text:0x80089D30; // type:function size:0xD48 scope:global
|
FindDesiredPosition__11CBallCameraFff9CVector3fR13CStateManagerb = .text:0x80089D30; // type:function size:0xD48 scope:global
|
||||||
DetectCollision__11CBallCameraFRC9CVector3fRC9CVector3ffRfR13CStateManager = .text:0x8008AA78; // type:function size:0x71C scope:global
|
DetectCollision__11CBallCameraFRC9CVector3fRC9CVector3ffRfR13CStateManager = .text:0x8008AA78; // type:function size:0x71C scope:global
|
||||||
AvoidGeometry__11CBallCameraFRC12CTransform4fRCQ24rstl32reserved_vector<9TUniqueId,1024>fR13CStateManager = .text:0x8008B194; // type:function size:0x134 scope:global
|
AvoidGeometry__11CBallCameraFRC12CTransform4fRCQ24rstl32reserved_vector<9TUniqueId,1024>fR13CStateManager = .text:0x8008B194; // type:function size:0x134 scope:global
|
||||||
|
@ -1979,7 +1979,7 @@ __ct__15CCameraColliderFRC15CCameraCollider = .text:0x8008C748; // type:function
|
||||||
__dt__15CCameraColliderFv = .text:0x8008C7F8; // type:function size:0x48 scope:global
|
__dt__15CCameraColliderFv = .text:0x8008C7F8; // type:function size:0x48 scope:global
|
||||||
ResetToTweaks__11CBallCameraFR13CStateManager = .text:0x8008C840; // type:function size:0x234 scope:global
|
ResetToTweaks__11CBallCameraFR13CStateManager = .text:0x8008C840; // type:function size:0x234 scope:global
|
||||||
TeleportCamera__11CBallCameraFRC12CTransform4fR13CStateManager = .text:0x8008CA74; // type:function size:0x98 scope:global
|
TeleportCamera__11CBallCameraFRC12CTransform4fR13CStateManager = .text:0x8008CA74; // type:function size:0x98 scope:global
|
||||||
ResetPosition__11CBallCameraFR13CStateManager = .text:0x8008CB0C; // type:function size:0x8C scope:global
|
TeleportLookAtStuff__11CBallCameraFR13CStateManager = .text:0x8008CB0C; // type:function size:0x8C scope:global
|
||||||
TeleportCamera__11CBallCameraFRC9CVector3fR13CStateManager = .text:0x8008CB98; // type:function size:0x100 scope:global
|
TeleportCamera__11CBallCameraFRC9CVector3fR13CStateManager = .text:0x8008CB98; // type:function size:0x100 scope:global
|
||||||
TeleportColliders__11CBallCameraFRQ24rstl52vector<15CCameraCollider,Q24rstl17rmemory_allocator>9CVector3f = .text:0x8008CC98; // type:function size:0xD4 scope:global
|
TeleportColliders__11CBallCameraFRQ24rstl52vector<15CCameraCollider,Q24rstl17rmemory_allocator>9CVector3f = .text:0x8008CC98; // type:function size:0xD4 scope:global
|
||||||
__dt__11CBallCameraFv = .text:0x8008CD6C; // type:function size:0x1BC scope:global
|
__dt__11CBallCameraFv = .text:0x8008CD6C; // type:function size:0x1BC scope:global
|
||||||
|
@ -5733,17 +5733,17 @@ __dt__11CScriptDockFv = .text:0x800C4448; // type:function size:0x60 scope:globa
|
||||||
__ct__11CScriptDockF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC9CVector3fRC9CVector3fi7TAreaIdbib = .text:0x800C44A8; // type:function size:0x260 scope:global
|
__ct__11CScriptDockF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC9CVector3fRC9CVector3fi7TAreaIdbib = .text:0x800C44A8; // type:function size:0x260 scope:global
|
||||||
Accept__17CScriptCameraHintFR8IVisitor = .text:0x800C4708; // type:function size:0x38 scope:global
|
Accept__17CScriptCameraHintFR8IVisitor = .text:0x800C4708; // type:function size:0x38 scope:global
|
||||||
AcceptScriptMsg__17CScriptCameraHintF20EScriptObjectMessage9TUniqueIdR13CStateManager = .text:0x800C4740; // type:function size:0x2E0 scope:global
|
AcceptScriptMsg__17CScriptCameraHintF20EScriptObjectMessage9TUniqueIdR13CStateManager = .text:0x800C4740; // type:function size:0x2E0 scope:global
|
||||||
InitializeInArea__17CScriptCameraHintFR13CStateManager = .text:0x800C4A20; // type:function size:0x1F4 scope:global
|
CheckLegacyConnections__17CScriptCameraHintFR13CStateManager = .text:0x800C4A20; // type:function size:0x1F4 scope:global
|
||||||
fn_800C4B98 = .text:0x800C4C14; // type:function size:0x4C scope:global
|
erase__Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>FQ24rstl116pointer_iterator<11SConnection,Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator> = .text:0x800C4C14; // type:function size:0x4C scope:global
|
||||||
fn_800C4BE4 = .text:0x800C4C60; // type:function size:0xB4 scope:global
|
erase__Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>FQ24rstl116pointer_iterator<11SConnection,Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl116pointer_iterator<11SConnection,Q24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator> = .text:0x800C4C60; // type:function size:0xB4 scope:global
|
||||||
RemoveHelper__17CScriptCameraHintF9TUniqueId = .text:0x800C4D14; // type:function size:0xD0 scope:global
|
RemoveSender__17CScriptCameraHintF9TUniqueIdR13CStateManager = .text:0x800C4D14; // type:function size:0xD0 scope:global
|
||||||
AddHelper__17CScriptCameraHintF9TUniqueId = .text:0x800C4DE4; // type:function size:0x58 scope:global
|
AddSender__17CScriptCameraHintF9TUniqueId = .text:0x800C4DE4; // type:function size:0x58 scope:global
|
||||||
ClearIdList__17CScriptCameraHintFv = .text:0x800C4E3C; // type:function size:0x58 scope:global
|
ClearSenders__17CScriptCameraHintFv = .text:0x800C4E3C; // type:function size:0x58 scope:global
|
||||||
GetFirstHelper__17CScriptCameraHintCFv = .text:0x800C4E94; // type:function size:0x24 scope:global
|
GetSenderId__17CScriptCameraHintCFv = .text:0x800C4E94; // type:function size:0x24 scope:global
|
||||||
__dt__17CScriptCameraHintFv = .text:0x800C4EB8; // type:function size:0xD4 scope:global
|
__dt__17CScriptCameraHintFv = .text:0x800C4EB8; // type:function size:0xD4 scope:global
|
||||||
__ct__17CScriptCameraHintF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fbiQ211CBallCamera20EBallCameraBehaviourifffRC13CCameraSpringRC13CCameraSpringfRC9CVector3fRC9CVector3ff = .text:0x800C4F8C; // type:function size:0x27C scope:global
|
__ct__17CScriptCameraHintF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fbiQ211CBallCamera20EBallCameraBehaviourifffRC9CVector3fRC9CVector3fRC9CVector3fffffffffff = .text:0x800C4F8C; // type:function size:0x27C scope:global
|
||||||
__dt__11CCameraHintFv = .text:0x800C5208; // type:function size:0x48 scope:global
|
__dt__19CCameraOverrideInfoFv = .text:0x800C5208; // type:function size:0x48 scope:global
|
||||||
__ct__11CCameraHintFiQ211CBallCamera20EBallCameraBehaviourfffRC9CVector3fRC9CVector3fRC9CVector3fffffffffff = .text:0x800C5250; // type:function size:0xA8 scope:global
|
__ct__19CCameraOverrideInfoFUiQ211CBallCamera20EBallCameraBehaviourfffRC9CVector3fRC9CVector3fRC9CVector3fffffffffff = .text:0x800C5250; // type:function size:0xA8 scope:global
|
||||||
LoadEnergyBall__12ScriptLoaderFR13CStateManagerR12CInputStreamiRC11CEntityInfo = .text:0x800C52F8; // type:function size:0x3A0 scope:global
|
LoadEnergyBall__12ScriptLoaderFR13CStateManagerR12CInputStreamiRC11CEntityInfo = .text:0x800C52F8; // type:function size:0x3A0 scope:global
|
||||||
__ct__16CActorParametersFRC16CActorParameters = .text:0x800C5698; // type:function size:0xE0 scope:global
|
__ct__16CActorParametersFRC16CActorParameters = .text:0x800C5698; // type:function size:0xE0 scope:global
|
||||||
LoadShadowProjector__12ScriptLoaderFR13CStateManagerR12CInputStreamiRC11CEntityInfo = .text:0x800C5778; // type:function size:0x15C scope:global
|
LoadShadowProjector__12ScriptLoaderFR13CStateManagerR12CInputStreamiRC11CEntityInfo = .text:0x800C5778; // type:function size:0x15C scope:global
|
||||||
|
@ -18259,8 +18259,8 @@ lbl_803DF4E8 = .data:0x803DF6C8; // type:object size:0x10 scope:global
|
||||||
__vt__13CScriptPickup = .data:0x803DF6D8; // type:object size:0x84 scope:global
|
__vt__13CScriptPickup = .data:0x803DF6D8; // type:object size:0x84 scope:global
|
||||||
lbl_803DF580 = .data:0x803DF760; // type:object size:0x84 scope:global
|
lbl_803DF580 = .data:0x803DF760; // type:object size:0x84 scope:global
|
||||||
lbl_803DF604 = .data:0x803DF7E4; // type:object size:0x80 scope:global
|
lbl_803DF604 = .data:0x803DF7E4; // type:object size:0x80 scope:global
|
||||||
lbl_803DF688 = .data:0x803DF868; // type:object size:0x6C scope:global
|
__vt__17CScriptCameraHint = .data:0x803DF868; // type:object size:0x6C scope:global
|
||||||
lbl_803DF6F4 = .data:0x803DF8D4; // type:object size:0xC scope:global
|
__vt__19CCameraOverrideInfo = .data:0x803DF8D4; // type:object size:0xC scope:global
|
||||||
__vt__41TObjOwnerDerivedFromIObj<13CStateMachine> = .data:0x803DF8E0; // type:object size:0x10 scope:global
|
__vt__41TObjOwnerDerivedFromIObj<13CStateMachine> = .data:0x803DF8E0; // type:object size:0x10 scope:global
|
||||||
__vt__11CPlasmaBeam = .data:0x803DF8F0; // type:object size:0x48 scope:global
|
__vt__11CPlasmaBeam = .data:0x803DF8F0; // type:object size:0x48 scope:global
|
||||||
__vt__10CPowerBeam = .data:0x803DF938; // type:object size:0x48 scope:global
|
__vt__10CPowerBeam = .data:0x803DF938; // type:object size:0x48 scope:global
|
||||||
|
|
|
@ -188,12 +188,13 @@ public:
|
||||||
static const ushort kInternalInvalidSfxId; // 0xFFFF
|
static const ushort kInternalInvalidSfxId; // 0xFFFF
|
||||||
static const int kAllAreas; // 0xFFFFFFFF
|
static const int kAllAreas; // 0xFFFFFFFF
|
||||||
static CSfxHandle AddEmitter(const SND_FXID id, const CVector3f& pos, const CVector3f& dir,
|
static CSfxHandle AddEmitter(const SND_FXID id, const CVector3f& pos, const CVector3f& dir,
|
||||||
const bool useAcoustics, const bool looped,
|
const bool useAcoustics = false, const bool looped = false,
|
||||||
const short prio = kMedPriority, const int areaId = kAllAreas);
|
const short prio = kMedPriority, const int areaId = kAllAreas);
|
||||||
static CSfxHandle AddEmitter(const SND_FXID id, const CVector3f& pos, const CVector3f& dir,
|
static CSfxHandle AddEmitter(const SND_FXID id, const CVector3f& pos, const CVector3f& dir,
|
||||||
const uchar vol, const bool useAcoustics, const bool looped,
|
const uchar vol, const bool useAcoustics = false,
|
||||||
const short prio = kMedPriority, const int areaId = kAllAreas);
|
const bool looped = false, const short prio = kMedPriority,
|
||||||
static CSfxHandle AddEmitter(CAudioSys::C3DEmitterParmData& parmData, bool useAcoustics,
|
const int areaId = kAllAreas);
|
||||||
|
static CSfxHandle AddEmitter(CAudioSys::C3DEmitterParmData& parmData, bool useAcoustics = false,
|
||||||
const short prio = kMedPriority, const bool looped = false,
|
const short prio = kMedPriority, const bool looped = false,
|
||||||
const int areaId = kAllAreas);
|
const int areaId = kAllAreas);
|
||||||
|
|
||||||
|
@ -209,9 +210,9 @@ public:
|
||||||
static void SetDuration(CSfxHandle handle, float duration);
|
static void SetDuration(CSfxHandle handle, float duration);
|
||||||
static ushort GetReverbAmount();
|
static ushort GetReverbAmount();
|
||||||
|
|
||||||
static CSfxHandle SfxStart(ushort id, short vol, short pan, bool useAcoustics,
|
static CSfxHandle SfxStart(const ushort id, const short vol, const short pan,
|
||||||
short prio = kMaxPriority, bool looped = false,
|
const bool useAcoustics = false, const short prio = kMaxPriority,
|
||||||
int areaId = kAllAreas);
|
const bool looped = false, const int areaId = kAllAreas);
|
||||||
static void SfxStop(CSfxHandle handle);
|
static void SfxStop(CSfxHandle handle);
|
||||||
static void SfxVolume(CSfxHandle handle, uchar volume);
|
static void SfxVolume(CSfxHandle handle, uchar volume);
|
||||||
static void SfxSpan(CSfxHandle, uchar);
|
static void SfxSpan(CSfxHandle, uchar);
|
||||||
|
|
|
@ -117,7 +117,7 @@ public:
|
||||||
void TeleportColliders(rstl::vector< CCameraCollider >& colliderList, CVector3f pos);
|
void TeleportColliders(rstl::vector< CCameraCollider >& colliderList, CVector3f pos);
|
||||||
void TeleportCamera(const CVector3f& pos, CStateManager& mgr);
|
void TeleportCamera(const CVector3f& pos, CStateManager& mgr);
|
||||||
void TeleportCamera(const CTransform4f& xf, CStateManager& mgr);
|
void TeleportCamera(const CTransform4f& xf, CStateManager& mgr);
|
||||||
void ResetPosition(CStateManager& mgr);
|
void TeleportLookAtStuff(CStateManager& mgr);
|
||||||
void ResetToTweaks(CStateManager& mgr);
|
void ResetToTweaks(CStateManager& mgr);
|
||||||
CVector3f FindDesiredPosition(float distance, float elevation, CVector3f dir, CStateManager& mgr,
|
CVector3f FindDesiredPosition(float distance, float elevation, CVector3f dir, CStateManager& mgr,
|
||||||
bool fullTest);
|
bool fullTest);
|
||||||
|
@ -138,6 +138,7 @@ public:
|
||||||
CStateManager& mgr);
|
CStateManager& mgr);
|
||||||
bool DetectCollision(const CVector3f& from, const CVector3f& to, float radius, float& d,
|
bool DetectCollision(const CVector3f& from, const CVector3f& to, float radius, float& d,
|
||||||
CStateManager& mgr);
|
CStateManager& mgr);
|
||||||
|
CTransform4f FindDesiredTransform(CVector3f dir, CStateManager& mgr);
|
||||||
|
|
||||||
const CVector3f& GetLookAtPosition() const { return x1d8_lookPos; }
|
const CVector3f& GetLookAtPosition() const { return x1d8_lookPos; }
|
||||||
float GetDistance() const { return x190_curMinDistance; }
|
float GetDistance() const { return x190_curMinDistance; }
|
||||||
|
@ -161,7 +162,11 @@ public:
|
||||||
void SetWorldOffset(CVector3f vec); // TODO
|
void SetWorldOffset(CVector3f vec); // TODO
|
||||||
EBallCameraState GetState() const { return x400_state; }
|
EBallCameraState GetState() const { return x400_state; }
|
||||||
void SetState(EBallCameraState state);
|
void SetState(EBallCameraState state);
|
||||||
void ApplyCameraHint(CStateManager& mgr);
|
void OverrideCameraInfo(CStateManager& mgr);
|
||||||
|
void UpdateLookAtPosition(float dt, CStateManager& mgr);
|
||||||
|
|
||||||
|
void SetClampVelTimer(float v) { x470_clampVelTimer = v; }
|
||||||
|
void SetClampVelRange(float v) { x474_clampVelRange = v; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct SFailsafeState {
|
struct SFailsafeState {
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
#ifndef _CCAMERAHINT
|
|
||||||
#define _CCAMERAHINT
|
|
||||||
|
|
||||||
#include "Kyoto/Math/CVector3f.hpp"
|
|
||||||
#include "MetroidPrime/Cameras/CBallCamera.hpp"
|
|
||||||
#include "types.h"
|
|
||||||
|
|
||||||
class CCameraHint {
|
|
||||||
public:
|
|
||||||
CCameraHint(uint overrideFlags, CBallCamera::EBallCameraBehaviour behaviour, float minDist,
|
|
||||||
float maxDist, float backwardsDist, const CVector3f& lookAtOffset,
|
|
||||||
const CVector3f& chaseLookAtOffset, const CVector3f& ballToCam, float fov,
|
|
||||||
float attitudeRange, float azimuthRange, float anglePerSecond, float clampVelRange,
|
|
||||||
float clampRotRange, float elevation, float interpolateTime, float clampVelTime,
|
|
||||||
float controlInterpDur);
|
|
||||||
virtual ~CCameraHint();
|
|
||||||
|
|
||||||
private:
|
|
||||||
uint mOverrideFlags;
|
|
||||||
CBallCamera::EBallCameraBehaviour mBehaviour;
|
|
||||||
float mMinDist;
|
|
||||||
float mMaxDist;
|
|
||||||
float mBackwardsDist;
|
|
||||||
CVector3f mLookAtOffset;
|
|
||||||
CVector3f mChaseLookAtOffset;
|
|
||||||
CVector3f mBallToCam;
|
|
||||||
float mFov;
|
|
||||||
float mAttitudeRange;
|
|
||||||
float mAzimuthRange;
|
|
||||||
float mAnglePerSecond;
|
|
||||||
float mClampVelRange;
|
|
||||||
float mClampRotRange;
|
|
||||||
float mElevation;
|
|
||||||
float mInterpolateTime;
|
|
||||||
float mClampVelTime;
|
|
||||||
float mControlInterpDur;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _CCAMERAHINT
|
|
|
@ -40,25 +40,25 @@ class CCameraManager {
|
||||||
public:
|
public:
|
||||||
CCameraManager(TUniqueId curCamera = kInvalidUniqueId);
|
CCameraManager(TUniqueId curCamera = kInvalidUniqueId);
|
||||||
|
|
||||||
void CreateStandardCameras(CStateManager& mgr);
|
void CreateCameras(CStateManager& mgr);
|
||||||
void ThinkCameras(float dt, CStateManager& mgr);
|
void UpdateCameras(float dt, CStateManager& mgr);
|
||||||
void ResetCameras(CStateManager& mgr);
|
void ResetCameras(CStateManager& mgr);
|
||||||
void RenderCameras(const CStateManager& mgr);
|
void Render(const CStateManager& mgr);
|
||||||
TUniqueId GetCurrentCameraId() const;
|
TUniqueId GetCurrentCameraId() const;
|
||||||
void SetCurrentCameraId(TUniqueId camId);
|
void SetCurrentCameraId(TUniqueId camId);
|
||||||
|
|
||||||
CGameCamera& CurrentCamera(CStateManager& mgr);
|
CGameCamera& CurrentCamera(CStateManager& mgr);
|
||||||
const CGameCamera& GetCurrentCamera(const CStateManager& mgr) const;
|
const CGameCamera& GetCurrentCamera(const CStateManager& mgr) const;
|
||||||
const CGameCamera& GetLastCineCamera(CStateManager& mgr) const;
|
const CGameCamera& GetCurrentCinematicCamera(CStateManager& mgr) const;
|
||||||
TUniqueId GetLastCineCameraId() const;
|
TUniqueId GetCurrentCinematicCameraId() const;
|
||||||
|
|
||||||
void Update(float dt, CStateManager& mgr);
|
void Update(float dt, CStateManager& mgr);
|
||||||
void UpdateSfxListener(CStateManager& mgr);
|
void UpdateAudioListener(CStateManager& mgr);
|
||||||
void UpdateRumble(float dt, CStateManager& mgr);
|
void UpdateScreenShake(float dt, CStateManager& mgr);
|
||||||
void UpdateFog(float dt, CStateManager& mgr);
|
void UpdateFilters(float dt, CStateManager& mgr);
|
||||||
void UpdateCameraHints(float dt, CStateManager& mgr);
|
void UpdateCameraHints(float dt, CStateManager& mgr);
|
||||||
float CalculateFogDensity(CStateManager& mgr, const CScriptWater* water);
|
float GetWaterFarDistance(CStateManager& mgr, const CScriptWater* water);
|
||||||
void SetFogDensity(float fogDensityTarget, float fogDensitySpeed);
|
void SetWaterFogScale(float fogDensityTarget, float fogDensitySpeed);
|
||||||
|
|
||||||
CFirstPersonCamera* FirstPersonCamera() const /* map */ { return x7c_fpCamera; }
|
CFirstPersonCamera* FirstPersonCamera() const /* map */ { return x7c_fpCamera; }
|
||||||
const CFirstPersonCamera* GetFirstPersonCamera() const { return x7c_fpCamera; }
|
const CFirstPersonCamera* GetFirstPersonCamera() const { return x7c_fpCamera; }
|
||||||
|
@ -68,7 +68,7 @@ public:
|
||||||
void AddCinemaCamera(TUniqueId uid, CStateManager& mgr);
|
void AddCinemaCamera(TUniqueId uid, CStateManager& mgr);
|
||||||
void RemoveCinemaCamera(TUniqueId uid, CStateManager& mgr);
|
void RemoveCinemaCamera(TUniqueId uid, CStateManager& mgr);
|
||||||
void EnterCinematic(CStateManager& mgr);
|
void EnterCinematic(CStateManager& mgr);
|
||||||
void SkipCinematic(CStateManager& mgr);
|
void StopCinematics(CStateManager& mgr);
|
||||||
|
|
||||||
int AddCameraShaker(const CCameraShakeData& data, bool sfx);
|
int AddCameraShaker(const CCameraShakeData& data, bool sfx);
|
||||||
void RemoveCameraShaker(int id);
|
void RemoveCameraShaker(int id);
|
||||||
|
@ -77,11 +77,15 @@ public:
|
||||||
bool IsInFirstPersonCamera() const;
|
bool IsInFirstPersonCamera() const;
|
||||||
bool IsInterpolationCameraActive() const;
|
bool IsInterpolationCameraActive() const;
|
||||||
bool ShouldBypassInterpolationCamera() const;
|
bool ShouldBypassInterpolationCamera() const;
|
||||||
void InterpolateToBallCamera(const CTransform4f& xf, TUniqueId camId, const CVector3f& lookPos,
|
void SetupInterpolation(const CTransform4f& xf, TUniqueId camId, CVector3f lookPos,
|
||||||
float maxTime, float positionSpeed, float rotationSpeed,
|
float maxTime, float positionSpeed, float rotationSpeed,
|
||||||
bool sinusoidal, CStateManager& mgr);
|
bool sinusoidal, CStateManager& mgr);
|
||||||
void SkipBallCameraCinematic(CStateManager& mgr);
|
void CinematicCut(CStateManager& mgr);
|
||||||
void ApplyCameraHint(const CScriptCameraHint& hint, CStateManager& mgr);
|
void UseCameraHint(const CScriptCameraHint& hint, CStateManager& mgr);
|
||||||
|
void NoCameraHintsLeft(CStateManager& mgr);
|
||||||
|
void AddCameraHint(TUniqueId uid, CStateManager& mgr);
|
||||||
|
void DeleteCameraHint(TUniqueId uid, CStateManager& mgr);
|
||||||
|
void ReallyRemoveCameraHint(TUniqueId uid, CStateManager& mgr);
|
||||||
// SetSpecialCameras__14CCameraManagerFR18CFirstPersonCameraR11CBallCamera
|
// SetSpecialCameras__14CCameraManagerFR18CFirstPersonCameraR11CBallCamera
|
||||||
|
|
||||||
void SetCurrentFov(float fov) { x3bc_curFov = fov; }
|
void SetCurrentFov(float fov) { x3bc_curFov = fov; }
|
||||||
|
@ -89,17 +93,23 @@ public:
|
||||||
int GetFluidCounter() const { return x74_fluidCounter; }
|
int GetFluidCounter() const { return x74_fluidCounter; }
|
||||||
TUniqueId GetFluidId() const { return x78_fluidId; }
|
TUniqueId GetFluidId() const { return x78_fluidId; }
|
||||||
// GetInsideFluid__14CCameraManagerCFv
|
// GetInsideFluid__14CCameraManagerCFv
|
||||||
|
bool IsInsideFluid() const { return xa0_26_inWater; }
|
||||||
// WasInsideFluid__14CCameraManagerCFv
|
// WasInsideFluid__14CCameraManagerCFv
|
||||||
// SetWasInsideFluid__14CCameraManagerFb
|
// SetWasInsideFluid__14CCameraManagerFb
|
||||||
void SetInsideFluid(bool isInside, TUniqueId fluidId);
|
void SetInsideFluid(bool isInside, TUniqueId fluidId);
|
||||||
|
|
||||||
void ProcessInput(const CFinalInput& input, CStateManager& mgr);
|
void ProcessInput(const CFinalInput& input, CStateManager& mgr);
|
||||||
|
|
||||||
static float DefaultThirdPersonFov();
|
void SetPathCamera(TUniqueId id, CStateManager& mgr);
|
||||||
static float DefaultFirstPersonFov();
|
TUniqueId GetPathCameraId() const;
|
||||||
static float DefaultNearPlane();
|
void SetSpindleCamera(TUniqueId id, CStateManager& mgr);
|
||||||
static float DefaultFarPlane();
|
TUniqueId GetSpindleCameraId() const;
|
||||||
static float DefaultAspect();
|
|
||||||
|
static float GetDefaultThirdPersonVerticalFOV();
|
||||||
|
static float GetDefaultFirstPersonVerticalFOV();
|
||||||
|
static float GetDefaultFirstPersonNearClipDistance();
|
||||||
|
static float GetDefaultFirstPersonFarClipDistance();
|
||||||
|
static float GetDefaultAspectRatio();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TUniqueId x0_curCameraId;
|
TUniqueId x0_curCameraId;
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
#ifndef _CCAMERAOVERRIDEINFO
|
||||||
|
#define _CCAMERAOVERRIDEINFO
|
||||||
|
|
||||||
|
#include "Kyoto/Math/CVector3f.hpp"
|
||||||
|
#include "MetroidPrime/Cameras/CBallCamera.hpp"
|
||||||
|
#include "types.h"
|
||||||
|
|
||||||
|
class CCameraOverrideInfo {
|
||||||
|
friend class CScriptCameraHint;
|
||||||
|
|
||||||
|
public:
|
||||||
|
CCameraOverrideInfo(uint overrideFlags, CBallCamera::EBallCameraBehaviour behaviour, float minDist,
|
||||||
|
float maxDist, float backwardsDist, const CVector3f& lookAtOffset,
|
||||||
|
const CVector3f& chaseLookAtOffset, const CVector3f& ballToCam, float fov,
|
||||||
|
float attitudeRange, float azimuthRange, float anglePerSecond, float clampVelRange,
|
||||||
|
float clampRotRange, float elevation, float interpolateTime, float clampVelTime,
|
||||||
|
float controlInterpDur);
|
||||||
|
virtual ~CCameraOverrideInfo() {}
|
||||||
|
|
||||||
|
uint GetOverrideFlags() const { return mOverrideFlags; }
|
||||||
|
CBallCamera::EBallCameraBehaviour GetBehaviourType() const { return mBehaviour; }
|
||||||
|
float GetMinDist() const { return mMinDist; }
|
||||||
|
float GetMaxDist() const { return mMaxDist; }
|
||||||
|
float GetBackwardsDist() const { return mBackwardsDist; }
|
||||||
|
const CVector3f& GetLookAtOffset() const { return mLookAtOffset; }
|
||||||
|
const CVector3f& GetChaseLookAtOffset() const { return mChaseLookAtOffset; }
|
||||||
|
const CVector3f& GetBallToCam() const { return mBallToCam; }
|
||||||
|
float GetFov() const { return mFov; }
|
||||||
|
float GetAttitudeRange() const { return mAttitudeRange; }
|
||||||
|
float GetAzimuthRange() const { return mAzimuthRange; }
|
||||||
|
float GetAnglePerSecond() const { return mAnglePerSecond; }
|
||||||
|
float GetClampVelRange() const { return mClampVelRange; }
|
||||||
|
float GetClampRotRange() const { return mClampRotRange; }
|
||||||
|
float GetElevation() const { return mElevation; }
|
||||||
|
float GetInterpolateTime() const { return mInterpolateTime; }
|
||||||
|
float GetClampVelTime() const { return mClampVelTime; }
|
||||||
|
float GetControlInterpDur() const { return mControlInterpDur; }
|
||||||
|
|
||||||
|
bool Flagx20() const { return (mOverrideFlags & 0x20) != 0; }
|
||||||
|
bool Flagx400() const { return (mOverrideFlags & 0x400) != 0; }
|
||||||
|
bool Flagx800() const { return (mOverrideFlags & 0x800) != 0; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint mOverrideFlags;
|
||||||
|
CBallCamera::EBallCameraBehaviour mBehaviour;
|
||||||
|
float mMinDist;
|
||||||
|
float mMaxDist;
|
||||||
|
float mBackwardsDist;
|
||||||
|
CVector3f mLookAtOffset;
|
||||||
|
CVector3f mChaseLookAtOffset;
|
||||||
|
CVector3f mBallToCam;
|
||||||
|
float mFov;
|
||||||
|
float mAttitudeRange;
|
||||||
|
float mAzimuthRange;
|
||||||
|
float mAnglePerSecond;
|
||||||
|
float mClampVelRange;
|
||||||
|
float mClampRotRange;
|
||||||
|
float mElevation;
|
||||||
|
float mInterpolateTime;
|
||||||
|
float mClampVelTime;
|
||||||
|
float mControlInterpDur;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // _CCAMERAOVERRIDEINFO
|
|
@ -26,7 +26,7 @@ public:
|
||||||
// UpdateTransform__18CFirstPersonCameraFR13CStateManagerf
|
// UpdateTransform__18CFirstPersonCameraFR13CStateManagerf
|
||||||
// GetGunFollowTransform__18CFirstPersonCameraCFv
|
// GetGunFollowTransform__18CFirstPersonCameraCFv
|
||||||
// SetLockCamera__18CFirstPersonCameraFb
|
// SetLockCamera__18CFirstPersonCameraFb
|
||||||
void SkipCinematic();
|
void CancelCinematicOffset();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float x188_orbitCameraSpeed;
|
float x188_orbitCameraSpeed;
|
||||||
|
|
|
@ -36,7 +36,7 @@ public:
|
||||||
float GetFov() const { return x15c_currentFov; }
|
float GetFov() const { return x15c_currentFov; }
|
||||||
void SetFov(float fov) { x15c_currentFov = fov; }
|
void SetFov(float fov) { x15c_currentFov = fov; }
|
||||||
float GetNearClipDistance() const { return x160_znear; }
|
float GetNearClipDistance() const { return x160_znear; }
|
||||||
void SetFovInterpolation(float start, float fov, float time, float delayTime);
|
void InterpolateFOV(float start, float fov, float time, float delayTime);
|
||||||
void UpdatePerspective(float dt);
|
void UpdatePerspective(float dt);
|
||||||
int GetControllerNumber() const { return x16c_controllerIdx; }
|
int GetControllerNumber() const { return x16c_controllerIdx; }
|
||||||
bool DisablesInput() const { return x170_25_disablesInput; }
|
bool DisablesInput() const { return x170_25_disablesInput; }
|
||||||
|
|
|
@ -215,6 +215,7 @@ public:
|
||||||
void DoSfxEffects(CSfxHandle sfx);
|
void DoSfxEffects(CSfxHandle sfx);
|
||||||
void UnFreeze(CStateManager& mgr);
|
void UnFreeze(CStateManager& mgr);
|
||||||
void UpdateCinematicState(CStateManager& mgr);
|
void UpdateCinematicState(CStateManager& mgr);
|
||||||
|
bool IsMorphBallTransitioning() const;
|
||||||
|
|
||||||
CPlayerGun* PlayerGun() { return x490_gun.get(); }
|
CPlayerGun* PlayerGun() { return x490_gun.get(); }
|
||||||
const CPlayerGun* GetPlayerGun() const { return x490_gun.get(); }
|
const CPlayerGun* GetPlayerGun() const { return x490_gun.get(); }
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include "MetroidPrime/CActor.hpp"
|
#include "MetroidPrime/CActor.hpp"
|
||||||
#include "MetroidPrime/Cameras/CBallCamera.hpp"
|
#include "MetroidPrime/Cameras/CBallCamera.hpp"
|
||||||
#include "MetroidPrime/Cameras/CCameraHint.hpp"
|
#include "MetroidPrime/Cameras/CCameraOverrideInfo.hpp"
|
||||||
#include "MetroidPrime/TGameTypes.hpp"
|
#include "MetroidPrime/TGameTypes.hpp"
|
||||||
|
|
||||||
#include "Kyoto/Math/CTransform4f.hpp"
|
#include "Kyoto/Math/CTransform4f.hpp"
|
||||||
|
@ -17,26 +17,40 @@ public:
|
||||||
CScriptCameraHint(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
|
CScriptCameraHint(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
|
||||||
const CTransform4f& xf, bool active, int priority,
|
const CTransform4f& xf, bool active, int priority,
|
||||||
CBallCamera::EBallCameraBehaviour behavior, int overrideFlags, float minDist,
|
CBallCamera::EBallCameraBehaviour behavior, int overrideFlags, float minDist,
|
||||||
float maxDist, float backwardsDist, const CCameraSpring&, const CCameraSpring&,
|
float maxDist, float backwardsDist, const CVector3f& lookAtOffset,
|
||||||
float, const CVector3f&, const CVector3f&, float);
|
const CVector3f& chaseLookAtOffset, const CVector3f& ballToCam, float fov,
|
||||||
|
float attitudeRange, float azimuthRange, float anglePerSecond,
|
||||||
|
float clampVelRange, float clampRotRange, float elevation,
|
||||||
|
float interpolateTime, float clampVelTime, float controlInterpDur);
|
||||||
|
|
||||||
// CEntity
|
// CEntity
|
||||||
~CScriptCameraHint() override;
|
~CScriptCameraHint() override;
|
||||||
void Accept(IVisitor& visitor) override;
|
void Accept(IVisitor& visitor) override;
|
||||||
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
|
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
|
||||||
|
|
||||||
// GetOverrideFlags__17CScriptCameraHintCFv
|
TUniqueId GetSenderId() const;
|
||||||
// GetBehaviourType__17CScriptCameraHintCFv
|
void ClearSenders();
|
||||||
int GetPriority() const { return xe8_priority; }
|
void AddSender(TUniqueId uid);
|
||||||
|
void RemoveSender(TUniqueId uid, CStateManager& mgr);
|
||||||
|
void CheckLegacyConnections(CStateManager& mgr);
|
||||||
|
|
||||||
|
const CCameraOverrideInfo& GetInfo() const { return mOverrideInfo; } // Not real?
|
||||||
|
uint GetOverrideFlags() const { return mOverrideInfo.mOverrideFlags; }
|
||||||
|
CBallCamera::EBallCameraBehaviour GetBehaviourType() const { return mOverrideInfo.mBehaviour; }
|
||||||
|
int GetPriority() const { return mPriority; }
|
||||||
|
TUniqueId GetDelegatedCameraId() const { return mDelegatedCameraId; }
|
||||||
// OverrideCameraInfo__17CScriptCameraHintFP11CBallCamera
|
// OverrideCameraInfo__17CScriptCameraHintFP11CBallCamera
|
||||||
|
|
||||||
|
uint GetSenderCount() const { return mSenders.size(); }
|
||||||
|
bool GetInactive() const { return mInactive; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int xe8_priority;
|
int mPriority;
|
||||||
CCameraHint xec_hint;
|
CCameraOverrideInfo mOverrideInfo;
|
||||||
rstl::reserved_vector< TUniqueId, 8 > x150_helpers;
|
rstl::reserved_vector< TUniqueId, 8 > mSenders;
|
||||||
TUniqueId x164_delegatedCamera;
|
TUniqueId mDelegatedCameraId;
|
||||||
bool x166_inactive;
|
bool mInactive;
|
||||||
CTransform4f x168_origXf;
|
CTransform4f mOrigXf;
|
||||||
};
|
};
|
||||||
CHECK_SIZEOF(CScriptCameraHint, 0x198)
|
CHECK_SIZEOF(CScriptCameraHint, 0x198)
|
||||||
|
|
||||||
|
|
|
@ -181,8 +181,7 @@ find_by_key(const T& container,
|
||||||
template < typename T >
|
template < typename T >
|
||||||
typename T::const_iterator inline find_by_key(
|
typename T::const_iterator inline find_by_key(
|
||||||
const T& container, const typename select1st< typename T::value_type >::value_type& key) {
|
const T& container, const typename select1st< typename T::value_type >::value_type& key) {
|
||||||
return binary_find(container.begin(), container.end(), key,
|
return binary_find(container.begin(), container.end(), key, default_pair_sorter_finder< T >());
|
||||||
default_pair_sorter_finder<T>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template < typename T >
|
template < typename T >
|
||||||
|
@ -192,8 +191,7 @@ find_by_key_nc(T& container, const typename select1st< typename T::value_type >:
|
||||||
template < typename T >
|
template < typename T >
|
||||||
typename T::iterator inline find_by_key_nc(
|
typename T::iterator inline find_by_key_nc(
|
||||||
T& container, const typename select1st< typename T::value_type >::value_type& key) {
|
T& container, const typename select1st< typename T::value_type >::value_type& key) {
|
||||||
return binary_find(container.begin(), container.end(), key,
|
return binary_find(container.begin(), container.end(), key, default_pair_sorter_finder< T >());
|
||||||
default_pair_sorter_finder<T>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace rstl
|
} // namespace rstl
|
||||||
|
|
|
@ -19,6 +19,7 @@ public:
|
||||||
// typedef const_pointer_iterator< T, reserved_vector< T, N >, void > const_iterator;
|
// typedef const_pointer_iterator< T, reserved_vector< T, N >, void > const_iterator;
|
||||||
typedef T* iterator;
|
typedef T* iterator;
|
||||||
typedef const T* const_iterator;
|
typedef const T* const_iterator;
|
||||||
|
typedef T value_type;
|
||||||
|
|
||||||
inline iterator begin() { return iterator(data()); }
|
inline iterator begin() { return iterator(data()); }
|
||||||
inline const_iterator begin() const { return const_iterator(data()); }
|
inline const_iterator begin() const { return const_iterator(data()); }
|
||||||
|
@ -71,16 +72,15 @@ public:
|
||||||
inline const T& back() const { return data()[x0_count - 1]; }
|
inline const T& back() const { return data()[x0_count - 1]; }
|
||||||
inline T& operator[](int idx) { return data()[idx]; }
|
inline T& operator[](int idx) { return data()[idx]; }
|
||||||
inline const T& operator[](int idx) const { return data()[idx]; }
|
inline const T& operator[](int idx) const { return data()[idx]; }
|
||||||
void erase(iterator it) {
|
iterator erase(iterator it) {
|
||||||
if (it < begin()) {
|
if (it >= begin() && it < end()) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (it < end()) {
|
|
||||||
for (iterator j = it; j < end() - 1; ++j) {
|
for (iterator j = it; j < end() - 1; ++j) {
|
||||||
*j = *(j + 1);
|
*j = *(j + 1);
|
||||||
}
|
}
|
||||||
--x0_count;
|
--x0_count;
|
||||||
|
return it;
|
||||||
}
|
}
|
||||||
|
return end();
|
||||||
}
|
}
|
||||||
|
|
||||||
void resize(int count, const T& item) {
|
void resize(int count, const T& item) {
|
||||||
|
|
|
@ -169,7 +169,7 @@ void CBallCamera::TeleportCamera(const CVector3f& pos, CStateManager& mgr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBallCamera::ResetPosition(CStateManager& mgr) {
|
void CBallCamera::TeleportLookAtStuff(CStateManager& mgr) {
|
||||||
CVector3f pos = mgr.GetPlayer()->GetBallPosition();
|
CVector3f pos = mgr.GetPlayer()->GetBallPosition();
|
||||||
x1d8_lookPos = pos;
|
x1d8_lookPos = pos;
|
||||||
x1d8_lookPos.SetZ(x1d8_lookPos.GetZ() + x1b4_lookAtOffset.GetZ());
|
x1d8_lookPos.SetZ(x1d8_lookPos.GetZ() + x1b4_lookAtOffset.GetZ());
|
||||||
|
@ -205,7 +205,7 @@ void CBallCamera::ResetToTweaks(CStateManager& mgr) {
|
||||||
SetElevation(gpTweakBall->GetBallCameraElevation());
|
SetElevation(gpTweakBall->GetBallCameraElevation());
|
||||||
x1ac_attitudeRange = M_PIF / 2.f;
|
x1ac_attitudeRange = M_PIF / 2.f;
|
||||||
x1b0_azimuthRange = M_PIF / 2.f;
|
x1b0_azimuthRange = M_PIF / 2.f;
|
||||||
SetFovInterpolation(GetFov(), CCameraManager::DefaultThirdPersonFov(), 1.f, 0.f);
|
InterpolateFOV(GetFov(), CCameraManager::GetDefaultThirdPersonVerticalFOV(), 1.f, 0.f);
|
||||||
x1a8_targetAnglePerSecond = gpTweakBall->GetBallCameraAnglePerSecond();
|
x1a8_targetAnglePerSecond = gpTweakBall->GetBallCameraAnglePerSecond();
|
||||||
x18d_29_noElevationInterp = false;
|
x18d_29_noElevationInterp = false;
|
||||||
x18d_30_directElevation = false;
|
x18d_30_directElevation = false;
|
||||||
|
@ -245,7 +245,7 @@ void CBallCamera::Reset(const CTransform4f& xf, CStateManager& mgr) {
|
||||||
FindDesiredPosition(GetDistance(), GetElevation(), xf.GetForward(), mgr, false);
|
FindDesiredPosition(GetDistance(), GetElevation(), xf.GetForward(), mgr, false);
|
||||||
|
|
||||||
if (const CPlayer* player = TCastToConstPtr< CPlayer >(mgr.GetObjectById(GetWatchedObject()))) {
|
if (const CPlayer* player = TCastToConstPtr< CPlayer >(mgr.GetObjectById(GetWatchedObject()))) {
|
||||||
ResetPosition(mgr);
|
TeleportLookAtStuff(mgr);
|
||||||
x310_idealLookVec = x1b4_lookAtOffset;
|
x310_idealLookVec = x1b4_lookAtOffset;
|
||||||
x31c_predictedLookPos = GetLookAtPosition();
|
x31c_predictedLookPos = GetLookAtPosition();
|
||||||
CVector3f dist = GetLookAtPosition() - desiredPos;
|
CVector3f dist = GetLookAtPosition() - desiredPos;
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
#include "MetroidPrime/Cameras/CCameraHint.hpp"
|
|
||||||
#include "Kyoto/Alloc/CMemory.hpp"
|
|
||||||
|
|
||||||
CCameraHint::CCameraHint(uint overrideFlags, CBallCamera::EBallCameraBehaviour behaviour,
|
|
||||||
float minDist, float maxDist, float backwardsDist,
|
|
||||||
const CVector3f& lookAtOffset, const CVector3f& chaseLookAtOffset,
|
|
||||||
const CVector3f& ballToCam, float fov, float attitudeRange,
|
|
||||||
float azimuthRange, float anglePerSecond, float clampVelRange,
|
|
||||||
float clampRotRange, float elevation, float interpolateTime,
|
|
||||||
float clampVelTime, float controlInterpDur)
|
|
||||||
: mOverrideFlags(overrideFlags)
|
|
||||||
, mBehaviour(behaviour)
|
|
||||||
, mMinDist(minDist)
|
|
||||||
, mMaxDist(maxDist)
|
|
||||||
, mBackwardsDist(backwardsDist)
|
|
||||||
, mLookAtOffset(lookAtOffset)
|
|
||||||
, mChaseLookAtOffset(chaseLookAtOffset)
|
|
||||||
, mBallToCam(ballToCam)
|
|
||||||
, mFov(fov)
|
|
||||||
, mAttitudeRange(attitudeRange)
|
|
||||||
, mAnglePerSecond(anglePerSecond)
|
|
||||||
, mClampVelRange(clampVelRange)
|
|
||||||
, mClampRotRange(clampRotRange)
|
|
||||||
, mElevation(elevation)
|
|
||||||
, mInterpolateTime(interpolateTime)
|
|
||||||
, mClampVelTime(clampVelTime)
|
|
||||||
, mControlInterpDur(controlInterpDur) {}
|
|
||||||
|
|
||||||
CCameraHint::~CCameraHint() {}
|
|
|
@ -1,18 +1,18 @@
|
||||||
#include "MetroidPrime/Cameras/CCameraManager.hpp"
|
#include "MetroidPrime/Cameras/CCameraManager.hpp"
|
||||||
|
|
||||||
|
#include "MetroidPrime/CExplosion.hpp"
|
||||||
|
#include "MetroidPrime/CFluidPlaneCPU.hpp"
|
||||||
|
#include "MetroidPrime/CRumbleManager.hpp"
|
||||||
#include "MetroidPrime/Cameras/CBallCamera.hpp"
|
#include "MetroidPrime/Cameras/CBallCamera.hpp"
|
||||||
#include "MetroidPrime/ScriptObjects/CScriptCameraHint.hpp"
|
|
||||||
#include "MetroidPrime/Cameras/CCinematicCamera.hpp"
|
#include "MetroidPrime/Cameras/CCinematicCamera.hpp"
|
||||||
#include "MetroidPrime/Cameras/CFirstPersonCamera.hpp"
|
#include "MetroidPrime/Cameras/CFirstPersonCamera.hpp"
|
||||||
#include "MetroidPrime/Cameras/CGameCamera.hpp"
|
#include "MetroidPrime/Cameras/CGameCamera.hpp"
|
||||||
#include "MetroidPrime/Cameras/CInterpolationCamera.hpp"
|
#include "MetroidPrime/Cameras/CInterpolationCamera.hpp"
|
||||||
#include "MetroidPrime/CExplosion.hpp"
|
|
||||||
#include "MetroidPrime/CFluidPlaneCPU.hpp"
|
|
||||||
#include "MetroidPrime/CRumbleManager.hpp"
|
|
||||||
#include "MetroidPrime/Player/CPlayer.hpp"
|
#include "MetroidPrime/Player/CPlayer.hpp"
|
||||||
#include "MetroidPrime/Player/CPlayerGun.hpp"
|
#include "MetroidPrime/Player/CPlayerGun.hpp"
|
||||||
#include "MetroidPrime/ScriptObjects/CScriptWater.hpp"
|
|
||||||
#include "MetroidPrime/SFX/Misc.h"
|
#include "MetroidPrime/SFX/Misc.h"
|
||||||
|
#include "MetroidPrime/ScriptObjects/CScriptCameraHint.hpp"
|
||||||
|
#include "MetroidPrime/ScriptObjects/CScriptWater.hpp"
|
||||||
#include "MetroidPrime/Tweaks/CTweakGame.hpp"
|
#include "MetroidPrime/Tweaks/CTweakGame.hpp"
|
||||||
#include "MetroidPrime/Tweaks/CTweakPlayer.hpp"
|
#include "MetroidPrime/Tweaks/CTweakPlayer.hpp"
|
||||||
#include "MetroidPrime/Weapons/CWeapon.hpp"
|
#include "MetroidPrime/Weapons/CWeapon.hpp"
|
||||||
|
@ -64,31 +64,33 @@ CCameraManager::CCameraManager(TUniqueId curCamera)
|
||||||
sFirstPersonFOV = gpTweakGame->GetFirstPersonFOV();
|
sFirstPersonFOV = gpTweakGame->GetFirstPersonFOV();
|
||||||
}
|
}
|
||||||
|
|
||||||
float CCameraManager::DefaultThirdPersonFov() { return sThirdPersonFOV; }
|
float CCameraManager::GetDefaultThirdPersonVerticalFOV() { return sThirdPersonFOV; }
|
||||||
|
|
||||||
float CCameraManager::DefaultFirstPersonFov() { return sFirstPersonFOV; }
|
float CCameraManager::GetDefaultFirstPersonVerticalFOV() { return sFirstPersonFOV; }
|
||||||
|
|
||||||
float CCameraManager::DefaultNearPlane() { return sNearPlane; }
|
float CCameraManager::GetDefaultFirstPersonNearClipDistance() { return sNearPlane; }
|
||||||
|
|
||||||
float CCameraManager::DefaultFarPlane() { return sFarPlane; }
|
float CCameraManager::GetDefaultFirstPersonFarClipDistance() { return sFarPlane; }
|
||||||
|
|
||||||
float CCameraManager::DefaultAspect() { return sAspectRatio; }
|
float CCameraManager::GetDefaultAspectRatio() { return sAspectRatio; }
|
||||||
|
|
||||||
void CCameraManager::CreateStandardCameras(CStateManager& mgr) {
|
void CCameraManager::CreateCameras(CStateManager& mgr) {
|
||||||
TUniqueId plId = mgr.GetPlayer()->GetUniqueId();
|
TUniqueId plId = mgr.GetPlayer()->GetUniqueId();
|
||||||
CTransform4f xf = CTransform4f::Identity();
|
CTransform4f xf = CTransform4f::Identity();
|
||||||
xf.SetTranslation(mgr.GetPlayer()->GetEyePosition());
|
xf.SetTranslation(mgr.GetPlayer()->GetEyePosition());
|
||||||
TUniqueId fpId = mgr.AllocateUniqueId();
|
TUniqueId fpId = mgr.AllocateUniqueId();
|
||||||
|
|
||||||
x7c_fpCamera = rs_new CFirstPersonCamera(fpId, xf, plId, gpTweakPlayer->GetOrbitCameraSpeed(),
|
x7c_fpCamera = rs_new CFirstPersonCamera(
|
||||||
DefaultFirstPersonFov(), DefaultNearPlane(),
|
fpId, xf, plId, gpTweakPlayer->GetOrbitCameraSpeed(), GetDefaultFirstPersonVerticalFOV(),
|
||||||
DefaultFarPlane(), DefaultAspect());
|
GetDefaultFirstPersonNearClipDistance(), GetDefaultFirstPersonFarClipDistance(),
|
||||||
|
GetDefaultAspectRatio());
|
||||||
mgr.AddObject(x7c_fpCamera);
|
mgr.AddObject(x7c_fpCamera);
|
||||||
mgr.Player()->SetCameraState(CPlayer::kCS_FirstPerson, mgr);
|
mgr.Player()->SetCameraState(CPlayer::kCS_FirstPerson, mgr);
|
||||||
SetCurrentCameraId(fpId);
|
SetCurrentCameraId(fpId);
|
||||||
TUniqueId ballId = mgr.AllocateUniqueId();
|
TUniqueId ballId = mgr.AllocateUniqueId();
|
||||||
x80_ballCamera = rs_new CBallCamera(ballId, plId, xf, DefaultThirdPersonFov(), DefaultNearPlane(),
|
x80_ballCamera = rs_new CBallCamera(
|
||||||
DefaultFarPlane(), DefaultAspect());
|
ballId, plId, xf, GetDefaultThirdPersonVerticalFOV(), GetDefaultFirstPersonNearClipDistance(),
|
||||||
|
GetDefaultFirstPersonFarClipDistance(), GetDefaultAspectRatio());
|
||||||
mgr.AddObject(x80_ballCamera);
|
mgr.AddObject(x80_ballCamera);
|
||||||
|
|
||||||
TUniqueId interpId = mgr.AllocateUniqueId();
|
TUniqueId interpId = mgr.AllocateUniqueId();
|
||||||
|
@ -96,7 +98,7 @@ void CCameraManager::CreateStandardCameras(CStateManager& mgr) {
|
||||||
mgr.AddObject(x88_interpCamera);
|
mgr.AddObject(x88_interpCamera);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::ThinkCameras(float dt, CStateManager& mgr) {
|
void CCameraManager::UpdateCameras(float dt, CStateManager& mgr) {
|
||||||
CObjectList& objList = mgr.ObjectListById(kOL_GameCamera);
|
CObjectList& objList = mgr.ObjectListById(kOL_GameCamera);
|
||||||
int idx = objList.GetFirstObjectIndex();
|
int idx = objList.GetFirstObjectIndex();
|
||||||
|
|
||||||
|
@ -114,7 +116,7 @@ void CCameraManager::ThinkCameras(float dt, CStateManager& mgr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (const CGameCamera* cam =
|
if (const CGameCamera* cam =
|
||||||
TCastToConstPtr< CGameCamera >(mgr.GetObjectById(GetLastCineCameraId()))) {
|
TCastToConstPtr< CGameCamera >(mgr.GetObjectById(GetCurrentCinematicCameraId()))) {
|
||||||
x3bc_curFov = cam->GetFov();
|
x3bc_curFov = cam->GetFov();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -136,7 +138,7 @@ void CCameraManager::ResetCameras(CStateManager& mgr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::RenderCameras(const CStateManager& mgr) {
|
void CCameraManager::Render(const CStateManager& mgr) {
|
||||||
const CObjectList& objList = mgr.GetObjectListById(kOL_GameCamera);
|
const CObjectList& objList = mgr.GetObjectListById(kOL_GameCamera);
|
||||||
int idx = objList.GetFirstObjectIndex();
|
int idx = objList.GetFirstObjectIndex();
|
||||||
|
|
||||||
|
@ -154,7 +156,7 @@ TUniqueId CCameraManager::GetCurrentCameraId() const {
|
||||||
return x4_cineCameras.back();
|
return x4_cineCameras.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
TUniqueId CCameraManager::GetLastCineCameraId() const {
|
TUniqueId CCameraManager::GetCurrentCinematicCameraId() const {
|
||||||
if (x4_cineCameras.empty()) {
|
if (x4_cineCameras.empty()) {
|
||||||
return kInvalidUniqueId;
|
return kInvalidUniqueId;
|
||||||
}
|
}
|
||||||
|
@ -170,20 +172,20 @@ const CGameCamera& CCameraManager::GetCurrentCamera(const CStateManager& mgr) co
|
||||||
return *static_cast< const CGameCamera* >(mgr.GetObjectById(GetCurrentCameraId()));
|
return *static_cast< const CGameCamera* >(mgr.GetObjectById(GetCurrentCameraId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
const CGameCamera& CCameraManager::GetLastCineCamera(CStateManager& mgr) const {
|
const CGameCamera& CCameraManager::GetCurrentCinematicCamera(CStateManager& mgr) const {
|
||||||
return *static_cast< const CGameCamera* >(mgr.GetObjectById(GetLastCineCameraId()));
|
return *static_cast< const CGameCamera* >(mgr.GetObjectById(GetCurrentCinematicCameraId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::SetCurrentCameraId(TUniqueId uid) { x0_curCameraId = uid; }
|
void CCameraManager::SetCurrentCameraId(TUniqueId uid) { x0_curCameraId = uid; }
|
||||||
|
|
||||||
void CCameraManager::UpdateSfxListener(CStateManager& mgr) {
|
void CCameraManager::UpdateAudioListener(CStateManager& mgr) {
|
||||||
CTransform4f xf = GetCurrentCameraTransform(mgr);
|
CTransform4f xf = GetCurrentCameraTransform(mgr);
|
||||||
|
|
||||||
CSfxManager::UpdateListener(xf.GetTranslation(), CVector3f::Zero(), xf.GetColumn(kDY),
|
CSfxManager::UpdateListener(xf.GetTranslation(), CVector3f::Zero(), xf.GetColumn(kDY),
|
||||||
xf.GetColumn(kDZ), CAudioSys::kMaxVolume);
|
xf.GetColumn(kDZ), CAudioSys::kMaxVolume);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::UpdateRumble(float dt, CStateManager& mgr) {
|
void CCameraManager::UpdateScreenShake(float dt, CStateManager& mgr) {
|
||||||
x30_shakeOffset = CVector3f::Zero();
|
x30_shakeOffset = CVector3f::Zero();
|
||||||
|
|
||||||
rstl::list< CCameraShakeData >::iterator it = x14_shakers.begin();
|
rstl::list< CCameraShakeData >::iterator it = x14_shakers.begin();
|
||||||
|
@ -213,7 +215,7 @@ void CCameraManager::UpdateRumble(float dt, CStateManager& mgr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::UpdateFog(float dt, CStateManager& mgr) {
|
void CCameraManager::UpdateFilters(float dt, CStateManager& mgr) {
|
||||||
if (x98_fogDensitySpeed != 0.f) {
|
if (x98_fogDensitySpeed != 0.f) {
|
||||||
x94_fogDensityFactor += dt * x98_fogDensitySpeed;
|
x94_fogDensityFactor += dt * x98_fogDensitySpeed;
|
||||||
if ((x98_fogDensitySpeed > 0.f) ? x94_fogDensityFactor > x9c_fogDensityFactorTarget
|
if ((x98_fogDensitySpeed > 0.f) ? x94_fogDensityFactor > x9c_fogDensityFactorTarget
|
||||||
|
@ -229,7 +231,7 @@ void CCameraManager::UpdateFog(float dt, CStateManager& mgr) {
|
||||||
const CGameCamera& camera = GetCurrentCamera(mgr);
|
const CGameCamera& camera = GetCurrentCamera(mgr);
|
||||||
if (water) {
|
if (water) {
|
||||||
const float near = camera.GetNearClipDistance();
|
const float near = camera.GetNearClipDistance();
|
||||||
const float far = CalculateFogDensity(mgr, water);
|
const float far = GetWaterFarDistance(mgr, water);
|
||||||
const CColor& color = water->GetUnderwaterFogColor();
|
const CColor& color = water->GetUnderwaterFogColor();
|
||||||
x3c_fog.SetFogExplicit(kRFM_PerspExp, color, CVector2f(near, far));
|
x3c_fog.SetFogExplicit(kRFM_PerspExp, color, CVector2f(near, far));
|
||||||
if (mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::kPV_Thermal) {
|
if (mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::kPV_Thermal) {
|
||||||
|
@ -240,7 +242,7 @@ void CCameraManager::UpdateFog(float dt, CStateManager& mgr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xa0_26_inWater = true;
|
xa0_26_inWater = true;
|
||||||
} else if (xa0_26_inWater) {
|
} else if (IsInsideFluid()) {
|
||||||
mgr.CameraManager()->x3c_fog.DisableFog();
|
mgr.CameraManager()->x3c_fog.DisableFog();
|
||||||
pass.DisableFilter(0.f);
|
pass.DisableFilter(0.f);
|
||||||
xa0_26_inWater = false;
|
xa0_26_inWater = false;
|
||||||
|
@ -249,19 +251,19 @@ void CCameraManager::UpdateFog(float dt, CStateManager& mgr) {
|
||||||
x3c_fog.Update(dt);
|
x3c_fog.Update(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
float CCameraManager::CalculateFogDensity(CStateManager& mgr, const CScriptWater* water) {
|
float CCameraManager::GetWaterFarDistance(CStateManager& mgr, const CScriptWater* water) {
|
||||||
float density = 1.f - water->GetFluidPlane().GetAlpha();
|
float density = 1.f - water->GetFluidPlane().GetAlpha();
|
||||||
if (mgr.GetPlayerState()->HasPowerUp(CPlayerState::kIT_GravitySuit)) {
|
if (mgr.GetPlayerState()->HasPowerUp(CPlayerState::kIT_GravitySuit)) {
|
||||||
density = density * gpTweakGame->GetGravityWaterFogDistanceRange() +
|
density = gpTweakGame->x5c_gravityWaterFogDistanceRange * density +
|
||||||
gpTweakGame->GetGravityWaterFogDistanceBase();
|
gpTweakGame->x58_gravityWaterFogDistanceBase;
|
||||||
} else {
|
} else {
|
||||||
density =
|
density =
|
||||||
density * gpTweakGame->GetWaterFogDistanceRange() + gpTweakGame->GetWaterFogDistanceBase();
|
gpTweakGame->x54_waterFogDistanceRange * density + gpTweakGame->x50_waterFogDistanceBase;
|
||||||
}
|
}
|
||||||
return density * x94_fogDensityFactor;
|
return density * x94_fogDensityFactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::SetFogDensity(float fogDensityTarget, float fogDensitySpeed) {
|
void CCameraManager::SetWaterFogScale(float fogDensityTarget, float fogDensitySpeed) {
|
||||||
x9c_fogDensityFactorTarget = fogDensityTarget;
|
x9c_fogDensityFactorTarget = fogDensityTarget;
|
||||||
if (x9c_fogDensityFactorTarget < x94_fogDensityFactor) {
|
if (x9c_fogDensityFactorTarget < x94_fogDensityFactor) {
|
||||||
x98_fogDensitySpeed = -fogDensitySpeed;
|
x98_fogDensitySpeed = -fogDensitySpeed;
|
||||||
|
@ -272,10 +274,10 @@ void CCameraManager::SetFogDensity(float fogDensityTarget, float fogDensitySpeed
|
||||||
|
|
||||||
void CCameraManager::Update(float dt, CStateManager& mgr) {
|
void CCameraManager::Update(float dt, CStateManager& mgr) {
|
||||||
UpdateCameraHints(dt, mgr);
|
UpdateCameraHints(dt, mgr);
|
||||||
ThinkCameras(dt, mgr);
|
UpdateCameras(dt, mgr);
|
||||||
UpdateSfxListener(mgr);
|
UpdateAudioListener(mgr);
|
||||||
UpdateRumble(dt, mgr);
|
UpdateScreenShake(dt, mgr);
|
||||||
UpdateFog(dt, mgr);
|
UpdateFilters(dt, mgr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::SetInsideFluid(bool isInside, TUniqueId fluidId) {
|
void CCameraManager::SetInsideFluid(bool isInside, TUniqueId fluidId) {
|
||||||
|
@ -318,7 +320,7 @@ void CCameraManager::AddCinemaCamera(TUniqueId uid, CStateManager& mgr) {
|
||||||
delayTime = 0.f;
|
delayTime = 0.f;
|
||||||
time = duration;
|
time = duration;
|
||||||
}
|
}
|
||||||
cam->SetFovInterpolation(cam->GetFov(), sFirstPersonFOV, time, delayTime);
|
cam->InterpolateFOV(cam->GetFov(), sFirstPersonFOV, time, delayTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -356,7 +358,7 @@ void CCameraManager::EnterCinematic(CStateManager& mgr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::SkipCinematic(CStateManager& mgr) {
|
void CCameraManager::StopCinematics(CStateManager& mgr) {
|
||||||
CCinematicCamera* ent = static_cast< CCinematicCamera* >(mgr.ObjectById(GetCurrentCameraId()));
|
CCinematicCamera* ent = static_cast< CCinematicCamera* >(mgr.ObjectById(GetCurrentCameraId()));
|
||||||
while (ent) {
|
while (ent) {
|
||||||
ent->SetActive(false);
|
ent->SetActive(false);
|
||||||
|
@ -364,10 +366,9 @@ void CCameraManager::SkipCinematic(CStateManager& mgr) {
|
||||||
ent = TCastToPtr< CCinematicCamera >(&CurrentCamera(mgr));
|
ent = TCastToPtr< CCinematicCamera >(&CurrentCamera(mgr));
|
||||||
}
|
}
|
||||||
mgr.Player()->UpdateCinematicState(mgr);
|
mgr.Player()->UpdateCinematicState(mgr);
|
||||||
x7c_fpCamera->SkipCinematic();
|
x7c_fpCamera->CancelCinematicOffset();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: nonmatching
|
|
||||||
int CCameraManager::AddCameraShaker(const CCameraShakeData& data, bool sfx) {
|
int CCameraManager::AddCameraShaker(const CCameraShakeData& data, bool sfx) {
|
||||||
CCameraShakeData shakeData = data;
|
CCameraShakeData shakeData = data;
|
||||||
shakeData.SetId(++x2c_lastShakeId);
|
shakeData.SetId(++x2c_lastShakeId);
|
||||||
|
@ -388,11 +389,9 @@ int CCameraManager::AddCameraShaker(const CCameraShakeData& data, bool sfx) {
|
||||||
CSfxHandle sfxHandle;
|
CSfxHandle sfxHandle;
|
||||||
if (data.GetFlags() & 0x1) {
|
if (data.GetFlags() & 0x1) {
|
||||||
CVector3f pos = data.GetSfxPos();
|
CVector3f pos = data.GetSfxPos();
|
||||||
sfxHandle =
|
sfxHandle = CSfxManager::AddEmitter(SFXamb_x_rumble_lp_00, pos, CVector3f::Zero(), vol);
|
||||||
CSfxManager::AddEmitter(SFXamb_x_rumble_lp_00, pos, CVector3f::Zero(), vol, false, false);
|
|
||||||
} else {
|
} else {
|
||||||
sfxHandle =
|
sfxHandle = CSfxManager::SfxStart(SFXamb_x_rumble_lp_00, vol, 64);
|
||||||
CSfxManager::SfxStart(SFXamb_x_rumble_lp_00, vol, 64, false, CSfxManager::kMedPriority);
|
|
||||||
}
|
}
|
||||||
CSfxManager::SetDuration(sfxHandle, duration);
|
CSfxManager::SetDuration(sfxHandle, duration);
|
||||||
}
|
}
|
||||||
|
@ -439,9 +438,8 @@ void CCameraManager::SetPlayerCamera(CStateManager& mgr, TUniqueId uid) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::InterpolateToBallCamera(const CTransform4f& xf, TUniqueId camId,
|
void CCameraManager::SetupInterpolation(const CTransform4f& xf, TUniqueId camId, CVector3f lookPos,
|
||||||
const CVector3f& lookPos, float maxTime,
|
float maxTime, float positionSpeed, float rotationSpeed,
|
||||||
float positionSpeed, float rotationSpeed,
|
|
||||||
bool sinusoidal, CStateManager& mgr) {
|
bool sinusoidal, CStateManager& mgr) {
|
||||||
if (IsInFirstPersonCamera()) {
|
if (IsInFirstPersonCamera()) {
|
||||||
return;
|
return;
|
||||||
|
@ -453,17 +451,18 @@ void CCameraManager::InterpolateToBallCamera(const CTransform4f& xf, TUniqueId c
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::SkipBallCameraCinematic(CStateManager& mgr) {
|
void CCameraManager::CinematicCut(CStateManager& mgr) {
|
||||||
if (IsInCinematicCamera()) {
|
if (IsInCinematicCamera()) {
|
||||||
x80_ballCamera->TeleportCamera(GetLastCineCamera(mgr).GetTransform(), mgr);
|
x80_ballCamera->TeleportCamera(GetCurrentCinematicCamera(mgr).GetTransform(), mgr);
|
||||||
x80_ballCamera->SetFovInterpolation(GetLastCineCamera(mgr).GetFov(), x80_ballCamera->GetFov(),
|
x80_ballCamera->InterpolateFOV(GetCurrentCinematicCamera(mgr).GetFov(),
|
||||||
1.f, 0.f);
|
x80_ballCamera->GetFov(), 1.f, 0.f);
|
||||||
SkipCinematic(mgr);
|
StopCinematics(mgr);
|
||||||
SetCurrentCameraId(x80_ballCamera->GetUniqueId());
|
SetCurrentCameraId(x80_ballCamera->GetUniqueId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::ApplyCameraHint(const CScriptCameraHint& hint, CStateManager& mgr) {
|
// TODO: nonmatching
|
||||||
|
void CCameraManager::UseCameraHint(const CScriptCameraHint& hint, CStateManager& mgr) {
|
||||||
if (x80_ballCamera->GetState() == CBallCamera::kBCS_ToBall) {
|
if (x80_ballCamera->GetState() == CBallCamera::kBCS_ToBall) {
|
||||||
x80_ballCamera->SetState(CBallCamera::kBCS_Default);
|
x80_ballCamera->SetState(CBallCamera::kBCS_Default);
|
||||||
mgr.Player()->SetCameraState(CPlayer::kCS_Ball, mgr);
|
mgr.Player()->SetCameraState(CPlayer::kCS_Ball, mgr);
|
||||||
|
@ -474,5 +473,298 @@ void CCameraManager::ApplyCameraHint(const CScriptCameraHint& hint, CStateManage
|
||||||
xa8_hintPriority = hint.GetPriority();
|
xa8_hintPriority = hint.GetPriority();
|
||||||
|
|
||||||
CTransform4f camXf = GetCurrentCameraTransform(mgr);
|
CTransform4f camXf = GetCurrentCameraTransform(mgr);
|
||||||
x80_ballCamera->ApplyCameraHint(mgr);
|
x80_ballCamera->OverrideCameraInfo(mgr);
|
||||||
|
|
||||||
|
if (hint.GetOverrideFlags() & 0x20) {
|
||||||
|
x80_ballCamera->TeleportLookAtStuff(mgr);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (hint.GetBehaviourType()) {
|
||||||
|
case CBallCamera::kBCB_PathCameraDesiredPos:
|
||||||
|
case CBallCamera::kBCB_PathCamera:
|
||||||
|
SetPathCamera(hint.GetDelegatedCameraId(), mgr);
|
||||||
|
break;
|
||||||
|
case CBallCamera::kBCB_SpindleCamera:
|
||||||
|
SetSpindleCamera(hint.GetDelegatedCameraId(), mgr);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
SetPathCamera(kInvalidUniqueId, mgr);
|
||||||
|
SetSpindleCamera(kInvalidUniqueId, mgr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hint.GetOverrideFlags() & 0x2000) {
|
||||||
|
CinematicCut(mgr);
|
||||||
|
}
|
||||||
|
|
||||||
|
x80_ballCamera->UpdateLookAtPosition(0.f, mgr);
|
||||||
|
|
||||||
|
if ((hint.GetOverrideFlags() & 0x20) == 0 &&
|
||||||
|
(hint.GetBehaviourType() != CBallCamera::kBCB_Default ||
|
||||||
|
(oldHint && (!oldHint || oldHint->GetBehaviourType() != CBallCamera::kBCB_Default)))) {
|
||||||
|
SetupInterpolation(camXf, x80_ballCamera->GetUniqueId(), x80_ballCamera->GetLookAtPosition(),
|
||||||
|
hint.GetInfo().GetInterpolateTime(), hint.GetInfo().GetClampVelRange(),
|
||||||
|
hint.GetInfo().GetClampRotRange(), hint.GetInfo().Flagx400(), mgr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCameraManager::NoCameraHintsLeft(CStateManager& mgr) {
|
||||||
|
CScriptCameraHint* hint = TCastToPtr< CScriptCameraHint >(mgr.ObjectById(xa6_camHintId));
|
||||||
|
CTransform4f ballCamXf = x80_ballCamera->GetTransform();
|
||||||
|
|
||||||
|
xa6_camHintId = kInvalidUniqueId;
|
||||||
|
xa8_hintPriority = 1000;
|
||||||
|
|
||||||
|
if (!hint) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CVector3f camToPlayerFlat = mgr.GetPlayer()->GetTranslation() - ballCamXf.GetTranslation();
|
||||||
|
camToPlayerFlat.SetZ(0.f);
|
||||||
|
if (camToPlayerFlat.CanBeNormalized()) {
|
||||||
|
camToPlayerFlat.Normalize();
|
||||||
|
} else {
|
||||||
|
camToPlayerFlat = mgr.GetPlayer()->GetMovementDirection();
|
||||||
|
}
|
||||||
|
|
||||||
|
x80_ballCamera->ResetToTweaks(mgr);
|
||||||
|
x80_ballCamera->UpdateLookAtPosition(0.f, mgr);
|
||||||
|
if (!mgr.GetPlayer()->IsMorphBallTransitioning() &&
|
||||||
|
hint->GetInfo().GetBehaviourType() != CBallCamera::kBCB_Default) {
|
||||||
|
if ((hint->GetInfo().GetOverrideFlags() & 0x1000) != 0) {
|
||||||
|
x80_ballCamera->SetClampVelRange(hint->GetInfo().GetClampVelRange());
|
||||||
|
x80_ballCamera->SetClampVelTimer(hint->GetInfo().GetClampVelTime());
|
||||||
|
} else {
|
||||||
|
x80_ballCamera->TeleportCamera(x80_ballCamera->FindDesiredTransform(camToPlayerFlat, mgr),
|
||||||
|
mgr);
|
||||||
|
SetupInterpolation(ballCamXf, x80_ballCamera->GetUniqueId(),
|
||||||
|
x80_ballCamera->GetLookAtPosition(), hint->GetInfo().GetClampVelTime(),
|
||||||
|
hint->GetInfo().GetClampVelRange(), hint->GetInfo().GetClampRotRange(),
|
||||||
|
hint->GetInfo().Flagx800(), mgr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: nonmatching
|
||||||
|
void CCameraManager::UpdateCameraHints(float dt, CStateManager& mgr) {
|
||||||
|
bool invalidHintRemoved = false;
|
||||||
|
for (rstl::reserved_vector< rstl::pair< int, TUniqueId >, 64 >::iterator it =
|
||||||
|
xac_cameraHints.begin();
|
||||||
|
it != xac_cameraHints.end();) {
|
||||||
|
if (!TCastToConstPtr< CScriptCameraHint >(mgr.ObjectById(it->second))) {
|
||||||
|
it = xac_cameraHints.erase(it);
|
||||||
|
invalidHintRemoved = true;
|
||||||
|
} else {
|
||||||
|
++it;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool inactiveHintRemoved = false;
|
||||||
|
if (!x2b0_inactiveCameraHints.empty()) {
|
||||||
|
for (rstl::reserved_vector< TUniqueId, 64 >::iterator id = x2b0_inactiveCameraHints.begin();
|
||||||
|
id != x2b0_inactiveCameraHints.end(); ++id) {
|
||||||
|
TUniqueId uid = *id;
|
||||||
|
if (const CScriptCameraHint* hint =
|
||||||
|
TCastToConstPtr< CScriptCameraHint >(mgr.GetObjectById(uid))) {
|
||||||
|
if (hint->GetSenderCount() == 0 || hint->GetInactive()) {
|
||||||
|
for (rstl::reserved_vector< rstl::pair< int, TUniqueId >, 64 >::iterator it =
|
||||||
|
xac_cameraHints.begin();
|
||||||
|
it != xac_cameraHints.end(); ++it) {
|
||||||
|
if (it->second == uid) {
|
||||||
|
xac_cameraHints.erase(it);
|
||||||
|
if (uid == xa6_camHintId) {
|
||||||
|
inactiveHintRemoved = true;
|
||||||
|
SetPathCamera(kInvalidUniqueId, mgr);
|
||||||
|
SetSpindleCamera(kInvalidUniqueId, mgr);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x2b0_inactiveCameraHints.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool activeHintAdded = false;
|
||||||
|
if (!x334_activeCameraHints.empty()) {
|
||||||
|
for (rstl::reserved_vector< TUniqueId, 64 >::iterator id = x334_activeCameraHints.begin();
|
||||||
|
id != x334_activeCameraHints.end(); ++id) {
|
||||||
|
TUniqueId uid = *id;
|
||||||
|
if (const CScriptCameraHint* hint =
|
||||||
|
TCastToConstPtr< CScriptCameraHint >(mgr.GetObjectById(uid))) {
|
||||||
|
bool activeHintPresent = false;
|
||||||
|
for (rstl::reserved_vector< rstl::pair< int, TUniqueId >, 64 >::iterator it =
|
||||||
|
xac_cameraHints.begin();
|
||||||
|
it != xac_cameraHints.end(); ++it) {
|
||||||
|
if (it->second == uid) {
|
||||||
|
activeHintPresent = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!activeHintPresent) {
|
||||||
|
xac_cameraHints.push_back(rstl::pair< int, TUniqueId >(hint->GetPriority(), uid));
|
||||||
|
activeHintAdded = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x334_activeCameraHints.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inactiveHintRemoved || activeHintAdded || invalidHintRemoved) {
|
||||||
|
rstl::less< int > less;
|
||||||
|
rstl::pair_sorter_finder< rstl::pair< int, TUniqueId >, rstl::less< int > > sorter(less);
|
||||||
|
rstl::sort(xac_cameraHints.begin(), xac_cameraHints.end(), sorter);
|
||||||
|
CTransform4f ballCamXf = x80_ballCamera->GetTransform();
|
||||||
|
if ((inactiveHintRemoved || invalidHintRemoved) && xac_cameraHints.empty()) {
|
||||||
|
NoCameraHintsLeft(mgr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
CScriptCameraHint* bestHint = nullptr;
|
||||||
|
bool foundHint = false;
|
||||||
|
for (rstl::reserved_vector< rstl::pair< int, TUniqueId >, 64 >::iterator it =
|
||||||
|
xac_cameraHints.begin();
|
||||||
|
it != xac_cameraHints.end(); ++it) {
|
||||||
|
bestHint = TCastToPtr< CScriptCameraHint >(mgr.ObjectById(it->second));
|
||||||
|
if (bestHint) {
|
||||||
|
foundHint = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!foundHint) {
|
||||||
|
NoCameraHintsLeft(mgr);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool changeHint = false;
|
||||||
|
if (bestHint && foundHint) {
|
||||||
|
if ((bestHint->GetInfo().GetOverrideFlags() & 0x80) != 0 && xac_cameraHints.size() > 1) {
|
||||||
|
CVector3f ballPos = mgr.GetPlayer()->GetBallPosition();
|
||||||
|
if ((bestHint->GetInfo().GetOverrideFlags() & 0x100) != 0) {
|
||||||
|
CVector3f camToBall = ballPos - ballCamXf.GetTranslation();
|
||||||
|
if (camToBall.CanBeNormalized()) {
|
||||||
|
camToBall.Normalize();
|
||||||
|
} else {
|
||||||
|
camToBall = ballCamXf.GetColumn(kDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (rstl::reserved_vector< rstl::pair< int, TUniqueId >, 64 >::iterator it =
|
||||||
|
xac_cameraHints.begin() + 1;
|
||||||
|
it != xac_cameraHints.end(); ++it) {
|
||||||
|
if (CScriptCameraHint* hint =
|
||||||
|
TCastToPtr< CScriptCameraHint >(mgr.ObjectById(it->second))) {
|
||||||
|
if ((hint->GetInfo().GetOverrideFlags() & 0x80) != 0 &&
|
||||||
|
hint->GetPriority() == bestHint->GetPriority() &&
|
||||||
|
hint->GetCurrentAreaId() == bestHint->GetCurrentAreaId()) {
|
||||||
|
CVector3f hintToBall = ballPos - bestHint->GetTranslation();
|
||||||
|
if (hintToBall.CanBeNormalized()) {
|
||||||
|
hintToBall.Normalize();
|
||||||
|
} else {
|
||||||
|
hintToBall = bestHint->GetTransform().GetColumn(kDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
float camHintDot = CMath::Limit(CVector3f::Dot(camToBall, hintToBall), 1.f);
|
||||||
|
|
||||||
|
CVector3f thisHintToBall = ballPos - hint->GetTranslation();
|
||||||
|
if (thisHintToBall.CanBeNormalized()) {
|
||||||
|
thisHintToBall.Normalize();
|
||||||
|
} else {
|
||||||
|
thisHintToBall = hint->GetTransform().GetColumn(kDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
float camThisHintDot = CMath::Limit(CVector3f::Dot(camToBall, thisHintToBall), 1.f);
|
||||||
|
|
||||||
|
if (camThisHintDot > camHintDot) {
|
||||||
|
bestHint = hint;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (const CActor* act =
|
||||||
|
TCastToConstPtr< CActor >(mgr.GetObjectById(bestHint->GetSenderId()))) {
|
||||||
|
CVector3f actorPos = act->GetTranslation();
|
||||||
|
CVector3f ballPos = mgr.GetPlayer()->GetBallPosition();
|
||||||
|
CVector3f ballToHelper = actorPos - ballPos;
|
||||||
|
if (ballToHelper.CanBeNormalized()) {
|
||||||
|
ballToHelper.Normalize();
|
||||||
|
} else {
|
||||||
|
ballToHelper = bestHint->GetTransform().GetColumn(kDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (rstl::reserved_vector< rstl::pair< int, TUniqueId >, 64 >::iterator it =
|
||||||
|
xac_cameraHints.begin() + 1;
|
||||||
|
it != xac_cameraHints.end(); ++it) {
|
||||||
|
if (CScriptCameraHint* hint =
|
||||||
|
TCastToPtr< CScriptCameraHint >(mgr.ObjectById(it->second))) {
|
||||||
|
if ((hint->GetInfo().GetOverrideFlags() & 0x80) != 0 &&
|
||||||
|
hint->GetPriority() == bestHint->GetPriority() &&
|
||||||
|
hint->GetCurrentAreaId() == bestHint->GetCurrentAreaId()) {
|
||||||
|
CVector3f hintToHelper = actorPos - bestHint->GetTranslation();
|
||||||
|
if (hintToHelper.CanBeNormalized()) {
|
||||||
|
hintToHelper.Normalize();
|
||||||
|
} else {
|
||||||
|
hintToHelper = bestHint->GetTransform().GetColumn(kDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
float ballHintDot = CMath::Limit(CVector3f::Dot(hintToHelper, ballToHelper), 1.f);
|
||||||
|
|
||||||
|
CVector3f thisBallToHelper = actorPos - ballPos;
|
||||||
|
if (thisBallToHelper.CanBeNormalized()) {
|
||||||
|
thisBallToHelper.Normalize();
|
||||||
|
} else {
|
||||||
|
thisBallToHelper = hint->GetTransform().GetColumn(kDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
CVector3f thisHintToHelper = actorPos - hint->GetTranslation();
|
||||||
|
if (thisHintToHelper.CanBeNormalized()) {
|
||||||
|
thisHintToHelper.Normalize();
|
||||||
|
} else {
|
||||||
|
thisHintToHelper = hint->GetTransform().GetColumn(kDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
float thisBallHintDot =
|
||||||
|
CMath::Limit(CVector3f::Dot(thisHintToHelper, thisBallToHelper), 1.f);
|
||||||
|
|
||||||
|
if (thisBallHintDot > ballHintDot) {
|
||||||
|
bestHint = hint;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bestHint->GetUniqueId() != xa6_camHintId) {
|
||||||
|
changeHint = true;
|
||||||
|
}
|
||||||
|
} else if (xa6_camHintId != bestHint->GetUniqueId()) {
|
||||||
|
if (bestHint->GetInfo().GetBehaviourType() == CBallCamera::kBCB_HintInitializePosition) {
|
||||||
|
if ((bestHint->GetInfo().GetOverrideFlags() & 0x20) != 0) {
|
||||||
|
x80_ballCamera->TeleportCamera(
|
||||||
|
CTransform4f::LookAt(bestHint->GetTranslation(),
|
||||||
|
x80_ballCamera->GetLookAtPosition()),
|
||||||
|
mgr);
|
||||||
|
}
|
||||||
|
DeleteCameraHint(bestHint->GetUniqueId(), mgr);
|
||||||
|
if ((bestHint->GetInfo().GetOverrideFlags() & 0x2000) != 0) {
|
||||||
|
CinematicCut(mgr);
|
||||||
|
}
|
||||||
|
changeHint = false;
|
||||||
|
} else {
|
||||||
|
changeHint = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (changeHint) {
|
||||||
|
UseCameraHint(*bestHint, mgr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,10 @@ CPathCamera::CPathCamera(TUniqueId uid, const rstl::string& name, const CEntityI
|
||||||
const CTransform4f& xf, bool active, float lengthExtent, float filterMag,
|
const CTransform4f& xf, bool active, float lengthExtent, float filterMag,
|
||||||
float filterProportion, float minEaseDist, float maxEaseDist, u32 flags,
|
float filterProportion, float minEaseDist, float maxEaseDist, u32 flags,
|
||||||
EInitialSplinePosition initPos)
|
EInitialSplinePosition initPos)
|
||||||
: CGameCamera(uid, active, name, info, xf, CCameraManager::DefaultThirdPersonFov(),
|
: CGameCamera(uid, active, name, info, xf, CCameraManager::GetDefaultThirdPersonVerticalFOV(),
|
||||||
CCameraManager::DefaultNearPlane(), CCameraManager::DefaultFarPlane(),
|
CCameraManager::GetDefaultFirstPersonNearClipDistance(),
|
||||||
CCameraManager::DefaultAspect(), kInvalidUniqueId, false, 0)
|
CCameraManager::GetDefaultFirstPersonFarClipDistance(),
|
||||||
|
CCameraManager::GetDefaultAspectRatio(), kInvalidUniqueId, false, 0)
|
||||||
, x188_spline(flags & 1)
|
, x188_spline(flags & 1)
|
||||||
, x1d4_pos(0.f)
|
, x1d4_pos(0.f)
|
||||||
, x1d8_time(0.f)
|
, x1d8_time(0.f)
|
||||||
|
@ -88,16 +89,13 @@ void CPathCamera::ProcessInput(const CFinalInput&, CStateManager& mgr) {
|
||||||
// Empty
|
// Empty
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPathCamera::Accept(IVisitor& visitor) override { visitor.Visit(*this); }
|
void CPathCamera::Accept(IVisitor& visitor) { visitor.Visit(*this); }
|
||||||
|
|
||||||
void CPathCamera::Render(const CStateManager& mgr) const {
|
void CPathCamera::Render(const CStateManager& mgr) const {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void CPathCamera::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) {
|
void CPathCamera::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) {
|
||||||
CGameCamera::AcceptScriptMsg(msg, uid, mgr);
|
CGameCamera::AcceptScriptMsg(msg, uid, mgr);
|
||||||
|
|
||||||
|
|
||||||
if (!GetActive() || msg != kSM_InitializedInArea) {
|
if (!GetActive() || msg != kSM_InitializedInArea) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,187 @@
|
||||||
|
#include "MetroidPrime/ScriptObjects/CScriptCameraHint.hpp"
|
||||||
|
|
||||||
|
#include "MetroidPrime/CActorParameters.hpp"
|
||||||
|
#include "MetroidPrime/Cameras/CCameraManager.hpp"
|
||||||
|
|
||||||
|
#include "Kyoto/Alloc/CMemory.hpp"
|
||||||
|
|
||||||
|
#include "rstl/algorithm.hpp"
|
||||||
|
|
||||||
|
CCameraOverrideInfo::CCameraOverrideInfo(
|
||||||
|
uint overrideFlags, CBallCamera::EBallCameraBehaviour behaviour, float minDist, float maxDist,
|
||||||
|
float backwardsDist, const CVector3f& lookAtOffset, const CVector3f& chaseLookAtOffset,
|
||||||
|
const CVector3f& ballToCam, float fov, float attitudeRange, float azimuthRange,
|
||||||
|
float anglePerSecond, float clampVelRange, float clampRotRange, float elevation,
|
||||||
|
float interpolateTime, float clampVelTime, float controlInterpDur)
|
||||||
|
: mOverrideFlags(overrideFlags)
|
||||||
|
, mBehaviour(behaviour)
|
||||||
|
, mMinDist(minDist)
|
||||||
|
, mMaxDist(maxDist)
|
||||||
|
, mBackwardsDist(backwardsDist)
|
||||||
|
, mLookAtOffset(lookAtOffset)
|
||||||
|
, mChaseLookAtOffset(chaseLookAtOffset)
|
||||||
|
, mBallToCam(ballToCam)
|
||||||
|
, mFov(fov)
|
||||||
|
, mAttitudeRange(attitudeRange)
|
||||||
|
, mAzimuthRange(azimuthRange)
|
||||||
|
, mAnglePerSecond(anglePerSecond)
|
||||||
|
, mClampVelRange(clampVelRange)
|
||||||
|
, mClampRotRange(clampRotRange)
|
||||||
|
, mElevation(elevation)
|
||||||
|
, mInterpolateTime(interpolateTime)
|
||||||
|
, mClampVelTime(clampVelTime)
|
||||||
|
, mControlInterpDur(controlInterpDur) {}
|
||||||
|
|
||||||
|
CScriptCameraHint::CScriptCameraHint(
|
||||||
|
TUniqueId uid, const rstl::string& name, const CEntityInfo& info, const CTransform4f& xf,
|
||||||
|
bool active, int priority, CBallCamera::EBallCameraBehaviour behavior, int overrideFlags,
|
||||||
|
float minDist, float maxDist, float backwardsDist, const CVector3f& lookAtOffset,
|
||||||
|
const CVector3f& chaseLookAtOffset, const CVector3f& ballToCam, float fov, float attitudeRange,
|
||||||
|
float azimuthRange, float anglePerSecond, float clampVelRange, float clampRotRange,
|
||||||
|
float elevation, float interpolateTime, float clampVelTime, float controlInterpDur)
|
||||||
|
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(kMT_NoStepLogic),
|
||||||
|
CActorParameters::None(), kInvalidUniqueId)
|
||||||
|
, mPriority(priority)
|
||||||
|
, mOverrideInfo(overrideFlags, behavior, minDist, maxDist, backwardsDist, lookAtOffset,
|
||||||
|
chaseLookAtOffset, ballToCam, fov, attitudeRange, azimuthRange, anglePerSecond,
|
||||||
|
clampVelRange, clampRotRange, elevation, interpolateTime, clampVelTime,
|
||||||
|
controlInterpDur)
|
||||||
|
, mSenders()
|
||||||
|
, mDelegatedCameraId(kInvalidUniqueId)
|
||||||
|
, mInactive(false)
|
||||||
|
, mOrigXf(xf) {}
|
||||||
|
|
||||||
|
CScriptCameraHint::~CScriptCameraHint() {}
|
||||||
|
|
||||||
|
TUniqueId CScriptCameraHint::GetSenderId() const {
|
||||||
|
if (mSenders.size() > 0) {
|
||||||
|
return mSenders.front();
|
||||||
|
}
|
||||||
|
return kInvalidUniqueId;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CScriptCameraHint::ClearSenders() { mSenders.clear(); }
|
||||||
|
|
||||||
|
void CScriptCameraHint::AddSender(TUniqueId uid) {
|
||||||
|
rstl::reserved_vector< TUniqueId, 8 >::iterator it =
|
||||||
|
rstl::find(mSenders.begin(), mSenders.end(), uid);
|
||||||
|
if (it == mSenders.end()) {
|
||||||
|
mSenders.push_back(uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CScriptCameraHint::RemoveSender(TUniqueId uid, CStateManager& mgr) {
|
||||||
|
if (mSenders.empty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
rstl::reserved_vector< TUniqueId, 8 >::iterator it =
|
||||||
|
rstl::find(mSenders.begin(), mSenders.end(), uid);
|
||||||
|
if (it == mSenders.end()) {
|
||||||
|
mSenders.erase(mSenders.begin());
|
||||||
|
} else {
|
||||||
|
mSenders.erase(it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CScriptCameraHint::CheckLegacyConnections(CStateManager& mgr) {
|
||||||
|
TUniqueId uid = GetUniqueId();
|
||||||
|
CObjectList& objList = mgr.ObjectListById(kOL_All);
|
||||||
|
mDelegatedCameraId = kInvalidUniqueId;
|
||||||
|
for (int idx = objList.GetFirstObjectIndex(); idx != -1; idx = objList.GetNextObjectIndex(idx)) {
|
||||||
|
CEntity* entity = TCastToPtr< CEntity >(objList[idx]);
|
||||||
|
if (!entity) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
rstl::vector< SConnection >& connections = entity->ConnectionList();
|
||||||
|
rstl::vector< SConnection >::iterator outer = connections.begin();
|
||||||
|
for (; outer != connections.end(); ++outer) {
|
||||||
|
if (mgr.GetIdForScript(outer->x8_objId) != uid ||
|
||||||
|
(outer->x4_msg != kSM_Increment && outer->x4_msg != kSM_Decrement)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
rstl::vector< SConnection >::iterator inner = connections.begin();
|
||||||
|
while (inner != connections.end()) {
|
||||||
|
if (inner->x4_msg == kSM_Increment || inner->x4_msg == kSM_Decrement) {
|
||||||
|
TUniqueId senderId = mgr.GetIdForScript(inner->x8_objId);
|
||||||
|
CPathCamera* pathCamera = TCastToPtr< CPathCamera >(mgr.ObjectById(senderId));
|
||||||
|
CScriptSpindleCamera* spindleCamera =
|
||||||
|
TCastToPtr< CScriptSpindleCamera >(mgr.ObjectById(senderId));
|
||||||
|
if (pathCamera || spindleCamera) {
|
||||||
|
connections.erase(inner);
|
||||||
|
if (mDelegatedCameraId != senderId) {
|
||||||
|
mDelegatedCameraId = senderId;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
inner = inner + 1; // ?
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
inner = inner + 1; // ?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CScriptCameraHint::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid,
|
||||||
|
CStateManager& mgr) {
|
||||||
|
switch (msg) {
|
||||||
|
case kSM_Deleted:
|
||||||
|
case kSM_Deactivate:
|
||||||
|
CCameraManager* cameraManager = mgr.CameraManager();
|
||||||
|
cameraManager->ReallyRemoveCameraHint(GetUniqueId(), mgr);
|
||||||
|
break;
|
||||||
|
case kSM_InitializedInArea:
|
||||||
|
CheckLegacyConnections(mgr);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GetActive()) {
|
||||||
|
CCameraManager* cameraManager = mgr.CameraManager();
|
||||||
|
switch (msg) {
|
||||||
|
case kSM_Increment:
|
||||||
|
AddSender(uid);
|
||||||
|
cameraManager->AddCameraHint(GetUniqueId(), mgr);
|
||||||
|
mInactive = false;
|
||||||
|
break;
|
||||||
|
case kSM_Decrement:
|
||||||
|
RemoveSender(uid, mgr);
|
||||||
|
cameraManager->DeleteCameraHint(GetUniqueId(), mgr);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CCameraManager* cameraManager = mgr.CameraManager();
|
||||||
|
switch (msg) {
|
||||||
|
case kSM_Follow:
|
||||||
|
if (!GetActive()) {
|
||||||
|
SetActive(true);
|
||||||
|
if (CActor* act = TCastToPtr< CActor >(mgr.ObjectById(uid))) {
|
||||||
|
CVector3f followerToThisFlat = mOrigXf.GetTranslation() - act->GetTranslation();
|
||||||
|
followerToThisFlat.SetZ(0.f);
|
||||||
|
if (followerToThisFlat.CanBeNormalized()) {
|
||||||
|
followerToThisFlat.Normalize();
|
||||||
|
} else {
|
||||||
|
followerToThisFlat = act->GetTransform().GetColumn(kDY);
|
||||||
|
}
|
||||||
|
CVector3f pos = act->GetTranslation();
|
||||||
|
pos.SetZ(mOrigXf.GetTranslation().GetZ());
|
||||||
|
SetTransform(CTransform4f::LookAt(pos, pos + followerToThisFlat));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AddSender(uid);
|
||||||
|
cameraManager->AddCameraHint(GetUniqueId(), mgr);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
CActor::AcceptScriptMsg(msg, uid, mgr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CScriptCameraHint::Accept(IVisitor& visitor) { visitor.Visit(*this); }
|
|
@ -580,9 +580,9 @@ void CScriptSpecialFunction::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId
|
||||||
case kSF_FogFader: {
|
case kSF_FogFader: {
|
||||||
float speed = x100_float2;
|
float speed = x100_float2;
|
||||||
if (msg == kSM_Increment) {
|
if (msg == kSM_Increment) {
|
||||||
mgr.CameraManager()->SetFogDensity(xfc_float1, speed);
|
mgr.CameraManager()->SetWaterFogScale(xfc_float1, speed);
|
||||||
} else if (msg == kSM_Decrement) {
|
} else if (msg == kSM_Decrement) {
|
||||||
mgr.CameraManager()->SetFogDensity(1.f, speed);
|
mgr.CameraManager()->SetWaterFogScale(1.f, speed);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue