mirror of
https://github.com/halpz/re3.git
synced 2024-12-27 18:25:28 +00:00
CCamera done
This commit is contained in:
parent
e9e533b0cb
commit
c5205a89ee
|
@ -3513,6 +3513,11 @@ CCam::Process_FlyBy(const CVector&, float, float, float)
|
|||
|
||||
if(TheCamera.m_bcutsceneFinished)
|
||||
return;
|
||||
#ifdef FIX_BUGS
|
||||
// this would crash, not nice when cycling debug mode
|
||||
if(TheCamera.m_arrPathArray[0].m_arr_PathData == nil)
|
||||
return;
|
||||
#endif
|
||||
|
||||
Up = CVector(0.0f, 0.0f, 1.0f);
|
||||
if(TheCamera.m_bStartingSpline)
|
||||
|
|
1363
src/core/Camera.cpp
1363
src/core/Camera.cpp
File diff suppressed because it is too large
Load diff
|
@ -249,7 +249,8 @@ class CCamPathSplines
|
|||
{
|
||||
public:
|
||||
enum {MAXPATHLENGTH=800};
|
||||
float m_arr_PathData[MAXPATHLENGTH];
|
||||
// float m_arr_PathData[MAXPATHLENGTH];
|
||||
float *m_arr_PathData;
|
||||
CCamPathSplines(void);
|
||||
};
|
||||
|
||||
|
@ -551,6 +552,7 @@ public:
|
|||
bool Get_Just_Switched_Status() { return m_bJust_Switched; }
|
||||
void AvoidTheGeometry(const CVector &Source, const CVector &TargetPos, CVector &NewSource, float FOV);
|
||||
void GetArrPosForVehicleType(int apperance, int &index);
|
||||
void GetScreenRect(CRect &rect);
|
||||
|
||||
// Who's in control
|
||||
void TakeControl(CEntity *target, int16 mode, int16 typeOfSwitch, int32 controller);
|
||||
|
@ -576,6 +578,7 @@ public:
|
|||
bool TryToStartNewCamMode(int32 obbeMode);
|
||||
void DontProcessObbeCinemaCamera(void);
|
||||
void ProcessObbeCinemaCameraCar(void);
|
||||
void ProcessObbeCinemaCameraHeli(void);
|
||||
void ProcessObbeCinemaCameraPed(void);
|
||||
|
||||
// Train
|
||||
|
@ -584,6 +587,7 @@ public:
|
|||
|
||||
// Script
|
||||
void LoadPathSplines(int file);
|
||||
void DeleteCutSceneCamDataMemory(void);
|
||||
void FinishCutscene(void);
|
||||
float GetPositionAlongSpline(void) { return m_fPositionAlongSpline; }
|
||||
uint32 GetCutSceneFinishTime(void);
|
||||
|
@ -617,7 +621,7 @@ public:
|
|||
void SetNewPlayerWeaponMode(int16 mode, int16 minZoom, int16 maxZoom);
|
||||
void ClearPlayerWeaponMode(void);
|
||||
void UpdateAimingCoors(CVector const &coors);
|
||||
void Find3rdPersonCamTargetVector(float dist, CVector pos, CVector &source, CVector &target);
|
||||
bool Find3rdPersonCamTargetVector(float dist, CVector pos, CVector &source, CVector &target);
|
||||
float Find3rdPersonQuickAimPitch(void);
|
||||
bool Using1stPersonWeaponMode(void);
|
||||
|
||||
|
|
|
@ -535,9 +535,6 @@ DebugMenuPopulate(void)
|
|||
DebugMenuAddVarBool8("Cam", "Print Debug Code", &PrintDebugCode, nil);
|
||||
DebugMenuAddVar("Cam", "Cam Mode", &DebugCamMode, nil, 1, 0, CCam::MODE_EDITOR, nil);
|
||||
DebugMenuAddCmd("Cam", "Normal", []() { DebugCamMode = 0; });
|
||||
DebugMenuAddCmd("Cam", "Follow Ped With Bind", []() { DebugCamMode = CCam::MODE_FOLLOW_PED_WITH_BIND; });
|
||||
DebugMenuAddCmd("Cam", "Reaction", []() { DebugCamMode = CCam::MODE_REACTION; });
|
||||
DebugMenuAddCmd("Cam", "Chris", []() { DebugCamMode = CCam::MODE_CHRIS; });
|
||||
DebugMenuAddCmd("Cam", "Reset Statics", ResetCamStatics);
|
||||
|
||||
CTweakVars::AddDBG("Debug");
|
||||
|
|
|
@ -83,7 +83,8 @@ RwFrame *RwFrameTranslate(RwFrame * frame, const RwV3d * v, RwOpCombineType comb
|
|||
RwFrame *RwFrameRotate(RwFrame * frame, const RwV3d * axis, RwReal angle, RwOpCombineType combine) { frame->rotate(axis, angle, (CombineOp)combine); return frame; }
|
||||
RwFrame *RwFrameScale(RwFrame * frame, const RwV3d * v, RwOpCombineType combine) { frame->scale(v, (CombineOp)combine); return frame; }
|
||||
RwFrame *RwFrameTransform(RwFrame * frame, const RwMatrix * m, RwOpCombineType combine) { frame->transform(m, (CombineOp)combine); return frame; }
|
||||
//RwFrame *RwFrameOrthoNormalize(RwFrame * frame);
|
||||
//TODO: actually implement this!
|
||||
RwFrame *RwFrameOrthoNormalize(RwFrame * frame) { return frame; }
|
||||
RwFrame *RwFrameSetIdentity(RwFrame * frame) { frame->matrix.setIdentity(); frame->updateObjects(); return frame; }
|
||||
//RwFrame *RwFrameCloneHierarchy(RwFrame * root);
|
||||
//RwBool RwFrameDestroyHierarchy(RwFrame * frame);
|
||||
|
|
|
@ -8988,6 +8988,13 @@ CPed::GetWeaponSlot(eWeaponType weaponType)
|
|||
return CWeaponInfo::GetWeaponInfo(weaponType)->m_nWeaponSlot;
|
||||
}
|
||||
|
||||
// --MIAMI: Done
|
||||
bool
|
||||
CPed::CanWeRunAndFireWithWeapon(void)
|
||||
{
|
||||
return CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType)->m_bCanAimWithArm;
|
||||
}
|
||||
|
||||
void
|
||||
CPed::GoToNearestDoor(CVehicle *veh)
|
||||
{
|
||||
|
|
|
@ -798,6 +798,7 @@ public:
|
|||
int GetNextPointOnRoute(void);
|
||||
uint8 GetPedRadioCategory(uint32);
|
||||
int GetWeaponSlot(eWeaponType);
|
||||
bool CanWeRunAndFireWithWeapon(void);
|
||||
void GoToNearestDoor(CVehicle*);
|
||||
bool HaveReachedNextPointOnRoute(float);
|
||||
void Idle(void);
|
||||
|
|
|
@ -146,13 +146,13 @@ CMBlur::CreateImmediateModeData(RwCamera *cam, RwRect *rect)
|
|||
}
|
||||
|
||||
void
|
||||
CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type)
|
||||
CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type, uint32 alpha)
|
||||
{
|
||||
RwRGBA color = { (RwUInt8)red, (RwUInt8)green, (RwUInt8)blue, (RwUInt8)blur };
|
||||
if(ms_bJustInitialised)
|
||||
ms_bJustInitialised = false;
|
||||
else
|
||||
OverlayRender(cam, pFrontBuffer, color, type);
|
||||
OverlayRender(cam, pFrontBuffer, color, type, alpha);
|
||||
if(BlurOn){
|
||||
RwRasterPushContext(pFrontBuffer);
|
||||
RwRasterRenderFast(RwCameraGetRaster(cam), 0, 0);
|
||||
|
@ -161,7 +161,7 @@ CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, u
|
|||
}
|
||||
|
||||
void
|
||||
CMBlur::OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type)
|
||||
CMBlur::OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type, int32 alpha)
|
||||
{
|
||||
int r, g, b, a;
|
||||
|
||||
|
@ -284,6 +284,12 @@ CMBlur::OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type)
|
|||
RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA);
|
||||
}
|
||||
|
||||
void
|
||||
CMBlur::SetDrunkBlur(float drunkness)
|
||||
{
|
||||
Drunkness = clamp(drunkness, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
void
|
||||
CMBlur::ClearDrunkBlur()
|
||||
{
|
||||
|
|
|
@ -22,8 +22,9 @@ public:
|
|||
static void MotionBlurOpen(RwCamera *cam);
|
||||
static void MotionBlurClose(void);
|
||||
static void CreateImmediateModeData(RwCamera *cam, RwRect *rect);
|
||||
static void MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type);
|
||||
static void OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type);
|
||||
static void MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type, uint32 alpha);
|
||||
static void OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type, int32 alpha);
|
||||
static void SetDrunkBlur(float drunkness);
|
||||
static void ClearDrunkBlur();
|
||||
|
||||
//TODO
|
||||
|
|
Loading…
Reference in a new issue