Added WIP v142 toolset support based on Source SDK 2013: Community Edition repo

This commit is contained in:
Blixibon 2021-07-12 14:47:34 -05:00
parent 7ce328cbb9
commit 9b795b3c51
58 changed files with 427 additions and 194 deletions

View File

@ -80,7 +80,7 @@ public:
QAngle m_angRotation;
Vector m_vOriginVelocity;
int m_nLastFramecount : 31;
int m_bAnglesComputed : 1;
bool m_bAnglesComputed : 1;
};

View File

@ -4927,9 +4927,15 @@ C_BaseEntity *C_BaseEntity::Instance( int iEnt )
}
#ifdef WIN32
#if _MSC_VER < 1900
#pragma warning( push )
#include <typeinfo.h>
#pragma warning( pop )
#else
#include <typeinfo>
#endif
#endif
//-----------------------------------------------------------------------------

View File

@ -1263,7 +1263,7 @@ public:
#ifdef _DEBUG
void FunctionCheck( void *pFunction, const char *name );
ENTITYFUNCPTR TouchSet( ENTITYFUNCPTR func, char *name )
ENTITYFUNCPTR TouchSet( ENTITYFUNCPTR func, const char *name )
{
//COMPILE_TIME_ASSERT( sizeof(func) == 4 );
m_pfnTouch = func;

View File

@ -528,15 +528,15 @@ void CLCD::ShowItems_R( CLCDPage *page, unsigned int dwCurTime, CUtlVector< CLCD
{
CLCDItem *newItem = NULL;
CLCDItem *item = ag->m_Definition[ r ];
switch ( item->m_Type )
CLCDItem *itemLocl = ag->m_Definition[ r ];
switch ( itemLocl->m_Type )
{
default:
break;
case LCDITEM_TEXT:
{
CLCDItemText *text = static_cast< CLCDItemText * >( item );
CLCDItemText *text = static_cast< CLCDItemText * >( itemLocl );
CUtlString s;
s = text->m_OriginalText;
Replace( s, prefix, s1 );
@ -551,7 +551,7 @@ void CLCD::ShowItems_R( CLCDPage *page, unsigned int dwCurTime, CUtlVector< CLCD
// text->m_OriginalText = s;
CLCDItemText *copy = static_cast< CLCDItemText * >( page->Alloc( item->m_Type ) );
CLCDItemText *copy = static_cast< CLCDItemText * >( page->Alloc( itemLocl->m_Type ) );
*copy = *text;
copy->m_bActive = true;
copy->m_OriginalText = s;
@ -564,8 +564,8 @@ void CLCD::ShowItems_R( CLCDPage *page, unsigned int dwCurTime, CUtlVector< CLCD
break;
case LCDITEM_ICON:
{
CLCDItemIcon *icon = static_cast< CLCDItemIcon * >( item );
CLCDItemIcon *copy = static_cast< CLCDItemIcon * >( page->Alloc( item->m_Type ) );
CLCDItemIcon *icon = static_cast< CLCDItemIcon * >( itemLocl );
CLCDItemIcon *copy = static_cast< CLCDItemIcon * >( page->Alloc( itemLocl->m_Type ) );
*copy = *icon;
copy->m_bActive = true;
copy->Create( m_lcd );
@ -1186,16 +1186,16 @@ void CLCD::DumpPlayer()
C_Team *team = player->GetTeam();
if ( team )
{
CDescribeData helper( team );
helper.DumpDescription( team->GetPredDescMap() );
CDescribeData helperLocl( team );
helperLocl.DumpDescription( team->GetPredDescMap() );
}
Msg( "(playerresource)\n\n" );
if ( g_PR )
{
CDescribeData helper( g_PR );
helper.DumpDescription( g_PR->GetPredDescMap() );
CDescribeData helperLocl( g_PR );
helperLocl.DumpDescription( g_PR->GetPredDescMap() );
}
Msg( "(localplayerweapon)\n\n" );
@ -1203,8 +1203,8 @@ void CLCD::DumpPlayer()
C_BaseCombatWeapon *active = player->GetActiveWeapon();
if ( active )
{
CDescribeData helper( active );
helper.DumpDescription( active->GetPredDescMap() );
CDescribeData helperLocl( active );
helperLocl.DumpDescription( active->GetPredDescMap() );
}
Msg( "Other replacements:\n\n" );

View File

@ -21,9 +21,15 @@ static CPDumpPanel *g_pPDumpPanel = NULL;
// we pragma'd away in platform.h, so this little compiler specific hack will eliminate those warnings while
// retaining our own warning setup...ywb
#ifdef WIN32
#if _MSC_VER < 1900
#pragma warning( push )
#include <typeinfo.h>
#pragma warning( pop )
#else
#include <typeinfo>
#endif
#endif
using namespace vgui;

View File

@ -25,7 +25,9 @@
#include "tier0/icommandline.h"
#include "inputsystem/iinputsystem.h"
#include "inputsystem/ButtonCode.h"
#if _MSC_VER < 1900
#include "math.h"
#endif
#include "tier1/convar_serverbounded.h"
#include "cam_thirdperson.h"

View File

@ -119,7 +119,7 @@ entities. Each one is useful under different conditions.
#include "tier0/fasttimer.h"
#include "utllinkedlist.h"
#include "utldict.h"
#ifdef WIN32
#if defined(WIN32) && _MSC_VER < 1900
#include <typeinfo.h>
#else
#include <typeinfo>

View File

@ -6,7 +6,7 @@
//=============================================================================//
#include "cbase.h"
#include "c_baseentity.h"
#ifdef WIN32
#if defined(WIN32) && _MSC_VER < 1900
#include <typeinfo.h>
#endif
#include "tier0/vprof.h"

View File

@ -121,7 +121,7 @@ char *CHudTextMessage::BufferedLocaliseTextString( const char *msg )
char *CHudTextMessage::LookupString( const char *msg, int *msg_dest )
{
if ( !msg )
return "";
return (char*)"";
// '#' character indicates this is a reference to a string in titles.txt, and not the string itself
if ( msg[0] == '#' )

View File

@ -892,7 +892,7 @@ bool IsListeningToCommentary( void )
void CPointCommentaryNode::Spawn( void )
{
// No model specified?
char *szModel = (char *)STRING( GetModelName() );
const char *szModel = STRING( GetModelName() );
if (!szModel || !*szModel)
{
szModel = "models/extras/info_speech.mdl";

View File

@ -1272,7 +1272,7 @@ public:
#ifdef _DEBUG
void FunctionCheck( void *pFunction, const char *name );
ENTITYFUNCPTR TouchSet( ENTITYFUNCPTR func, char *name )
ENTITYFUNCPTR TouchSet( ENTITYFUNCPTR func, const char *name )
{
#ifdef GNUC
COMPILE_TIME_ASSERT( sizeof(func) == 8 );
@ -1283,7 +1283,7 @@ public:
FunctionCheck( *(reinterpret_cast<void **>(&m_pfnTouch)), name );
return func;
}
USEPTR UseSet( USEPTR func, char *name )
USEPTR UseSet( USEPTR func, const char *name )
{
#ifdef GNUC
COMPILE_TIME_ASSERT( sizeof(func) == 8 );
@ -1294,7 +1294,7 @@ public:
FunctionCheck( *(reinterpret_cast<void **>(&m_pfnUse)), name );
return func;
}
ENTITYFUNCPTR BlockedSet( ENTITYFUNCPTR func, char *name )
ENTITYFUNCPTR BlockedSet( ENTITYFUNCPTR func, const char *name )
{
#ifdef GNUC
COMPILE_TIME_ASSERT( sizeof(func) == 8 );

View File

@ -14,6 +14,13 @@
#include "sceneentity.h"
#include "particles/particles.h"
#if _MSC_VER >= 1900
#include "icommandline.h"
#endif
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
//-----------------------------------------------------------------------------
// Interface from engine to tools for manipulating entities

View File

@ -412,7 +412,7 @@ void ExplosionCreate( const Vector &center, const QAngle &angles,
CEnvExplosion *pExplosion = (CEnvExplosion*)CBaseEntity::Create( "env_explosion", center, angles, pOwner );
Q_snprintf( buf,sizeof(buf), "%3d", magnitude );
char *szKeyName = "iMagnitude";
const char *szKeyName = "iMagnitude";
char *szValue = buf;
pExplosion->KeyValue( szKeyName, szValue );

View File

@ -67,7 +67,7 @@ public: // CBaseGameSystem overrides
virtual void Shutdown();
virtual void FrameUpdatePostEntityThink();
virtual void LevelInitPostEntity();
virtual char *GetFixedCameraEntityName( void ) { return "point_viewcontrol"; }
virtual const char *GetFixedCameraEntityName( void ) { return "point_viewcontrol"; }
bool SetCameraMan( int iPlayerIndex );
int GetCameraMan() { return m_iCameraManIndex; }

View File

@ -303,7 +303,7 @@ void CNavMesh::CommandNavMergeMesh( const CCommand &args )
//--------------------------------------------------------------------------------------------------------
int NavMeshMergeAutocomplete( char const *partial, char commands[ COMMAND_COMPLETION_MAXITEMS ][ COMMAND_COMPLETION_ITEM_LENGTH ] )
{
char *commandName = "nav_merge_mesh";
const char *commandName = "nav_merge_mesh";
int numMatches = 0;
partial += Q_strlen( commandName ) + 1;
int partialLength = Q_strlen( partial );

View File

@ -7,12 +7,12 @@
#include "cbase.h"
#ifdef _WIN32
#if POSIX || _MSC_VER >= 1900
#include <typeinfo>
#elif defined(_WIN32)
#include "typeinfo.h"
// BUGBUG: typeinfo stomps some of the warning settings (in yvals.h)
#pragma warning(disable:4244)
#elif POSIX
#include <typeinfo>
#else
#error "need typeinfo defined"
#endif
@ -942,8 +942,8 @@ void CBaseEntity::PhysicsDispatchThink( BASEPTR thinkFunc )
if ( thinkLimit )
{
// calculate running time of the AI in milliseconds
float time = ( engine->Time() - startTime ) * 1000.0f;
if ( time > thinkLimit )
float flTime = ( engine->Time() - startTime ) * 1000.0f;
if ( flTime > thinkLimit )
{
#if defined( _XBOX ) && !defined( _RETAIL )
if ( vprof_think_limit.GetBool() )
@ -956,14 +956,14 @@ void CBaseEntity::PhysicsDispatchThink( BASEPTR thinkFunc )
CAI_BaseNPC *pNPC = MyNPCPointer();
if (pNPC && pNPC->GetCurSchedule())
{
pNPC->ReportOverThinkLimit( time );
pNPC->ReportOverThinkLimit( flTime );
}
else
{
#ifdef _WIN32
Msg( "%s(%s) thinking for %.02f ms!!!\n", GetClassname(), typeid(this).raw_name(), time );
Msg( "%s(%s) thinking for %.02f ms!!!\n", GetClassname(), typeid(this).raw_name(), flTime );
#elif POSIX
Msg( "%s(%s) thinking for %.02f ms!!!\n", GetClassname(), typeid(this).name(), time );
Msg( "%s(%s) thinking for %.02f ms!!!\n", GetClassname(), typeid(this).name(), flTime );
#else
#error "typeinfo"
#endif

View File

@ -25,7 +25,7 @@ public:
{
}
~CGameEventListener()
virtual ~CGameEventListener()
{
StopListeningForAllEvents();
}

View File

@ -1126,7 +1126,7 @@ float CountdownTimer::Now( void ) const
#endif
char* ReadAndAllocStringValue( KeyValues *pSub, const char *pName, const char *pFilename )
const char* ReadAndAllocStringValue( KeyValues *pSub, const char *pName, const char *pFilename )
{
const char *pValue = pSub->GetString( pName, NULL );
if ( !pValue )

View File

@ -606,7 +606,7 @@ private:
float Now( void ) const; // work-around since client header doesn't like inlined gpGlobals->curtime
};
char* ReadAndAllocStringValue( KeyValues *pSub, const char *pName, const char *pFilename = NULL );
const char* ReadAndAllocStringValue( KeyValues *pSub, const char *pName, const char *pFilename = NULL );
int UTIL_StringFieldToInt( const char *szValue, const char **pValueStrings, int iNumStrings );

View File

@ -1015,12 +1015,12 @@ CPolyhedron *ClipLinkedGeometry( GeneratePolyhedronFromPlanes_UnorderedPolygonLL
//Scan for onplane points connected to only other onplane/dead points, these points get downgraded to dead status.
{
GeneratePolyhedronFromPlanes_UnorderedPointLL *pActivePointWalk = pAllPoints;
GeneratePolyhedronFromPlanes_UnorderedPointLL *pActivePointWalkLocl = pAllPoints;
do
{
if( pActivePointWalk->pPoint->planarity == POINT_ONPLANE )
if( pActivePointWalkLocl->pPoint->planarity == POINT_ONPLANE )
{
GeneratePolyhedronFromPlanes_LineLL *pOnPlaneLineWalk = pActivePointWalk->pPoint->pConnectedLines;
GeneratePolyhedronFromPlanes_LineLL *pOnPlaneLineWalk = pActivePointWalkLocl->pPoint->pConnectedLines;
GeneratePolyhedronFromPlanes_LineLL *pStartLineWalk = pOnPlaneLineWalk;
bool bDead = true; //assume it's dead and disprove
do
@ -1047,7 +1047,7 @@ CPolyhedron *ClipLinkedGeometry( GeneratePolyhedronFromPlanes_UnorderedPolygonLL
if( bDead )
{
pActivePointWalk->pPoint->planarity = POINT_DEAD;
pActivePointWalkLocl->pPoint->planarity = POINT_DEAD;
pOnPlaneLineWalk = pStartLineWalk;
@ -1059,8 +1059,8 @@ CPolyhedron *ClipLinkedGeometry( GeneratePolyhedronFromPlanes_UnorderedPolygonLL
} while( pOnPlaneLineWalk != pStartLineWalk );
}
}
pActivePointWalk = pActivePointWalk->pNext;
} while( pActivePointWalk );
pActivePointWalkLocl = pActivePointWalkLocl->pNext;
} while( pActivePointWalkLocl );
}
#ifdef _DEBUG
PlaneCutHistory.AddToTail( &pOutwardFacingPlanes[iCurrentPlane * 4] );
@ -1337,17 +1337,17 @@ CPolyhedron *ClipLinkedGeometry( GeneratePolyhedronFromPlanes_UnorderedPolygonLL
//verify that the new point isn't sitting on top of another
{
GeneratePolyhedronFromPlanes_UnorderedPointLL *pActivePointWalk = pAllPoints;
GeneratePolyhedronFromPlanes_UnorderedPointLL *pActivePointWalkLocl = pAllPoints;
do
{
if( pActivePointWalk->pPoint != pNewPoint )
if( pActivePointWalkLocl->pPoint != pNewPoint )
{
Vector vDiff = pActivePointWalk->pPoint->ptPosition - pNewPoint->ptPosition;
Vector vDiff = pActivePointWalkLocl->pPoint->ptPosition - pNewPoint->ptPosition;
AssertMsg_DumpPolyhedron( vDiff.Length() > fOnPlaneEpsilon, "Generated a point on top of another" );
}
pActivePointWalk = pActivePointWalk->pNext;
} while( pActivePointWalk );
pActivePointWalkLocl = pActivePointWalk->pNext;
} while( pActivePointWalkLocl );
}
#endif

View File

@ -141,11 +141,11 @@ void CScratchPadGraph::UpdateTicksAndStuff( float flTime, float flValue )
// Extend the lines attached to the time labels.
for ( int i=0; i < m_nTimeLabelsDrawn; i++ )
{
float flTime = m_flTimeOrigin + m_nTimeLabelsDrawn * m_flTimeLabelEveryNSeconds;
float flTimeLocl = m_flTimeOrigin + m_nTimeLabelsDrawn * m_flTimeLabelEveryNSeconds;
m_pPad->DrawLine(
CSPVert((const Vector&) GetSamplePosition( flTime, m_flHighestValue )),
CSPVert((const Vector&) GetSamplePosition( flTime, flValue ) )
CSPVert((const Vector&) GetSamplePosition( flTimeLocl, m_flHighestValue )),
CSPVert((const Vector&) GetSamplePosition( flTimeLocl, flValue ) )
);
}
@ -158,21 +158,21 @@ void CScratchPadGraph::UpdateTicksAndStuff( float flTime, float flValue )
{
CTextParams params;
float flTime = m_flTimeOrigin + m_nTimeLabelsDrawn * m_flTimeLabelEveryNSeconds;
float flTimeLocl = m_flTimeOrigin + m_nTimeLabelsDrawn * m_flTimeLabelEveryNSeconds;
params.m_bSolidBackground = true;
params.m_vPos = GetSamplePosition( flTime, m_flValueOrigin-5 );
params.m_vPos = GetSamplePosition( flTimeLocl, m_flValueOrigin-5 );
params.m_bTwoSided = true;
char str[512];
Q_snprintf( str, sizeof( str ), "time: %.2f", flTime );
Q_snprintf( str, sizeof( str ), "time: %.2f", flTimeLocl );
m_pPad->DrawText( str, params );
// Now draw the vertical line for the value..
m_pPad->DrawLine(
CSPVert( (const Vector&)GetSamplePosition( flTime, m_flValueOrigin ) ),
CSPVert( (const Vector&)GetSamplePosition( flTime, m_flHighestValue ) )
CSPVert( (const Vector&)GetSamplePosition( flTimeLocl, m_flValueOrigin ) ),
CSPVert( (const Vector&)GetSamplePosition( flTimeLocl, m_flHighestValue ) )
);

View File

@ -21,7 +21,7 @@ enum NormalDecodeMode_t
};
// Forward declaration
#ifdef _WIN32
#if defined(_WIN32) && _MSC_VER < 1900
typedef enum _D3DFORMAT D3DFORMAT;
#endif
@ -103,7 +103,7 @@ enum ImageFormat
NUM_IMAGE_FORMATS
};
#if defined( POSIX ) || defined( DX_TO_GL_ABSTRACTION )
#if defined( POSIX ) || defined( DX_TO_GL_ABSTRACTION ) || _MSC_VER >= 1900
typedef enum _D3DFORMAT
{
D3DFMT_INDEX16,

View File

@ -933,8 +933,8 @@ static void CalcVirtualAnimation( virtualmodel_t *pVModel, const CStudioHdr *pSt
{
if (pStudioHdr->boneFlags(i) & boneMask)
{
int j = pSeqGroup->boneMap[i];
if (j >= 0 && pweight[j] > 0.0f)
int l = pSeqGroup->boneMap[i];
if (l >= 0 && pweight[l] > 0.0f)
{
if (animdesc.flags & STUDIO_DELTA)
{
@ -943,13 +943,13 @@ static void CalcVirtualAnimation( virtualmodel_t *pVModel, const CStudioHdr *pSt
}
else if (pSeqLinearBones)
{
q[i] = pSeqLinearBones->quat(j);
pos[i] = pSeqLinearBones->pos(j);
q[i] = pSeqLinearBones->quat(l);
pos[i] = pSeqLinearBones->pos(l);
}
else
{
q[i] = pSeqbone[j].quat;
pos[i] = pSeqbone[j].pos;
q[i] = pSeqbone[l].quat;
pos[i] = pSeqbone[l].pos;
}
#ifdef STUDIO_ENABLE_PERF_COUNTERS
pStudioHdr->m_nPerfUsedBones++;
@ -997,10 +997,9 @@ static void CalcVirtualAnimation( virtualmodel_t *pVModel, const CStudioHdr *pSt
matrix3x4_t *boneToWorld = g_MatrixPool.Alloc();
CBoneBitList boneComputed;
int i;
for (i = 0; i < animdesc.numlocalhierarchy; i++)
for (int l = 0; i < animdesc.numlocalhierarchy; i++)
{
mstudiolocalhierarchy_t *pHierarchy = animdesc.pHierarchy( i );
mstudiolocalhierarchy_t *pHierarchy = animdesc.pHierarchy( l );
if ( !pHierarchy )
break;
@ -1141,10 +1140,9 @@ static void CalcAnimation( const CStudioHdr *pStudioHdr, Vector *pos, Quaternion
matrix3x4_t *boneToWorld = g_MatrixPool.Alloc();
CBoneBitList boneComputed;
int i;
for (i = 0; i < animdesc.numlocalhierarchy; i++)
for (int j = 0; j < animdesc.numlocalhierarchy; j++)
{
mstudiolocalhierarchy_t *pHierarchy = animdesc.pHierarchy( i );
mstudiolocalhierarchy_t *pHierarchy = animdesc.pHierarchy( j );
if ( !pHierarchy )
break;
@ -5610,9 +5608,9 @@ bool Studio_AnimPosition( mstudioanimdesc_t *panim, float flCycle, Vector &vecPo
vecAngle.y = vecAngle.y * (1 - f) + pmove->angle * f;
if (iLoops != 0)
{
mstudiomovement_t *pmove = panim->pMovement( panim->nummovements - 1 );
vecPos = vecPos + iLoops * pmove->position;
vecAngle.y = vecAngle.y + iLoops * pmove->angle;
mstudiomovement_t *pmoveLocl = panim->pMovement( panim->nummovements - 1 );
vecPos = vecPos + iLoops * pmoveLocl->position;
vecAngle.y = vecAngle.y + iLoops * pmoveLocl->angle;
}
return true;
}

View File

@ -134,7 +134,7 @@ void* SendProxy_LengthTable( const SendProp *pProp, const void *pStructBase, con
// Note: you have to be DILIGENT about calling NetworkStateChanged whenever an element in your CUtlVector changes
// since CUtlVector doesn't do this automatically.
SendProp SendPropUtlVector(
char *pVarName, // Use SENDINFO_UTLVECTOR to generate these 4.
const char *pVarName, // Use SENDINFO_UTLVECTOR to generate these 4.
int offset, // Used to generate pData in the function specified in varProxy.
int sizeofVar, // The size of each element in the utlvector.
EnsureCapacityFn ensureFn, // This is the value returned for elements out of the array's current range.

View File

@ -43,7 +43,7 @@
// )
//
SendProp SendPropUtlVector(
char *pVarName, // Use SENDINFO_UTLVECTOR to generate these first 4 parameters.
const char *pVarName, // Use SENDINFO_UTLVECTOR to generate these first 4 parameters.
int offset,
int sizeofVar,
EnsureCapacityFn ensureFn,

View File

@ -138,6 +138,10 @@ void ConnectHaptics(CreateInterfaceFn appFactory)
HookHapticMessages();
}
// deleting haptics results in a warning about deleting something with a non-virtual destructor
// big yikes but we can't do anything about it as it's accessed via interface
#pragma warning (disable: 5205)
void DisconnectHaptics()
{
haptics->ShutdownHaptics();

View File

@ -154,7 +154,7 @@ class CPositionInterpolator_Linear : public IPositionInterpolator
{
public:
virtual void Release();
virtual void GetDetails( char **outName, int *outMinKeyReq, int *outMaxKeyReq );
virtual void GetDetails( const char **outName, int *outMinKeyReq, int *outMaxKeyReq );
virtual void SetKeyPosition( int keyNum, Vector const &vPos );
virtual void InterpolatePosition( float time, Vector &vOut );
virtual bool ProcessKey( char const *pName, char const *pValue ) { return false; }
@ -171,7 +171,7 @@ void CPositionInterpolator_Linear::Release()
{
}
void CPositionInterpolator_Linear::GetDetails( char **outName, int *outMinKeyReq, int *outMaxKeyReq )
void CPositionInterpolator_Linear::GetDetails( const char **outName, int *outMinKeyReq, int *outMaxKeyReq )
{
*outName = "Linear";
*outMinKeyReq = 0;
@ -201,7 +201,7 @@ class CPositionInterpolator_CatmullRom : public IPositionInterpolator
{
public:
virtual void Release();
virtual void GetDetails( char **outName, int *outMinKeyReq, int *outMaxKeyReq );
virtual void GetDetails( const char **outName, int *outMinKeyReq, int *outMaxKeyReq );
virtual void SetKeyPosition( int keyNum, Vector const &vPos );
virtual void InterpolatePosition( float time, Vector &vOut );
virtual bool ProcessKey( char const *pName, char const *pValue ) { return false; }
@ -218,7 +218,7 @@ void CPositionInterpolator_CatmullRom::Release()
{
}
void CPositionInterpolator_CatmullRom::GetDetails( char **outName, int *outMinKeyReq, int *outMaxKeyReq )
void CPositionInterpolator_CatmullRom::GetDetails( const char **outName, int *outMinKeyReq, int *outMaxKeyReq )
{
*outName = "Catmull-Rom Spline";
*outMinKeyReq = -1;
@ -282,7 +282,7 @@ public:
CPositionInterpolator_Rope();
virtual void Release();
virtual void GetDetails( char **outName, int *outMinKeyReq, int *outMaxKeyReq );
virtual void GetDetails( const char **outName, int *outMinKeyReq, int *outMaxKeyReq );
virtual void SetKeyPosition( int keyNum, Vector const &vPos );
virtual void InterpolatePosition( float time, Vector &vOut );
virtual bool ProcessKey( char const *pName, char const *pValue );
@ -319,7 +319,7 @@ void CPositionInterpolator_Rope::Release()
delete this;
}
void CPositionInterpolator_Rope::GetDetails( char **outName, int *outMinKeyReq, int *outMaxKeyReq )
void CPositionInterpolator_Rope::GetDetails( const char **outName, int *outMinKeyReq, int *outMaxKeyReq )
{
*outName = "Rope";
*outMinKeyReq = 0;
@ -433,7 +433,7 @@ typedef void (*RotationInterpolatorFunc_t)(float time, Quaternion &outRot);
typedef struct
{
char *szName;
const char *szName;
RotationInterpolatorFunc_t pFunc;
// defines the range of keys this interpolator needs to function
@ -458,7 +458,7 @@ int Motion_GetNumberOfRotationInterpolators( void )
return ARRAYSIZE(g_RotationInterpolators);
}
bool Motion_GetRotationInterpolatorDetails( int rotInterpNum, char **outName, int *outMinKeyReq, int *outMaxKeyReq )
bool Motion_GetRotationInterpolatorDetails( int rotInterpNum, const char **outName, int *outMinKeyReq, int *outMaxKeyReq )
{
if ( rotInterpNum < 0 || rotInterpNum >= Motion_GetNumberOfRotationInterpolators() )
{

View File

@ -14,7 +14,7 @@ class IPositionInterpolator
public:
virtual void Release() = 0;
virtual void GetDetails( char **outName, int *outMinKeyReq, int *outMaxKeyReq ) = 0;
virtual void GetDetails( const char **outName, int *outMinKeyReq, int *outMaxKeyReq ) = 0;
virtual void SetKeyPosition( int keyNum, Vector const &vPos ) = 0;
virtual void InterpolatePosition( float time, Vector &vOut ) = 0;
@ -34,7 +34,7 @@ IPositionInterpolator* Motion_GetPositionInterpolator( int interpNum );
// Rotation interpolators.
int Motion_GetNumberOfRotationInterpolators( void );
bool Motion_GetRotationInterpolatorDetails( int rotInterpNum, char **outName, int *outMinKeyReq, int *outMaxKeyReq );
bool Motion_GetRotationInterpolatorDetails( int rotInterpNum, const char **outName, int *outMinKeyReq, int *outMaxKeyReq );
bool Motion_InterpolateRotation( float time, int interpFuncNum, Quaternion &outQuatRotation );
bool Motion_SetKeyAngles( int keyNum, Quaternion &quatAngles );

View File

@ -72,6 +72,10 @@ public:
void Init( char const* pTexture, const char *pTextureGroupName, bool bComplain = true );
void InitProceduralTexture( const char *pTextureName, const char *pTextureGroupName, int w, int h, ImageFormat fmt, int nFlags );
void InitRenderTarget( int w, int h, RenderTargetSizeMode_t sizeMode, ImageFormat fmt, MaterialRenderTargetDepth_t depth, bool bHDR, char *pStrOptionalName = NULL );
void InitRenderTarget(int w, int h, RenderTargetSizeMode_t sizeMode, ImageFormat fmt, MaterialRenderTargetDepth_t depth, bool bHDR, const char* pStrOptionalName = NULL)
{
InitRenderTarget(w, h, sizeMode, fmt, depth, bHDR, const_cast<char*>(pStrOptionalName));
}
#if defined( _X360 )
// used when RT coupling is disparate (texture is DDR based, surface is EDRAM based)
void InitRenderTargetTexture( int width, int height, RenderTargetSizeMode_t sizeMode, ImageFormat fmt, MaterialRenderTargetDepth_t depth, bool bHDR, char *pStrOptionalName = NULL );

View File

@ -744,9 +744,9 @@ private:
const type* Base() const { return m_Value; } \
int Count() const { return count; } \
protected: \
inline void NetworkStateChanged( int index ) \
inline void NetworkStateChanged( int _index ) \
{ \
CHECK_USENETWORKVARS ((ThisClass*)(((char*)this) - MyOffsetOf(ThisClass,name)))->stateChangedFn( &m_Value[index] ); \
CHECK_USENETWORKVARS ((ThisClass*)(((char*)this) - MyOffsetOf(ThisClass,name)))->stateChangedFn( &m_Value[_index] ); \
} \
type m_Value[count]; \
}; \

View File

@ -181,7 +181,7 @@ class CGameSaveRestoreInfo
{
public:
CGameSaveRestoreInfo()
: tableCount( 0 ), pTable( 0 ), m_pCurrentEntity( 0 ), m_EntityToIndex( 1024 )
: m_iTableCount( 0 ), m_pTable( 0 ), m_pCurrentEntity( 0 ), m_EntityToIndex( 1024 )
{
memset( &levelInfo, 0, sizeof( levelInfo ) );
modelSpaceOffset.Init( 0, 0, 0 );
@ -189,8 +189,8 @@ public:
void InitEntityTable( entitytable_t *pNewTable = NULL, int size = 0 )
{
pTable = pNewTable;
tableCount = size;
m_pTable = pNewTable;
m_iTableCount = size;
for ( int i = 0; i < NumEntities(); i++ )
{
@ -200,17 +200,17 @@ public:
entitytable_t *DetachEntityTable()
{
entitytable_t *pReturn = pTable;
pTable = NULL;
tableCount = 0;
entitytable_t *pReturn = m_pTable;
m_pTable = NULL;
m_iTableCount = 0;
return pReturn;
}
CBaseEntity *GetCurrentEntityContext() { return m_pCurrentEntity; }
void SetCurrentEntityContext(CBaseEntity *pEntity) { m_pCurrentEntity = pEntity; }
int NumEntities() { return tableCount; }
entitytable_t *GetEntityInfo( int i ) { return (pTable + i); }
int NumEntities() { return m_iTableCount; }
entitytable_t *GetEntityInfo( int i ) { return (m_pTable + i); }
float GetBaseTime() const { return levelInfo.time; }
Vector GetLandmark() const { return ( levelInfo.fUseLandmark ) ? levelInfo.vecLandmarkOffset : vec3_origin; }
@ -218,13 +218,13 @@ public:
{
#ifdef GAME_DLL
int i;
entitytable_t *pTable;
entitytable_t *m_pTable;
int nEntities = NumEntities();
for ( i = 0; i < nEntities; i++ )
{
pTable = GetEntityInfo( i );
m_EntityToIndex.Insert( CHashElement( pTable->hEnt.Get(), i ) );
m_pTable = GetEntityInfo( i );
m_EntityToIndex.Insert( CHashElement( m_pTable->hEnt.Get(), i ) );
}
#endif
}
@ -269,8 +269,8 @@ public:
Vector modelSpaceOffset; // used only for globaly entity brushes modelled in different coordinate systems.
private:
int tableCount; // Number of elements in the entity table
entitytable_t *pTable; // Array of entitytable_t elements (1 for each entity)
int m_iTableCount; // Number of elements in the entity table
entitytable_t *m_pTable; // Array of entitytable_t elements (1 for each entity)
CBaseEntity *m_pCurrentEntity; // only valid during the save functions of this entity, NULL otherwise

View File

@ -51,7 +51,7 @@ public:
m_pCachedRenderData = NULL;
}
~CBaseCommand()
virtual ~CBaseCommand()
{
ReleaseCachedRenderData();
}

View File

@ -508,7 +508,7 @@ void CSentence::ParseWords( CUtlBuffer& buf )
// Parse phoneme
int code;
char phonemename[ 256 ];
float start, end;
float startLocl, endLocl;
float volume;
code = atoi( token );
@ -516,9 +516,9 @@ void CSentence::ParseWords( CUtlBuffer& buf )
buf.GetString( token );
Q_strncpy( phonemename, token, sizeof( phonemename ) );
buf.GetString( token );
start = atof( token );
startLocl = atof( token );
buf.GetString( token );
end = atof( token );
endLocl = atof( token );
buf.GetString( token );
volume = atof( token );
@ -526,8 +526,8 @@ void CSentence::ParseWords( CUtlBuffer& buf )
assert( pt );
pt->SetPhonemeCode( code );
pt->SetTag( phonemename );
pt->SetStartTime( start );
pt->SetEndTime( end );
pt->SetStartTime( startLocl );
pt->SetEndTime( endLocl );
AddPhonemeTag( wt, pt );
}
@ -1304,9 +1304,9 @@ void CSentence::Append( float starttime, const CSentence& src )
// Offset times
int c = newWord->m_Phonemes.Count();
for ( int i = 0; i < c; ++i )
for ( int j = 0; j < c; ++j )
{
CPhonemeTag *tag = newWord->m_Phonemes[ i ];
CPhonemeTag *tag = newWord->m_Phonemes[ j ];
tag->AddStartTime( starttime );
tag->AddEndTime( starttime );
}

View File

@ -516,7 +516,7 @@ void studiohdr_t::SetAttachmentBone( int iAttachment, int iBone )
// Purpose:
//-----------------------------------------------------------------------------
char *studiohdr_t::pszNodeName( int iNode )
const char *studiohdr_t::pszNodeName( int iNode )
{
if (numincludemodels == 0)
{
@ -565,7 +565,7 @@ int studiohdr_t::GetActivityListVersion( void )
virtualmodel_t *pVModel = (virtualmodel_t *)GetVirtualModel();
Assert( pVModel );
int version = activitylistversion;
int versionLocl = activitylistversion;
int i;
for (i = 1; i < pVModel->m_group.Count(); i++)
@ -575,15 +575,15 @@ int studiohdr_t::GetActivityListVersion( void )
Assert( pStudioHdr );
version = min( version, pStudioHdr->activitylistversion );
versionLocl = min( versionLocl, pStudioHdr->activitylistversion );
}
return version;
return versionLocl;
}
void studiohdr_t::SetActivityListVersion( int version ) const
void studiohdr_t::SetActivityListVersion( int iVersion ) const
{
activitylistversion = version;
activitylistversion = iVersion;
if (numincludemodels == 0)
{
@ -601,7 +601,7 @@ void studiohdr_t::SetActivityListVersion( int version ) const
Assert( pStudioHdr );
pStudioHdr->SetActivityListVersion( version );
pStudioHdr->SetActivityListVersion( iVersion );
}
}
@ -1152,7 +1152,7 @@ void CStudioHdr::SetAttachmentBone( int iAttachment, int iBone )
// Purpose:
//-----------------------------------------------------------------------------
char *CStudioHdr::pszNodeName( int iNode )
const char *CStudioHdr::pszNodeName( int iNode )
{
if (m_pVModel == NULL)
{
@ -1433,9 +1433,9 @@ void CStudioHdr::RunFlexRules( const float *src, float *dest )
{
int m = pops->d.index;
int km = k - m;
for ( int i = km + 1; i < k; ++i )
for ( int l = km + 1; l < k; ++l )
{
stack[ km ] *= stack[ i ];
stack[ km ] *= stack[ l ];
}
k = k - m + 1;
}
@ -1445,9 +1445,9 @@ void CStudioHdr::RunFlexRules( const float *src, float *dest )
int m = pops->d.index;
int km = k - m;
float dv = stack[ km ];
for ( int i = km + 1; i < k; ++i )
for ( int l = km + 1; l < k; ++l )
{
dv *= stack[ i ];
dv *= stack[ l ];
}
stack[ km - 1 ] *= 1.0f - dv;
k -= m;
@ -1701,7 +1701,7 @@ void CStudioHdr::CActivityToSequenceMapping::Initialize( CStudioHdr * __restrict
// This stack may potentially grow very large; so if you have problems with it,
// go to a utlmap or similar structure.
unsigned int allocsize = (topActivity + 1) * sizeof(int);
#define ALIGN_VALUE( val, alignment ) ( ( val + alignment - 1 ) & ~( alignment - 1 ) ) // need macro for constant expression
//#define ALIGN_VALUE( val, alignment ) ( ( val + alignment - 1 ) & ~( alignment - 1 ) ) // need macro for constant expression
allocsize = ALIGN_VALUE(allocsize,16);
int * __restrict seqsPerAct = static_cast<int *>(stackalloc(allocsize));
memset(seqsPerAct, 0, allocsize);

View File

@ -2137,7 +2137,7 @@ struct studiohdr_t
int GetSequenceActivity( int iSequence );
void SetSequenceActivity( int iSequence, int iActivity );
int GetActivityListVersion( void );
void SetActivityListVersion( int version ) const;
void SetActivityListVersion( int iVersion ) const;
int GetEventListVersion( void );
void SetEventListVersion( int version );
@ -2185,7 +2185,7 @@ struct studiohdr_t
//public:
int EntryNode( int iSequence );
int ExitNode( int iSequence );
char *pszNodeName( int iNode );
const char *pszNodeName( int iNode );
int GetTransition( int iFrom, int iTo ) const;
int numflexdesc;
@ -2395,7 +2395,7 @@ public:
int EntryNode( int iSequence );
int ExitNode( int iSequence );
char *pszNodeName( int iNode );
const char *pszNodeName( int iNode );
// FIXME: where should this one be?
int GetTransition( int iFrom, int iTo ) const;

View File

@ -15,7 +15,9 @@
#include "basetypes.h"
#include "dbgflag.h"
#include "platform.h"
#if _MSC_VER < 1900
#include <math.h>
#endif
#include <stdio.h>
#include <stdarg.h>
@ -247,10 +249,10 @@ DBG_INTERFACE struct SDL_Window * GetAssertDialogParent();
if (!(_exp)) \
{ \
_SpewInfo( SPEW_ASSERT, __TFILE__, __LINE__ ); \
SpewRetval_t ret = _SpewMessage("%s", static_cast<const char*>( _msg )); \
SpewRetval_t _ret = _SpewMessage("%s", static_cast<const char*>( _msg )); \
CallAssertFailedNotifyFunc( __TFILE__, __LINE__, _msg ); \
_executeExp; \
if ( ret == SPEW_DEBUGGER) \
if ( _ret == SPEW_DEBUGGER) \
{ \
if ( !ShouldUseNewAssertDialog() || DoNewAssertDialog( __TFILE__, __LINE__, _msg ) ) \
{ \

View File

@ -382,7 +382,12 @@ public:
#pragma warning(disable:4290)
#pragma warning(push)
#if _MSC_VER < 1900
#include <typeinfo.h>
#else
#include <typeinfo>
#endif
// MEM_DEBUG_CLASSNAME is opt-in.
// Note: typeid().name() is not threadsafe, so if the project needs to access it in multiple threads

View File

@ -37,7 +37,7 @@
#include "commonmacros.h"
#include "memalloc.h"
#if defined(USE_MEM_DEBUG)
#if USE_MEM_DEBUG
#if defined( POSIX )
#define _NORMAL_BLOCK 1
@ -91,7 +91,7 @@ inline void *MemAlloc_InlineCallocMemset( void *pMem, size_t nCount, size_t nEle
}
#endif
#define calloc(c, s) MemAlloc_InlineCallocMemset(malloc(c*s), c, s)
#define calloc(c, s) MemAlloc_InlineCallocMemset(malloc((c)*(s)), (c), (s))
#define free(p) g_pMemAlloc->Free( p )
#define _msize(p) g_pMemAlloc->GetSize( p )
#define _expand(p, s) _expand_NoLongerSupported(p, s)
@ -99,7 +99,7 @@ inline void *MemAlloc_InlineCallocMemset( void *pMem, size_t nCount, size_t nEle
// --------------------------------------------------------
// Debug path
#if defined(USE_MEM_DEBUG)
#if USE_MEM_DEBUG
#define malloc(s) g_pMemAlloc->Alloc( s, __FILE__, __LINE__)
#define realloc(p, s) g_pMemAlloc->Realloc( p, s, __FILE__, __LINE__ )
@ -231,7 +231,7 @@ inline wchar_t *MemAlloc_WcStrDup(const wchar_t *pString)
#else
#if defined(USE_MEM_DEBUG)
#if USE_MEM_DEBUG
#ifndef _STATIC_LINKED
#pragma message ("Note: file includes crtdbg.h directly, therefore will cannot use memdbgon.h in non-debug build")
#else

View File

@ -40,9 +40,17 @@
#define __cdecl
#endif
#undef _malloc_dbg
#undef _calloc_dbg
#undef _free_dbg
#undef _CrtSetCheckCount
#undef _CrtGetCheckCount
#undef _CrtSetDebugFillThreshold
#if defined( _WIN32 ) && !defined( _X360 )
const char *MakeModuleFileName()
{
#if _MSC_VER < 1900
if ( g_pMemAlloc->IsDebugHeap() )
{
char *pszModuleName = (char *)HeapAlloc( GetProcessHeap(), 0, MAX_PATH ); // small leak, debug only
@ -65,27 +73,36 @@ const char *MakeModuleFileName()
return pszModuleName;
}
#endif
return NULL;
}
static void *AllocUnattributed( size_t nSize )
{
#if _MSC_VER < 1900
static const char *pszOwner = MakeModuleFileName();
if ( !pszOwner )
return g_pMemAlloc->Alloc(nSize);
else
return g_pMemAlloc->Alloc(nSize, pszOwner, 0);
#else
return g_pMemAlloc->Alloc(nSize);
#endif
}
static void *ReallocUnattributed( void *pMem, size_t nSize )
{
#if _MSC_VER < 1900
static const char *pszOwner = MakeModuleFileName();
if ( !pszOwner )
return g_pMemAlloc->Realloc(pMem, nSize);
else
return g_pMemAlloc->Realloc(pMem, nSize, pszOwner, 0);
#else
return g_pMemAlloc->Realloc(pMem, nSize);
#endif
}
#else
@ -108,6 +125,9 @@ inline void *ReallocUnattributed( void *pMem, size_t nSize )
// this magic only works under win32
// under linux this malloc() overrides the libc malloc() and so we
// end up in a recursion (as g_pMemAlloc->Alloc() calls malloc)
#if _MSC_VER >= 1900 && !defined(_CRTNOALIAS)
#define _CRTNOALIAS
#endif
#if _MSC_VER >= 1400
#define ALLOC_CALL _CRTNOALIAS _CRTRESTRICT
#define FREE_CALL _CRTNOALIAS
@ -155,6 +175,11 @@ void* __cdecl _malloc_base( size_t nSize )
{
return AllocUnattributed( nSize );
}
#elif _MSC_VER >= 1900
__declspec(restrict) void* _malloc_base(size_t nSize)
{
return AllocUnattributed(nSize);
}
#else
void *_malloc_base( size_t nSize )
{
@ -162,24 +187,47 @@ void *_malloc_base( size_t nSize )
}
#endif
#if _MSC_VER >= 1900
__declspec(restrict) void* _calloc_base(size_t count, size_t nSize)
{
void* pMem = AllocUnattributed(count * nSize);
memset(pMem, 0, count * nSize);
return pMem;
}
#else
void *_calloc_base( size_t nSize )
{
void *pMem = AllocUnattributed( nSize );
memset(pMem, 0, nSize);
return pMem;
}
#endif
#if _MSC_VER >= 1900
__declspec(restrict) void* _realloc_base(void* pMem, size_t nSize)
{
return ReallocUnattributed(pMem, nSize);
}
#else
void *_realloc_base( void *pMem, size_t nSize )
{
return ReallocUnattributed( pMem, nSize );
}
#endif
#if _MSC_VER >= 1900
__declspec(restrict) void* _recalloc_base(void* pMem, size_t count, size_t nSize)
{
return _recalloc(pMem, count, nSize);
}
#else
void *_recalloc_base( void *pMem, size_t nSize )
{
void *pMemOut = ReallocUnattributed( pMem, nSize );
memset(pMemOut, 0, nSize);
return pMemOut;
}
#endif
void _free_base( void *pMem )
{
@ -200,7 +248,11 @@ void * __cdecl _malloc_crt(size_t size)
void * __cdecl _calloc_crt(size_t count, size_t size)
{
#if _MSC_VER >= 1900
return _calloc_base(count, size);
#else
return _calloc_base( count * size );
#endif
}
void * __cdecl _realloc_crt(void *ptr, size_t size)
@ -210,14 +262,23 @@ void * __cdecl _realloc_crt(void *ptr, size_t size)
void * __cdecl _recalloc_crt(void *ptr, size_t count, size_t size)
{
#if _MSC_VER >= 1900
return _recalloc_base(ptr, count, size);
#else
return _recalloc_base( ptr, size * count );
#endif
}
ALLOC_CALL void * __cdecl _recalloc ( void * memblock, size_t count, size_t size )
{
void *pMem = ReallocUnattributed( memblock, size * count );
memset( pMem, 0, size * count );
return pMem;
const size_t oldSize = _msize(memblock);
const size_t newSize = count * size;
void* pMemOut = ReallocUnattributed(memblock, newSize);
if (newSize > oldSize)
memset(((char*)pMemOut) + oldSize, 0, newSize - oldSize);
return pMemOut;
}
size_t _msize_base( void *pMem )
@ -485,6 +546,7 @@ void *__cdecl _calloc_dbg_impl( size_t nNum, size_t nSize, int nBlockUse,
return _calloc_dbg( nNum, nSize, nBlockUse, szFileName, nLine );
}
#ifdef DEBUG
void *__cdecl _realloc_dbg( void *pMem, size_t nNewSize, int nBlockUse,
const char *pFileName, int nLine )
{
@ -498,6 +560,7 @@ void *__cdecl _expand_dbg( void *pMem, size_t nNewSize, int nBlockUse,
Assert( 0 );
return NULL;
}
#endif
void __cdecl _free_dbg( void *pMem, int nBlockUse )
{
@ -505,6 +568,7 @@ void __cdecl _free_dbg( void *pMem, int nBlockUse )
g_pMemAlloc->Free(pMem);
}
#ifdef DEBUG
size_t __cdecl _msize_dbg( void *pMem, int nBlockUse )
{
#ifdef _WIN32
@ -514,6 +578,7 @@ size_t __cdecl _msize_dbg( void *pMem, int nBlockUse )
return 0;
#endif
}
#endif
#ifdef _WIN32
@ -614,6 +679,7 @@ ALLOC_CALL void * __cdecl _aligned_offset_recalloc( void * memblock, size_t coun
extern "C"
{
#ifdef DEBUG
int _CrtDumpMemoryLeaks(void)
{
return 0;
@ -628,11 +694,25 @@ int _CrtSetDbgFlag( int nNewFlag )
{
return g_pMemAlloc->CrtSetDbgFlag( nNewFlag );
}
#endif
// 64-bit port.
#define AFNAME(var) __p_ ## var
#define AFRET(var) &var
#if _MSC_VER >= 1900
int* __cdecl __p__crtDbgFlag(void)
{
static int dummy = _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF;
return &dummy;
}
long* __cdecl __p__crtBreakAlloc(void)
{
static long dummy = 0;
return &dummy;
}
#else
int _crtDbgFlag = _CRTDBG_ALLOC_MEM_DF;
int* AFNAME(_crtDbgFlag)(void)
{
@ -644,12 +724,14 @@ long* AFNAME(_crtBreakAlloc) (void)
{
return AFRET(_crtBreakAlloc);
}
#endif
void __cdecl _CrtSetDbgBlockType( void *pMem, int nBlockUse )
{
DebuggerBreak();
}
#ifdef DEBUG
_CRT_ALLOC_HOOK __cdecl _CrtSetAllocHook( _CRT_ALLOC_HOOK pfnNewHook )
{
DebuggerBreak();
@ -710,13 +792,14 @@ void __cdecl _CrtDoForAllClientObjects( void (*pfn)(void *, void *), void * pCon
{
DebuggerBreak();
}
#endif
//-----------------------------------------------------------------------------
// Methods in dbgrpt.cpp
//-----------------------------------------------------------------------------
long _crtAssertBusy = -1;
#ifdef DEBUG
int __cdecl _CrtSetReportMode( int nReportType, int nReportMode )
{
return g_pMemAlloc->CrtSetReportMode( nReportType, nReportMode );
@ -731,6 +814,7 @@ _CRT_REPORT_HOOK __cdecl _CrtSetReportHook( _CRT_REPORT_HOOK pfnNewHook )
{
return (_CRT_REPORT_HOOK)g_pMemAlloc->CrtSetReportHook( pfnNewHook );
}
#endif
int __cdecl _CrtDbgReport( int nRptType, const char * szFile,
int nLine, const char * szModule, const char * szFormat, ... )
@ -863,7 +947,7 @@ ErrorHandlerRegistrar::ErrorHandlerRegistrar()
_set_invalid_parameter_handler( VInvalidParameterHandler );
}
#if defined( _DEBUG )
#if 0 // defined( _DEBUG )
// wrapper which passes no debug info; not available in debug
#ifndef SUPPRESS_INVALID_PARAMETER_NO_INFO
@ -887,21 +971,41 @@ int __cdecl __crtMessageWindowW( int nRptType, const wchar_t * szFile, const wch
int __cdecl _CrtDbgReportV( int nRptType, const wchar_t *szFile, int nLine,
const wchar_t *szModule, const wchar_t *szFormat, va_list arglist )
{
Assert(0);
wchar_t buffer[256];
vswprintf(buffer, 256, szFormat, arglist);
DevWarning("%ls", buffer);
return 0;
}
int __cdecl _CrtDbgReportW( int nRptType, const wchar_t *szFile, int nLine,
const wchar_t *szModule, const wchar_t *szFormat, ...)
{
Assert(0);
wchar_t buffer[256];
va_list args;
va_start(args, szFormat);
vswprintf(buffer, 256, szFormat, args);
va_end(args);
DevWarning("%ls", buffer);
return 0;
}
#if _MSC_VER >= 1900
int __cdecl _VCrtDbgReportA(int nRptType, void* returnAddress, const char* szFile, int nLine,
const char* szModule, const char* szFormat, va_list arglist)
#else
int __cdecl _VCrtDbgReportA( int nRptType, const wchar_t * szFile, int nLine,
const wchar_t * szModule, const wchar_t * szFormat, va_list arglist )
#endif
{
Assert(0);
#if _MSC_VER >= 1900
char buffer[256];
vsnprintf(buffer, 256, szFormat, arglist);
DevWarning("%s", buffer);
#else
wchar_t buffer[256];
vswprintf(buffer, 256, szFormat, arglist);
DevWarning("%ls", buffer);
#endif // _MSC_VER >= 1900
return 0;
}
@ -927,13 +1031,12 @@ extern "C" int __cdecl _CrtGetCheckCount( void )
return __crtDebugCheckCount;
}
#ifdef DEBUG
// aligned offset debug
extern "C" void * __cdecl _aligned_offset_recalloc_dbg( void * memblock, size_t count, size_t size, size_t align, size_t offset, const char * f_name, int line_n )
{
Assert( IsPC() || 0 );
void *pMem = ReallocUnattributed( memblock, size * count );
memset( pMem, 0, size * count );
return pMem;
return ReallocUnattributed(memblock, size * count);
}
extern "C" void * __cdecl _aligned_recalloc_dbg( void *memblock, size_t count, size_t size, size_t align, const char * f_name, int line_n )
@ -950,12 +1053,16 @@ _CRT_REPORT_HOOK __cdecl _CrtGetReportHook( void )
{
return NULL;
}
#endif // DEBUG
#endif
#ifdef DEBUG
int __cdecl _CrtReportBlockType(const void * pUserData)
{
return 0;
}
#endif
} // end extern "C"
@ -995,14 +1102,14 @@ void * __cdecl _heap_alloc_dbg( size_t nSize, int nBlockUse, const char * szFile
static void * __cdecl realloc_help( void * pUserData, size_t * pnNewSize, int nBlockUse,const char * szFileName,
int nLine, int fRealloc )
{
assert(0); // Shouldn't be needed
Assert(0); // Shouldn't be needed
return NULL;
}
#else
static void * __cdecl realloc_help( void * pUserData, size_t nNewSize, int nBlockUse, const char * szFileName,
int nLine, int fRealloc)
{
assert(0); // Shouldn't be needed
Assert(0); // Shouldn't be needed
return NULL;
}
#endif
@ -1018,11 +1125,13 @@ void __cdecl _free_dbg_nolock( void * pUserData, int nBlockUse)
_free_dbg(pUserData, 0);
}
#ifdef DEBUG
_CRT_ALLOC_HOOK __cdecl _CrtGetAllocHook ( void)
{
assert(0);
Assert(0);
return NULL;
}
#endif
static int __cdecl CheckBytes( unsigned char * pb, unsigned char bCheck, size_t nSize)
{
@ -1030,12 +1139,13 @@ static int __cdecl CheckBytes( unsigned char * pb, unsigned char bCheck, size_t
return bOkay;
}
#ifdef DEBUG
_CRT_DUMP_CLIENT __cdecl _CrtGetDumpClient ( void)
{
assert(0);
Assert(0);
return NULL;
}
#endif
#if _MSC_VER >= 1400
static void __cdecl _printMemBlockData( _locale_t plocinfo, _CrtMemBlockHeader * pHead)
@ -1046,6 +1156,8 @@ static void __cdecl _CrtMemDumpAllObjectsSince_stat( const _CrtMemState * state,
{
}
#endif
#if defined(DEBUG) && _MSC_VER >= 1900
void * __cdecl _aligned_malloc_dbg( size_t size, size_t align, const char * f_name, int line_n)
{
return _aligned_malloc(size, align);
@ -1073,16 +1185,19 @@ void __cdecl _aligned_free_dbg( void * memblock)
{
_aligned_free(memblock);
}
#endif // DEBUG
#if _MSC_VER < 1900
size_t __cdecl _CrtSetDebugFillThreshold( size_t _NewDebugFillThreshold)
{
assert(0);
return 0;
}
#endif
//===========================================
// NEW!!! 64-bit
#ifndef PROTECTED_THINGS_DISABLE
char * __cdecl _strdup ( const char * string )
{
int nSize = (int)strlen(string) + 1;
@ -1094,6 +1209,7 @@ char * __cdecl _strdup ( const char * string )
memcpy( pCopy, string, nSize );
return pCopy;
}
#endif
#if 0
_TSCHAR * __cdecl _tfullpath_dbg ( _TSCHAR *UserBuf, const _TSCHAR *path, size_t maxlen, int nBlockUse, const char * szFileName, int nLine )
@ -1143,7 +1259,6 @@ _TSCHAR * __cdecl _ttempnam ( const _TSCHAR *dir, const _TSCHAR *pfx )
Assert(0);
return 0;
}
#endif
wchar_t * __cdecl _wcsdup_dbg ( const wchar_t * string, int nBlockUse, const char * szFileName, int nLine )
{
@ -1156,6 +1271,7 @@ wchar_t * __cdecl _wcsdup ( const wchar_t * string )
Assert(0);
return 0;
}
#endif
} // end extern "C"
@ -1344,6 +1460,12 @@ _CRTIMP extern uintptr_t __cdecl __threadhandle(void);
/* Structure for each thread's data */
#if _MSC_VER >= 1900
typedef __crt_multibyte_data* pthreadmbcinfo;
typedef __crt_locale_data* pthreadlocinfo;
typedef __crt_locale_pointers _locale_tstruct;
#endif
struct _tiddata {
unsigned long _tid; /* thread ID */
@ -1387,7 +1509,7 @@ struct _tiddata {
* the thread */
pthreadmbcinfo ptmbcinfo;
/* pointer to the copy of the locale informaton used by the thead */
/* pointer to the copy of the locale information used by the thread */
pthreadlocinfo ptlocinfo;
int _ownlocale; /* if 1, this thread owns its own locale */
@ -1502,7 +1624,7 @@ struct _tiddata {
* the thread */
pthreadmbcinfo ptmbcinfo;
/* pointer to the copy of the locale informaton used by the thead */
/* pointer to the copy of the locale information used by the thread */
pthreadlocinfo ptlocinfo;
int _ownlocale; /* if 1, this thread owns its own locale */

View File

@ -367,7 +367,7 @@ typedef void * HINSTANCE;
#define MAX_UNICODE_PATH MAX_PATH
#endif
#define MAX_UNICODE_PATH_IN_UTF8 MAX_UNICODE_PATH*4
#define MAX_UNICODE_PATH_IN_UTF8 (MAX_UNICODE_PATH*4)
#ifdef GNUC
#undef offsetof
@ -379,7 +379,7 @@ typedef void * HINSTANCE;
#endif
#define ALIGN_VALUE( val, alignment ) ( ( val + alignment - 1 ) & ~( alignment - 1 ) ) // need macro for constant expression
#define ALIGN_VALUE( val, alignment ) ( ( (val) + (alignment) - 1 ) & ~( (alignment) - 1 ) ) // need macro for constant expression
// Used to step into the debugger
#if defined( _WIN32 ) && !defined( _X360 )
@ -572,7 +572,16 @@ typedef void * HINSTANCE;
#endif
// GCC 3.4.1 has a bug in supporting forced inline of templated functions
// this macro lets us not force inlining in that case
#if __GNUC__ < 4
#define FORCEINLINE_TEMPLATE inline
#else
#define FORCEINLINE_TEMPLATE inline __attribute__((always_inline))
#endif
#if __cpp_constexpr >= 201304
#define CONSTEXPR_FUNC constexpr
#else
#define CONSTEXPR_FUNC
#endif
// #define __stdcall __attribute__ ((__stdcall__))
#endif
@ -672,6 +681,40 @@ typedef void * HINSTANCE;
#pragma warning( disable : 4312 ) // conversion from 'unsigned int' to 'memhandle_t' of greater size
#endif
// Detect C++11 support for "rvalue references" / "move semantics" / other C++11 (and up) stuff
#if defined(_MSC_VER)
#if _MSC_VER >= 1600
#define VALVE_RVALUE_REFS 1
#endif
#if _MSC_VER >= 1800
#define VALVE_INITIALIZER_LIST_SUPPORT 1
#define VALVE_EXPLICIT_CONVERSION_OP 1
#endif
#elif defined(__clang__)
#if __has_extension(cxx_rvalue_references)
#define VALVE_RVALUE_REFS 1
#endif
#if __has_feature(cxx_generalized_initializers)
#define VALVE_INITIALIZER_LIST_SUPPORT 1
#endif
#if __has_feature(cxx_explicit_conversions)
#define VALVE_EXPLICIT_CONVERSION_OP 1
#endif
#elif defined(__GNUC__)
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
#if defined(__GXX_EXPERIMENTAL_CXX0X__)
#define VALVE_RVALUE_REFS 1
#define VALVE_INITIALIZER_LIST_SUPPORT 1
#define VALVE_EXPLICIT_CONVERSION_OP 1
#endif
#endif
#endif
#ifdef VALVE_RVALUE_REFS
#include "tier0/valve_minmax_off.h"
#include <utility>
#include "tier0/valve_minmax_on.h"
#endif
#ifdef POSIX
#define _stricmp stricmp
@ -1313,63 +1356,82 @@ inline const char *GetPlatformExt( void )
template <class T>
inline T* Construct( T* pMemory )
{
HINT(pMemory != 0);
return ::new( pMemory ) T;
}
template <class T, typename ARG1>
inline T* Construct( T* pMemory, ARG1 a1 )
{
HINT(pMemory != 0);
return ::new( pMemory ) T( a1 );
}
template <class T, typename ARG1, typename ARG2>
inline T* Construct( T* pMemory, ARG1 a1, ARG2 a2 )
{
HINT(pMemory != 0);
return ::new( pMemory ) T( a1, a2 );
}
template <class T, typename ARG1, typename ARG2, typename ARG3>
inline T* Construct( T* pMemory, ARG1 a1, ARG2 a2, ARG3 a3 )
{
HINT(pMemory != 0);
return ::new( pMemory ) T( a1, a2, a3 );
}
template <class T, typename ARG1, typename ARG2, typename ARG3, typename ARG4>
inline T* Construct( T* pMemory, ARG1 a1, ARG2 a2, ARG3 a3, ARG4 a4 )
{
HINT(pMemory != 0);
return ::new( pMemory ) T( a1, a2, a3, a4 );
}
template <class T, typename ARG1, typename ARG2, typename ARG3, typename ARG4, typename ARG5>
inline T* Construct( T* pMemory, ARG1 a1, ARG2 a2, ARG3 a3, ARG4 a4, ARG5 a5 )
{
HINT(pMemory != 0);
return ::new( pMemory ) T( a1, a2, a3, a4, a5 );
}
template <class T, class P>
inline void ConstructOneArg( T* pMemory, P const& arg)
{
HINT(pMemory != 0);
::new( pMemory ) T(arg);
}
template <class T, class P1, class P2 >
inline void ConstructTwoArg( T* pMemory, P1 const& arg1, P2 const& arg2)
{
HINT(pMemory != 0);
::new( pMemory ) T(arg1, arg2);
}
template <class T, class P1, class P2, class P3 >
inline void ConstructThreeArg( T* pMemory, P1 const& arg1, P2 const& arg2, P3 const& arg3)
{
HINT(pMemory != 0);
::new( pMemory ) T(arg1, arg2, arg3);
}
template <class T>
inline T* CopyConstruct( T* pMemory, T const& src )
{
HINT(pMemory != 0);
return ::new( pMemory ) T(src);
}
#ifdef VALVE_RVALUE_REFS
template <class T>
inline void CopyConstruct(T* pMemory, T&& src)
{
HINT(pMemory != 0);
::new(pMemory)T(std::forward<T>(src));
}
#endif
template <class T>
inline void Destruct( T* pMemory )
{

View File

@ -245,7 +245,7 @@ void CUtlSortVector<T, LessFunc, BaseVector>::QuickSort( LessFunc& less, int nLo
ctx.m_pLessContext = m_pLessContext;
ctx.m_pLessFunc = &less;
qsort_s( Base(), Count(), sizeof(T), (QSortCompareFunc_t)&CUtlSortVector<T, LessFunc>::CompareHelper, &ctx );
qsort_s( this->Base(), this->Count(), sizeof(T), (QSortCompareFunc_t)&CUtlSortVector<T, LessFunc>::CompareHelper, &ctx );
}
#else
typedef int (__cdecl *QSortCompareFunc_t)( const void *, const void *);

View File

@ -186,7 +186,7 @@ public:
if( !m_bSwapBytes || ( sizeof(T) == 1 ) )
{
// If we were just going to swap in place then return.
if( !inputBuffer )
if( inputBuffer == outputBuffer )
return;
// Otherwise copy the inputBuffer to the outputBuffer:

View File

@ -139,7 +139,7 @@ class IForceVirtualInheritancePanel
// This is designed as an easy-access to the vgui-functionality; for more
// low-level access to vgui functions use the IPanel/IClientPanel interfaces directly
//-----------------------------------------------------------------------------
class Panel : public IClientPanel, virtual IForceVirtualInheritancePanel
class Panel : public IClientPanel, public virtual IForceVirtualInheritancePanel
{
DECLARE_CLASS_SIMPLE_NOBASE( Panel );
@ -1011,7 +1011,7 @@ public:
void VguiPanelGetSortedChildPanelList( Panel *pParentPanel, void *pSortedPanels );
void VguiPanelGetSortedChildButtonList( Panel *pParentPanel, void *pSortedPanels, char *pchFilter = NULL, int nFilterType = 0 );
void VguiPanelGetSortedChildButtonList( Panel *pParentPanel, void *pSortedPanels, const char *pchFilter = NULL, int nFilterType = 0 );
int VguiPanelNavigateSortedChildButtonList( void *pSortedPanels, int nDir );

View File

@ -828,6 +828,8 @@ enum ScriptStatus_t
class IScriptVM
{
public:
virtual ~IScriptVM() {}
virtual bool Init() = 0;
virtual void Shutdown() = 0;

View File

@ -425,11 +425,11 @@ void RayTracingEnvironment::Trace4Rays(const FourRays &rays, fltx4 TMin, fltx4 T
MulSIMD(
SubSIMD(ReplicateX4(CurNode->SplittingPlaneValue),
rays.origin[split_plane_number]),OneOverRayDir[split_plane_number]);
fltx4 active=CmpLeSIMD(TMin,TMax); // mask of which rays are active
fltx4 activeLocl=CmpLeSIMD(TMin,TMax); // mask of which rays are active
// now, decide how to traverse children. can either do front,back, or do front and push
// back.
fltx4 hits_front=AndSIMD(active,CmpGeSIMD(dist_to_sep_plane,TMin));
fltx4 hits_front=AndSIMD(activeLocl,CmpGeSIMD(dist_to_sep_plane,TMin));
if (! IsAnyNegative(hits_front))
{
// missed the front. only traverse back
@ -440,7 +440,7 @@ void RayTracingEnvironment::Trace4Rays(const FourRays &rays, fltx4 TMin, fltx4 T
}
else
{
fltx4 hits_back=AndSIMD(active,CmpLeSIMD(dist_to_sep_plane,TMax));
fltx4 hits_back=AndSIMD(activeLocl,CmpLeSIMD(dist_to_sep_plane,TMax));
if (! IsAnyNegative(hits_back) )
{
// missed the back - only need to traverse front node

View File

@ -155,14 +155,14 @@ void RayTracingEnvironment::RenderScene(
fltx4 MaxT=ldir.length();
ldir.VectorNormalizeFast();
// now, compute shadow flag
FourRays myrays;
myrays.origin=surface_pos;
FourRays myraysLocl;
myraysLocl.origin=surface_pos;
FourVectors epsilon=ldir;
epsilon*=0.01;
myrays.origin+=epsilon;
myrays.direction=ldir;
myraysLocl.origin+=epsilon;
myraysLocl.direction=ldir;
RayTracingResult shadowtest;
Trace4Rays(myrays,Four_Zeros,MaxT, &shadowtest);
Trace4Rays(myraysLocl,Four_Zeros,MaxT, &shadowtest);
fltx4 unshadowed=CmpGtSIMD(shadowtest.HitDistance,MaxT);
if (! (IsAllZeros(unshadowed)))
{

View File

@ -1357,13 +1357,13 @@ int64 bf_read::ReadLongLong()
float bf_read::ReadFloat()
{
float ret;
Assert( sizeof(ret) == 4 );
ReadBits(&ret, 32);
float retLocl;
Assert( sizeof(retLocl) == 4 );
ReadBits(&retLocl, 32);
// Swap the float, since ReadBits reads raw data
LittleFloat( &ret, &ret );
return ret;
LittleFloat( &retLocl, &retLocl );
return retLocl;
}
bool bf_read::ReadBytes(void *pOut, int nBytes)

View File

@ -138,7 +138,7 @@ class LogMessage {
class LogMessageCrash : public LogMessage {
public:
LogMessageCrash() { }
#if _MSC_VER == 1700 || _MSC_VER == 1800
#if _MSC_VER >= 1700
// Bogus warning from VS 2012 and VS 2013:
// warning C4722: 'snappy::LogMessageCrash::~LogMessageCrash' : destructor never returns, potential memory leak
#pragma warning(push)

View File

@ -14,7 +14,8 @@ $Configuration
$Compiler
{
$AdditionalIncludeDirectories "$BASE,..\common,$SRCDIR\game\shared,.\"
$PreprocessorDefinitions "$BASE;captioncompiler"
$PreprocessorDefinitions "$BASE;PROTECTED_THINGS_DISABLE;captioncompiler" [$VS2019]
$PreprocessorDefinitions "$BASE;captioncompiler" [!$VS2019]
}
}

View File

@ -8510,7 +8510,7 @@ void VguiPanelGetSortedChildPanelList( Panel *pParentPanel, void *pSortedPanels
}
}
void VguiPanelGetSortedChildButtonList( Panel *pParentPanel, void *pSortedPanels, char *pchFilter /*= NULL*/, int nFilterType /*= 0*/ )
void VguiPanelGetSortedChildButtonList( Panel *pParentPanel, void *pSortedPanels, const char *pchFilter /*= NULL*/, int nFilterType /*= 0*/ )
{
CUtlSortVector< SortedPanel_t, CSortedPanelYLess > *pList = reinterpret_cast< CUtlSortVector< SortedPanel_t, CSortedPanelYLess >* >( pSortedPanels );

View File

@ -18,7 +18,9 @@
#include <vgui_controls/ScrollBarSlider.h>
#include <vgui_controls/Controls.h>
#if _MSC_VER < 1900
#include <math.h>
#endif
// memdbgon must be the last include file in a .cpp file!!!
#include <tier0/memdbgon.h>

View File

@ -6,8 +6,8 @@
// and implement another button here.
//=============================================================================//
#include <math.h>
#define PROTECTED_THINGS_DISABLE
//#include <math.h>
//#define PROTECTED_THINGS_DISABLE
#include <vgui/IInput.h>
#include <vgui/ISystem.h>

View File

@ -418,7 +418,7 @@ class TreeNode : public Panel
public:
TreeNode(Panel *parent, TreeView *pTreeView);
~TreeNode();
virtual ~TreeNode();
void SetText(const char *pszText);
void SetFont(HFont font);
void SetKeyValues(KeyValues *data);

View File

@ -16,17 +16,15 @@
//$Conditional TF_BETA "1"
//-----------------------------------------------------------------------------
// Mapbase conditional, equivalent to (and required for) our MAPBASE preprocessor defined below
$Conditional MAPBASE "1"
// Toggles Mapbase's RPC implementation
$Conditional MAPBASE_RPC "1"
$Conditional VS2019 "1" // Toggles Visual Studio 2019 toolset (NOTE: This makes the solution incompatible with Visual Studio 2013)
// Toggles VScript implementation (note: interfaces still exist, just the provided implementation is not present)
$Conditional MAPBASE_VSCRIPT "1"
// Mapbase functionality conditionals
$Conditional MAPBASE "1" // Equivalent to (and required for) our MAPBASE preprocessor defined below
$Conditional MAPBASE_RPC "1" // Toggles Mapbase's Rich Presence Client implementations
$Conditional MAPBASE_VSCRIPT "1" // Toggles VScript implementation (note: interfaces still exist, just the provided implementation is not present)
$Conditional NEW_RESPONSE_SYSTEM "1" // Toggles the new Response System library based on the Alien Swarm SDK
// Toggles the new Response System library based on the Alien Swarm SDK.
$Conditional NEW_RESPONSE_SYSTEM "1"
//-----------------------------------------------------------------------------
$Configuration "Debug"

View File

@ -39,12 +39,14 @@ $Configuration
$Compiler [$WIN32]
{
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)"
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)" [!$VS2019]
$EnableEnhancedInstructionSet "Streaming SIMD Extensions 2 (/arch:SSE2)" [$VS2019]
}
$Linker
{
$AdditionalDependencies "$BASE shell32.lib user32.lib advapi32.lib gdi32.lib comdlg32.lib ole32.lib" [$WIN32||$WIN64]
$AdditionalDependencies "$BASE shell32.lib user32.lib advapi32.lib gdi32.lib comdlg32.lib ole32.lib" [($WIN32||$WIN64) && !$VS2019]
$AdditionalDependencies "$BASE shell32.lib user32.lib advapi32.lib gdi32.lib comdlg32.lib ole32.lib legacy_stdio_definitions.lib" [($WIN32||$WIN64) && $VS2019]
$TargetMachine "MachineX86 (/MACHINE:X86)" [$WIN32]
$TargetMachine "MachineX64 (/MACHINE:X64)" [$WIN64]
// Suppress this pointless warning using the undocumented /ignore linker switch
@ -69,7 +71,7 @@ $Configuration
"if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
"if exist $QUOTE$(TargetDir)$(TargetName).map$QUOTE copy $QUOTE$(TargetDir)$(TargetName).map$QUOTE $OUTBINDIR\$(TargetName).map" "\n"
$CommandLine "$BASE" "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $QUOTE$OUTBINDIR\$(TargetName).pdb$QUOTE $SRCDIR" "\n" [!$SOURCESDK]
$CommandLine "$BASE" "copy $QUOTE$(TargetDir)$(TargetName).pdb$QUOTE $OUTBINDIR\$(TargetName).pdb" "\n" \
$CommandLine "$BASE" "copy $QUOTE$(TargetDir)$(TargetName).pdb$QUOTE $QUOTE$OUTBINDIR\$(TargetName).pdb$QUOTE" "\n" \
"if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
"goto BuildEventOK" "\n" \
":BuildEventFailed" "\n" \
@ -114,7 +116,8 @@ $Project
$CustomBuildStep
{
// General
$CommandLine "$QUOTE$(VCInstallDir)bin\ml.exe$QUOTE /safeseh /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE"
$CommandLine "$QUOTE$(VCInstallDir)bin\ml.exe$QUOTE /safeseh /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE" [!$VS2019]
$CommandLine "$QUOTE$(VC_ExecutablePath_x64_x86)bin\ml.exe$QUOTE /safeseh /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE" [$VS2019]
$Description "Compiling pointeroverride.asm"
$Outputs "$(IntDir)\$(InputName).obj"
}

View File

@ -39,7 +39,8 @@ $Configuration
$Compiler [$WIN32]
{
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)"
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)" [!$VS2019]
$EnableEnhancedInstructionSet "Streaming SIMD Extensions 2 (/arch:SSE2)" [$VS2019]
}
$Linker
@ -66,7 +67,8 @@ $Configuration
$PostBuildEvent [!$ANALYZE]
{
$CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetFileName) $SRCDIR" "\n" [!$SOURCESDK]
$CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetFileName) $SRCDIR" "\n" [!$SOURCESDK && !$VS2019]
$CommandLine "if not exist $QUOTE$OUTBINDIR$QUOTE mkdir $QUOTE$OUTBINDIR$QUOTE" "\n" [!$SOURCESDK && $VS2019]
$CommandLine "$BASE" "copy $QUOTE$(TargetDir)$QUOTE$(TargetFileName) $OUTBINDIR\$(TargetFileName) >nul" "\n" \
"if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
"if exist $QUOTE$(TargetDir)$QUOTE$(TargetName).map copy $QUOTE$(TargetDir)$QUOTE$(TargetName).map $OUTBINDIR\$(TargetName).map >nul" "\n"
@ -109,7 +111,8 @@ $Project
$CustomBuildStep
{
// General
$CommandLine "$QUOTE$(VCInstallDir)bin\ml.exe$QUOTE /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE"
$CommandLine "$QUOTE$(VCInstallDir)bin\ml.exe$QUOTE /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE" [!$VS2019]
$CommandLine "$QUOTE$(VC_ExecutablePath_x64_x86)\ml.exe$QUOTE /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE" [$VS2019]
$Description "Compiling pointeroverride.asm"
$Outputs "$(IntDir)\$(InputName).obj"
}

View File

@ -38,7 +38,8 @@ $Configuration
$Compiler [$WIN32]
{
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)"
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)" [!$VS2019]
$EnableEnhancedInstructionSet "Streaming SIMD Extensions 2 (/arch:SSE2)" [$VS2019]
}
$PreBuildEvent

View File

@ -8,10 +8,11 @@ $Configuration
$General
{
// Request a specific compiler toolset.
$PlatformToolset "v110_xp" [$VS2012 && !$ANALYZE] // VS 2012 targeting Windows XP - http://msdn.microsoft.com/en-us/library/vstudio/jj851139.aspx
$PlatformToolset "v110" [$VS2012 && $ANALYZE] // VS 2012 for /analyze
$PlatformToolset "v120_xp" [$VS2013 && !$ANALYZE] // VS 2013 targeting Windows XP - http://msdn.microsoft.com/en-us/library/vstudio/jj851139.aspx
$PlatformToolset "v120" [$VS2013 && $ANALYZE] // VS 2013 for /analyze
$PlatformToolset "v110_xp" [$VS2012 && !$ANALYZE && !$VS2019] // VS 2012 targeting Windows XP - http://msdn.microsoft.com/en-us/library/vstudio/jj851139.aspx
$PlatformToolset "v110" [$VS2012 && $ANALYZE && !$VS2019] // VS 2012 for /analyze
$PlatformToolset "v120_xp" [$VS2013 && !$ANALYZE && !$VS2019] // VS 2013 targeting Windows XP - http://msdn.microsoft.com/en-us/library/vstudio/jj851139.aspx
$PlatformToolset "v120" [$VS2013 && $ANALYZE && !$VS2019] // VS 2013 for /analyze
$PlatformToolset "v142" [$VS2019] // VS 2019
}
$General
@ -32,6 +33,10 @@ $Configuration
// warning C4316: object allocated on the heap may not be aligned 16
$DisableSpecificWarnings "$BASE;4316" [$VS2013]
// warning C4838: conversion requires a narrowing conversion
// warning C4456-4459: variable shadowing. TODO: fix those!
$DisableSpecificWarnings "$BASE;4316;4838;4456;4457;4458;4459" [$VS2019]
// Having lots of warnings makes it harder to notice new, and possibly
// important warnings, both on buildbot and in the output window. Lots
// of warnings also makes it harder to skip through errors in the output