diff --git a/main/source/dlls/animation.cpp b/main/source/dlls/animation.cpp index a4b4958c..99c84654 100644 --- a/main/source/dlls/animation.cpp +++ b/main/source/dlls/animation.cpp @@ -376,7 +376,8 @@ float SetController( void *pmodel, entvars_t *pev, int iController, float flValu mstudiobonecontroller_t *pbonecontroller = (mstudiobonecontroller_t *)((byte *)pstudiohdr + pstudiohdr->bonecontrollerindex); // find first controller that matches the index - for (int i = 0; i < pstudiohdr->numbonecontrollers; i++, pbonecontroller++) + int i=0; + for (i = 0; i < pstudiohdr->numbonecontrollers; i++, pbonecontroller++) { if (pbonecontroller->index == iController) break; @@ -571,4 +572,4 @@ int GetBodygroup( void *pmodel, entvars_t *pev, int iGroup ) int iCurrent = (pev->body / pbodypart->base) % pbodypart->nummodels; return iCurrent; -} \ No newline at end of file +} diff --git a/main/source/dlls/client.cpp b/main/source/dlls/client.cpp index 35f5b69e..a38f2fd9 100644 --- a/main/source/dlls/client.cpp +++ b/main/source/dlls/client.cpp @@ -442,7 +442,8 @@ void Host_Say( edict_t *pEntity, int teamonly ) } // make sure the text has content - for ( char *pc = p; pc != NULL && *pc != 0; pc++ ) + char *pc=p; + for ( pc = p; pc != NULL && *pc != 0; pc++ ) { if ( isprint( *pc ) && !isspace( *pc ) ) { @@ -861,8 +862,9 @@ void ClientPrecache( void ) { // Precache sound lists for all player types gSoundListManager.Clear(); - - for(int i = ((int)AVH_USER3_NONE + 1); i < (int)AVH_USER3_ALIEN_EMBRYO; i++) + + int i=0; + for(i = ((int)AVH_USER3_NONE + 1); i < (int)AVH_USER3_ALIEN_EMBRYO; i++) { char theSoundListName[256]; bool theIsAlien = (i > 3); @@ -1950,9 +1952,9 @@ int GetWeaponData( struct edict_s *player, struct weapon_data_s *info ) item->m_iId = II.iId; item->m_iClip = gun->m_iClip; - item->m_flTimeWeaponIdle = max( gun->m_flTimeWeaponIdle, -0.001 ); - item->m_flNextPrimaryAttack = max( gun->m_flNextPrimaryAttack, -0.001 ); - item->m_flNextSecondaryAttack = max( gun->m_flNextSecondaryAttack, -0.001 ); + item->m_flTimeWeaponIdle = max( gun->m_flTimeWeaponIdle, -0.001f ); + item->m_flNextPrimaryAttack = max( gun->m_flNextPrimaryAttack, -0.001f ); + item->m_flNextSecondaryAttack = max( gun->m_flNextSecondaryAttack, -0.001f ); item->m_fInReload = gun->m_fInReload; //thePlayer->SetDebugCSP(item); diff --git a/main/source/dlls/combat.cpp b/main/source/dlls/combat.cpp index 8d20533a..8a4c03b4 100644 --- a/main/source/dlls/combat.cpp +++ b/main/source/dlls/combat.cpp @@ -1736,7 +1736,7 @@ Vector CBaseEntity::FireBulletsPlayer ( ULONG cShots, Vector vecSrc, Vector vecD if ( distance > BALANCE_VAR(kShotgunDamageRange) ) { float fallOffDistance=distance-BALANCE_VAR(kShotgunDamageRange); - float fallOff=max(0.0, 1.0f-(fallOffDistance/(kSGRange/2))); + float fallOff=max(0.0f, 1.0f-(fallOffDistance/(kSGRange/2))); theAdjustedDamage*=fallOff; } } diff --git a/main/source/dlls/items.cpp b/main/source/dlls/items.cpp index d3327ecd..4ff75e93 100644 --- a/main/source/dlls/items.cpp +++ b/main/source/dlls/items.cpp @@ -229,7 +229,7 @@ class CItemBattery : public CItem char szcharge[64]; pPlayer->pev->armorvalue += gSkillData.batteryCapacity; - pPlayer->pev->armorvalue = min(pPlayer->pev->armorvalue, MAX_NORMAL_BATTERY); + pPlayer->pev->armorvalue = min(pPlayer->pev->armorvalue, (float)MAX_NORMAL_BATTERY); EMIT_SOUND( pPlayer->edict(), CHAN_ITEM, "items/gunpickup2.wav", 1, ATTN_NORM ); diff --git a/main/source/dlls/multiplay_gamerules.cpp b/main/source/dlls/multiplay_gamerules.cpp index d9f37487..62e17bfa 100644 --- a/main/source/dlls/multiplay_gamerules.cpp +++ b/main/source/dlls/multiplay_gamerules.cpp @@ -654,8 +654,8 @@ void CHalfLifeMultiplay::DeathNotice( CBasePlayer *pVictim, entvars_t *pKiller, killer_weapon_name += 8; else if ( strncmp( killer_weapon_name, "func_", 5 ) == 0 ) killer_weapon_name += 5; - - NetMsg_DeathMsg( killer_index, ENTINDEX( pVictim->edict() ), string( killer_weapon_name ) ); + string tmpstr(killer_weapon_name); + NetMsg_DeathMsg( killer_index, ENTINDEX( pVictim->edict() ), tmpstr); // replace the code names with the 'real' names if ( !strcmp( killer_weapon_name, "egon" ) ) diff --git a/main/source/dlls/player.cpp b/main/source/dlls/player.cpp index 19ee4d47..43c71f73 100644 --- a/main/source/dlls/player.cpp +++ b/main/source/dlls/player.cpp @@ -2062,8 +2062,8 @@ void CBasePlayer::UpdateStatusBar() //newSBarState[ SBAR_ID_TARGETARMOR ] = pEntity->pev->armorvalue; //No need to get it % based since 100 it's the max. float theHealthPercent = pEntity->pev->health/AvHPlayerUpgrade::GetMaxHealth(pEntity->pev->iuser4, (AvHUser3)pEntity->pev->iuser3, theLevel); float theArmorPercent = pEntity->pev->armorvalue/AvHPlayerUpgrade::GetMaxArmorLevel(pEntity->pev->iuser4, (AvHUser3)pEntity->pev->iuser3); - newSBarState[ SBAR_ID_TARGETHEALTH ] = max(theHealthPercent*100+0.5, 0); - newSBarState[ SBAR_ID_TARGETARMOR ] = max(theArmorPercent*100+0.5, 0); + newSBarState[ SBAR_ID_TARGETHEALTH ] = max(theHealthPercent*100+0.5f, 0.0f); + newSBarState[ SBAR_ID_TARGETARMOR ] = max(theArmorPercent*100+0.5f, 0.0f); newSBarState[ SBAR_ID_TARGETLEVEL ] = theLevel; } } @@ -2091,7 +2091,7 @@ void CBasePlayer::UpdateStatusBar() strcpy( sbuf1, "2 (health: %i2%%)\n" ); float theHealthPercentage = pEntity->pev->health/pEntity->pev->max_health; - newSBarState[ SBAR_ID_TARGETHEALTH ] = max(theHealthPercentage*100+0.5, 0); + newSBarState[ SBAR_ID_TARGETHEALTH ] = max(theHealthPercentage*100+0.5f, 0.0f); } } @@ -2978,23 +2978,23 @@ pt_end: if ( gun && gun->UseDecrement() ) { - gun->m_flNextPrimaryAttack = max( gun->m_flNextPrimaryAttack - gpGlobals->frametime, -1.0 ); - gun->m_flNextSecondaryAttack = max( gun->m_flNextSecondaryAttack - gpGlobals->frametime, -0.001 ); + gun->m_flNextPrimaryAttack = max( gun->m_flNextPrimaryAttack - gpGlobals->frametime, -1.0f ); + gun->m_flNextSecondaryAttack = max( gun->m_flNextSecondaryAttack - gpGlobals->frametime, -0.001f ); if ( gun->m_flTimeWeaponIdle != 1000 ) { - gun->m_flTimeWeaponIdle = max( gun->m_flTimeWeaponIdle - gpGlobals->frametime, -0.001 ); + gun->m_flTimeWeaponIdle = max( gun->m_flTimeWeaponIdle - gpGlobals->frametime, -0.001f ); } if ( gun->pev->fuser1 != 1000 ) { - gun->pev->fuser1 = max( gun->pev->fuser1 - gpGlobals->frametime, -0.001 ); + gun->pev->fuser1 = max( gun->pev->fuser1 - gpGlobals->frametime, -0.001f ); } // Only decrement if not flagged as NO_DECREMENT // if ( gun->m_flPumpTime != 1000 ) // { - // gun->m_flPumpTime = max( gun->m_flPumpTime - gpGlobals->frametime, -0.001 ); + // gun->m_flPumpTime = max( gun->m_flPumpTime - gpGlobals->frametime, -0.001f ); // } } @@ -4175,7 +4175,7 @@ void CBasePlayer :: UpdateClientData( void ) if ((int)pev->health != m_iClientHealth) //voogru: this cast to int is important, otherwise we spam the message, this is just a quick and easy fix. { - NetMsg_Health( pev, max( pev->health, 0 ) ); + NetMsg_Health( pev, max( pev->health, 0.0f ) ); m_iClientHealth = (int)pev->health; } diff --git a/main/source/dlls/rpg.cpp b/main/source/dlls/rpg.cpp deleted file mode 100644 index 472d9676..00000000 --- a/main/source/dlls/rpg.cpp +++ /dev/null @@ -1,617 +0,0 @@ -/*** -* -* Copyright (c) 1999, Valve LLC. All rights reserved. -* -* This product contains software technology licensed from Id -* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. -* All Rights Reserved. -* -* Use, distribution, and modification of this source code and/or resulting -* object code is restricted to non-commercial enhancements to products from -* Valve LLC. All other use, distribution, or modification is prohibited -* without written permission from Valve LLC. -* -****/ -#if !defined( OEM_BUILD ) - -#include "extdll.h" -#include "util.h" -#include "cbase.h" -#include "monsters.h" -#include "weapons.h" -#include "nodes.h" -#include "player.h" -#include "gamerules.h" - - - - -enum rpg_e { - RPG_IDLE = 0, - RPG_FIDGET, - RPG_RELOAD, // to reload - RPG_FIRE2, // to empty - RPG_HOLSTER1, // loaded - RPG_DRAW1, // loaded - RPG_HOLSTER2, // unloaded - RPG_DRAW_UL, // unloaded - RPG_IDLE_UL, // unloaded idle - RPG_FIDGET_UL, // unloaded fidget -}; - -LINK_ENTITY_TO_CLASS( weapon_rpg, CRpg ); - -#ifndef CLIENT_DLL - -LINK_ENTITY_TO_CLASS( laser_spot, CLaserSpot ); - -//========================================================= -//========================================================= -CLaserSpot *CLaserSpot::CreateSpot( void ) -{ - CLaserSpot *pSpot = GetClassPtr( (CLaserSpot *)NULL ); - pSpot->Spawn(); - - pSpot->pev->classname = MAKE_STRING("laser_spot"); - - return pSpot; -} - -//========================================================= -//========================================================= -void CLaserSpot::Spawn( void ) -{ - Precache( ); - pev->movetype = MOVETYPE_NONE; - pev->solid = SOLID_NOT; - - pev->rendermode = kRenderGlow; - pev->renderfx = kRenderFxNoDissipation; - pev->renderamt = 255; - - SET_MODEL(ENT(pev), "sprites/laserdot.spr"); - UTIL_SetOrigin( pev, pev->origin ); -}; - -//========================================================= -// Suspend- make the laser sight invisible. -//========================================================= -void CLaserSpot::Suspend( float flSuspendTime ) -{ - pev->effects |= EF_NODRAW; - - SetThink( &CLaserSpot::Revive ); - pev->nextthink = gpGlobals->time + flSuspendTime; -} - -//========================================================= -// Revive - bring a suspended laser sight back. -//========================================================= -void CLaserSpot::Revive( void ) -{ - pev->effects &= ~EF_NODRAW; - - SetThink( NULL ); -} - -void CLaserSpot::Precache( void ) -{ - PRECACHE_MODEL("sprites/laserdot.spr"); -}; - -LINK_ENTITY_TO_CLASS( rpg_rocket, CRpgRocket ); - -//========================================================= -//========================================================= -CRpgRocket *CRpgRocket::CreateRpgRocket( Vector vecOrigin, Vector vecAngles, CBaseEntity *pOwner, CRpg *pLauncher ) -{ - CRpgRocket *pRocket = GetClassPtr( (CRpgRocket *)NULL ); - - UTIL_SetOrigin( pRocket->pev, vecOrigin ); - pRocket->pev->angles = vecAngles; - pRocket->Spawn(); - pRocket->SetTouch( &CRpgRocket::RocketTouch ); - pRocket->m_pLauncher = pLauncher;// remember what RPG fired me. - pRocket->m_pLauncher->m_cActiveRockets++;// register this missile as active for the launcher - pRocket->pev->owner = pOwner->edict(); - - return pRocket; -} - -//========================================================= -//========================================================= -void CRpgRocket :: Spawn( void ) -{ - Precache( ); - // motor - pev->movetype = MOVETYPE_BOUNCE; - pev->solid = SOLID_BBOX; - - SET_MODEL(ENT(pev), "models/rpgrocket.mdl"); - UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0)); - UTIL_SetOrigin( pev, pev->origin ); - - pev->classname = MAKE_STRING("rpg_rocket"); - - SetThink( &CRpgRocket::IgniteThink ); - SetTouch( &CRpgRocket::ExplodeTouch ); - - pev->angles.x -= 30; - UTIL_MakeVectors( pev->angles ); - pev->angles.x = -(pev->angles.x + 30); - - pev->velocity = gpGlobals->v_forward * 250; - pev->gravity = 0.5; - - pev->nextthink = gpGlobals->time + 0.4; - - pev->dmg = gSkillData.plrDmgRPG; -} - -//========================================================= -//========================================================= -void CRpgRocket :: RocketTouch ( CBaseEntity *pOther ) -{ - if ( m_pLauncher ) - { - // my launcher is still around, tell it I'm dead. - m_pLauncher->m_cActiveRockets--; - } - - STOP_SOUND( edict(), CHAN_VOICE, "weapons/rocket1.wav" ); - ExplodeTouch( pOther ); -} - -//========================================================= -//========================================================= -void CRpgRocket :: Precache( void ) -{ - PRECACHE_MODEL("models/rpgrocket.mdl"); - m_iTrail = PRECACHE_MODEL("sprites/smoke.spr"); - PRECACHE_SOUND ("weapons/rocket1.wav"); -} - - -void CRpgRocket :: IgniteThink( void ) -{ - // pev->movetype = MOVETYPE_TOSS; - - pev->movetype = MOVETYPE_FLY; - pev->effects |= EF_LIGHT; - - // make rocket sound - EMIT_SOUND( ENT(pev), CHAN_VOICE, "weapons/rocket1.wav", 1, 0.5 ); - - // rocket trail - MESSAGE_BEGIN( MSG_BROADCAST, SVC_TEMPENTITY ); - - WRITE_BYTE( TE_BEAMFOLLOW ); - WRITE_SHORT(entindex()); // entity - WRITE_SHORT(m_iTrail ); // model - WRITE_BYTE( 40 ); // life - WRITE_BYTE( 5 ); // width - WRITE_BYTE( 224 ); // r, g, b - WRITE_BYTE( 224 ); // r, g, b - WRITE_BYTE( 255 ); // r, g, b - WRITE_BYTE( 255 ); // brightness - - MESSAGE_END(); // move PHS/PVS data sending into here (SEND_ALL, SEND_PVS, SEND_PHS) - - m_flIgniteTime = gpGlobals->time; - - // set to follow laser spot - SetThink( &CRpgRocket::FollowThink ); - pev->nextthink = gpGlobals->time + 0.1; -} - - -void CRpgRocket :: FollowThink( void ) -{ - CBaseEntity *pOther = NULL; - Vector vecTarget; - Vector vecDir; - float flDist, flMax, flDot; - TraceResult tr; - - UTIL_MakeAimVectors( pev->angles ); - - vecTarget = gpGlobals->v_forward; - flMax = 4096; - - // Examine all entities within a reasonable radius - while ((pOther = UTIL_FindEntityByClassname( pOther, "laser_spot" )) != NULL) - { - UTIL_TraceLine ( pev->origin, pOther->pev->origin, dont_ignore_monsters, ENT(pev), &tr ); - // ALERT( at_console, "%f\n", tr.flFraction ); - if (tr.flFraction >= 0.90) - { - vecDir = pOther->pev->origin - pev->origin; - flDist = vecDir.Length( ); - vecDir = vecDir.Normalize( ); - flDot = DotProduct( gpGlobals->v_forward, vecDir ); - if ((flDot > 0) && (flDist * (1 - flDot) < flMax)) - { - flMax = flDist * (1 - flDot); - vecTarget = vecDir; - } - } - } - - pev->angles = UTIL_VecToAngles( vecTarget ); - - // this acceleration and turning math is totally wrong, but it seems to respond well so don't change it. - float flSpeed = pev->velocity.Length(); - if (gpGlobals->time - m_flIgniteTime < 1.0) - { - pev->velocity = pev->velocity * 0.2 + vecTarget * (flSpeed * 0.8 + 400); - if (pev->waterlevel == 3) - { - // go slow underwater - if (pev->velocity.Length() > 300) - { - pev->velocity = pev->velocity.Normalize() * 300; - } - UTIL_BubbleTrail( pev->origin - pev->velocity * 0.1, pev->origin, 4 ); - } - else - { - if (pev->velocity.Length() > 2000) - { - pev->velocity = pev->velocity.Normalize() * 2000; - } - } - } - else - { - if (pev->effects & EF_LIGHT) - { - pev->effects = 0; - STOP_SOUND( ENT(pev), CHAN_VOICE, "weapons/rocket1.wav" ); - } - pev->velocity = pev->velocity * 0.2 + vecTarget * flSpeed * 0.798; - if (pev->waterlevel == 0 && pev->velocity.Length() < 1500) - { - Detonate( ); - } - } - // ALERT( at_console, "%.0f\n", flSpeed ); - - pev->nextthink = gpGlobals->time + 0.1; -} -#endif - - - -void CRpg::Reload( void ) -{ - int iResult; - - if ( m_iClip == 1 ) - { - // don't bother with any of this if don't need to reload. - return; - } - - if ( m_pPlayer->ammo_rockets <= 0 ) - return; - - // because the RPG waits to autoreload when no missiles are active while the LTD is on, the - // weapons code is constantly calling into this function, but is often denied because - // a) missiles are in flight, but the LTD is on - // or - // b) player is totally out of ammo and has nothing to switch to, and should be allowed to - // shine the designator around - // - // Set the next attack time into the future so that WeaponIdle will get called more often - // than reload, allowing the RPG LTD to be updated - - m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.5; - - if ( m_cActiveRockets && m_fSpotActive ) - { - // no reloading when there are active missiles tracking the designator. - // ward off future autoreload attempts by setting next attack time into the future for a bit. - return; - } - -#ifndef CLIENT_DLL - if ( m_pSpot && m_fSpotActive ) - { - m_pSpot->Suspend( 2.1 ); - m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 2.1; - } -#endif - - if ( m_iClip == 0 ) - iResult = DefaultReload( RPG_MAX_CLIP, RPG_RELOAD, 2 ); - - if ( iResult ) - m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 ); - -} - -void CRpg::Spawn( ) -{ - Precache( ); - m_iId = WEAPON_RPG; - - SET_MODEL(ENT(pev), "models/w_rpg.mdl"); - m_fSpotActive = 1; - -#ifdef CLIENT_DLL - if ( bIsMultiplayer() ) -#else - if ( g_pGameRules->IsMultiplayer() ) -#endif - { - // more default ammo in multiplay. - m_iDefaultAmmo = RPG_DEFAULT_GIVE * 2; - } - else - { - m_iDefaultAmmo = RPG_DEFAULT_GIVE; - } - - FallInit();// get ready to fall down. -} - - -void CRpg::Precache( void ) -{ - PRECACHE_MODEL("models/w_rpg.mdl"); - PRECACHE_MODEL("models/v_rpg.mdl"); - PRECACHE_MODEL("models/p_rpg.mdl"); - - PRECACHE_SOUND("items/9mmclip1.wav"); - - UTIL_PrecacheOther( "laser_spot" ); - UTIL_PrecacheOther( "rpg_rocket" ); - - PRECACHE_SOUND("weapons/rocketfire1.wav"); - PRECACHE_SOUND("weapons/glauncher.wav"); // alternative fire sound - - m_usRpg = PRECACHE_EVENT ( 1, "events/rpg.sc" ); -} - - -int CRpg::GetItemInfo(ItemInfo *p) -{ - p->pszName = STRING(pev->classname); - p->pszAmmo1 = "rockets"; - p->iMaxAmmo1 = ROCKET_MAX_CARRY; - p->pszAmmo2 = NULL; - p->iMaxAmmo2 = -1; - p->iMaxClip = RPG_MAX_CLIP; - p->iSlot = 3; - p->iPosition = 0; - p->iId = m_iId = WEAPON_RPG; - p->iFlags = 0; - p->iWeight = RPG_WEIGHT; - - return 1; -} - -int CRpg::AddToPlayer( CBasePlayer *pPlayer ) -{ - if ( CBasePlayerWeapon::AddToPlayer( pPlayer ) ) - { - MESSAGE_BEGIN( MSG_ONE, gmsgWeapPickup, NULL, pPlayer->pev ); - WRITE_BYTE( m_iId ); - MESSAGE_END(); - return TRUE; - } - return FALSE; -} - -BOOL CRpg::Deploy( ) -{ - if ( m_iClip == 0 ) - { - return DefaultDeploy( "models/v_rpg.mdl", "models/p_rpg.mdl", RPG_DRAW_UL, "rpg" ); - } - - return DefaultDeploy( "models/v_rpg.mdl", "models/p_rpg.mdl", RPG_DRAW1, "rpg" ); -} - - -BOOL CRpg::CanHolster( void ) -{ - if ( m_fSpotActive && m_cActiveRockets ) - { - // can't put away while guiding a missile. - return FALSE; - } - - return TRUE; -} - -void CRpg::Holster( int skiplocal /* = 0 */ ) -{ - m_fInReload = FALSE;// cancel any reload in progress. - - m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.5; - - SendWeaponAnim( RPG_HOLSTER1 ); - -#ifndef CLIENT_DLL - if (m_pSpot) - { - m_pSpot->Killed( NULL, GIB_NEVER ); - m_pSpot = NULL; - } -#endif - -} - - - -void CRpg::PrimaryAttack() -{ - if ( m_iClip ) - { - m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME; - m_pPlayer->m_iWeaponFlash = BRIGHT_GUN_FLASH; - -#ifndef CLIENT_DLL - // player "shoot" animation - m_pPlayer->SetAnimation( PLAYER_ATTACK1 ); - - UTIL_MakeVectors( m_pPlayer->pev->v_angle ); - Vector vecSrc = m_pPlayer->GetGunPosition( ) + gpGlobals->v_forward * 16 + gpGlobals->v_right * 8 + gpGlobals->v_up * -8; - - CRpgRocket *pRocket = CRpgRocket::CreateRpgRocket( vecSrc, m_pPlayer->pev->v_angle, m_pPlayer, this ); - - UTIL_MakeVectors( m_pPlayer->pev->v_angle );// RpgRocket::Create stomps on globals, so remake. - pRocket->pev->velocity = pRocket->pev->velocity + gpGlobals->v_forward * DotProduct( m_pPlayer->pev->velocity, gpGlobals->v_forward ); -#endif - - // firing RPG no longer turns on the designator. ALT fire is a toggle switch for the LTD. - // Ken signed up for this as a global change (sjb) - - int flags; -#if defined( CLIENT_WEAPONS ) - flags = FEV_NOTHOST; -#else - flags = 0; -#endif - - PLAYBACK_EVENT( flags, m_pPlayer->edict(), m_usRpg ); - - m_iClip--; - - m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 1.5; - m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.5; - } - else - { - PlayEmptySound( ); - } - UpdateSpot( ); -} - - -void CRpg::SecondaryAttack() -{ - m_fSpotActive = ! m_fSpotActive; - -#ifndef CLIENT_DLL - if (!m_fSpotActive && m_pSpot) - { - m_pSpot->Killed( NULL, GIB_NORMAL ); - m_pSpot = NULL; - } -#endif - - m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.2; -} - - -void CRpg::WeaponIdle( void ) -{ - UpdateSpot( ); - - ResetEmptySound( ); - - if ( m_flTimeWeaponIdle > UTIL_WeaponTimeBase() ) - return; - - if ( m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]) - { - int iAnim; - float flRand = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 0, 1 ); - if (flRand <= 0.75 || m_fSpotActive) - { - if ( m_iClip == 0 ) - iAnim = RPG_IDLE_UL; - else - iAnim = RPG_IDLE; - - m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 90.0 / 15.0; - } - else - { - if ( m_iClip == 0 ) - iAnim = RPG_FIDGET_UL; - else - iAnim = RPG_FIDGET; - - m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 3.0; - } - - SendWeaponAnim( iAnim ); - } - else - { - m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1; - } -} - - - -void CRpg::UpdateSpot( void ) -{ - -#ifndef CLIENT_DLL - if (m_fSpotActive) - { - if (!m_pSpot) - { - m_pSpot = CLaserSpot::CreateSpot(); - } - - UTIL_MakeVectors( m_pPlayer->pev->v_angle ); - Vector vecSrc = m_pPlayer->GetGunPosition( );; - Vector vecAiming = gpGlobals->v_forward; - - TraceResult tr; - UTIL_TraceLine ( vecSrc, vecSrc + vecAiming * 8192, dont_ignore_monsters, ENT(m_pPlayer->pev), &tr ); - - UTIL_SetOrigin( m_pSpot->pev, tr.vecEndPos ); - } -#endif - -} - - -class CRpgAmmo : public CBasePlayerAmmo -{ - void Spawn( void ) - { - Precache( ); - SET_MODEL(ENT(pev), "models/w_rpgammo.mdl"); - CBasePlayerAmmo::Spawn( ); - } - void Precache( void ) - { - PRECACHE_MODEL ("models/w_rpgammo.mdl"); - PRECACHE_SOUND("items/9mmclip1.wav"); - } - BOOL AddAmmo( CBaseEntity *pOther ) - { - int iGive; - -#ifdef CLIENT_DLL - if ( bIsMultiplayer() ) -#else - if ( g_pGameRules->IsMultiplayer() ) -#endif - { - // hand out more ammo per rocket in multiplayer. - iGive = AMMO_RPGCLIP_GIVE * 2; - } - else - { - iGive = AMMO_RPGCLIP_GIVE; - } - - if (pOther->GiveAmmo( iGive, "rockets", ROCKET_MAX_CARRY ) != -1) - { - EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/9mmclip1.wav", 1, ATTN_NORM); - return TRUE; - } - return FALSE; - } -}; -LINK_ENTITY_TO_CLASS( ammo_rpgclip, CRpgAmmo ); - -#endif diff --git a/main/source/dlls/teamplay_gamerules.cpp b/main/source/dlls/teamplay_gamerules.cpp index eda26ccc..4228abeb 100644 --- a/main/source/dlls/teamplay_gamerules.cpp +++ b/main/source/dlls/teamplay_gamerules.cpp @@ -326,7 +326,8 @@ void CHalfLifeTeamplay::DeathNotice( CBasePlayer *pVictim, entvars_t *pKiller, e { if ( (pk != pVictim) && (PlayerRelationship( pVictim, pk ) == GR_TEAMMATE) ) { - NetMsg_DeathMsg( ENTINDEX(ENT(pKiller)), ENTINDEX(pVictim->edict()), string("teammate") ); + string tmpstr("teammate"); + NetMsg_DeathMsg( ENTINDEX(ENT(pKiller)), ENTINDEX(pVictim->edict()), tmpstr); return; } } diff --git a/main/source/linux/Makefile b/main/source/linux/Makefile index 8d7b52c9..27fc4b0c 100644 --- a/main/source/linux/Makefile +++ b/main/source/linux/Makefile @@ -1,362 +1,322 @@ -# -# Half-Life ProSDK 2.0 hl_i386.so Makefile for i386 Linux -# -# April 2000 by Leon Hartwig (jehannum@planethalflife.com) -# - -DLLNAME=ns - -ARCH=i386 - -#make sure this is the correct compiler for your system -CC=gcc -LD=gcc - -CURL_SRCDIR=../curl/lib -DLL_SRCDIR=../dlls -GAME_SHARED_SRCDIR = ../game_shared -LUA_SRCDIR = ../lua/src -LUA_AUX_SRCDIR = ../lua/src/lib -MOD_SRCDIR = ../mod -PARTICLES_SRCDIR = ../particles -PM_SHARED_SRCDIR=../pm_shared -TEXT_SRCDIR = ../textrep -UTIL_SRCDIR = ../util - -CURL_OBJDIR=$(CURL_SRCDIR)/obj -DLL_OBJDIR=$(DLL_SRCDIR)/obj -GAME_SHARED_OBJDIR=$(GAME_SHARED_SRCDIR)/obj -LUA_OBJDIR=$(LUA_SRCDIR)/obj -LUA_AUX_OBJDIR=$(LUA_AUX_SRCDIR)/obj -MOD_OBJDIR=$(MOD_SRCDIR)/obj -PARTICLES_OBJDIR=$(PARTICLES_SRCDIR)/obj -PM_SHARED_OBJDIR=$(PM_SHARED_SRCDIR)/obj -TEXT_OBJDIR=$(TEXT_SRCDIR)/obj -UTIL_OBJDIR=$(UTIL_SRCDIR)/obj -OUTPUT_DIR=../../hlds_l/ns/dlls - -BASE_CFLAGS=-Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -DAVH_SERVER -DLINUX -DVALVE_DLL -DQUIVER -DVOXEL -DQUAKE2 -DDEDICATED -DSWDS -D_STLP_USE_GLIBC - -#full optimization -CFLAGS=$(BASE_CFLAGS) -w -Wall -nostdinc++ -fPIC -mcpu=i486 -O3 -pipe -fno-for-scope -funroll-loops -fdelayed-branch -malign-loops=4 -malign-jumps=4 -malign-functions=4 - -#use these when debugging -#CFLAGS=$(BASE_CFLAGS) -fPIC -fno-for-scope - -# add base directory (CGC) - -INCLUDEDIRS=-I../stlport/stlport -I. -I../curl/include -I../dlls -I../engine -I../common -I../mod -I../game_shared -I../lua/include -I../pm_shared -I.. -I/usr/include/c++/3.2/i386-redhat-linux -I/usr/include/c++/3.2 -I/usr/include/c++ -LINKDIRS= -L../curl/lib/.libs -L../stlport/lib - -SHLIBEXT=so - -LDPRELIBS= $(CFLAGS) -shared \ - -Wl,-Map,ns_map.txt \ - $(LINKDIRS) - -LDPOSTLIBS= -Wl,-Bstatic -lcurl -lstlport_gcc -lstdc++ -lsupc++ \ - -Wl,-Bdynamic -lm -lgcc -lgcc_eh -Wl,-Bstatic -lc -# -lgcc -lgcc_eh -lelf -DO_CC=$(CC) $(CFLAGS) $(INCLUDEDIRS) -o $@ -c $< - -############################################################################# -# SETUP AND BUILD -# GAME -############################################################################# - -$(CURL_OBJDIR)/%.o: $(CURL_SRCDIR)/%.c - $(DO_CC) - -$(DLL_OBJDIR)/%.o: $(DLL_SRCDIR)/%.cpp - $(DO_CC) - -$(GAME_SHARED_OBJDIR)/%.o: $(GAME_SHARED_SRCDIR)/%.cpp - $(DO_CC) - -$(LUA_OBJDIR)/%.o: $(LUA_SRCDIR)/%.c - $(DO_CC) - -$(LUA_AUX_OBJDIR)/%.o: $(LUA_AUX_SRCDIR)/%.c - $(DO_CC) - -$(MOD_OBJDIR)/%.o: $(MOD_SRCDIR)/%.cpp - $(DO_CC) - -$(PARTICLES_OBJDIR)/%.o: $(PARTICLES_SRCDIR)/%.cpp - $(DO_CC) - -$(PM_SHARED_OBJDIR)/%.o: $(PM_SHARED_SRCDIR)/%.cpp - $(DO_CC) - -$(TEXT_OBJDIR)/%.o: $(TEXT_SRCDIR)/%.cpp - $(DO_CC) - -$(UTIL_OBJDIR)/%.o: $(UTIL_SRCDIR)/%.cpp - $(DO_CC) - -OBJ = \ - $(DLL_OBJDIR)/animating.o \ - $(DLL_OBJDIR)/animation.o \ - $(DLL_OBJDIR)/bmodels.o \ - $(DLL_OBJDIR)/buttons.o \ - $(DLL_OBJDIR)/cbase.o \ - $(DLL_OBJDIR)/client.o \ - $(DLL_OBJDIR)/combat.o \ - $(DLL_OBJDIR)/doors.o \ - $(DLL_OBJDIR)/effects.o \ - $(DLL_OBJDIR)/egon.o \ - $(DLL_OBJDIR)/explode.o \ - $(DLL_OBJDIR)/func_break.o \ - $(DLL_OBJDIR)/func_tank.o \ - $(DLL_OBJDIR)/game.o \ - $(DLL_OBJDIR)/gamerules.o \ - $(DLL_OBJDIR)/gauss.o \ - $(DLL_OBJDIR)/globals.o \ - $(DLL_OBJDIR)/ggrenade.o \ - $(DLL_OBJDIR)/h_ai.o \ - $(DLL_OBJDIR)/h_battery.o \ - $(DLL_OBJDIR)/h_cycler.o \ - $(DLL_OBJDIR)/h_export.o \ - $(DLL_OBJDIR)/items.o \ - $(DLL_OBJDIR)/lights.o \ - $(DLL_OBJDIR)/maprules.o \ - $(DLL_OBJDIR)/mpstubb.o \ - $(DLL_OBJDIR)/multiplay_gamerules.o \ - $(DLL_OBJDIR)/observer.o \ - $(DLL_OBJDIR)/pathcorner.o \ - $(DLL_OBJDIR)/plane.o \ - $(DLL_OBJDIR)/plats.o \ - $(DLL_OBJDIR)/player.o \ - $(DLL_OBJDIR)/rpg.o \ - $(DLL_OBJDIR)/satchel.o \ - $(DLL_OBJDIR)/shotgun.o \ - $(DLL_OBJDIR)/singleplay_gamerules.o \ - $(DLL_OBJDIR)/skill.o \ - $(DLL_OBJDIR)/sound.o \ - $(DLL_OBJDIR)/soundent.o \ - $(DLL_OBJDIR)/spectator.o \ - $(DLL_OBJDIR)/squeakgrenade.o \ - $(DLL_OBJDIR)/subs.o \ - $(DLL_OBJDIR)/teamplay_gamerules.o \ - $(DLL_OBJDIR)/triggers.o \ - $(DLL_OBJDIR)/turret.o \ - $(DLL_OBJDIR)/util.o \ - $(DLL_OBJDIR)/weapons.o \ - $(DLL_OBJDIR)/world.o \ - $(DLL_OBJDIR)/xen.o \ - $(GAME_SHARED_OBJDIR)/voice_banmgr.o \ - $(GAME_SHARED_OBJDIR)/voice_gamemgr.o \ - $(LUA_OBJDIR)/lapi.o \ - $(LUA_AUX_OBJDIR)/lauxlib.o \ - $(LUA_AUX_OBJDIR)/lbaselib.o \ - $(LUA_OBJDIR)/lcode.o \ - $(LUA_AUX_OBJDIR)/ldblib.o \ - $(LUA_OBJDIR)/ldebug.o \ - $(LUA_OBJDIR)/ldo.o \ - $(LUA_OBJDIR)/lfunc.o \ - $(LUA_OBJDIR)/lgc.o \ - $(LUA_AUX_OBJDIR)/liolib.o \ - $(LUA_OBJDIR)/llex.o \ - $(LUA_AUX_OBJDIR)/lmathlib.o \ - $(LUA_OBJDIR)/lmem.o \ - $(LUA_OBJDIR)/lobject.o \ - $(LUA_OBJDIR)/lparser.o \ - $(LUA_OBJDIR)/lstate.o \ - $(LUA_OBJDIR)/lstring.o \ - $(LUA_AUX_OBJDIR)/lstrlib.o \ - $(LUA_OBJDIR)/ltable.o \ - $(LUA_OBJDIR)/ltests.o \ - $(LUA_OBJDIR)/ltm.o \ - $(LUA_OBJDIR)/lundump.o \ - $(LUA_OBJDIR)/lvm.o \ - $(LUA_OBJDIR)/lzio.o \ - $(LUA_OBJDIR)/lopcodes.o \ - $(LUA_OBJDIR)/ldump.o \ - $(PM_SHARED_OBJDIR)/pm_debug.o \ - $(PM_SHARED_OBJDIR)/pm_math.o \ - $(PM_SHARED_OBJDIR)/pm_shared.o \ - $(MOD_OBJDIR)/AnimationUtil.o \ - $(MOD_OBJDIR)/AvHAcidRocketGun.o \ - $(MOD_OBJDIR)/AvHAlienAbilities.o \ - $(MOD_OBJDIR)/AvHAlienEquipment.o \ - $(MOD_OBJDIR)/AvHAlienTurret.o \ - $(MOD_OBJDIR)/AvHAlienWeapon.o \ - $(MOD_OBJDIR)/AvHAssert.o \ - $(MOD_OBJDIR)/AvHBalance.o \ - $(MOD_OBJDIR)/AvHBaseBuildable.o \ - $(MOD_OBJDIR)/AvHBaseInfoLocation.o \ - $(MOD_OBJDIR)/AvHBasePlayerWeapon.o \ - $(MOD_OBJDIR)/AvHBileBombGun.o \ - $(MOD_OBJDIR)/AvHBite.o \ - $(MOD_OBJDIR)/AvHBite2.o \ - $(MOD_OBJDIR)/AvHBlink.o \ - $(MOD_OBJDIR)/AvHBuildable.o \ - $(MOD_OBJDIR)/AvHBuildingGun.o \ - $(MOD_OBJDIR)/AvHClaws.o \ - $(MOD_OBJDIR)/AvHCloakable.o \ - $(MOD_OBJDIR)/AvHConsoleCommands.o \ - $(MOD_OBJDIR)/AvHConstants.o \ - $(MOD_OBJDIR)/AvHCombat.o \ - $(MOD_OBJDIR)/AvHCurl.o \ - $(MOD_OBJDIR)/AvHDevour.o \ - $(MOD_OBJDIR)/AvHDivineWind.o \ - $(MOD_OBJDIR)/AvHEntities.o \ - $(MOD_OBJDIR)/AvHEntityHierarchy.o \ - $(MOD_OBJDIR)/AvHGamerules.o \ - $(MOD_OBJDIR)/AvHGrenade.o \ - $(MOD_OBJDIR)/AvHGrenadeGun.o \ - $(MOD_OBJDIR)/AvHHealingSpray.o \ - $(MOD_OBJDIR)/AvHHeavyMachineGun.o \ - $(MOD_OBJDIR)/AvHHive.o \ - $(MOD_OBJDIR)/AvHItemInfo.o \ - $(MOD_OBJDIR)/AvHKnife.o \ - $(MOD_OBJDIR)/AvHMachineGun.o \ - $(MOD_OBJDIR)/AvHMapExtents.o \ - $(MOD_OBJDIR)/AvHMarineEquipment.o \ - $(MOD_OBJDIR)/AvHMarineTurret.o \ - $(MOD_OBJDIR)/AvHMarineWeapon.o \ - $(MOD_OBJDIR)/AvHMetabolize.o \ - $(MOD_OBJDIR)/AvHMine.o \ - $(MOD_OBJDIR)/AvHMiniMap.o \ - $(MOD_OBJDIR)/AvHMovementUtil.o \ - $(MOD_OBJDIR)/AvHOrder.o \ - $(MOD_OBJDIR)/AvHParasiteGun.o \ - $(MOD_OBJDIR)/AvHParticleSystem.o \ - $(MOD_OBJDIR)/AvHParticleSystemEntity.o \ - $(MOD_OBJDIR)/AvHParticleSystemManager.o \ - $(MOD_OBJDIR)/AvHParticleTemplate.o \ - $(MOD_OBJDIR)/AvHParticleTemplateServer.o \ - $(MOD_OBJDIR)/AvHPistol.o \ - $(MOD_OBJDIR)/AvHPlayer.o \ - $(MOD_OBJDIR)/AvHPlayerUpgrade.o \ - $(MOD_OBJDIR)/AvHPrimalScream.o \ - $(MOD_OBJDIR)/AvHPushableBuildable.o \ - $(MOD_OBJDIR)/AvHReinforceable.o \ - $(MOD_OBJDIR)/AvHResearchManager.o \ - $(MOD_OBJDIR)/AvHScriptManager.o \ - $(MOD_OBJDIR)/AvHScriptServer.o \ - $(MOD_OBJDIR)/AvHScriptShared.o \ - $(MOD_OBJDIR)/AvHSelectionHelper.o \ - $(MOD_OBJDIR)/AvHServerPlayerData.o \ - $(MOD_OBJDIR)/AvHServerUtil.o \ - $(MOD_OBJDIR)/AvHSharedMovementInfo.o \ - $(MOD_OBJDIR)/AvHSharedUtil.o \ - $(MOD_OBJDIR)/AvHSiegeTurret.o \ - $(MOD_OBJDIR)/AvHSonicGun.o \ - $(MOD_OBJDIR)/AvHSoundListManager.o \ - $(MOD_OBJDIR)/AvHSpecials.o \ - $(MOD_OBJDIR)/AvHSpikeGun.o \ - $(MOD_OBJDIR)/AvHSpitGun.o \ - $(MOD_OBJDIR)/AvHSpores.o \ - $(MOD_OBJDIR)/AvHStomp.o \ - $(MOD_OBJDIR)/AvHSwipe.o \ - $(MOD_OBJDIR)/AvHTeam.o \ - $(MOD_OBJDIR)/AvHTechNodes.o \ - $(MOD_OBJDIR)/AvHTurret.o \ - $(MOD_OBJDIR)/AvHUmbraGun.o \ - $(MOD_OBJDIR)/AvHVisibleBlipList.o \ - $(MOD_OBJDIR)/AvHVoiceHelper.o \ - $(MOD_OBJDIR)/AvHWebSpinner.o \ - $(MOD_OBJDIR)/AvHWeldable.o \ - $(MOD_OBJDIR)/AvHWelder.o \ - $(MOD_OBJDIR)/AvHWorldUpdate.o \ - $(MOD_OBJDIR)/AvHTechSlotManager.o \ - $(MOD_OBJDIR)/AvHSpawn.o \ - $(MOD_OBJDIR)/CollisionUtil.o \ - $(MOD_OBJDIR)/CollisionChecker.o \ - $(MOD_OBJDIR)/CollisionChecker_ServerOnly.o \ - $(MOD_OBJDIR)/NetworkMeter.o \ - $(PARTICLES_OBJDIR)/action_api.o \ - $(PARTICLES_OBJDIR)/actions.o \ - $(PARTICLES_OBJDIR)/system.o \ - $(TEXT_OBJDIR)/TRDescription.o \ - $(TEXT_OBJDIR)/TRFactory.o \ - $(UTIL_OBJDIR)/Checksum.o \ - $(UTIL_OBJDIR)/LinuxSupport.o \ - $(UTIL_OBJDIR)/Mat3.o \ - $(UTIL_OBJDIR)/MathUtil.o \ - $(UTIL_OBJDIR)/Quat.o \ - $(UTIL_OBJDIR)/STLUtil.o \ - $(UTIL_OBJDIR)/Tokenizer.o - -$(DLLNAME)_$(ARCH).$(SHLIBEXT) : neat $(OBJ) - $(LD) $(LDPRELIBS) -o $@ $(OBJ) $(LDPOSTLIBS) - cp $(DLLNAME)_$(ARCH).$(SHLIBEXT) /usr/steam/hlds_l/ns/dlls/ -release: $(DLLNAME)_$(ARCH).$(SHLIBEXT) - strip $(DLLNAME)_$(ARCH).$(SHLIBEXT) - zip $(DLLNAME)_$(ARCH).zip $(DLLNAME)_$(ARCH).$(SHLIBEXT) -curl: - ./build-curl.sh -neat: - -mkdir $(CURL_OBJDIR) - -mkdir $(DLL_OBJDIR) - -mkdir $(GAME_SHARED_OBJDIR) - -mkdir $(LUA_OBJDIR) - -mkdir $(LUA_AUX_OBJDIR) - -mkdir $(MOD_OBJDIR) - -mkdir $(PARTICLES_OBJDIR) - -mkdir $(PM_SHARED_OBJDIR) - -mkdir $(TEXT_OBJDIR) - -mkdir $(UTIL_OBJDIR) - -mkdir $(OUTPUT_DIR) -clean: - -rm -f $(OBJ) - -rm -f $(DLLNAME)_$(ARCH).$(SHLIBEXT) -spotless: clean - -rm -r $(CURL_OBJDIR) - -rm -r $(DLL_OBJDIR) - -rm -r $(GAME_SHARED_OBJDIR) - -rm -r $(LUA_OBJDIR) - -rm -r $(LUA_AUX_OBJDIR) - -rm -r $(MOD_OBJDIR) - -rm -r $(PARTICLES_OBJDIR) - -rm -r $(PM_SHARED_OBJDIR) - -rm -r $(TEXT_OBJDIR) - -rm -r $(UTIL_OBJDIR) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# +# Half-Life ProSDK 2.0 hl_i386.so Makefile for i386 Linux +# +# April 2000 by Leon Hartwig (jehannum@planethalflife.com) +# + +DLLNAME=ns + +ARCH=i386 + +#make sure this is the correct compiler for your system +CC=gcc +LD=gcc + +LIBBASE=../../../libraries/current + +DLL_SRCDIR=../dlls +GAME_SHARED_SRCDIR = ../game_shared +MOD_SRCDIR = ../mod +PARTICLES_SRCDIR = ../particles +PM_SHARED_SRCDIR=../pm_shared +TEXT_SRCDIR = ../textrep +UTIL_SRCDIR = ../util + +DLL_OBJDIR=$(DLL_SRCDIR)/obj +GAME_SHARED_OBJDIR=$(GAME_SHARED_SRCDIR)/obj +MOD_OBJDIR=$(MOD_SRCDIR)/obj +PARTICLES_OBJDIR=$(PARTICLES_SRCDIR)/obj +PM_SHARED_OBJDIR=$(PM_SHARED_SRCDIR)/obj +TEXT_OBJDIR=$(TEXT_SRCDIR)/obj +UTIL_OBJDIR=$(UTIL_SRCDIR)/obj +OUTPUT_DIR=../../hlds_l/ns/dlls + +BASE_CFLAGS=-Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -DAVH_SERVER -DLINUX -DVALVE_DLL -DQUIVER -DVOXEL -DQUAKE2 -DDEDICATED -DSWDS -D_STLP_USE_GLIBC + +#full optimization +CFLAGS=$(BASE_CFLAGS) -w -Wall -nostdinc++ -ffor-scope -fPIC -mcpu=i486 -O3 -pipe -funroll-loops -fdelayed-branch -malign-loops=4 -malign-jumps=4 -malign-functions=4 + +#use these when debugging +#CFLAGS=$(BASE_CFLAGS) -fPIC -fno-for-scope + +# add base directory (CGC) + +INCLUDEDIRS=-I$(LIBBASE) -I. -I$(LIBBASE)/include -I$(LIBBASE)/include/stlport -I$(LIBBASE)/include/particle -I$(LIBBASE)/include/lua -I../dlls -I../engine -I../common -I../mod -I../game_shared -I../pm_shared -I.. -I/usr/include/c++/3.3/i486-linux -I/usr/include/c++/3.3 -I/usr/include/c++ +LINKDIRS= -L$(LIBBASE)/release + +SHLIBEXT=so + +LDPRELIBS= $(CFLAGS) -shared \ + -Wl,-Map,ns_map.txt \ + $(LINKDIRS) + +LDPOSTLIBS= -Wl,-Bstatic -lstlport_gcc -lstdc++ -lsupc++ -llua -llualib\ + -Wl,-Bdynamic -lm -lgcc -lgcc_eh +# -lgcc -lgcc_eh -lelf +DO_CC=$(CC) $(CFLAGS) $(INCLUDEDIRS) -o $@ -c $< + +############################################################################# +# SETUP AND BUILD +# GAME +############################################################################# + +$(CURL_OBJDIR)/%.o: $(CURL_SRCDIR)/%.c + $(DO_CC) + +$(DLL_OBJDIR)/%.o: $(DLL_SRCDIR)/%.cpp + $(DO_CC) + +$(GAME_SHARED_OBJDIR)/%.o: $(GAME_SHARED_SRCDIR)/%.cpp + $(DO_CC) + +$(MOD_OBJDIR)/%.o: $(MOD_SRCDIR)/%.cpp + $(DO_CC) + +$(PARTICLES_OBJDIR)/%.o: $(PARTICLES_SRCDIR)/%.cpp + $(DO_CC) + +$(PM_SHARED_OBJDIR)/%.o: $(PM_SHARED_SRCDIR)/%.cpp + $(DO_CC) + +$(TEXT_OBJDIR)/%.o: $(TEXT_SRCDIR)/%.cpp + $(DO_CC) + +$(UTIL_OBJDIR)/%.o: $(UTIL_SRCDIR)/%.cpp + $(DO_CC) + +OBJ = \ + $(DLL_OBJDIR)/animating.o \ + $(DLL_OBJDIR)/animation.o \ + $(DLL_OBJDIR)/bmodels.o \ + $(DLL_OBJDIR)/buttons.o \ + $(DLL_OBJDIR)/cbase.o \ + $(DLL_OBJDIR)/client.o \ + $(DLL_OBJDIR)/combat.o \ + $(DLL_OBJDIR)/doors.o \ + $(DLL_OBJDIR)/effects.o \ + $(DLL_OBJDIR)/egon.o \ + $(DLL_OBJDIR)/explode.o \ + $(DLL_OBJDIR)/func_break.o \ + $(DLL_OBJDIR)/func_tank.o \ + $(DLL_OBJDIR)/game.o \ + $(DLL_OBJDIR)/gamerules.o \ + $(DLL_OBJDIR)/gauss.o \ + $(DLL_OBJDIR)/globals.o \ + $(DLL_OBJDIR)/ggrenade.o \ + $(DLL_OBJDIR)/h_ai.o \ + $(DLL_OBJDIR)/h_battery.o \ + $(DLL_OBJDIR)/h_cycler.o \ + $(DLL_OBJDIR)/h_export.o \ + $(DLL_OBJDIR)/items.o \ + $(DLL_OBJDIR)/lights.o \ + $(DLL_OBJDIR)/maprules.o \ + $(DLL_OBJDIR)/mpstubb.o \ + $(DLL_OBJDIR)/multiplay_gamerules.o \ + $(DLL_OBJDIR)/observer.o \ + $(DLL_OBJDIR)/pathcorner.o \ + $(DLL_OBJDIR)/plane.o \ + $(DLL_OBJDIR)/plats.o \ + $(DLL_OBJDIR)/player.o \ + $(DLL_OBJDIR)/satchel.o \ + $(DLL_OBJDIR)/shotgun.o \ + $(DLL_OBJDIR)/singleplay_gamerules.o \ + $(DLL_OBJDIR)/skill.o \ + $(DLL_OBJDIR)/sound.o \ + $(DLL_OBJDIR)/soundent.o \ + $(DLL_OBJDIR)/spectator.o \ + $(DLL_OBJDIR)/squeakgrenade.o \ + $(DLL_OBJDIR)/subs.o \ + $(DLL_OBJDIR)/teamplay_gamerules.o \ + $(DLL_OBJDIR)/triggers.o \ + $(DLL_OBJDIR)/turret.o \ + $(DLL_OBJDIR)/util.o \ + $(DLL_OBJDIR)/weapons.o \ + $(DLL_OBJDIR)/world.o \ + $(DLL_OBJDIR)/xen.o \ + $(GAME_SHARED_OBJDIR)/voice_banmgr.o \ + $(GAME_SHARED_OBJDIR)/voice_gamemgr.o \ + $(PM_SHARED_OBJDIR)/pm_debug.o \ + $(PM_SHARED_OBJDIR)/pm_math.o \ + $(PM_SHARED_OBJDIR)/pm_shared.o \ + $(MOD_OBJDIR)/AnimationUtil.o \ + $(MOD_OBJDIR)/AvHAcidRocketGun.o \ + $(MOD_OBJDIR)/AvHAlienAbilities.o \ + $(MOD_OBJDIR)/AvHAlienEquipment.o \ + $(MOD_OBJDIR)/AvHAlienTurret.o \ + $(MOD_OBJDIR)/AvHAlienWeapon.o \ + $(MOD_OBJDIR)/AvHAssert.o \ + $(MOD_OBJDIR)/AvHBaseBuildable.o \ + $(MOD_OBJDIR)/AvHBaseInfoLocation.o \ + $(MOD_OBJDIR)/AvHBasePlayerWeapon.o \ + $(MOD_OBJDIR)/AvHBileBombGun.o \ + $(MOD_OBJDIR)/AvHBite.o \ + $(MOD_OBJDIR)/AvHBite2.o \ + $(MOD_OBJDIR)/AvHBlink.o \ + $(MOD_OBJDIR)/AvHBuildable.o \ + $(MOD_OBJDIR)/AvHBuildingGun.o \ + $(MOD_OBJDIR)/AvHClaws.o \ + $(MOD_OBJDIR)/AvHCloakable.o \ + $(MOD_OBJDIR)/AvHConsoleCommands.o \ + $(MOD_OBJDIR)/AvHConstants.o \ + $(MOD_OBJDIR)/AvHCombat.o \ + $(MOD_OBJDIR)/AvHDevour.o \ + $(MOD_OBJDIR)/AvHDivineWind.o \ + $(MOD_OBJDIR)/AvHEntities.o \ + $(MOD_OBJDIR)/AvHEntityHierarchy.o \ + $(MOD_OBJDIR)/AvHGamerules.o \ + $(MOD_OBJDIR)/AvHGrenade.o \ + $(MOD_OBJDIR)/AvHGrenadeGun.o \ + $(MOD_OBJDIR)/AvHHealingSpray.o \ + $(MOD_OBJDIR)/AvHHeavyMachineGun.o \ + $(MOD_OBJDIR)/AvHHive.o \ + $(MOD_OBJDIR)/AvHItemInfo.o \ + $(MOD_OBJDIR)/AvHKnife.o \ + $(MOD_OBJDIR)/AvHMachineGun.o \ + $(MOD_OBJDIR)/AvHMapExtents.o \ + $(MOD_OBJDIR)/AvHMarineEquipment.o \ + $(MOD_OBJDIR)/AvHMarineTurret.o \ + $(MOD_OBJDIR)/AvHMarineWeapon.o \ + $(MOD_OBJDIR)/AvHMetabolize.o \ + $(MOD_OBJDIR)/AvHMine.o \ + $(MOD_OBJDIR)/AvHMiniMap.o \ + $(MOD_OBJDIR)/AvHMovementUtil.o \ + $(MOD_OBJDIR)/AvHNetworkMessages.o \ + $(MOD_OBJDIR)/AvHOrder.o \ + $(MOD_OBJDIR)/AvHParasiteGun.o \ + $(MOD_OBJDIR)/AvHParticleSystem.o \ + $(MOD_OBJDIR)/AvHParticleSystemEntity.o \ + $(MOD_OBJDIR)/AvHParticleSystemManager.o \ + $(MOD_OBJDIR)/AvHParticleTemplate.o \ + $(MOD_OBJDIR)/AvHParticleTemplateServer.o \ + $(MOD_OBJDIR)/AvHPistol.o \ + $(MOD_OBJDIR)/AvHPlayer.o \ + $(MOD_OBJDIR)/AvHPlayerUpgrade.o \ + $(MOD_OBJDIR)/AvHPrimalScream.o \ + $(MOD_OBJDIR)/AvHPushableBuildable.o \ + $(MOD_OBJDIR)/AvHReinforceable.o \ + $(MOD_OBJDIR)/AvHResearchManager.o \ + $(MOD_OBJDIR)/AvHScriptManager.o \ + $(MOD_OBJDIR)/AvHScriptServer.o \ + $(MOD_OBJDIR)/AvHScriptShared.o \ + $(MOD_OBJDIR)/AvHSelectionHelper.o \ + $(MOD_OBJDIR)/AvHServerPlayerData.o \ + $(MOD_OBJDIR)/AvHServerUtil.o \ + $(MOD_OBJDIR)/AvHSharedMovementInfo.o \ + $(MOD_OBJDIR)/AvHSharedUtil.o \ + $(MOD_OBJDIR)/AvHSiegeTurret.o \ + $(MOD_OBJDIR)/AvHSonicGun.o \ + $(MOD_OBJDIR)/AvHSoundListManager.o \ + $(MOD_OBJDIR)/AvHSpecials.o \ + $(MOD_OBJDIR)/AvHSpikeGun.o \ + $(MOD_OBJDIR)/AvHSpitGun.o \ + $(MOD_OBJDIR)/AvHSpores.o \ + $(MOD_OBJDIR)/AvHStomp.o \ + $(MOD_OBJDIR)/AvHSwipe.o \ + $(MOD_OBJDIR)/AvHTeam.o \ + $(MOD_OBJDIR)/AvHTechNode.o \ + $(MOD_OBJDIR)/AvHTurret.o \ + $(MOD_OBJDIR)/AvHTechTree.o \ + $(MOD_OBJDIR)/AvHUmbraGun.o \ + $(MOD_OBJDIR)/AvHVisibleBlipList.o \ + $(MOD_OBJDIR)/AvHVoiceHelper.o \ + $(MOD_OBJDIR)/AvHWebSpinner.o \ + $(MOD_OBJDIR)/AvHWeldable.o \ + $(MOD_OBJDIR)/AvHWelder.o \ + $(MOD_OBJDIR)/AvHWorldUpdate.o \ + $(MOD_OBJDIR)/AvHTechSlotManager.o \ + $(MOD_OBJDIR)/AvHSpawn.o \ + $(MOD_OBJDIR)/CollisionUtil.o \ + $(MOD_OBJDIR)/CollisionChecker.o \ + $(MOD_OBJDIR)/CollisionChecker_ServerOnly.o \ + $(MOD_OBJDIR)/NetworkMeter.o \ + $(TEXT_OBJDIR)/TRDescription.o \ + $(TEXT_OBJDIR)/TRFactory.o \ + $(UTIL_OBJDIR)/Checksum.o \ + $(UTIL_OBJDIR)/Balance.o \ + $(UTIL_OBJDIR)/LinuxSupport.o \ + $(UTIL_OBJDIR)/Mat3.o \ + $(UTIL_OBJDIR)/MathUtil.o \ + $(UTIL_OBJDIR)/Quat.o \ + $(UTIL_OBJDIR)/STLUtil.o \ + $(UTIL_OBJDIR)/Tokenizer.o + +# $(PARTICLES_OBJDIR)/action_api.o +# $(PARTICLES_OBJDIR)/actions.o +# $(PARTICLES_OBJDIR)/system.o + +$(DLLNAME)_$(ARCH).$(SHLIBEXT) : neat $(OBJ) + $(LD) $(LDPRELIBS) -o $@ $(OBJ) $(LDPOSTLIBS) + release: $(DLLNAME)_$(ARCH).$(SHLIBEXT) + strip $(DLLNAME)_$(ARCH).$(SHLIBEXT) + zip $(DLLNAME)_$(ARCH).zip $(DLLNAME)_$(ARCH).$(SHLIBEXT) +curl: + ./build-curl.sh +neat: + -mkdir $(CURL_OBJDIR) + -mkdir $(DLL_OBJDIR) + -mkdir $(GAME_SHARED_OBJDIR) + -mkdir $(MOD_OBJDIR) + -mkdir $(PARTICLES_OBJDIR) + -mkdir $(PM_SHARED_OBJDIR) + -mkdir $(TEXT_OBJDIR) + -mkdir $(UTIL_OBJDIR) + -mkdir $(OUTPUT_DIR) +clean: + -rm -f $(OBJ) + -rm -f $(DLLNAME)_$(ARCH).$(SHLIBEXT) +spotless: clean + -rm -r $(CURL_OBJDIR) + -rm -r $(DLL_OBJDIR) + -rm -r $(GAME_SHARED_OBJDIR) + -rm -r $(MOD_OBJDIR) + -rm -r $(PARTICLES_OBJDIR) + -rm -r $(PM_SHARED_OBJDIR) + -rm -r $(TEXT_OBJDIR) + -rm -r $(UTIL_OBJDIR) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/main/source/mod/AvHBaseBuildable.cpp b/main/source/mod/AvHBaseBuildable.cpp index 5a1a5617..87d5c604 100644 --- a/main/source/mod/AvHBaseBuildable.cpp +++ b/main/source/mod/AvHBaseBuildable.cpp @@ -235,7 +235,7 @@ void AvHBaseBuildable::ConstructUse( CBaseEntity *pActivator, CBaseEntity *pCall const float kDefaultInterval = .1f; float theTimeOfLastConstructUse = thePlayer->GetTimeOfLastConstructUse(); - float theInterval = min(max(gpGlobals->time - theTimeOfLastConstructUse, 0), kDefaultInterval); + float theInterval = min(max(gpGlobals->time - theTimeOfLastConstructUse, 0.0f), kDefaultInterval); thePercentage += (theInterval/(float)theBuildTime); thePlayer->SetTimeOfLastConstructUse(gpGlobals->time); @@ -474,7 +474,7 @@ void AvHBaseBuildable::SetNormalizedBuildPercentage(float inPercentage, bool inF if(theDiff > 0) { this->pev->health += theDiff*(1.0f - kBaseHealthPercentage)*this->mBaseHealth; - this->pev->health = min(max(0.0f, this->pev->health), this->mBaseHealth); + this->pev->health = min(max(0.0f, this->pev->health), (float)this->mBaseHealth); } else { diff --git a/main/source/mod/AvHEntities.cpp b/main/source/mod/AvHEntities.cpp index d26cf5c8..00f29568 100644 --- a/main/source/mod/AvHEntities.cpp +++ b/main/source/mod/AvHEntities.cpp @@ -1211,17 +1211,17 @@ void TriggerPresence::KeyValue(KeyValueData* pkvd) } else if(FStrEq(pkvd->szKeyName, "timebeforeleave")) { - this->mTimeBeforeLeave = max(atof(pkvd->szValue), 0.0f); + this->mTimeBeforeLeave = fmax(atof(pkvd->szValue), 0.0f); pkvd->fHandled = TRUE; } else if(FStrEq(pkvd->szKeyName, "momentaryopentime")) { - this->mMomentaryOpenTime = max(atof(pkvd->szValue), 0.01f); + this->mMomentaryOpenTime = fmax(atof(pkvd->szValue), 0.01f); pkvd->fHandled = TRUE; } else if(FStrEq(pkvd->szKeyName, "momentaryclosetime")) { - this->mMomentaryCloseTime = max(atof(pkvd->szValue), 0.01f); + this->mMomentaryCloseTime = fmax(atof(pkvd->szValue), 0.01f); pkvd->fHandled = TRUE; } else if(FStrEq(pkvd->szKeyName, "spawnflags")) diff --git a/main/source/mod/AvHGamerules.cpp b/main/source/mod/AvHGamerules.cpp index 2fb8be69..d3a53df6 100644 --- a/main/source/mod/AvHGamerules.cpp +++ b/main/source/mod/AvHGamerules.cpp @@ -1011,7 +1011,7 @@ bool AvHGamerules::GetCanJoinTeamInFuture(AvHPlayer* inPlayer, AvHTeamNumber inT theWouldBeNumPlayersOnOtherTeam--; } - int theDiscrepancyAllowed = max(1, avh_limitteams.value); + int theDiscrepancyAllowed = max(1.0f, avh_limitteams.value); if(((theWouldBeNumPlayersOnTeam - theWouldBeNumPlayersOnOtherTeam) <= theDiscrepancyAllowed) || this->GetIsTournamentMode() || this->GetCheatsEnabled()) { // tankefugl: 0000953 @@ -2271,7 +2271,7 @@ int AvHGamerules::GetVotesNeededForMapChange() const if(theMapVoteRatio > 0) { theMapVoteRatio = min(max(0.0f, theMapVoteRatio), 1.0f); - theNumVotes = max(theMapVoteRatio*this->GetNumberOfPlayers(), 1); + theNumVotes = max(theMapVoteRatio*this->GetNumberOfPlayers(), 1.0f); } return theNumVotes; diff --git a/main/source/mod/AvHHive.cpp b/main/source/mod/AvHHive.cpp index 85ccda3a..de2e1fd7 100644 --- a/main/source/mod/AvHHive.cpp +++ b/main/source/mod/AvHHive.cpp @@ -407,7 +407,7 @@ void AvHHive::ProcessHealing() float theHiveRegenAmount = BALANCE_VAR(kHiveRegenerationAmount); float theCombatModeScalar = /*GetGameRules()->GetIsCombatMode() ? (1.0f/BALANCE_VAR(kCombatModeTimeScalar)) :*/ 1.0f; - this->pev->health = min(this->mMaxHitPoints, this->pev->health + theHiveRegenAmount*theCombatModeScalar); + this->pev->health = min((float)this->mMaxHitPoints, this->pev->health + theHiveRegenAmount*theCombatModeScalar); theDidHeal = true; } diff --git a/main/source/mod/AvHMarineEquipment.cpp b/main/source/mod/AvHMarineEquipment.cpp index 8a9030f7..8bbaf521 100644 --- a/main/source/mod/AvHMarineEquipment.cpp +++ b/main/source/mod/AvHMarineEquipment.cpp @@ -1714,7 +1714,7 @@ float AvHInfantryPortal::GetReinforceTime() const theReinforceTime = 2; } - theReinforceTime = max(0, theReinforceTime); + theReinforceTime = max(0.0f, theReinforceTime); return theReinforceTime; } @@ -2453,4 +2453,4 @@ int AvHObservatory::GetIdle2Animation() const int AvHObservatory::GetResearchAnimation() const { return 4; -} \ No newline at end of file +} diff --git a/main/source/mod/AvHMiniMap.cpp b/main/source/mod/AvHMiniMap.cpp index 310c67dc..a7f6c25b 100644 --- a/main/source/mod/AvHMiniMap.cpp +++ b/main/source/mod/AvHMiniMap.cpp @@ -148,7 +148,8 @@ bool AvHMiniMap::Process() uint8 theSampleArray[kNumPixelsPerCall]; memset(theSampleArray, 0, kNumPixelsPerCall); - for(int i = 0; (i < kNumPixelsPerCall) && (this->mNumSamplesProcessed < this->mNumSamplesToProcess); i++) + int i=0; + for(i = 0; (i < kNumPixelsPerCall) && (this->mNumSamplesProcessed < this->mNumSamplesToProcess); i++) { int theSampleIndex = this->mNumSamplesProcessed; int theX = theSampleIndex % this->mMapWidth; diff --git a/main/source/mod/AvHNetworkMessages.h b/main/source/mod/AvHNetworkMessages.h index a3f547f2..2ed1d415 100644 --- a/main/source/mod/AvHNetworkMessages.h +++ b/main/source/mod/AvHNetworkMessages.h @@ -32,8 +32,8 @@ #include "AvHTechSlotManager.h" #include "AvHVisibleBlipList.h" #include "AvHEntityHierarchy.h" -#include "..\engine\shake.h" -#include "..\common\weaponinfo.h" +#include "../engine/shake.h" +#include "../common/weaponinfo.h" //FUNCTION PROTOTYPES #ifdef AVH_SERVER @@ -198,4 +198,4 @@ #endif //AVH_SERVER -#endif \ No newline at end of file +#endif diff --git a/main/source/mod/AvHPlayer.cpp b/main/source/mod/AvHPlayer.cpp index 7fea9ec7..9c998e98 100644 --- a/main/source/mod/AvHPlayer.cpp +++ b/main/source/mod/AvHPlayer.cpp @@ -3401,7 +3401,7 @@ void AvHPlayer::InitializeFromTeam(float inHealthPercentage, float inArmorPercen { // Set base health and armor int theMaxHealth = AvHPlayerUpgrade::GetMaxHealth(this->pev->iuser4, (AvHUser3)this->pev->iuser3, this->GetExperienceLevel()); - this->pev->health = this->pev->max_health = max(theMaxHealth*inHealthPercentage,1);//voogru: prevent bug with players evolving down from higher lifeform from getting negative health but still "alive" + this->pev->health = this->pev->max_health = max(theMaxHealth*inHealthPercentage,1.0f);//voogru: prevent bug with players evolving down from higher lifeform from getting negative health but still "alive" this->pev->armorvalue = AvHPlayerUpgrade::GetMaxArmorLevel(this->pev->iuser4, (AvHUser3)this->pev->iuser3)*inArmorPercentage; @@ -4842,10 +4842,10 @@ void AvHPlayer::RevertHealthArmorPercentages() { // Preserve armor and health percentages int theMaxHealth = AvHPlayerUpgrade::GetMaxHealth(this->pev->iuser4, (AvHUser3)this->pev->iuser3, this->GetExperienceLevel()); - this->pev->health = max(this->mHealthPercentBefore*theMaxHealth,1);//voogru: prevent bug with players evolving down from higher lifeform from getting negative health but still "alive" + this->pev->health = max(this->mHealthPercentBefore*theMaxHealth,1.0f);//voogru: prevent bug with players evolving down from higher lifeform from getting negative health but still "alive" int theMaxArmor = AvHPlayerUpgrade::GetMaxArmorLevel(this->pev->iuser4, (AvHUser3)this->pev->iuser3); - this->pev->armorvalue = max(this->mArmorPercentBefore*theMaxArmor, 0); + this->pev->armorvalue = max(this->mArmorPercentBefore*theMaxArmor, 0.0f); // Assumes a push/pop kind of deal this->mHealthPercentBefore = this->mArmorPercentBefore = 1.0f; @@ -4855,11 +4855,11 @@ void AvHPlayer::SaveHealthArmorPercentages() { int theMaxHealth = AvHPlayerUpgrade::GetMaxHealth(this->pev->iuser4, (AvHUser3)this->pev->iuser3, this->GetExperienceLevel()); this->mHealthPercentBefore = this->pev->health/(float)theMaxHealth; - this->mHealthPercentBefore = min(max(0, this->mHealthPercentBefore), 1); + this->mHealthPercentBefore = min(max(0.0f, this->mHealthPercentBefore), 1.0f); int theMaxArmor = AvHPlayerUpgrade::GetMaxArmorLevel(this->pev->iuser4, (AvHUser3)this->pev->iuser3); this->mArmorPercentBefore = this->pev->armorvalue/(float)theMaxArmor; - this->mArmorPercentBefore = min(max(0, this->mArmorPercentBefore), 1); + this->mArmorPercentBefore = min(max(0.0f, this->mArmorPercentBefore), 1.0f); } void AvHPlayer::ProcessResourceAdjustment(AvHMessageID inMessageID) @@ -5094,7 +5094,7 @@ void AvHPlayer::Research(AvHMessageID inUpgrade, int inEntityIndex) ASSERT(thePercentageComplete < 1.0f); const float kRefundFactor = 1.0f; float theRefund = kRefundFactor*(1.0f - thePercentageComplete)*theResearchCost; - theRefund = min(theRefund, theResearchCost); + theRefund = min(theRefund, (float)theResearchCost); this->SetResources(this->GetResources() + theRefund); } @@ -6332,9 +6332,9 @@ void AvHPlayer::InternalCommonThink() // Players keep their health in fuser2 int theMaxHealth = AvHPlayerUpgrade::GetMaxHealth(this->pev->iuser4, (AvHUser3)this->pev->iuser3, this->GetExperienceLevel()); - int theCurrentHealth = max(0, this->pev->health); + int theCurrentHealth = max(0.0f, this->pev->health); int theMaxArmor = AvHPlayerUpgrade::GetMaxArmorLevel(this->pev->iuser4, (AvHUser3)this->pev->iuser3); - int theCurrentArmor = max(0, this->pev->armorvalue); + int theCurrentArmor = max(0.0f, this->pev->armorvalue); // Draw ring to take into account health and armor for aliens, just health for marines (so gorge and comm know when to heal) float theScalar = (float)theCurrentHealth/theMaxHealth; @@ -6456,7 +6456,7 @@ void AvHPlayer::InternalMarineThink() int theMaxArmor = AvHPlayerUpgrade::GetMaxArmorLevel(this->pev->iuser4, (AvHUser3)this->pev->iuser3); if(this->pev->armorvalue < theMaxArmor) { - this->pev->armorvalue = min(theMaxArmor, this->pev->armorvalue + kPowerRegenRate*theTimePassed); + this->pev->armorvalue = min((float)theMaxArmor, this->pev->armorvalue + kPowerRegenRate*theTimePassed); } } } @@ -8234,12 +8234,12 @@ bool AvHPlayer::Heal(float inAmount, bool inPlaySound) { int theAmountToGive = theAmount; theAmount -= (theMaxHealth - this->pev->health); //store relative amount compared to that necessary for complete heal - this->pev->health = min(theMaxHealth, this->pev->health + theAmountToGive); + this->pev->health = min((float)theMaxHealth, this->pev->health + theAmountToGive); theDidHeal = true; } else if(this->pev->armorvalue < theMaxArmor) { - this->pev->armorvalue = min(theMaxArmor, this->pev->armorvalue + theAmount); + this->pev->armorvalue = min((float)theMaxArmor, this->pev->armorvalue + theAmount); theDidHeal = true; } @@ -9929,4 +9929,4 @@ void AvHPlayer::UpdateBalanceVariables(void) //update next check of balance message queue mNextBalanceVarUpdate = gpGlobals->time + BALANCE_UPDATE_MAX_FREQUENCY; } -} \ No newline at end of file +} diff --git a/main/source/mod/AvHServerUtil.cpp b/main/source/mod/AvHServerUtil.cpp index ca5342ef..fa27a79b 100644 --- a/main/source/mod/AvHServerUtil.cpp +++ b/main/source/mod/AvHServerUtil.cpp @@ -1086,7 +1086,7 @@ void AvHSUKnockPlayerAbout(CBaseEntity* inAttcker, CBaseEntity* inVictim, int in inVictim->pev->punchangle.z = -18; inVictim->pev->punchangle.x = 5; - inVictim->pev->velocity = VecDir * max(0, 120 - VecDir.Length() ) * inForce/75; + inVictim->pev->velocity = VecDir * max(0.0f, 120 - VecDir.Length() ) * inForce/75; } } @@ -1441,7 +1441,7 @@ void AvHSUExplosiveForce(const Vector& inOrigin, int inRadius, float inForceScal float theForceScalar = inForceScalar; float theDistanceToExplosion = theForceVector.Length(); - theDistanceToExplosion = min(max(theDistanceToExplosion, 0), inRadius); + theDistanceToExplosion = min(max(theDistanceToExplosion, 0.0f), (float)inRadius); float thePercentForce = (1.0f - (theDistanceToExplosion/(float)inRadius)); theForceScalar *= thePercentForce; diff --git a/main/source/mod/AvHSharedTypes.h b/main/source/mod/AvHSharedTypes.h index 539bf59f..fd7a3986 100644 --- a/main/source/mod/AvHSharedTypes.h +++ b/main/source/mod/AvHSharedTypes.h @@ -11,7 +11,7 @@ const int kHiveInfoStatusBuildingStage5 = 5; const int kHiveInfoStatusBuilt = 6; const int kHiveInfoStatusUnderAttack = 7; -#define CHECK_EQUAL(x) (this->##x == inHiveInfo.##x) +#define CHECK_EQUAL(x) (this->x == inHiveInfo.x ) class AvHHiveInfo { public: diff --git a/main/source/mod/AvHTeam.cpp b/main/source/mod/AvHTeam.cpp index f1c8f295..f14dcbaa 100644 --- a/main/source/mod/AvHTeam.cpp +++ b/main/source/mod/AvHTeam.cpp @@ -874,7 +874,7 @@ void AvHTeam::ResetGame() this->mFunSoundsPlayed.clear(); this->mPlayedSeeDeadPeople = false; - int theEasterEggChance = max(0, avh_eastereggchance.value); + int theEasterEggChance = max(0.0f, avh_eastereggchance.value); this->mPlayFunSoundsThisGame = (RANDOM_LONG(0, theEasterEggChance) == 0); // Don't give hints right away @@ -1769,7 +1769,7 @@ void AvHTeam::UpdateVoting() // If we have enough votes to kick commander float theVotePercent = avh_votepercentneeded.value; int theMinVotesRequired = (int)avh_minvotesneeded.value; - int theVotesNeeded = max(theMinVotesRequired, this->mPlayerList.size()*theVotePercent); + int theVotesNeeded = max((float)theMinVotesRequired, this->mPlayerList.size()*theVotePercent); // #545: If the voting has changed, indicate so in the HUD if ((this->mVotesNeeded != theVotesNeeded) || (this->mVotes != this->mPreviousVotes)) { diff --git a/main/source/mod/AvHTechNode.cpp b/main/source/mod/AvHTechNode.cpp index 8f146fec..5dea7b0e 100644 --- a/main/source/mod/AvHTechNode.cpp +++ b/main/source/mod/AvHTechNode.cpp @@ -15,7 +15,7 @@ #include "mod/AvHTechNode.h" //for use in operator== -#define CHECK_EQUAL(x) (this->##x == other.##x) +#define CHECK_EQUAL(x) (this->x == other.x) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // AvHTechNode @@ -94,4 +94,4 @@ AvHTechNode& AvHTechNode::operator=(const AvHTechNode& inTechNode) return *this; } -void AvHTechNode::setAllowMultiples(const bool inAllow){ mAllowMultiples = inAllow; } \ No newline at end of file +void AvHTechNode::setAllowMultiples(const bool inAllow){ mAllowMultiples = inAllow; } diff --git a/main/source/mod/AvHVisibleBlipList.cpp b/main/source/mod/AvHVisibleBlipList.cpp index 6870ff9c..7f3aef8f 100644 --- a/main/source/mod/AvHVisibleBlipList.cpp +++ b/main/source/mod/AvHVisibleBlipList.cpp @@ -234,7 +234,7 @@ void AvHVisibleBlipList::VidInit() } #endif -#define CHECK_EQUAL(x) (this->##x == inList.##x) +#define CHECK_EQUAL(x) (this->x == inList.x) bool AvHVisibleBlipList::operator==(const AvHVisibleBlipList& inList) { bool theAreEqual = CHECK_EQUAL(mNumBlips);