diff options
| author | boris <wzn@moneybot.cc> | 2018-11-28 16:00:02 +1300 |
|---|---|---|
| committer | boris <wzn@moneybot.cc> | 2018-11-28 16:00:02 +1300 |
| commit | 3d412a4b30a9f7c7f51ea6562e694315948bd3da (patch) | |
| tree | 26d67dfd1f3e5fd12903ad13e85d0cb8bcf8f21c /cheat/gmod/IPhysicsSurfaceProps.hpp | |
| parent | e4729e4393d90271a3814c7a79950a660c48325a (diff) | |
cleaned up
in short, the cheat and loader are now separate solutions. unused stuff was moved into the legacy solution in case anyone wants to compile it or whatever.
i can change this back if you want to. also, i configured the loader to compile in x64, and have separate build types for linux and win64
Diffstat (limited to 'cheat/gmod/IPhysicsSurfaceProps.hpp')
| -rw-r--r-- | cheat/gmod/IPhysicsSurfaceProps.hpp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/cheat/gmod/IPhysicsSurfaceProps.hpp b/cheat/gmod/IPhysicsSurfaceProps.hpp new file mode 100644 index 0000000..d7003f2 --- /dev/null +++ b/cheat/gmod/IPhysicsSurfaceProps.hpp @@ -0,0 +1,79 @@ +#pragma once
+
+struct surfacephysicsparams_t {
+ // vphysics physical properties
+ float friction;
+ float elasticity; // collision elasticity - used to compute coefficient of restitution
+ float density; // physical density (in kg / m^3)
+ float thickness; // material thickness if not solid (sheet materials) in inches
+ float dampening;
+};
+
+struct surfaceaudioparams_t {
+ float reflectivity; // like elasticity, but how much sound should be reflected by this surface
+ float hardnessFactor; // like elasticity, but only affects impact sound choices
+ float roughnessFactor; // like friction, but only affects scrape sound choices
+ float roughThreshold; // surface roughness > this causes "rough" scrapes, < this causes "smooth" scrapes
+ float hardThreshold; // surface hardness > this causes "hard" impacts, < this causes "soft" impacts
+ float hardVelocityThreshold; // collision velocity > this causes "hard" impacts, < this causes "soft" impacts
+ float highPitchOcclusion; //a value betweeen 0 and 100 where 0 is not occluded at all and 100 is silent (except for any additional reflected sound)
+ float midPitchOcclusion;
+ float lowPitchOcclusion;
+};
+
+struct surfacesoundnames_t {
+ unsigned short walkStepLeft;
+ unsigned short walkStepRight;
+ unsigned short runStepLeft;
+ unsigned short runStepRight;
+ unsigned short impactSoft;
+ unsigned short impactHard;
+ unsigned short scrapeSmooth;
+ unsigned short scrapeRough;
+ unsigned short bulletImpact;
+ unsigned short rolling;
+ unsigned short breakSound;
+ unsigned short strainSound;
+};
+
+struct surfacegameprops_t {
+ float maxspeedfactor;
+ float jumpfactor;
+ float penetrationmodifier;
+ float damagemodifier;
+ uint16_t material;
+ uint8_t climbable;
+};
+
+struct surfacedata_t {
+ surfacephysicsparams_t physics; // physics parameters
+ surfaceaudioparams_t audio; // audio parameters
+ surfacesoundnames_t sounds; // names of linked sounds
+ surfacegameprops_t game; // Game data / properties
+};
+
+class IPhysicsSurfaceProps
+{
+public:
+ virtual ~IPhysicsSurfaceProps( void ) {}
+
+ // parses a text file containing surface prop keys
+ virtual int ParseSurfaceData( const char* pFilename, const char* pTextfile ) = 0;
+ // current number of entries in the database
+ virtual int SurfacePropCount( void ) const = 0;
+
+ virtual int GetSurfaceIndex( const char* pSurfacePropName ) const = 0;
+ virtual void GetPhysicsProperties( int surfaceDataIndex, float* density, float* thickness, float* friction, float* elasticity ) const = 0;
+
+ virtual surfacedata_t* GetSurfaceData( int surfaceDataIndex ) = 0;
+ virtual const char* GetString( unsigned short stringTableIndex ) const = 0;
+
+ virtual const char* GetPropName( int surfaceDataIndex ) const = 0;
+
+ // sets the global index table for world materials
+ // UNDONE: Make this per-CPhysCollide
+ virtual void SetWorldMaterialIndexTable( int* pMapArray, int mapSize ) = 0;
+
+ // NOTE: Same as GetPhysicsProperties, but maybe more convenient
+ //virtual void GetPhysicsParameters(int surfaceDataIndex, surfacephysicsparams_t* pParamsOut) const = 0;
+};
\ No newline at end of file |
