vphysics_jolt/vphysics_jolt/compat/compat_sdk2013.h

76 lines
1.9 KiB
C++

#pragma once
// This file provides compatibility with stuff used from the Alien Swarm SDK and above
// Source Engine branches for SDK 2013.
#include "Color.h"
enum LoggingSeverity_t
{
LS_MESSAGE = 0,
LS_WARNING = 1,
LS_ASSERT = 2,
LS_ERROR = 3,
LS_HIGHEST_SEVERITY = 4,
};
struct LoggingChannelInfo_t
{
const char *pszName;
int nFlags;
LoggingSeverity_t nSeverity;
Color color = Color(255, 255, 255);
};
#define DECLARE_LOGGING_CHANNEL( Channel ) extern LoggingChannelInfo_t g_LoggingInfo##Channel;
#define DEFINE_LOGGING_CHANNEL_NO_TAGS( Channel, ChannelName, ... ) LoggingChannelInfo_t g_LoggingInfo##Channel = { ChannelName, __VA_ARGS__ };
static const int MAX_LOGGING_MESSAGE_LENGTH = 2048;
// TODO
#define DevAssert( ... )
#define DevAssertMsg( ... )
#define AssertMsg_Internal( ... )
#define InternalMsg( Channel, Fmt, ... ) ConColorMsg( g_LoggingInfo##Channel.color, "[%s]" Fmt, g_LoggingInfo##Channel.pszName, ##__VA_ARGS__ )
#define Log_Msg( Channel, Fmt, ... ) InternalMsg( Channel, Fmt, ##__VA_ARGS__ )
#define Log_Warning( Channel, Fmt, ... ) InternalMsg( Channel, Fmt, ##__VA_ARGS__ )
#define Log_Error( Channel, Fmt, ... ) InternalMsg( Channel, Fmt, ##__VA_ARGS__ )
// Unused, just makes stuff cleaner to not have ifdef spam.
enum collisionhints
{
COLLISION_HINT_DEBRIS = 0x0001,
COLLISION_HINT_STATICSOLID = 0x0002,
};
class IPhysicsCollisionSet;
class IPhysics;
struct ragdollcollisionrules_t
{
void Defaults( IPhysics *pPhysics, IPhysicsCollisionSet *pSetIn )
{
pCollisionSet = pSetIn;
bSelfCollisions = true;
}
int bSelfCollisions;
IPhysicsCollisionSet *pCollisionSet;
};
struct ragdollanimatedfriction_t
{
float minFriction;
float maxFriction;
float timeIn;
float timeOut;
float timeHold;
};
enum PlayerContactState_t
{
PLAYER_CONTACT_PHYSICS = 1,
PLAYER_CONTACT_GAMEOBJECT = 2,
};