summaryrefslogtreecommitdiff
path: root/engine/cl_demosmoothing.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /engine/cl_demosmoothing.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'engine/cl_demosmoothing.h')
-rw-r--r--engine/cl_demosmoothing.h191
1 files changed, 191 insertions, 0 deletions
diff --git a/engine/cl_demosmoothing.h b/engine/cl_demosmoothing.h
new file mode 100644
index 0000000..3e2d511
--- /dev/null
+++ b/engine/cl_demosmoothing.h
@@ -0,0 +1,191 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef CL_DEMOSMOOTHING_H
+#define CL_DEMOSMOOTHING_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "mathlib/vector.h"
+#include "quakedef.h"
+#include "tier0/platform.h"
+
+#define FDEMO_NORMAL 0
+#define FDEMO_USE_ORIGIN2 (1<<0)
+#define FDEMO_USE_ANGLES2 (1<<1)
+#define FDEMO_NOINTERP (1<<2) // don't interpolate between this an last view
+
+struct democmdinfo_t
+{
+ // Default constructor
+ democmdinfo_t()
+ {
+ flags = FDEMO_NORMAL;
+ viewOrigin.Init();
+ viewAngles.Init();
+ localViewAngles.Init();
+
+ // Resampled origin/angles
+ viewOrigin2.Init();
+ viewAngles2.Init();
+ localViewAngles2.Init();
+ }
+
+ // Copy constructor
+ // Assignment
+ democmdinfo_t& operator=(const democmdinfo_t& src )
+ {
+ if ( this == &src )
+ return *this;
+
+ flags = src.flags;
+ viewOrigin = src.viewOrigin;
+ viewAngles = src.viewAngles;
+ localViewAngles = src.localViewAngles;
+ viewOrigin2 = src.viewOrigin2;
+ viewAngles2 = src.viewAngles2;
+ localViewAngles2 = src.localViewAngles2;
+
+ return *this;
+ }
+
+ const Vector& GetViewOrigin()
+ {
+ if ( flags & FDEMO_USE_ORIGIN2 )
+ {
+ return viewOrigin2;
+ }
+ return viewOrigin;
+ }
+
+ const QAngle& GetViewAngles()
+ {
+ if ( flags & FDEMO_USE_ANGLES2 )
+ {
+ return viewAngles2;
+ }
+ return viewAngles;
+ }
+ const QAngle& GetLocalViewAngles()
+ {
+ if ( flags & FDEMO_USE_ANGLES2 )
+ {
+ return localViewAngles2;
+ }
+ return localViewAngles;
+ }
+
+ void Reset( void )
+ {
+ flags = 0;
+ viewOrigin2 = viewOrigin;
+ viewAngles2 = viewAngles;
+ localViewAngles2 = localViewAngles;
+ }
+
+ int flags;
+
+ // original origin/viewangles
+ Vector viewOrigin;
+ QAngle viewAngles;
+ QAngle localViewAngles;
+
+ // Resampled origin/viewangles
+ Vector viewOrigin2;
+ QAngle viewAngles2;
+ QAngle localViewAngles2;
+};
+
+struct demosmoothing_t
+{
+ demosmoothing_t()
+ {
+ file_offset = 0;
+ frametick = 0;
+ selected = false;
+ samplepoint = false;
+
+ vecmoved.Init();
+ angmoved.Init();
+
+ targetpoint = false;
+ vectarget.Init();
+ }
+
+ demosmoothing_t& operator=(const demosmoothing_t& src )
+ {
+ if ( this == &src )
+ return *this;
+
+ file_offset = src.file_offset;
+ frametick = src.frametick;
+ selected = src.selected;
+ samplepoint = src.samplepoint;
+ vecmoved = src.vecmoved;
+ angmoved = src.angmoved;
+
+ targetpoint = src.targetpoint;
+ vectarget = src.vectarget;
+
+ info = src.info;
+
+ return *this;
+ }
+
+ int file_offset;
+
+ int frametick;
+
+ bool selected;
+
+ // For moved sample points
+ bool samplepoint;
+ Vector vecmoved;
+ QAngle angmoved;
+
+ bool targetpoint;
+ Vector vectarget;
+
+ democmdinfo_t info;
+};
+
+struct CSmoothingContext
+{
+ CSmoothingContext()
+ {
+ active = false;
+ filename[ 0 ] = 0;
+ }
+
+ CSmoothingContext& operator=(const CSmoothingContext& src )
+ {
+ if ( this == &src )
+ return *this;
+
+ active = src.active;
+ Q_strncpy( filename, src.filename, sizeof( filename ) );
+
+ smooth.RemoveAll();
+ int c = src.smooth.Count();
+ int i;
+ for ( i = 0; i < c; i++ )
+ {
+ demosmoothing_t newitem;
+ newitem = src.smooth[ i ];
+ smooth.AddToTail( newitem );
+ }
+
+ return *this;
+ }
+
+ bool active;
+ char filename[ MAX_OSPATH ];
+ CUtlVector< demosmoothing_t > smooth;
+};
+
+#endif // CL_DEMOSMOOTHING_H