mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-01-12 16:07:57 +00:00
Merge branch 'sdk-update' into coldice
This commit is contained in:
commit
f7034c43ff
@ -103,7 +103,7 @@ int CHudMOTD::Draw( float fTime )
|
||||
|
||||
// find where to start drawing the line
|
||||
if( ( ypos > ROW_RANGE_MIN ) && ( ypos + LINE_HEIGHT <= ypos_r + height ) )
|
||||
gHUD.DrawHudString( xpos, ypos, xmax, ch, 0, 113, 230 );
|
||||
DrawUtfString( xpos, ypos, xmax, ch, 0, 113, 230 );
|
||||
|
||||
ypos += LINE_HEIGHT;
|
||||
|
||||
@ -130,7 +130,7 @@ int CHudMOTD::MsgFunc_MOTD( const char *pszName, int iSize, void *pbuf )
|
||||
BEGIN_READ( pbuf, iSize );
|
||||
|
||||
int is_finished = READ_BYTE();
|
||||
strncat( m_szMOTD, READ_STRING(), sizeof(m_szMOTD) );
|
||||
strncat( m_szMOTD, READ_STRING(), sizeof(m_szMOTD) - 1 );
|
||||
|
||||
if( is_finished )
|
||||
{
|
||||
|
@ -115,6 +115,8 @@ inline void GetConsoleStringSize( const char *string, int *width, int *height )
|
||||
gEngfuncs.pfnDrawConsoleStringLen( (char*)string, width, height );
|
||||
}
|
||||
|
||||
int DrawUtfString( int xpos, int ypos, int iMaxX, char *szIt, int r, int g, int b );
|
||||
|
||||
inline int ConsoleStringLen( const char *string )
|
||||
{
|
||||
int _width = 0, _height = 0;
|
||||
|
@ -288,7 +288,7 @@ Only produces random numbers to match the server ones.
|
||||
*/
|
||||
Vector CBaseEntity::FireBulletsPlayer ( ULONG cShots, Vector vecSrc, Vector vecDirShooting, Vector vecSpread, float flDistance, int iBulletType, int iTracerFreq, int iDamage, entvars_t *pevAttacker, int shared_rand )
|
||||
{
|
||||
float x, y, z;
|
||||
float x = 0, y = 0, z;
|
||||
|
||||
for( ULONG iShot = 1; iShot <= cShots; iShot++ )
|
||||
{
|
||||
|
@ -93,6 +93,13 @@ int CHud::Redraw( float flTime, int intermission )
|
||||
if( m_flTimeDelta < 0 )
|
||||
m_flTimeDelta = 0;
|
||||
|
||||
if( !m_iIntermission && intermission )
|
||||
{
|
||||
// Take a screenshot if the client's got the cvar set
|
||||
if( CVAR_GET_FLOAT( "hud_takesshots" ) != 0 )
|
||||
m_flShotTime = flTime + 1.0; // Take a screenshot in a second
|
||||
}
|
||||
|
||||
if( m_flShotTime && m_flShotTime < flTime )
|
||||
{
|
||||
gEngfuncs.pfnClientCmd( "snapshot\n" );
|
||||
@ -226,6 +233,35 @@ int CHud::DrawHudString( int xpos, int ypos, int iMaxX, char *szIt, int r, int g
|
||||
return xpos;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int DrawUtfString( int xpos, int ypos, int iMaxX, char *szIt, int r, int g, int b )
|
||||
{
|
||||
// xash3d: reset unicode state
|
||||
gEngfuncs.pfnVGUI2DrawCharacterAdditive( 0, 0, 0, 0, 0, 0, 0 );
|
||||
|
||||
// draw the string until we hit the null character or a newline character
|
||||
for( ; *szIt != 0 && *szIt != '\n'; szIt++ )
|
||||
{
|
||||
int w = gHUD.m_scrinfo.charWidths['M'];
|
||||
if( xpos + w > iMaxX )
|
||||
return xpos;
|
||||
if( ( *szIt == '^' ) && ( *( szIt + 1 ) >= '0') && ( *( szIt + 1 ) <= '7') )
|
||||
{
|
||||
szIt++;
|
||||
r = colors[*szIt - '0'][0];
|
||||
g = colors[*szIt - '0'][1];
|
||||
b = colors[*szIt - '0'][2];
|
||||
if( !*(++szIt) )
|
||||
return xpos;
|
||||
}
|
||||
int c = (unsigned int)(unsigned char)*szIt;
|
||||
xpos += gEngfuncs.pfnVGUI2DrawCharacterAdditive( xpos, ypos, c, r, g, b, 0 );
|
||||
}
|
||||
|
||||
return xpos;
|
||||
}
|
||||
|
||||
int CHud::DrawHudStringLen( char *szIt )
|
||||
{
|
||||
int l = 0;
|
||||
|
@ -993,7 +993,7 @@ void CHudSpectator::DrawOverviewLayer()
|
||||
if ( hasMapImage)
|
||||
{
|
||||
i = m_MapSprite->numframes / (4*3);
|
||||
i = sqrt(i);
|
||||
i = sqrt(float(i));
|
||||
xTiles = i*4;
|
||||
yTiles = i*3;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ float rel_pitch;
|
||||
#define IMPULSE_DOWN 2
|
||||
#define IMPULSE_UP 4
|
||||
|
||||
bool CL_IsDead();
|
||||
int CL_IsDead( void );
|
||||
Vector dead_viewangles(0, 0, 0);
|
||||
|
||||
void IN_ToggleButtons( float forwardmove, float sidemove )
|
||||
|
@ -310,7 +310,7 @@ int CHudMessage::Draw( float fTime )
|
||||
{
|
||||
int i, drawn;
|
||||
client_textmessage_t *pMessage;
|
||||
float endTime;
|
||||
float endTime = 0;
|
||||
|
||||
drawn = 0;
|
||||
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
cvar_t *cl_scoreboard_bg;
|
||||
cvar_t *cl_showpacketloss;
|
||||
hud_player_info_t g_PlayerInfoList[MAX_PLAYERS + 1]; // player info from the engine
|
||||
extra_player_info_t g_PlayerExtraInfo[MAX_PLAYERS + 1]; // additional player info sent directly to the client dll
|
||||
@ -59,6 +60,7 @@ int CHudScoreboard::Init( void )
|
||||
|
||||
InitHUDData();
|
||||
|
||||
cl_scoreboard_bg = CVAR_CREATE( "cl_scoreboard_bg", "1", FCVAR_ARCHIVE );
|
||||
cl_showpacketloss = CVAR_CREATE( "cl_showpacketloss", "0", FCVAR_ARCHIVE );
|
||||
|
||||
return 1;
|
||||
@ -145,23 +147,24 @@ int CHudScoreboard::Draw( float fTime )
|
||||
|
||||
FAR_RIGHT = can_show_packetloss ? PL_RANGE_MAX : PING_RANGE_MAX;
|
||||
FAR_RIGHT += 5;
|
||||
gHUD.DrawDarkRectangle( xpos - 5, ypos - 5, FAR_RIGHT, ROW_RANGE_MAX );
|
||||
if( cl_scoreboard_bg && cl_scoreboard_bg->value )
|
||||
gHUD.DrawDarkRectangle( xpos - 5, ypos - 5, FAR_RIGHT, ROW_RANGE_MAX );
|
||||
//if( !gHUD.m_Teamplay )
|
||||
if( m_iShowscoresHeld )
|
||||
{
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "Connected Cold Ice Players", 0, 113, 230 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "Connected Cold Ice Players", 0, 113, 230 );
|
||||
}
|
||||
//else
|
||||
//gHUD.DrawHudString( xpos, ypos, NAME_RANGE_MAX + xpos_rel, "Teams", 0, 113, 230 );
|
||||
//DrawUtfString( xpos, ypos, NAME_RANGE_MAX + xpos_rel, "Teams", 0, 113, 230 );
|
||||
|
||||
//gHUD.DrawHudStringReverse( KILLS_RANGE_MAX + xpos_rel, ypos, 0, "kills", 0, 113, 230 );
|
||||
//gHUD.DrawHudString( DIVIDER_POS + xpos_rel, ypos, ScreenWidth, "/", 0, 113, 230 );
|
||||
//gHUD.DrawHudString( DEATHS_RANGE_MIN + xpos_rel + 5, ypos, ScreenWidth, "deaths", 0, 113, 230 );
|
||||
//gHUD.DrawHudString( PING_RANGE_MAX + xpos_rel - 35, ypos, ScreenWidth, "latency", 0, 113, 230 );
|
||||
//DrawUtfString( DIVIDER_POS + xpos_rel, ypos, ScreenWidth, "/", 0, 113, 230 );
|
||||
//DrawUtfString( DEATHS_RANGE_MIN + xpos_rel + 5, ypos, ScreenWidth, "deaths", 0, 113, 230 );
|
||||
//DrawUtfString( PING_RANGE_MAX + xpos_rel - 35, ypos, ScreenWidth, "latency", 0, 113, 230 );
|
||||
|
||||
if( can_show_packetloss )
|
||||
{
|
||||
gHUD.DrawHudString( PL_RANGE_MAX + xpos_rel - 35, ypos, ScreenWidth, "pkt loss", 255, 140, 0 );
|
||||
DrawUtfString( PL_RANGE_MAX + xpos_rel - 35, ypos, ScreenWidth, "pkt loss", 255, 140, 0 );
|
||||
}
|
||||
|
||||
list_slot += 1.2;
|
||||
@ -276,7 +279,7 @@ int CHudScoreboard::Draw( float fTime )
|
||||
}
|
||||
|
||||
// draw their name (left to right)
|
||||
//gHUD.DrawHudString( xpos, ypos, NAME_RANGE_MAX + xpos_rel, team_info->name, r, g, b );
|
||||
//DrawUtfString( xpos, ypos, NAME_RANGE_MAX + xpos_rel, team_info->name, r, g, b );
|
||||
|
||||
// draw kills (right to left)
|
||||
xpos = KILLS_RANGE_MAX + xpos_rel;
|
||||
@ -284,7 +287,7 @@ int CHudScoreboard::Draw( float fTime )
|
||||
|
||||
// draw divider
|
||||
xpos = DIVIDER_POS + xpos_rel;
|
||||
//gHUD.DrawHudString( xpos, ypos, xpos + 20, "/", r, g, b );
|
||||
//DrawUtfString( xpos, ypos, xpos + 20, "/", r, g, b );
|
||||
|
||||
// draw deaths
|
||||
xpos = DEATHS_RANGE_MAX + xpos_rel;
|
||||
@ -304,7 +307,7 @@ int CHudScoreboard::Draw( float fTime )
|
||||
xpos = ( ( PL_RANGE_MAX - PL_RANGE_MIN ) / 2) + PL_RANGE_MIN + xpos_rel + 25;
|
||||
|
||||
sprintf( buf, " %d", team_info->packetloss );
|
||||
gHUD.DrawHudString( xpos, ypos, xpos+50, buf, r, g, b );
|
||||
DrawUtfString( xpos, ypos, xpos+50, buf, r, g, b );
|
||||
}
|
||||
|
||||
team_info->already_drawn = TRUE; // set the already_drawn to be TRUE, so this team won't get drawn again
|
||||
@ -387,9 +390,9 @@ int CHudScoreboard::DrawPlayers( int xpos_rel, float list_slot, int nameoffset,
|
||||
if( m_iShowscoresHeld )
|
||||
{
|
||||
if( pl_info->thisplayer )
|
||||
gHUD.DrawHudString( xpos + nameoffset, ypos, NAME_RANGE_MAX + xpos_rel, pl_info->name, 0, 113, 230 );
|
||||
DrawUtfString( xpos + nameoffset, ypos, NAME_RANGE_MAX + xpos_rel, pl_info->name, 0, 113, 230 );
|
||||
else
|
||||
gHUD.DrawHudString( xpos + nameoffset, ypos, NAME_RANGE_MAX + xpos_rel, pl_info->name, r, g, b );
|
||||
DrawUtfString( xpos + nameoffset, ypos, NAME_RANGE_MAX + xpos_rel, pl_info->name, r, g, b );
|
||||
}
|
||||
|
||||
ypos = 12;
|
||||
@ -397,27 +400,27 @@ int CHudScoreboard::DrawPlayers( int xpos_rel, float list_slot, int nameoffset,
|
||||
|
||||
// draw place value
|
||||
if( pl_info->thisplayer && list_slot == 2 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "1st", 0, 255, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "1st", 0, 255, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 3 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "2nd", 0, 255, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "2nd", 0, 255, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 4 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "3rd", 0, 255, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "3rd", 0, 255, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 5 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "4th", 255, 128, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "4th", 255, 128, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 6 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "5th", 255, 128, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "5th", 255, 128, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 7 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "6th", 255, 128, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "6th", 255, 128, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 8 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "7th", 255, 128, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "7th", 255, 128, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 9 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "8th", 255, 128, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "8th", 255, 128, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 10 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "9th", 255, 128, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "9th", 255, 128, 0 );
|
||||
else if( pl_info->thisplayer && list_slot == 11 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "10th", 255, 128, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "10th", 255, 128, 0 );
|
||||
else if( pl_info->thisplayer && list_slot >= 11 )
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, ">10th", 255, 0, 0 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, ">10th", 255, 0, 0 );
|
||||
// draw ping & packetloss
|
||||
static char buf[64];
|
||||
sprintf( buf, "%d", g_PlayerInfoList[best_player].ping );
|
||||
@ -436,11 +439,11 @@ int CHudScoreboard::DrawPlayers( int xpos_rel, float list_slot, int nameoffset,
|
||||
|
||||
ypos = 60;
|
||||
xpos = ( ScreenWidth - 30 - 100 / 2 ) - 40;
|
||||
gHUD.DrawHudString( xpos, ypos, ScreenWidth, "--Cold Ice--", 0, 113, 230 );
|
||||
gHUD.DrawHudString( xpos, ypos + 12, ScreenWidth, " Build 1.99a", 255, 255, 255 );
|
||||
gHUD.DrawHudString( xpos, ypos + 24, ScreenWidth, " *11/12/99*", 255, 255, 255 );
|
||||
gHUD.DrawHudString( xpos, ypos + 48, ScreenWidth, "-Smart Hud-", 0, 113, 230 );
|
||||
gHUD.DrawHudString( xpos, ypos + 60, ScreenWidth, " Build .99a", 255, 255, 255 );
|
||||
DrawUtfString( xpos, ypos, ScreenWidth, "--Cold Ice--", 0, 113, 230 );
|
||||
DrawUtfString( xpos, ypos + 12, ScreenWidth, " Build 1.99a", 255, 255, 255 );
|
||||
DrawUtfString( xpos, ypos + 24, ScreenWidth, " *11/12/99*", 255, 255, 255 );
|
||||
DrawUtfString( xpos, ypos + 48, ScreenWidth, "-Smart Hud-", 0, 113, 230 );
|
||||
DrawUtfString( xpos, ypos + 60, ScreenWidth, " Build .99a", 255, 255, 255 );
|
||||
}
|
||||
|
||||
int x, y;
|
||||
@ -449,7 +452,7 @@ int CHudScoreboard::DrawPlayers( int xpos_rel, float list_slot, int nameoffset,
|
||||
{
|
||||
y = 12;
|
||||
x = ScreenWidth - 30 - 100/2 ;
|
||||
gHUD.DrawHudString( x - 40, 0, ScreenWidth, pl_info->name, 0, 113, 230 );
|
||||
DrawUtfString( x - 40, 0, ScreenWidth, pl_info->name, 0, 113, 230 );
|
||||
gHUD.DrawHudNumberString( x + 40, y, DEATHS_RANGE_MIN + xpos_rel, m_PlayerExtraInfo[best_player].deaths, r, g, b );
|
||||
gHUD.DrawHudNumberString( x + 10, y, DEATHS_RANGE_MIN + xpos_rel, m_PlayerExtraInfo[best_player].frags, r, g, b );
|
||||
gHUD.DrawHudStringReverse( x + 80, y, DEATHS_RANGE_MIN + xpos_rel, buf, 255, 255, 255 );
|
||||
|
@ -32,6 +32,10 @@
|
||||
|
||||
extern vec3_t vec3_origin;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
vec3_t vec3_origin;
|
||||
#endif
|
||||
|
||||
double sqrt( double x );
|
||||
|
||||
float Length( const float *v )
|
||||
|
@ -16,7 +16,7 @@ endif
|
||||
LOCAL_CFLAGS += -D_LINUX -DCLIENT_WEAPONS -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf \
|
||||
-fno-exceptions -DNO_VOICEGAMEMGR -w
|
||||
|
||||
LOCAL_CPPFLAGS := $(LOCAL_CFLAGS) -frtti
|
||||
LOCAL_CPPFLAGS := $(LOCAL_CFLAGS)
|
||||
|
||||
LOCAL_C_INCLUDES := $(SDL_PATH)/include \
|
||||
$(LOCAL_PATH)/. \
|
||||
|
@ -494,10 +494,10 @@ void ClientCommand( edict_t *pEntity )
|
||||
{
|
||||
ALERT( at_console, "\nBot Play has been taken out.\n" );
|
||||
}*/
|
||||
/*else if( g_pGameRules->ClientCommand( GetClassPtr( (CBasePlayer *)pev ), pcmd ) )
|
||||
else if( g_pGameRules->ClientCommand( GetClassPtr( (CBasePlayer *)pev ), pcmd ) )
|
||||
{
|
||||
// MenuSelect returns true only if the command is properly handled, so don't print a warning
|
||||
}*/
|
||||
}
|
||||
else if( FStrEq( pcmd, "VModEnable" ) )
|
||||
{
|
||||
// clear 'Unknown command: VModEnable' in singleplayer
|
||||
|
@ -27,6 +27,8 @@
|
||||
#define BOLT_AIR_VELOCITY 2000
|
||||
#define BOLT_WATER_VELOCITY 1000
|
||||
|
||||
extern BOOL gPhysicsInterfaceInitialized;
|
||||
|
||||
// UNDONE: Save/restore this? Don't forget to set classname and LINK_ENTITY_TO_CLASS()
|
||||
//
|
||||
// OVERLOADS SOME ENTVARS:
|
||||
@ -167,9 +169,11 @@ void CCrossbowBolt::BoltTouch( CBaseEntity *pOther )
|
||||
pev->angles.z = RANDOM_LONG( 0, 360 );
|
||||
pev->nextthink = gpGlobals->time + 10.0;
|
||||
|
||||
// g-cont. Setup movewith feature
|
||||
pev->movetype = MOVETYPE_COMPOUND; // set movewith type
|
||||
pev->aiment = ENT( pOther->pev ); // set parent
|
||||
if (gPhysicsInterfaceInitialized) {
|
||||
// g-cont. Setup movewith feature
|
||||
pev->movetype = MOVETYPE_COMPOUND; // set movewith type
|
||||
pev->aiment = ENT( pOther->pev ); // set parent
|
||||
}
|
||||
}
|
||||
|
||||
if( UTIL_PointContents( pev->origin ) != CONTENTS_WATER )
|
||||
|
@ -410,7 +410,7 @@ LINK_ENTITY_TO_CLASS( trip_beam, CTripBeam )
|
||||
void CTripBeam::Spawn( void )
|
||||
{
|
||||
CLightning::Spawn();
|
||||
SetTouch( &TriggerTouch );
|
||||
SetTouch( &CLightning::TriggerTouch );
|
||||
pev->solid = SOLID_TRIGGER;
|
||||
RelinkBeam();
|
||||
}
|
||||
@ -1267,7 +1267,7 @@ void CSprite::TurnOn( void )
|
||||
pev->effects = 0;
|
||||
if( ( pev->framerate && m_maxFrame > 1.0 ) || ( pev->spawnflags & SF_SPRITE_ONCE ) )
|
||||
{
|
||||
SetThink( &CSprite::CSprite::AnimateThink );
|
||||
SetThink( &CSprite::AnimateThink );
|
||||
pev->nextthink = gpGlobals->time;
|
||||
m_lastTime = gpGlobals->time;
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ void CBaseMonster::MonsterInitDead( void )
|
||||
|
||||
// Setup health counters, etc.
|
||||
BecomeDead();
|
||||
SetThink( &CorpseFallThink );
|
||||
SetThink( &CBaseMonster::CorpseFallThink );
|
||||
pev->nextthink = gpGlobals->time + 0.5;
|
||||
}
|
||||
|
||||
|
@ -45,6 +45,8 @@ LINK_ENTITY_TO_CLASS( info_node_air, CNodeEnt )
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#define CreateDirectory(p, n) mkdir(p, 0777)
|
||||
#else
|
||||
#define CreateDirectory(p, n) CreateDirectoryA(p, n)
|
||||
#endif
|
||||
|
||||
//=========================================================
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include "weapons.h"
|
||||
#include "soundent.h"
|
||||
#include "monsters.h"
|
||||
#include "..\engine\shake.h"
|
||||
#include "../engine/shake.h"
|
||||
#include "decals.h"
|
||||
#include "gamerules.h"
|
||||
|
||||
|
@ -2228,22 +2228,22 @@ int CRestore::ReadField( void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCou
|
||||
*( (EOFFSET *)pOutputData ) = 0;
|
||||
break;
|
||||
case FIELD_VECTOR:
|
||||
#ifdef __VFP_FP__
|
||||
memcpy( pOutputData, pInputData, sizeof( Vector ) );
|
||||
#else
|
||||
( (float *)pOutputData )[0] = ( (float *)pInputData )[0];
|
||||
( (float *)pOutputData )[1] = ( (float *)pInputData )[1];
|
||||
( (float *)pOutputData )[2] = ( (float *)pInputData )[2];
|
||||
#endif
|
||||
break;
|
||||
case FIELD_POSITION_VECTOR:
|
||||
#ifdef __VFP_FP__
|
||||
float tmp;
|
||||
memcpy( &tmp, (char *)pInputData + 0, 4 );
|
||||
tmp += position.x;
|
||||
memcpy( (char *)pOutputData + 0, &tmp, 4 );
|
||||
memcpy( &tmp, (char *)pInputData + 4, 4 );
|
||||
tmp += position.y;
|
||||
memcpy( (char *)pOutputData + 4, &tmp, 4 );
|
||||
memcpy( &tmp, (char *)pInputData + 8, 4 );
|
||||
tmp += position.z;
|
||||
memcpy( (char *)pOutputData + 8, &tmp, 4 );
|
||||
{
|
||||
Vector tmp;
|
||||
memcpy( &tmp, pInputData, sizeof( Vector ) );
|
||||
tmp = tmp + position;
|
||||
memcpy( pOutputData, &tmp, sizeof( Vector ) );
|
||||
}
|
||||
#else
|
||||
( (float *)pOutputData )[0] = ( (float *)pInputData )[0] + position.x;
|
||||
( (float *)pOutputData )[1] = ( (float *)pInputData )[1] + position.y;
|
||||
|
@ -1223,7 +1223,7 @@ void CBasePlayerAmmo::DefaultTouch( CBaseEntity *pOther )
|
||||
//=========================================================
|
||||
int CBasePlayerWeapon::ExtractAmmo( CBasePlayerWeapon *pWeapon )
|
||||
{
|
||||
int iReturn;
|
||||
int iReturn = 0;
|
||||
|
||||
if( pszAmmo1() != NULL )
|
||||
{
|
||||
|
@ -828,6 +828,8 @@ static physics_interface_t gPhysicsInterface =
|
||||
DispatchPhysicsEntity,
|
||||
};
|
||||
|
||||
BOOL gPhysicsInterfaceInitialized = FALSE;
|
||||
|
||||
int Server_GetPhysicsInterface( int iVersion, server_physics_api_t *pfuncsFromEngine, physics_interface_t *pFunctionTable )
|
||||
{
|
||||
if( !pFunctionTable || !pfuncsFromEngine || iVersion != SV_PHYSICS_INTERFACE_VERSION )
|
||||
@ -840,6 +842,6 @@ int Server_GetPhysicsInterface( int iVersion, server_physics_api_t *pfuncsFromEn
|
||||
|
||||
// fill engine callbacks
|
||||
memcpy( pFunctionTable, &gPhysicsInterface, sizeof(physics_interface_t) );
|
||||
|
||||
gPhysicsInterfaceInitialized = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -93,6 +93,12 @@ typedef struct client_textmessage_s
|
||||
const char *pMessage;
|
||||
} client_textmessage_t;
|
||||
|
||||
#if __MSC_VER == 1200
|
||||
#define ulonglong_t __int64
|
||||
#else
|
||||
#define ulonglong_t unsigned long long
|
||||
#endif
|
||||
|
||||
typedef struct hud_player_info_s
|
||||
{
|
||||
char *name;
|
||||
@ -106,7 +112,7 @@ typedef struct hud_player_info_s
|
||||
short topcolor;
|
||||
short bottomcolor;
|
||||
|
||||
unsigned long long m_nSteamID;
|
||||
ulonglong_t m_nSteamID;
|
||||
} hud_player_info_t;
|
||||
|
||||
typedef struct cl_enginefuncs_s
|
||||
|
@ -194,7 +194,12 @@ typedef struct playermove_s
|
||||
int (*PM_PointContents)( float *p, int *truecontents /*filled in if this is non-null*/ );
|
||||
int (*PM_TruePointContents)( float *p );
|
||||
int (*PM_HullPointContents)( struct hull_s *hull, int num, float *p );
|
||||
#ifdef __MINGW32__
|
||||
pmtrace_t *(*PM_PlayerTrace_real)( pmtrace_t * retvalue, float *start, float *end, int traceFlags, int ignore_pe );
|
||||
|
||||
#else
|
||||
pmtrace_t (*PM_PlayerTrace)( float *start, float *end, int traceFlags, int ignore_pe );
|
||||
#endif
|
||||
struct pmtrace_s *(*PM_TraceLine)( float *start, float *end, int flags, int usehulll, int ignore_pe );
|
||||
long (*RandomLong)( long lLow, long lHigh );
|
||||
float (*RandomFloat)( float flLow, float flHigh );
|
||||
@ -213,9 +218,32 @@ typedef struct playermove_s
|
||||
void (*PM_PlaySound)( int channel, const char *sample, float volume, float attenuation, int fFlags, int pitch );
|
||||
const char *(*PM_TraceTexture)( int ground, float *vstart, float *vend );
|
||||
void (*PM_PlaybackEventFull)( int flags, int clientindex, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2 );
|
||||
#ifdef __MINGW32__
|
||||
pmtrace_t *(*PM_PlayerTraceEx_real) (pmtrace_t *retvalue, float *start, float *end, int traceFlags, int (*pfnIgnore)( physent_t *pe ));
|
||||
#else
|
||||
pmtrace_t (*PM_PlayerTraceEx) (float *start, float *end, int traceFlags, int (*pfnIgnore)( physent_t *pe ));
|
||||
#endif
|
||||
int (*PM_TestPlayerPositionEx) (float *pos, pmtrace_t *ptrace, int (*pfnIgnore)( physent_t *pe ));
|
||||
struct pmtrace_s *(*PM_TraceLineEx)( float *start, float *end, int flags, int usehulll, int (*pfnIgnore)( physent_t *pe ));
|
||||
struct msurface_s *(*PM_TraceSurface)( int ground, float *vstart, float *vend );
|
||||
} playermove_t;
|
||||
|
||||
#ifdef __MINGW32__
|
||||
static pmtrace_t _pm_globalresult, _pm_globaltmp;
|
||||
static inline pmtrace_t PM_PlayerTrace_wrap( float *start, float *end, int traceFlags, int ignore_pe, playermove_t *pmove )
|
||||
{
|
||||
_pm_globaltmp = pmove->touchindex[MAX_PHYSENTS -1];
|
||||
pmove->PM_PlayerTrace_real( &_pm_globalresult, start, end, traceFlags, ignore_pe );
|
||||
return _pm_globalresult;
|
||||
}
|
||||
static inline pmtrace_t PM_PlayerTraceEx_wrap( float *start, float *end, int traceFlags, int (*pfnIgnore)( physent_t *pe ), playermove_t *pmove )
|
||||
{
|
||||
_pm_globaltmp = pmove->touchindex[MAX_PHYSENTS -1];
|
||||
pmove->PM_PlayerTraceEx_real( &_pm_globalresult, start, end, traceFlags, pfnIgnore );
|
||||
return _pm_globalresult;
|
||||
}
|
||||
#define PM_PlayerTrace(a,b,c,d) touchindex[MAX_PHYSENTS -1] = PM_PlayerTrace_wrap( a, b, c, d, pmove );pmove->touchindex[MAX_PHYSENTS -1] = _pm_globaltmp
|
||||
#define PM_PlayerTraceEx(a,b,c,d) touchindex[MAX_PHYSENTS -1] = PM_PlayerTraceEx_wrap( a, b, c, d, pmove );pmove->touchindex[MAX_PHYSENTS -1] = _pm_globaltmp
|
||||
#endif
|
||||
|
||||
#endif//PM_DEFS_H
|
||||
|
Loading…
Reference in New Issue
Block a user