Want more features on Pastebin? Sign Up, it's FREE!
Guest

Updated hl2_gamerules

By: a guest on Apr 10th, 2012  |  syntax: C++  |  size: 115.91 KB  |  views: 97  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. //========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ====
  2. //
  3. // Purpose: The Half-Life 2 game rules, such as the relationship tables and ammo
  4. //                      damage cvars.
  5. //
  6. //=============================================================================
  7.  
  8. #include "cbase.h"
  9. #include "hl2_gamerules.h"
  10. #include "ammodef.h"
  11. #include "hl2_shareddefs.h"
  12.  
  13. #ifdef CLIENT_DLL
  14.  
  15. #else
  16.         #include "player.h"
  17.         #include "game.h"
  18.         #include "gamerules.h"
  19.         #include "teamplay_gamerules.h"
  20.         #include "hl2_player.h"
  21.         #include "voice_gamemgr.h"
  22.         #include "globalstate.h"
  23.         #include "ai_basenpc.h"
  24.         #include "weapon_physcannon.h"
  25. #endif
  26.  
  27. // memdbgon must be the last include file in a .cpp file!!!
  28. #include "tier0/memdbgon.h"
  29.  
  30.  
  31. REGISTER_GAMERULES_CLASS( CHalfLife2 );
  32.  
  33. BEGIN_NETWORK_TABLE_NOBASE( CHalfLife2, DT_HL2GameRules )
  34.         #ifdef CLIENT_DLL
  35.                 RecvPropBool( RECVINFO( m_bMegaPhysgun ) ),
  36.         #else
  37.                 SendPropBool( SENDINFO( m_bMegaPhysgun ) ),
  38.         #endif
  39. END_NETWORK_TABLE()
  40.  
  41.  
  42. LINK_ENTITY_TO_CLASS( hl2_gamerules, CHalfLife2Proxy );
  43. IMPLEMENT_NETWORKCLASS_ALIASED( HalfLife2Proxy, DT_HalfLife2Proxy )
  44.  
  45.  
  46. #ifdef CLIENT_DLL
  47.         void RecvProxy_HL2GameRules( const RecvProp *pProp, void **pOut, void *pData, int objectID )
  48.         {
  49.                 CHalfLife2 *pRules = HL2GameRules();
  50.                 Assert( pRules );
  51.                 *pOut = pRules;
  52.         }
  53.  
  54.         BEGIN_RECV_TABLE( CHalfLife2Proxy, DT_HalfLife2Proxy )
  55.                 RecvPropDataTable( "hl2_gamerules_data", 0, 0, &REFERENCE_RECV_TABLE( DT_HL2GameRules ), RecvProxy_HL2GameRules )
  56.         END_RECV_TABLE()
  57. #else
  58.         void* SendProxy_HL2GameRules( const SendProp *pProp, const void *pStructBase, const void *pData, CSendProxyRecipients *pRecipients, int objectID )
  59.         {
  60.                 CHalfLife2 *pRules = HL2GameRules();
  61.                 Assert( pRules );
  62.                 pRecipients->SetAllRecipients();
  63.                 return pRules;
  64.         }
  65.  
  66.         BEGIN_SEND_TABLE( CHalfLife2Proxy, DT_HalfLife2Proxy )
  67.                 SendPropDataTable( "hl2_gamerules_data", 0, &REFERENCE_SEND_TABLE( DT_HL2GameRules ), SendProxy_HL2GameRules )
  68.         END_SEND_TABLE()
  69. #endif
  70.  
  71. ConVar  physcannon_mega_enabled( "physcannon_mega_enabled", "0", FCVAR_CHEAT | FCVAR_REPLICATED );
  72.  
  73. // Controls the application of the robus radius damage model.
  74. ConVar  sv_robust_explosions( "sv_robust_explosions","1", FCVAR_REPLICATED );
  75.  
  76. // Damage scale for damage inflicted by the player on each skill level.
  77. ConVar  sk_dmg_inflict_scale1( "sk_dmg_inflict_scale1", "1.50", FCVAR_REPLICATED );
  78. ConVar  sk_dmg_inflict_scale2( "sk_dmg_inflict_scale2", "1.00", FCVAR_REPLICATED );
  79. ConVar  sk_dmg_inflict_scale3( "sk_dmg_inflict_scale3", "0.75", FCVAR_REPLICATED );
  80.  
  81. // Damage scale for damage taken by the player on each skill level.
  82. ConVar  sk_dmg_take_scale1( "sk_dmg_take_scale1", "0.50", FCVAR_REPLICATED );
  83. ConVar  sk_dmg_take_scale2( "sk_dmg_take_scale2", "1.00", FCVAR_REPLICATED );
  84. #ifdef HL2_EPISODIC
  85.         ConVar  sk_dmg_take_scale3( "sk_dmg_take_scale3", "2.0", FCVAR_REPLICATED );
  86. #else
  87.         ConVar  sk_dmg_take_scale3( "sk_dmg_take_scale3", "1.50", FCVAR_REPLICATED );
  88. #endif//HL2_EPISODIC
  89.  
  90. ConVar  sk_allow_autoaim( "sk_allow_autoaim", "1", FCVAR_REPLICATED | FCVAR_ARCHIVE_XBOX );
  91.  
  92. // Autoaim scale
  93. ConVar  sk_autoaim_scale1( "sk_autoaim_scale1", "1.0", FCVAR_REPLICATED );
  94. ConVar  sk_autoaim_scale2( "sk_autoaim_scale2", "1.0", FCVAR_REPLICATED );
  95. //ConVar        sk_autoaim_scale3( "sk_autoaim_scale3", "0.0", FCVAR_REPLICATED ); NOT CURRENTLY OFFERED ON SKILL 3
  96.  
  97. // Quantity scale for ammo received by the player.
  98. ConVar  sk_ammo_qty_scale1 ( "sk_ammo_qty_scale1", "1.20", FCVAR_REPLICATED );
  99. ConVar  sk_ammo_qty_scale2 ( "sk_ammo_qty_scale2", "1.00", FCVAR_REPLICATED );
  100. ConVar  sk_ammo_qty_scale3 ( "sk_ammo_qty_scale3", "0.60", FCVAR_REPLICATED );
  101.  
  102. ConVar  sk_plr_health_drop_time         ( "sk_plr_health_drop_time", "30", FCVAR_REPLICATED );
  103. ConVar  sk_plr_grenade_drop_time        ( "sk_plr_grenade_drop_time", "30", FCVAR_REPLICATED );
  104.  
  105. ConVar  sk_plr_dmg_ar2                  ( "sk_plr_dmg_ar2","0", FCVAR_REPLICATED );
  106. ConVar  sk_npc_dmg_ar2                  ( "sk_npc_dmg_ar2","0", FCVAR_REPLICATED);
  107. ConVar  sk_max_ar2                              ( "sk_max_ar2","0", FCVAR_REPLICATED);
  108. ConVar  sk_max_ar2_altfire              ( "sk_max_ar2_altfire","0", FCVAR_REPLICATED);
  109.  
  110. ConVar  sk_plr_dmg_alyxgun              ( "sk_plr_dmg_alyxgun","0", FCVAR_REPLICATED );
  111. ConVar  sk_npc_dmg_alyxgun              ( "sk_npc_dmg_alyxgun","0", FCVAR_REPLICATED);
  112. ConVar  sk_max_alyxgun                  ( "sk_max_alyxgun","0", FCVAR_REPLICATED);
  113.  
  114. ConVar  sk_plr_dmg_pistol               ( "sk_plr_dmg_pistol","0", FCVAR_REPLICATED );
  115. ConVar  sk_npc_dmg_pistol               ( "sk_npc_dmg_pistol","0", FCVAR_REPLICATED);
  116. ConVar  sk_max_pistol                   ( "sk_max_pistol","0", FCVAR_REPLICATED);
  117.  
  118. ConVar  sk_plr_dmg_smg1                 ( "sk_plr_dmg_smg1","0", FCVAR_REPLICATED );
  119. ConVar  sk_npc_dmg_smg1                 ( "sk_npc_dmg_smg1","0", FCVAR_REPLICATED);
  120. ConVar  sk_max_smg1                             ( "sk_max_smg1","0", FCVAR_REPLICATED);
  121.  
  122. // FIXME: remove these
  123. //ConVar        sk_plr_dmg_flare_round  ( "sk_plr_dmg_flare_round","0", FCVAR_REPLICATED);
  124. //ConVar        sk_npc_dmg_flare_round  ( "sk_npc_dmg_flare_round","0", FCVAR_REPLICATED);
  125. //ConVar        sk_max_flare_round              ( "sk_max_flare_round","0", FCVAR_REPLICATED);
  126.  
  127. ConVar  sk_plr_dmg_buckshot             ( "sk_plr_dmg_buckshot","0", FCVAR_REPLICATED);
  128. ConVar  sk_npc_dmg_buckshot             ( "sk_npc_dmg_buckshot","0", FCVAR_REPLICATED);
  129. ConVar  sk_max_buckshot                 ( "sk_max_buckshot","0", FCVAR_REPLICATED);
  130. ConVar  sk_plr_num_shotgun_pellets( "sk_plr_num_shotgun_pellets","7", FCVAR_REPLICATED);
  131.  
  132. ConVar  sk_plr_dmg_rpg_round    ( "sk_plr_dmg_rpg_round","0", FCVAR_REPLICATED);
  133. ConVar  sk_npc_dmg_rpg_round    ( "sk_npc_dmg_rpg_round","0", FCVAR_REPLICATED);
  134. ConVar  sk_max_rpg_round                ( "sk_max_rpg_round","0", FCVAR_REPLICATED);
  135.  
  136. ConVar  sk_plr_dmg_sniper_round ( "sk_plr_dmg_sniper_round","0", FCVAR_REPLICATED);    
  137. ConVar  sk_npc_dmg_sniper_round ( "sk_npc_dmg_sniper_round","0", FCVAR_REPLICATED);
  138. ConVar  sk_max_sniper_round             ( "sk_max_sniper_round","0", FCVAR_REPLICATED);
  139.  
  140. //ConVar        sk_max_slam                             ( "sk_max_slam","0", FCVAR_REPLICATED);
  141. //ConVar        sk_max_tripwire                 ( "sk_max_tripwire","0", FCVAR_REPLICATED);
  142.  
  143. //ConVar        sk_plr_dmg_molotov              ( "sk_plr_dmg_molotov","0", FCVAR_REPLICATED);
  144. //ConVar        sk_npc_dmg_molotov              ( "sk_npc_dmg_molotov","0", FCVAR_REPLICATED);
  145. //ConVar        sk_max_molotov                  ( "sk_max_molotov","0", FCVAR_REPLICATED);
  146.  
  147. ConVar  sk_plr_dmg_grenade              ( "sk_plr_dmg_grenade","0", FCVAR_REPLICATED);
  148. ConVar  sk_npc_dmg_grenade              ( "sk_npc_dmg_grenade","0", FCVAR_REPLICATED);
  149. ConVar  sk_max_grenade                  ( "sk_max_grenade","0", FCVAR_REPLICATED);
  150.  
  151. #ifdef HL2_EPISODIC
  152. ConVar  sk_max_hopwire                  ( "sk_max_hopwire", "3", FCVAR_REPLICATED);
  153. ConVar  sk_max_striderbuster    ( "sk_max_striderbuster", "3", FCVAR_REPLICATED);
  154. #endif
  155.  
  156. //ConVar sk_plr_dmg_brickbat    ( "sk_plr_dmg_brickbat","0", FCVAR_REPLICATED);
  157. //ConVar sk_npc_dmg_brickbat    ( "sk_npc_dmg_brickbat","0", FCVAR_REPLICATED);
  158. //ConVar sk_max_brickbat                ( "sk_max_brickbat","0", FCVAR_REPLICATED);
  159.  
  160. ConVar  sk_plr_dmg_smg1_grenade ( "sk_plr_dmg_smg1_grenade","0", FCVAR_REPLICATED);
  161. ConVar  sk_npc_dmg_smg1_grenade ( "sk_npc_dmg_smg1_grenade","0", FCVAR_REPLICATED);
  162. ConVar  sk_max_smg1_grenade             ( "sk_max_smg1_grenade","0", FCVAR_REPLICATED );
  163.  
  164. ConVar  sk_plr_dmg_357                  ( "sk_plr_dmg_357", "0", FCVAR_REPLICATED );
  165. ConVar  sk_npc_dmg_357                  ( "sk_npc_dmg_357", "0", FCVAR_REPLICATED );
  166. ConVar  sk_max_357                              ( "sk_max_357", "0", FCVAR_REPLICATED );
  167.  
  168. ConVar  sk_plr_dmg_crossbow             ( "sk_plr_dmg_crossbow", "0", FCVAR_REPLICATED );
  169. ConVar  sk_npc_dmg_crossbow             ( "sk_npc_dmg_crossbow", "0", FCVAR_REPLICATED );
  170. ConVar  sk_max_crossbow                 ( "sk_max_crossbow", "0", FCVAR_REPLICATED );
  171.  
  172. ConVar  sk_dmg_sniper_penetrate_plr( "sk_dmg_sniper_penetrate_plr","0", FCVAR_REPLICATED);
  173. ConVar  sk_dmg_sniper_penetrate_npc( "sk_dmg_sniper_penetrate_npc","0", FCVAR_REPLICATED);
  174.  
  175. ConVar  sk_plr_dmg_airboat              ( "sk_plr_dmg_airboat", "0", FCVAR_REPLICATED );
  176. ConVar  sk_npc_dmg_airboat              ( "sk_npc_dmg_airboat", "0", FCVAR_REPLICATED );
  177.  
  178. ConVar  sk_max_gauss_round              ( "sk_max_gauss_round", "0", FCVAR_REPLICATED );
  179.  
  180. // Gunship & Dropship cannons
  181. ConVar  sk_npc_dmg_gunship                      ( "sk_npc_dmg_gunship", "0", FCVAR_REPLICATED );
  182. ConVar  sk_npc_dmg_gunship_to_plr       ( "sk_npc_dmg_gunship_to_plr", "0", FCVAR_REPLICATED );
  183.  
  184. //-----------------------------------------------------------------------------
  185. // Purpose:
  186. // Input  : iDmgType -
  187. // Output : Returns true on success, false on failure.
  188. //-----------------------------------------------------------------------------
  189. int CHalfLife2::Damage_GetTimeBased( void )
  190. {
  191. #ifdef HL2_EPISODIC
  192.         int iDamage = ( DMG_PARALYZE | DMG_NERVEGAS | DMG_POISON | DMG_RADIATION | DMG_DROWNRECOVER | DMG_ACID | DMG_SLOWBURN );
  193.         return iDamage;
  194. #else
  195.         return BaseClass::Damage_GetTimeBased();
  196. #endif
  197. }
  198.  
  199. //-----------------------------------------------------------------------------
  200. // Purpose:
  201. // Input  : iDmgType -
  202. // Output :             bool
  203. //-----------------------------------------------------------------------------
  204. bool CHalfLife2::Damage_IsTimeBased( int iDmgType )
  205. {
  206.         // Damage types that are time-based.
  207. #ifdef HL2_EPISODIC
  208.         // This makes me think EP2 should have its own rules, but they are #ifdef all over in here.
  209.         return ( ( iDmgType & ( DMG_PARALYZE | DMG_NERVEGAS | DMG_POISON | DMG_RADIATION | DMG_DROWNRECOVER | DMG_SLOWBURN ) ) != 0 );
  210. #else
  211.         return BaseClass::Damage_IsTimeBased( iDmgType );
  212. #endif
  213. }
  214.  
  215. #ifdef CLIENT_DLL
  216. #else
  217.  
  218. #ifdef HL2_EPISODIC
  219. ConVar  alyx_darkness_force( "alyx_darkness_force", "0", FCVAR_CHEAT | FCVAR_REPLICATED );
  220. #endif // HL2_EPISODIC
  221.  
  222. #endif // CLIENT_DLL
  223.  
  224. //-----------------------------------------------------------------------------
  225. // Purpose: called each time a player uses a "cmd" command
  226. // Input  : *pEdict - the player who issued the command
  227. //                      Use engine.Cmd_Argv,  engine.Cmd_Argv, and engine.Cmd_Argc to get
  228. //                      pointers the character string command.
  229. //-----------------------------------------------------------------------------
  230. bool CHalfLife2::ClientCommand( CBaseEntity *pEdict, const CCommand &args )
  231. {
  232. #ifndef CLIENT_DLL
  233.         if( BaseClass::ClientCommand( pEdict, args ) )
  234.                 return true;
  235.  
  236.         CHL2_Player *pPlayer = (CHL2_Player *) pEdict;
  237.  
  238.         if ( pPlayer->ClientCommand( args ) )
  239.                 return true;
  240. #endif
  241.  
  242.         return false;
  243. }
  244.  
  245. void CHalfLife2::Think( void )
  246. {
  247. #ifndef CLIENT_DLL
  248.         BaseClass::Think();
  249.  
  250.         if( physcannon_mega_enabled.GetBool() == true )
  251.         {
  252.                 m_bMegaPhysgun = true;
  253.         }
  254.         else
  255.         {
  256.                 // FIXME: Is there a better place for this?
  257.                 m_bMegaPhysgun = ( GlobalEntity_GetState("super_phys_gun") == GLOBAL_ON );
  258.         }
  259. #endif
  260. }
  261.  
  262. void CHalfLife2::CreateStandardEntities( void )
  263. {
  264. #ifndef CLIENT_DLL
  265.         // Create the entity that will send our data to the client.
  266.         BaseClass::CreateStandardEntities();
  267.  
  268. #ifdef _DEBUG
  269.         CBaseEntity *pEnt =
  270. #endif
  271.         CBaseEntity::Create( "hl2_gamerules", vec3_origin, vec3_angle );
  272.         Assert( pEnt );
  273. #endif
  274. }
  275.  
  276. #ifdef CLIENT_DLL
  277.  
  278. CHalfLife2::CHalfLife2()
  279. {
  280.         Msg("C_HalfLife2 created\n");
  281. }
  282.  
  283. CHalfLife2::~CHalfLife2()
  284. {
  285.         Msg("C_HalfLife2 destroyed\n");
  286. }
  287.  
  288. #else
  289.  
  290.         extern bool             g_fGameOver;
  291.  
  292. #if !(defined( HL2MP ) || defined( PORTAL_MP ))
  293.         class CVoiceGameMgrHelper : public IVoiceGameMgrHelper
  294.         {
  295.         public:
  296.                 virtual bool            CanPlayerHearPlayer( CBasePlayer *pListener, CBasePlayer *pTalker, bool &bProximity )
  297.                 {
  298.                         return true;
  299.                 }
  300.         };
  301.         CVoiceGameMgrHelper g_VoiceGameMgrHelper;
  302.         IVoiceGameMgrHelper *g_pVoiceGameMgrHelper = &g_VoiceGameMgrHelper;
  303. #endif
  304.        
  305.         //-----------------------------------------------------------------------------
  306.         // Purpose:
  307.         // Input  :
  308.         // Output :
  309.         //-----------------------------------------------------------------------------
  310.         CHalfLife2::CHalfLife2()
  311.         {
  312.                 Msg("CHalfLife2 created\n");
  313.  
  314.                 m_bMegaPhysgun = false;
  315.                
  316.                 m_flLastHealthDropTime = 0.0f;
  317.                 m_flLastGrenadeDropTime = 0.0f;
  318.         }
  319.  
  320.         CHalfLife2::~CHalfLife2()
  321.         {
  322.                 Msg("CHalfLife2 destroyed\n");
  323.         }
  324.  
  325.         //-----------------------------------------------------------------------------
  326.         // Purpose: Player has just spawned. Equip them.
  327.         //-----------------------------------------------------------------------------
  328.         void CHalfLife2::PlayerSpawn( CBasePlayer *pPlayer )
  329.         {
  330.         }
  331.  
  332.         //-----------------------------------------------------------------------------
  333.         // Purpose: MULTIPLAYER BODY QUE HANDLING
  334.         //-----------------------------------------------------------------------------
  335.         class CCorpse : public CBaseAnimating
  336.         {
  337.         public:
  338.                 DECLARE_CLASS( CCorpse, CBaseAnimating );
  339.                 DECLARE_SERVERCLASS();
  340.  
  341.                 virtual int ObjectCaps( void ) { return FCAP_DONT_SAVE; }      
  342.  
  343.         public:
  344.                 CNetworkVar( int, m_nReferencePlayer );
  345.         };
  346.  
  347.         IMPLEMENT_SERVERCLASS_ST(CCorpse, DT_Corpse)
  348.                 SendPropInt( SENDINFO(m_nReferencePlayer), 10, SPROP_UNSIGNED )
  349.         END_SEND_TABLE()
  350.  
  351.         LINK_ENTITY_TO_CLASS( bodyque, CCorpse );
  352.  
  353.  
  354.         CCorpse         *g_pBodyQueueHead;
  355.  
  356.         void InitBodyQue(void)
  357.         {
  358.                 CCorpse *pEntity = ( CCorpse * )CreateEntityByName( "bodyque" );
  359.                 pEntity->AddEFlags( EFL_KEEP_ON_RECREATE_ENTITIES );
  360.                 g_pBodyQueueHead = pEntity;
  361.                 CCorpse *p = g_pBodyQueueHead;
  362.                
  363.                 // Reserve 3 more slots for dead bodies
  364.                 for ( int i = 0; i < 3; i++ )
  365.                 {
  366.                         CCorpse *next = ( CCorpse * )CreateEntityByName( "bodyque" );
  367.                         next->AddEFlags( EFL_KEEP_ON_RECREATE_ENTITIES );
  368.                         p->SetOwnerEntity( next );
  369.                         p = next;
  370.                 }
  371.                
  372.                 p->SetOwnerEntity( g_pBodyQueueHead );
  373.         }
  374.  
  375.         //-----------------------------------------------------------------------------
  376.         // Purpose: make a body que entry for the given ent so the ent can be respawned elsewhere
  377.         // GLOBALS ASSUMED SET:  g_eoBodyQueueHead
  378.         //-----------------------------------------------------------------------------
  379.         void CopyToBodyQue( CBaseAnimating *pCorpse )
  380.         {
  381.                 if ( pCorpse->IsEffectActive( EF_NODRAW ) )
  382.                         return;
  383.  
  384.                 CCorpse *pHead  = g_pBodyQueueHead;
  385.  
  386.                 pHead->CopyAnimationDataFrom( pCorpse );
  387.  
  388.                 pHead->SetMoveType( MOVETYPE_FLYGRAVITY );
  389.                 pHead->SetAbsVelocity( pCorpse->GetAbsVelocity() );
  390.                 pHead->ClearFlags();
  391.                 pHead->m_nReferencePlayer       = ENTINDEX( pCorpse );
  392.  
  393.                 pHead->SetLocalAngles( pCorpse->GetAbsAngles() );
  394.                 UTIL_SetOrigin(pHead, pCorpse->GetAbsOrigin());
  395.  
  396.                 UTIL_SetSize(pHead, pCorpse->WorldAlignMins(), pCorpse->WorldAlignMaxs());
  397.                 g_pBodyQueueHead = (CCorpse *)pHead->GetOwnerEntity();
  398.         }
  399.  
  400.         //------------------------------------------------------------------------------
  401.         // Purpose : Initialize all default class relationships
  402.         // Input   :
  403.         // Output  :
  404.         //------------------------------------------------------------------------------
  405.         void CHalfLife2::InitDefaultAIRelationships( void )
  406.         {
  407.                 int i, j;
  408.  
  409.                 //  Allocate memory for default relationships
  410.                 CBaseCombatCharacter::AllocateDefaultRelationships();
  411.  
  412.                 // --------------------------------------------------------------
  413.                 // First initialize table so we can report missing relationships
  414.                 // --------------------------------------------------------------
  415.                 for (i=0;i<LAST_SHARED_ENTITY_CLASS;i++)
  416.                 {
  417.                         for (j=0;j<LAST_SHARED_ENTITY_CLASS;j++)
  418.                         {
  419.                                 // By default all relationships are neutral of priority zero
  420.                                 CBaseCombatCharacter::SetDefaultRelationship( (Class_T)i, (Class_T)j, D_NU, 0 );
  421.                         }
  422.                 }
  423.  
  424.                 // ------------------------------------------------------------
  425.                 //      > CLASS_ANTLION
  426.                 // ------------------------------------------------------------
  427.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_NONE,                             D_NU, 0);                      
  428.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_PLAYER,                   D_HT, 0);                      
  429.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_BARNACLE,                 D_NU, 0);
  430.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_BULLSEYE,                 D_NU, 0);
  431.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                   CLASS_BULLSQUID,                D_HT, 0);
  432.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  433.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_CITIZEN_REBEL,    D_HT, 0);
  434.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_COMBINE,                  D_HT, 0);
  435.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  436.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_COMBINE_HUNTER,   D_HT, 0);
  437.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_CONSCRIPT,                D_HT, 0);
  438.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_FLARE,                    D_NU, 0);
  439.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_HEADCRAB,                 D_HT, 0);
  440.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                   CLASS_HOUNDEYE,                 D_HT, 0);
  441.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_MANHACK,                  D_HT, 0);
  442.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_METROPOLICE,              D_HT, 0);
  443.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_MILITARY,                 D_HT, 0);
  444.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_MISSILE,                  D_NU, 0);
  445.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_SCANNER,                  D_HT, 0);              
  446.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_STALKER,                  D_HT, 0);              
  447.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_VORTIGAUNT,               D_HT, 0);              
  448.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_ZOMBIE,                   D_HT, 0);
  449.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_PROTOSNIPER,              D_HT, 0);
  450.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_ANTLION,                  D_LI, 0);
  451.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_EARTH_FAUNA,              D_NU, 0);
  452.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_PLAYER_ALLY,              D_HT, 0);
  453.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  454.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ANTLION,                     CLASS_HACKED_ROLLERMINE,D_HT, 0);
  455.  
  456.                 // ------------------------------------------------------------
  457.                 //      > CLASS_BARNACLE
  458.                 //
  459.                 //  In this case, the relationship D_HT indicates which characters
  460.                 //  the barnacle will try to eat.
  461.                 // ------------------------------------------------------------
  462.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_NONE,                             D_NU, 0);                      
  463.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_PLAYER,                   D_HT, 0);                      
  464.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_ANTLION,                  D_HT, 0);
  465.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_BARNACLE,                 D_LI, 0);
  466.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_BULLSEYE,                 D_NU, 0);
  467.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                  CLASS_BULLSQUID,                D_NU, 0);
  468.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  469.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_CITIZEN_REBEL,    D_HT, 0);
  470.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_COMBINE,                  D_HT, 0);
  471.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  472.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_COMBINE_HUNTER,   D_NU, 0);
  473.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_CONSCRIPT,                D_HT, 0);
  474.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_FLARE,                    D_NU, 0);
  475.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_HEADCRAB,                 D_HT, 0);
  476.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                  CLASS_HOUNDEYE,                 D_HT, 0);
  477.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_MANHACK,                  D_FR, 0);
  478.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_METROPOLICE,              D_HT, 0);
  479.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_MILITARY,                 D_HT, 0);
  480.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_MISSILE,                  D_NU, 0);
  481.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_SCANNER,                  D_NU, 0);              
  482.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_STALKER,                  D_HT, 0);              
  483.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_VORTIGAUNT,               D_HT, 0);              
  484.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_ZOMBIE,                   D_HT, 0);
  485.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_PROTOSNIPER,              D_NU, 0);
  486.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_EARTH_FAUNA,              D_HT, 0);
  487.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_PLAYER_ALLY,              D_HT, 0);
  488.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  489.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BARNACLE,                    CLASS_HACKED_ROLLERMINE,D_HT, 0);
  490.  
  491.                 // ------------------------------------------------------------
  492.                 //      > CLASS_BULLSEYE
  493.                 // ------------------------------------------------------------
  494.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_NONE,                             D_NU, 0);                      
  495.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_PLAYER,                   D_NU, 0);                      
  496.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_ANTLION,                  D_NU, 0);
  497.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_BARNACLE,                 D_NU, 0);
  498.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_BULLSEYE,                 D_NU, 0);
  499.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                  CLASS_BULLSQUID,                D_NU, 0);
  500.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  501.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_CITIZEN_REBEL,    D_NU, 0);
  502.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_COMBINE,                  D_NU, 0);
  503.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  504.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_COMBINE_HUNTER,   D_NU, 0);
  505.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_CONSCRIPT,                D_NU, 0);
  506.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_FLARE,                    D_NU, 0);
  507.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_HEADCRAB,                 D_NU, 0);
  508.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                  CLASS_HOUNDEYE,                 D_NU, 0);
  509.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_MANHACK,                  D_NU, 0);
  510.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_METROPOLICE,              D_NU, 0);
  511.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_MILITARY,                 D_NU, 0);
  512.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_MISSILE,                  D_NU, 0);
  513.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_SCANNER,                  D_NU, 0);              
  514.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_STALKER,                  D_NU, 0);              
  515.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_VORTIGAUNT,               D_NU, 0);              
  516.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_ZOMBIE,                   D_NU, 0);
  517.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_PROTOSNIPER,              D_NU, 0);
  518.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_EARTH_FAUNA,              D_NU, 0);
  519.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_PLAYER_ALLY,              D_NU, 0);
  520.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_PLAYER_ALLY_VITAL,D_NU, 0);
  521.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSEYE,                    CLASS_HACKED_ROLLERMINE,D_NU, 0);
  522.  
  523.                 // ------------------------------------------------------------
  524.                 //      > CLASS_BULLSQUID
  525.                 // ------------------------------------------------------------
  526.                 /*
  527.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_NONE,                             D_NU, 0);                      
  528.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_PLAYER,                   D_HT, 0);                      
  529.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_ANTLION,                  D_HT, 0);
  530.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_BARNACLE,                 D_FR, 0);
  531.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_BULLSEYE,                 D_NU, 0);
  532.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_BULLSQUID,                D_NU, 0);
  533.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  534.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_CITIZEN_REBEL,    D_HT, 0);
  535.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_COMBINE,                  D_HT, 0);
  536.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  537.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_COMBINE_HUNTER,   D_HT, 0);
  538.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_CONSCRIPT,                D_HT, 0);
  539.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_FLARE,                    D_NU, 0);
  540.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_HEADCRAB,                 D_HT, 1);
  541.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_HOUNDEYE,                 D_HT, 1);
  542.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_MANHACK,                  D_FR, 0);
  543.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_METROPOLICE,              D_HT, 0);
  544.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_MILITARY,                 D_HT, 0);
  545.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_MISSILE,                  D_NU, 0);
  546.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_SCANNER,                  D_NU, 0);              
  547.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_STALKER,                  D_HT, 0);              
  548.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_VORTIGAUNT,               D_HT, 0);              
  549.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_ZOMBIE,                   D_HT, 0);
  550.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_PROTOSNIPER,              D_NU, 0);
  551.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_EARTH_FAUNA,              D_NU, 0);
  552.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_PLAYER_ALLY,              D_HT, 0);
  553.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  554.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_BULLSQUID,                   CLASS_HACKED_ROLLERMINE,D_HT, 0);
  555.                 */
  556.                 // ------------------------------------------------------------
  557.                 //      > CLASS_CITIZEN_PASSIVE
  558.                 // ------------------------------------------------------------
  559.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_NONE,                             D_NU, 0);                      
  560.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_PLAYER,                   D_NU, 0);                      
  561.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_ANTLION,                  D_HT, 0);
  562.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_BARNACLE,                 D_FR, 0);
  563.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_BULLSEYE,                 D_NU, 0);
  564.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,   CLASS_BULLSQUID,                D_FR, 0);
  565.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  566.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_CITIZEN_REBEL,    D_NU, 0);
  567.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_COMBINE,                  D_NU, 0);
  568.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  569.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_COMBINE_HUNTER,   D_FR, 0);
  570.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_CONSCRIPT,                D_NU, 0);
  571.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_FLARE,                    D_NU, 0);
  572.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_HEADCRAB,                 D_FR, 0);
  573.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,   CLASS_HOUNDEYE,                 D_FR, 0);
  574.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_MANHACK,                  D_FR, 0);
  575.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_METROPOLICE,              D_NU, 0);
  576.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_MILITARY,                 D_NU, 0);
  577.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_MISSILE,                  D_FR, 0);
  578.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_SCANNER,                  D_NU, 0);              
  579.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_STALKER,                  D_NU, 0);              
  580.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_VORTIGAUNT,               D_LI, 0);
  581.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_ZOMBIE,                   D_FR, 0);
  582.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_PROTOSNIPER,              D_NU, 0);
  583.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_EARTH_FAUNA,              D_NU, 0);
  584.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_PLAYER_ALLY,              D_NU, 0);
  585.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_PLAYER_ALLY_VITAL,D_NU, 0);
  586.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_PASSIVE,     CLASS_HACKED_ROLLERMINE,D_NU, 0);
  587.  
  588.                 // ------------------------------------------------------------
  589.                 //      > CLASS_CITIZEN_REBEL
  590.                 // ------------------------------------------------------------
  591.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_NONE,                             D_NU, 0);                      
  592.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_PLAYER,                   D_NU, 0);                      
  593.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_ANTLION,                  D_HT, 0);
  594.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_BARNACLE,                 D_FR, 0);
  595.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_BULLSEYE,                 D_NU, 0);
  596.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,             CLASS_BULLSQUID,                D_FR, 0);
  597.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  598.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_CITIZEN_REBEL,    D_NU, 0);
  599.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_COMBINE,                  D_HT, 0);
  600.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  601.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_COMBINE_HUNTER,   D_HT, 0);
  602.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_CONSCRIPT,                D_NU, 0);
  603.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_FLARE,                    D_NU, 0);
  604.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_HEADCRAB,                 D_HT, 0);
  605.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,             CLASS_HOUNDEYE,                 D_HT, 0);
  606.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_MANHACK,                  D_HT, 0);
  607.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_METROPOLICE,              D_HT, 0);
  608.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_MILITARY,                 D_HT, 0);
  609.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_MISSILE,                  D_FR, 0);
  610.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_SCANNER,                  D_HT, 0);              
  611.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_STALKER,                  D_HT, 0);              
  612.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_VORTIGAUNT,               D_LI, 0);              
  613.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_ZOMBIE,                   D_HT, 0);
  614.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_PROTOSNIPER,              D_NU, 0);
  615.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_EARTH_FAUNA,              D_NU, 0);
  616.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_PLAYER_ALLY,              D_NU, 0);
  617.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_PLAYER_ALLY_VITAL,D_NU, 0);
  618.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CITIZEN_REBEL,               CLASS_HACKED_ROLLERMINE,D_NU, 0);
  619.  
  620.                 // ------------------------------------------------------------
  621.                 //      > CLASS_COMBINE
  622.                 // ------------------------------------------------------------
  623.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_NONE,                             D_NU, 0);                      
  624.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_PLAYER,                   D_HT, 0);                      
  625.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_ANTLION,                  D_HT, 0);
  626.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_BARNACLE,                 D_FR, 0);
  627.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_BULLSEYE,                 D_NU, 0);
  628.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                   CLASS_BULLSQUID,                D_HT, 0);
  629.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  630.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_CITIZEN_REBEL,    D_HT, 0);
  631.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_COMBINE,                  D_LI, 0);
  632.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_COMBINE_GUNSHIP,  D_LI, 0);
  633.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_COMBINE_HUNTER,   D_LI, 0);
  634.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_CONSCRIPT,                D_HT, 0);
  635.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_FLARE,                    D_NU, 0);
  636.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_HEADCRAB,                 D_HT, 0);
  637.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                   CLASS_HOUNDEYE,                 D_HT, 0);
  638.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_MANHACK,                  D_NU, 0);
  639.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_METROPOLICE,              D_NU, 0);
  640.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_MILITARY,                 D_NU, 0);
  641.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_MISSILE,                  D_NU, 0);
  642.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_SCANNER,                  D_NU, 0);              
  643.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_STALKER,                  D_NU, 0);              
  644.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_VORTIGAUNT,               D_HT, 0);              
  645.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_ZOMBIE,                   D_HT, 0);
  646.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_PROTOSNIPER,              D_NU, 0);
  647.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_EARTH_FAUNA,              D_NU, 0);
  648.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_PLAYER_ALLY,              D_HT, 0);
  649.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  650.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE,                     CLASS_HACKED_ROLLERMINE,D_HT, 0);
  651.  
  652.                 // ------------------------------------------------------------
  653.                 //      > CLASS_COMBINE_GUNSHIP
  654.                 // ------------------------------------------------------------
  655.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_NONE,                             D_NU, 0);                      
  656.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_PLAYER,                   D_HT, 0);                      
  657.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_ANTLION,                  D_HT, 0);
  658.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_BARNACLE,                 D_NU, 0);
  659.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_BULLSEYE,                 D_NU, 0);
  660.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,           CLASS_BULLSQUID,                D_HT, 0);
  661.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  662.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_CITIZEN_REBEL,    D_HT, 0);
  663.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_COMBINE,                  D_LI, 0);
  664.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_COMBINE_GUNSHIP,  D_LI, 0);
  665.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_COMBINE_HUNTER,   D_LI, 0);
  666.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_CONSCRIPT,                D_HT, 0);
  667.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_FLARE,                    D_NU, 0);
  668.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_HEADCRAB,                 D_NU, 0);
  669.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,           CLASS_HOUNDEYE,                 D_HT, 0);
  670.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_MANHACK,                  D_NU, 0);
  671.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_METROPOLICE,              D_NU, 0);
  672.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_MILITARY,                 D_NU, 0);
  673.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_MISSILE,                  D_FR, 0);
  674.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_SCANNER,                  D_NU, 0);              
  675.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_STALKER,                  D_NU, 0);              
  676.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_VORTIGAUNT,               D_HT, 0);              
  677.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_ZOMBIE,                   D_HT, 0);
  678.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_PROTOSNIPER,              D_NU, 0);
  679.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_EARTH_FAUNA,              D_NU, 0);
  680.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_PLAYER_ALLY,              D_HT, 0);
  681.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  682.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_GUNSHIP,             CLASS_HACKED_ROLLERMINE,D_HT, 0);
  683.  
  684.                 // ------------------------------------------------------------
  685.                 //      > CLASS_COMBINE_HUNTER
  686.                 // ------------------------------------------------------------
  687.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_NONE,                             D_NU, 0);                      
  688.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_PLAYER,                   D_HT, 0);                      
  689.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_ANTLION,                  D_HT, 0);
  690.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_BARNACLE,                 D_NU, 0);
  691.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_BULLSEYE,                 D_NU, 0);
  692.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,    CLASS_BULLSQUID,                D_HT, 0);
  693.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  694.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_CITIZEN_REBEL,    D_HT, 0);
  695.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_COMBINE,                  D_LI, 0);
  696.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_COMBINE_GUNSHIP,  D_LI, 0);
  697.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_COMBINE_HUNTER,   D_LI, 0);
  698.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_CONSCRIPT,                D_HT, 0);
  699.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_FLARE,                    D_NU, 0);
  700.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_HEADCRAB,                 D_HT, 0);
  701.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,    CLASS_HOUNDEYE,                 D_HT, 0);
  702.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_MANHACK,                  D_NU, 0);
  703.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_METROPOLICE,              D_NU, 0);
  704.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_MILITARY,                 D_NU, 0);
  705.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_MISSILE,                  D_NU, 0);
  706.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_SCANNER,                  D_NU, 0);              
  707.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_STALKER,                  D_NU, 0);              
  708.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_VORTIGAUNT,               D_HT, 0);              
  709.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_ZOMBIE,                   D_HT, 0);
  710.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_PROTOSNIPER,              D_NU, 0);
  711.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_EARTH_FAUNA,              D_NU, 0);
  712.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_PLAYER_ALLY,              D_HT, 0);
  713.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  714.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_COMBINE_HUNTER,              CLASS_HACKED_ROLLERMINE,D_HT, 0);
  715.  
  716.                 // ------------------------------------------------------------
  717.                 //      > CLASS_CONSCRIPT
  718.                 // ------------------------------------------------------------
  719.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_NONE,                             D_NU, 0);                      
  720.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_PLAYER,                   D_NU, 0);                      
  721.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_ANTLION,                  D_HT, 0);
  722.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_BARNACLE,                 D_FR, 0);
  723.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_BULLSEYE,                 D_NU, 0);
  724.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                 CLASS_BULLSQUID,                D_HT, 0);
  725.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  726.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_CITIZEN_REBEL,    D_NU, 0);
  727.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_COMBINE,                  D_HT, 0);
  728.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  729.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_COMBINE_HUNTER,   D_HT, 0);
  730.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_CONSCRIPT,                D_NU, 0);
  731.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_FLARE,                    D_NU, 0);
  732.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_HEADCRAB,                 D_HT, 0);
  733.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                 CLASS_HOUNDEYE,                 D_HT, 0);
  734.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_MANHACK,                  D_HT, 0);
  735.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_METROPOLICE,              D_HT, 0);
  736.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_MILITARY,                 D_HT, 0);
  737.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_MISSILE,                  D_NU, 0);
  738.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_SCANNER,                  D_HT, 0);              
  739.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_STALKER,                  D_HT, 0);              
  740.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_VORTIGAUNT,               D_NU, 0);              
  741.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_ZOMBIE,                   D_HT, 0);
  742.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_PROTOSNIPER,              D_NU, 0);
  743.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_EARTH_FAUNA,              D_NU, 0);
  744.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_PLAYER_ALLY,              D_NU, 0);
  745.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_PLAYER_ALLY_VITAL,D_NU, 0);
  746.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_CONSCRIPT,                   CLASS_HACKED_ROLLERMINE,D_NU, 0);
  747.                
  748.                 // ------------------------------------------------------------
  749.                 //      > CLASS_FLARE
  750.                 // ------------------------------------------------------------
  751.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_NONE,                             D_NU, 0);                      
  752.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_PLAYER,                   D_NU, 0);                      
  753.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_ANTLION,                  D_NU, 0);
  754.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_BARNACLE,                 D_NU, 0);
  755.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_BULLSEYE,                 D_NU, 0);
  756.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                     CLASS_BULLSQUID,                D_NU, 0);
  757.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  758.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_CITIZEN_REBEL,    D_NU, 0);
  759.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_COMBINE,                  D_NU, 0);
  760.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  761.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_COMBINE_HUNTER,   D_NU, 0);
  762.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_CONSCRIPT,                D_NU, 0);
  763.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_FLARE,                    D_NU, 0);
  764.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_HEADCRAB,                 D_NU, 0);
  765.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                     CLASS_HOUNDEYE,                 D_NU, 0);
  766.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_MANHACK,                  D_NU, 0);
  767.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_METROPOLICE,              D_NU, 0);
  768.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_MILITARY,                 D_NU, 0);
  769.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_MISSILE,                  D_NU, 0);
  770.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_FLARE,                    D_NU, 0);
  771.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_SCANNER,                  D_NU, 0);              
  772.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_STALKER,                  D_NU, 0);              
  773.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_VORTIGAUNT,               D_NU, 0);              
  774.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_ZOMBIE,                   D_NU, 0);
  775.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_PROTOSNIPER,              D_NU, 0);
  776.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_EARTH_FAUNA,              D_NU, 0);
  777.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_PLAYER_ALLY,              D_NU, 0);
  778.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_PLAYER_ALLY_VITAL,D_NU, 0);
  779.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_FLARE,                       CLASS_HACKED_ROLLERMINE,D_NU, 0);
  780.  
  781.                 // ------------------------------------------------------------
  782.                 //      > CLASS_HEADCRAB
  783.                 // ------------------------------------------------------------
  784.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_NONE,                             D_NU, 0);                      
  785.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_PLAYER,                   D_HT, 0);                      
  786.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_ANTLION,                  D_HT, 0);
  787.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_BARNACLE,                 D_NU, 0);
  788.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_BULLSEYE,                 D_NU, 0);
  789.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                  CLASS_BULLSQUID,                D_FR, 0);
  790.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  791.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_CITIZEN_REBEL,    D_HT, 0);
  792.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_COMBINE,                  D_HT, 0);
  793.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  794.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_COMBINE_HUNTER,   D_NU, 0);
  795.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_CONSCRIPT,                D_HT, 0);
  796.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_FLARE,                    D_NU, 0);
  797.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_HEADCRAB,                 D_NU, 0);
  798.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                  CLASS_HOUNDEYE,                 D_NU, 0);
  799.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_MANHACK,                  D_NU, 0);
  800.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_METROPOLICE,              D_HT, 0);
  801.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_MILITARY,                 D_NU, 0);
  802.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_MISSILE,                  D_NU, 0);
  803.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_SCANNER,                  D_NU, 0);              
  804.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_STALKER,                  D_NU, 0);              
  805.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_VORTIGAUNT,               D_HT, 0);              
  806.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_ZOMBIE,                   D_NU, 0);
  807.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_PROTOSNIPER,              D_NU, 0);
  808.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_EARTH_FAUNA,              D_NU, 0);
  809.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_PLAYER_ALLY,              D_HT, 0);
  810.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  811.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HEADCRAB,                    CLASS_HACKED_ROLLERMINE,D_FR, 0);
  812.  
  813.                 // ------------------------------------------------------------
  814.                 //      > CLASS_HOUNDEYE
  815.                 // ------------------------------------------------------------
  816.                 /*
  817.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_NONE,                             D_NU, 0);                      
  818.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_PLAYER,                   D_HT, 0);                      
  819.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_ANTLION,                  D_HT, 0);
  820.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_BARNACLE,                 D_NU, 0);
  821.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_BULLSEYE,                 D_NU, 0);
  822.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                  CLASS_BULLSQUID,                D_FR, 0);
  823.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  824.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_CITIZEN_REBEL,    D_HT, 0);
  825.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_COMBINE,                  D_HT, 0);
  826.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  827.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_COMBINE_HUNTER,   D_HT, 0);
  828.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_CONSCRIPT,                D_HT, 0);
  829.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_FLARE,                    D_NU, 0);
  830.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_HEADCRAB,                 D_NU, 0);
  831.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_HOUNDEYE,                 D_NU, 0);
  832.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_MANHACK,                  D_NU, 0);
  833.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_METROPOLICE,              D_HT, 0);
  834.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_MILITARY,                 D_HT, 0);
  835.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_MISSILE,                  D_NU, 0);
  836.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_SCANNER,                  D_NU, 0);              
  837.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_STALKER,                  D_NU, 0);              
  838.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_VORTIGAUNT,               D_HT, 0);              
  839.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_ZOMBIE,                   D_NU, 0);
  840.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_PROTOSNIPER,              D_NU, 0);
  841.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_EARTH_FAUNA,              D_NU, 0);
  842.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_PLAYER_ALLY,              D_HT, 0);
  843.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  844.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HOUNDEYE,                    CLASS_HACKED_ROLLERMINE,D_HT, 0);
  845.                 */
  846.  
  847.                 // ------------------------------------------------------------
  848.                 //      > CLASS_MANHACK
  849.                 // ------------------------------------------------------------
  850.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_NONE,                             D_NU, 0);                      
  851.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_PLAYER,                   D_HT, 0);                      
  852.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_ANTLION,                  D_HT, 0);
  853.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_BARNACLE,                 D_NU, 0);
  854.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_BULLSEYE,                 D_NU, 0);
  855.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                   CLASS_BULLSQUID,                D_HT, 0);
  856.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  857.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_CITIZEN_REBEL,    D_HT, 0);
  858.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_COMBINE,                  D_NU, 0);
  859.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  860.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_COMBINE_HUNTER,   D_NU, 0);
  861.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_CONSCRIPT,                D_HT, 0);
  862.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_FLARE,                    D_NU, 0);
  863.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_HEADCRAB,                 D_HT,-1);
  864.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                   CLASS_HOUNDEYE,                 D_HT,-1);
  865.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_MANHACK,                  D_NU, 0);
  866.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_METROPOLICE,              D_NU, 0);
  867.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_MILITARY,                 D_NU, 0);
  868.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_MISSILE,                  D_NU, 0);
  869.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_SCANNER,                  D_NU, 0);              
  870.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_STALKER,                  D_NU, 0);              
  871.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_VORTIGAUNT,               D_HT, 0);              
  872.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_ZOMBIE,                   D_HT, 0);
  873.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_PROTOSNIPER,              D_NU, 0);
  874.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_EARTH_FAUNA,              D_NU, 0);
  875.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_PLAYER_ALLY,              D_HT, 0);
  876.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  877.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MANHACK,                     CLASS_HACKED_ROLLERMINE,D_HT, 0);
  878.  
  879.                 // ------------------------------------------------------------
  880.                 //      > CLASS_METROPOLICE
  881.                 // ------------------------------------------------------------
  882.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_NONE,                             D_NU, 0);                      
  883.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_PLAYER,                   D_HT, 0);                      
  884.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_ANTLION,                  D_HT, 0);
  885.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_BARNACLE,                 D_NU, 0);
  886.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_BULLSEYE,                 D_NU, 0);
  887.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,               CLASS_BULLSQUID,                D_HT, 0);
  888.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  889.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_CITIZEN_REBEL,    D_HT, 0);
  890.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_COMBINE,                  D_NU, 0);
  891.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  892.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_COMBINE_HUNTER,   D_NU, 0);
  893.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_CONSCRIPT,                D_HT, 0);
  894.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_FLARE,                    D_NU, 0);
  895.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_HEADCRAB,                 D_HT, 0);
  896.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,               CLASS_HOUNDEYE,                 D_HT, 0);
  897.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_MANHACK,                  D_NU, 0);
  898.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_METROPOLICE,              D_NU, 0);
  899.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_MILITARY,                 D_NU, 0);
  900.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_MISSILE,                  D_NU, 0);
  901.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_SCANNER,                  D_NU, 0);              
  902.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_STALKER,                  D_NU, 0);              
  903.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_VORTIGAUNT,               D_HT, 0);              
  904.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_ZOMBIE,                   D_HT, 0);
  905.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_PROTOSNIPER,              D_NU, 0);
  906.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_EARTH_FAUNA,              D_NU, 0);
  907.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_PLAYER_ALLY,              D_HT, 0);
  908.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  909.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_METROPOLICE,         CLASS_HACKED_ROLLERMINE,D_HT, 0);
  910.  
  911.                 // ------------------------------------------------------------
  912.                 //      > CLASS_MILITARY
  913.                 // ------------------------------------------------------------
  914.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_NONE,                             D_NU, 0);                      
  915.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_PLAYER,                   D_HT, 0);                      
  916.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_ANTLION,                  D_HT, 0);
  917.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_BARNACLE,                 D_NU, 0);
  918.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_BULLSEYE,                 D_NU, 0);
  919.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                  CLASS_BULLSQUID,                D_HT, 0);
  920.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  921.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_CITIZEN_REBEL,    D_HT, 0);
  922.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_COMBINE,                  D_NU, 0);
  923.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  924.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_COMBINE_HUNTER,   D_NU, 0);
  925.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_CONSCRIPT,                D_HT, 0);
  926.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_FLARE,                    D_NU, 0);
  927.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_HEADCRAB,                 D_HT, 0);
  928.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                  CLASS_HOUNDEYE,                 D_HT, 0);
  929.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_MANHACK,                  D_NU, 0);
  930.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_METROPOLICE,              D_NU, 0);
  931.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_MILITARY,                 D_NU, 0);
  932.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_MISSILE,                  D_NU, 0);
  933.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_SCANNER,                  D_NU, 0);              
  934.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_STALKER,                  D_NU, 0);              
  935.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_VORTIGAUNT,               D_HT, 0);              
  936.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_ZOMBIE,                   D_HT, 0);
  937.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_PROTOSNIPER,              D_NU, 0);
  938.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_EARTH_FAUNA,              D_NU, 0);
  939.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_PLAYER_ALLY,              D_HT, 0);
  940.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  941.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MILITARY,                    CLASS_HACKED_ROLLERMINE,D_HT, 0);
  942.  
  943.                 // ------------------------------------------------------------
  944.                 //      > CLASS_MISSILE
  945.                 // ------------------------------------------------------------
  946.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_NONE,                             D_NU, 0);                      
  947.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_PLAYER,                   D_HT, 0);                      
  948.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_ANTLION,                  D_HT, 0);
  949.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_BARNACLE,                 D_NU, 0);
  950.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_BULLSEYE,                 D_NU, 0);
  951.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                   CLASS_BULLSQUID,                D_HT, 0);
  952.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  953.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_CITIZEN_REBEL,    D_HT, 0);
  954.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_COMBINE,                  D_NU, 0);
  955.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  956.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_COMBINE_HUNTER,   D_NU, 0);
  957.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_CONSCRIPT,                D_HT, 0);
  958.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_FLARE,                    D_NU, 0);
  959.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_HEADCRAB,                 D_HT, 0);
  960.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                   CLASS_HOUNDEYE,                 D_HT, 0);
  961.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_MANHACK,                  D_NU, 0);
  962.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_METROPOLICE,              D_NU, 0);
  963.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_MILITARY,                 D_NU, 0);
  964.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_MISSILE,                  D_NU, 0);
  965.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_SCANNER,                  D_NU, 0);              
  966.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_STALKER,                  D_NU, 0);              
  967.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_VORTIGAUNT,               D_HT, 0);              
  968.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_ZOMBIE,                   D_HT, 0);
  969.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_PROTOSNIPER,              D_NU, 0);
  970.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_EARTH_FAUNA,              D_NU, 0);
  971.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_PLAYER_ALLY,              D_HT, 0);
  972.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  973.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_MISSILE,                     CLASS_HACKED_ROLLERMINE,D_HT, 0);
  974.  
  975.                 // ------------------------------------------------------------
  976.                 //      > CLASS_NONE
  977.                 // ------------------------------------------------------------
  978.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_NONE,                             D_NU, 0);                      
  979.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_PLAYER,                   D_NU, 0);                      
  980.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_ANTLION,                  D_NU, 0);
  981.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_BARNACLE,                 D_NU, 0);
  982.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_BULLSEYE,                 D_NU, 0);      
  983.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                              CLASS_BULLSQUID,                D_NU, 0);
  984.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  985.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_CITIZEN_REBEL,    D_NU, 0);
  986.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_COMBINE,                  D_NU, 0);
  987.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  988.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_COMBINE_HUNTER,   D_NU, 0);
  989.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_CONSCRIPT,                D_NU, 0);
  990.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_FLARE,                    D_NU, 0);
  991.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_HEADCRAB,                 D_NU, 0);
  992.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                              CLASS_HOUNDEYE,                 D_NU, 0);
  993.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_MANHACK,                  D_NU, 0);
  994.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_METROPOLICE,              D_NU, 0);
  995.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_MILITARY,                 D_NU, 0);
  996.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_SCANNER,                  D_NU, 0);              
  997.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_STALKER,                  D_NU, 0);              
  998.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_VORTIGAUNT,               D_NU, 0);              
  999.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_ZOMBIE,                   D_NU, 0);
  1000.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_PROTOSNIPER,              D_NU, 0);
  1001.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_EARTH_FAUNA,              D_NU, 0);
  1002.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_PLAYER_ALLY,              D_NU, 0);
  1003.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_PLAYER_ALLY_VITAL,D_NU, 0);
  1004.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_NONE,                                CLASS_HACKED_ROLLERMINE,D_NU, 0);
  1005.  
  1006.                 // ------------------------------------------------------------
  1007.                 //      > CLASS_PLAYER
  1008.                 // ------------------------------------------------------------
  1009.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_NONE,                             D_NU, 0);                      
  1010.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_PLAYER,                   D_NU, 0);                      
  1011.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_ANTLION,                  D_HT, 0);
  1012.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_BARNACLE,                 D_HT, 0);
  1013.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_BULLSEYE,                 D_HT, 0);
  1014.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                    CLASS_BULLSQUID,                D_HT, 0);
  1015.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_CITIZEN_PASSIVE,  D_LI, 0);      
  1016.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_CITIZEN_REBEL,    D_LI, 0);
  1017.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_COMBINE,                  D_HT, 0);
  1018.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_COMBINE_GUNSHIP,  D_HT, 0);
  1019.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_COMBINE_HUNTER,   D_HT, 0);
  1020.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_CONSCRIPT,                D_NU, 0);
  1021.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_FLARE,                    D_NU, 0);
  1022.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_HEADCRAB,                 D_HT, 0);
  1023.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                    CLASS_HOUNDEYE,                 D_HT, 0);
  1024.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_MANHACK,                  D_HT, 0);
  1025.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_METROPOLICE,              D_HT, 0);
  1026.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_MILITARY,                 D_HT, 0);
  1027.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_MISSILE,                  D_NU, 0);
  1028.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_SCANNER,                  D_HT, 0);              
  1029.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_STALKER,                  D_HT, 0);              
  1030.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_VORTIGAUNT,               D_LI, 0);              
  1031.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_ZOMBIE,                   D_HT, 0);
  1032.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_PROTOSNIPER,              D_HT, 0);
  1033.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_EARTH_FAUNA,              D_NU, 0);
  1034.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_PLAYER_ALLY,              D_LI, 0);
  1035.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_PLAYER_ALLY_VITAL,D_LI, 0);
  1036.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER,                      CLASS_HACKED_ROLLERMINE,D_LI, 0);
  1037.  
  1038.                 // ------------------------------------------------------------
  1039.                 //      > CLASS_PLAYER_ALLY
  1040.                 // ------------------------------------------------------------
  1041.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_NONE,                             D_NU, 0);                      
  1042.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_PLAYER,                   D_LI, 0);                      
  1043.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_ANTLION,                  D_HT, 0);
  1044.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_BARNACLE,                 D_HT, 0);
  1045.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_BULLSEYE,                 D_NU, 0);
  1046.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                       CLASS_BULLSQUID,                D_HT, 0);
  1047.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  1048.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_CITIZEN_REBEL,    D_NU, 0);
  1049.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_COMBINE,                  D_HT, 0);
  1050.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  1051.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_COMBINE_HUNTER,   D_HT, 0);
  1052.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_CONSCRIPT,                D_NU, 0);
  1053.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_FLARE,                    D_NU, 0);
  1054.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_HEADCRAB,                 D_FR, 0);
  1055.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                       CLASS_HOUNDEYE,                 D_HT, 0);
  1056.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_MANHACK,                  D_HT, 0);
  1057.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_METROPOLICE,              D_HT, 0);
  1058.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_MILITARY,                 D_HT, 0);
  1059.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_MISSILE,                  D_NU, 0);
  1060.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_SCANNER,                  D_HT, 0);              
  1061.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_STALKER,                  D_HT, 0);              
  1062.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_VORTIGAUNT,               D_LI, 0);              
  1063.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_ZOMBIE,                   D_FR, 1);
  1064.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_PROTOSNIPER,              D_FR, 0);
  1065.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_EARTH_FAUNA,              D_NU, 0);
  1066.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_PLAYER_ALLY,              D_LI, 0);
  1067.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_PLAYER_ALLY_VITAL,D_LI, 0);
  1068.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY,                 CLASS_HACKED_ROLLERMINE,D_LI, 0);
  1069.  
  1070.                 // ------------------------------------------------------------
  1071.                 //      > CLASS_PLAYER_ALLY_VITAL
  1072.                 // ------------------------------------------------------------
  1073.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_NONE,                             D_NU, 0);                      
  1074.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_PLAYER,                   D_LI, 0);                      
  1075.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_ANTLION,                  D_HT, 0);
  1076.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_BARNACLE,                 D_HT, 0);
  1077.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_BULLSEYE,                 D_NU, 0);
  1078.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL, CLASS_BULLSQUID,                D_HT, 0);
  1079.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  1080.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_CITIZEN_REBEL,    D_NU, 0);
  1081.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_COMBINE,                  D_HT, 0);
  1082.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  1083.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_COMBINE_HUNTER,   D_FR, 0);
  1084.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_CONSCRIPT,                D_NU, 0);
  1085.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_FLARE,                    D_NU, 0);
  1086.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_HEADCRAB,                 D_HT, 0);
  1087.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL, CLASS_HOUNDEYE,                 D_HT, 0);
  1088.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_MANHACK,                  D_HT, 0);
  1089.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_METROPOLICE,              D_HT, 0);
  1090.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_MILITARY,                 D_HT, 0);
  1091.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_MISSILE,                  D_NU, 0);
  1092.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_SCANNER,                  D_HT, 0);              
  1093.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_STALKER,                  D_HT, 0);              
  1094.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_VORTIGAUNT,               D_LI, 0);              
  1095.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_ZOMBIE,                   D_HT, 0);
  1096.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_PROTOSNIPER,              D_FR, 0);
  1097.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_EARTH_FAUNA,              D_NU, 0);
  1098.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_PLAYER_ALLY,              D_LI, 0);
  1099.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_PLAYER_ALLY_VITAL,D_LI, 0);
  1100.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PLAYER_ALLY_VITAL,   CLASS_HACKED_ROLLERMINE,D_LI, 0);
  1101.  
  1102.                 // ------------------------------------------------------------
  1103.                 //      > CLASS_SCANNER
  1104.                 // ------------------------------------------------------------
  1105.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_NONE,                             D_NU, 0);                      
  1106.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_PLAYER,                   D_HT, 0);                      
  1107.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_ANTLION,                  D_HT, 0);
  1108.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_BARNACLE,                 D_NU, 0);
  1109.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_BULLSEYE,                 D_NU, 0);
  1110.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                   CLASS_BULLSQUID,                D_NU, 0);
  1111.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  1112.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_CITIZEN_REBEL,    D_HT, 0);
  1113.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_COMBINE,                  D_LI, 0);
  1114.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_COMBINE_GUNSHIP,  D_LI, 0);
  1115.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_COMBINE_HUNTER,   D_LI, 0);
  1116.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_CONSCRIPT,                D_HT, 0);
  1117.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_FLARE,                    D_NU, 0);
  1118.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_HEADCRAB,                 D_NU, 0);
  1119.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                   CLASS_HOUNDEYE,                 D_NU, 0);
  1120.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_MANHACK,                  D_LI, 0);
  1121.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_METROPOLICE,              D_LI, 0);
  1122.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_MILITARY,                 D_LI, 0);
  1123.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_MISSILE,                  D_NU, 0);
  1124.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_SCANNER,                  D_LI, 0);              
  1125.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_STALKER,                  D_LI, 0);              
  1126.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_VORTIGAUNT,               D_HT, 0);              
  1127.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_ZOMBIE,                   D_NU, 0);
  1128.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_PROTOSNIPER,              D_LI, 0);
  1129.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_EARTH_FAUNA,              D_NU, 0);
  1130.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_PLAYER_ALLY,              D_HT, 0);
  1131.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  1132.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_SCANNER,                     CLASS_HACKED_ROLLERMINE,D_HT, 0);
  1133.  
  1134.                 // ------------------------------------------------------------
  1135.                 //      > CLASS_STALKER
  1136.                 // ------------------------------------------------------------
  1137.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_NONE,                             D_NU, 0);                      
  1138.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_PLAYER,                   D_HT, 0);                      
  1139.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_ANTLION,                  D_HT, 0);
  1140.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_BARNACLE,                 D_NU, 0);
  1141.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_BULLSEYE,                 D_NU, 0);
  1142.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                   CLASS_BULLSQUID,                D_HT, 0);
  1143.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  1144.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_CITIZEN_REBEL,    D_HT, 0);
  1145.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_COMBINE,                  D_NU, 0);
  1146.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  1147.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_COMBINE_HUNTER,   D_NU, 0);
  1148.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_CONSCRIPT,                D_HT, 0);
  1149.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_FLARE,                    D_NU, 0);
  1150.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_HEADCRAB,                 D_NU, 0);
  1151.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                   CLASS_HOUNDEYE,                 D_NU, 0);
  1152.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_MANHACK,                  D_NU, 0);
  1153.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_METROPOLICE,              D_NU, 0);
  1154.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_MILITARY,                 D_NU, 0);
  1155.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_MISSILE,                  D_NU, 0);
  1156.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_SCANNER,                  D_NU, 0);              
  1157.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_STALKER,                  D_NU, 0);              
  1158.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_VORTIGAUNT,               D_HT, 0);              
  1159.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_ZOMBIE,                   D_NU, 0);
  1160.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_PROTOSNIPER,              D_NU, 0);
  1161.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_EARTH_FAUNA,              D_NU, 0);
  1162.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_PLAYER_ALLY,              D_HT, 0);
  1163.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  1164.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_STALKER,                     CLASS_HACKED_ROLLERMINE,D_HT, 0);
  1165.  
  1166.                 // ------------------------------------------------------------
  1167.                 //      > CLASS_VORTIGAUNT
  1168.                 // ------------------------------------------------------------
  1169.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_NONE,                             D_NU, 0);                      
  1170.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_PLAYER,                   D_LI, 0);                      
  1171.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_ANTLION,                  D_HT, 0);
  1172.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_BARNACLE,                 D_FR, 0);
  1173.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_BULLSEYE,                 D_NU, 0);
  1174.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,                CLASS_BULLSQUID,                D_HT, 0);
  1175.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_CITIZEN_PASSIVE,  D_LI, 0);      
  1176.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_CITIZEN_REBEL,    D_LI, 0);
  1177.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_COMBINE,                  D_HT, 0);
  1178.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  1179.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_COMBINE_HUNTER,   D_HT, 0);
  1180.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_CONSCRIPT,                D_NU, 0);
  1181.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_FLARE,                    D_NU, 0);
  1182.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_HEADCRAB,                 D_HT, 0);
  1183.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,                CLASS_HOUNDEYE,                 D_HT, 0);
  1184.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_MANHACK,                  D_HT, 0);
  1185.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_METROPOLICE,              D_HT, 0);
  1186.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_MILITARY,                 D_HT, 0);
  1187.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_MISSILE,                  D_NU, 0);
  1188.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_SCANNER,                  D_HT, 0);              
  1189.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_STALKER,                  D_HT, 0);              
  1190.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_VORTIGAUNT,               D_NU, 0);              
  1191.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_ZOMBIE,                   D_HT, 0);
  1192.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_PROTOSNIPER,              D_NU, 0);
  1193.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_EARTH_FAUNA,              D_NU, 0);
  1194.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_PLAYER_ALLY,              D_LI, 0);
  1195.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_PLAYER_ALLY_VITAL,D_LI, 0);
  1196.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_VORTIGAUNT,          CLASS_HACKED_ROLLERMINE,D_LI, 0);
  1197.  
  1198.                 // ------------------------------------------------------------
  1199.                 //      > CLASS_ZOMBIE
  1200.                 // ------------------------------------------------------------
  1201.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_NONE,                             D_NU, 0);                      
  1202.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_PLAYER,                   D_HT, 0);                      
  1203.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_ANTLION,                  D_HT, 0);
  1204.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_BARNACLE,                 D_NU, 0);
  1205.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_BULLSEYE,                 D_NU, 0);
  1206.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                    CLASS_BULLSQUID,                D_NU, 0);
  1207.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  1208.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_CITIZEN_REBEL,    D_HT, 0);
  1209.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_COMBINE,                  D_HT, 0);
  1210.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  1211.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_COMBINE_HUNTER,   D_HT, 0);
  1212.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_CONSCRIPT,                D_HT, 0);
  1213.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_FLARE,                    D_NU, 0);
  1214.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_HEADCRAB,                 D_NU, 0);
  1215.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                    CLASS_HOUNDEYE,                 D_NU, 0);
  1216.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_MANHACK,                  D_FR, 0);
  1217.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_METROPOLICE,              D_HT, 0);
  1218.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_MILITARY,                 D_FR, 0);
  1219.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_MISSILE,                  D_NU, 0);
  1220.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_SCANNER,                  D_NU, 0);              
  1221.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_STALKER,                  D_NU, 0);              
  1222.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_VORTIGAUNT,               D_HT, 0);              
  1223.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_ZOMBIE,                   D_NU, 0);
  1224.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_PROTOSNIPER,              D_NU, 0);
  1225.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_EARTH_FAUNA,              D_NU, 0);
  1226.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_PLAYER_ALLY,              D_HT, 0);
  1227.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  1228.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_ZOMBIE,                      CLASS_HACKED_ROLLERMINE,D_HT, 0);
  1229.  
  1230.                 // ------------------------------------------------------------
  1231.                 //      > CLASS_PROTOSNIPER
  1232.                 // ------------------------------------------------------------
  1233.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_NONE,                             D_NU, 0);                      
  1234.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_PLAYER,                   D_HT, 0);                      
  1235.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_ANTLION,                  D_HT, 0);
  1236.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_BARNACLE,                 D_NU, 0);
  1237.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_BULLSEYE,                 D_NU, 0);
  1238.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                       CLASS_BULLSQUID,                D_NU, 0);
  1239.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_CITIZEN_PASSIVE,  D_HT, 0);      
  1240.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_CITIZEN_REBEL,    D_HT, 0);
  1241.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_COMBINE,                  D_NU, 0);
  1242.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  1243.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_COMBINE_HUNTER,   D_NU, 0);
  1244.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_CONSCRIPT,                D_HT, 0);
  1245.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_FLARE,                    D_NU, 0);
  1246.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_HEADCRAB,                 D_HT, 0);
  1247.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                       CLASS_HOUNDEYE,                 D_NU, 0);
  1248.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_MANHACK,                  D_NU, 0);
  1249.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_METROPOLICE,              D_NU, 0);
  1250.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_MILITARY,                 D_NU, 0);
  1251.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_MISSILE,                  D_NU, 5);
  1252.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_SCANNER,                  D_NU, 0);              
  1253.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_STALKER,                  D_NU, 0);              
  1254.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_VORTIGAUNT,               D_HT, 0);              
  1255.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_ZOMBIE,                   D_HT, 0);
  1256.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_PROTOSNIPER,              D_NU, 0);
  1257.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_EARTH_FAUNA,              D_NU, 0);
  1258.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_PLAYER_ALLY,              D_HT, 0);
  1259.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  1260.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_PROTOSNIPER,                 CLASS_HACKED_ROLLERMINE,D_HT, 0);
  1261.  
  1262.                 // ------------------------------------------------------------
  1263.                 //      > CLASS_EARTH_FAUNA
  1264.                 //
  1265.                 // Hates pretty much everything equally except other earth fauna.
  1266.                 // This will make the critter choose the nearest thing as its enemy.
  1267.                 // ------------------------------------------------------------
  1268.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_NONE,                             D_HT, 0);
  1269.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_PLAYER,                   D_HT, 0);
  1270.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_ANTLION,                  D_HT, 0);
  1271.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_BARNACLE,                 D_NU, 0);
  1272.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_BULLSEYE,                 D_NU, 0);
  1273.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                       CLASS_BULLSQUID,                D_HT, 0);
  1274.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_CITIZEN_PASSIVE,  D_HT, 0);
  1275.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_CITIZEN_REBEL,    D_HT, 0);
  1276.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_COMBINE,                  D_HT, 0);
  1277.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_COMBINE_GUNSHIP,  D_HT, 0);
  1278.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_COMBINE_HUNTER,   D_HT, 0);
  1279.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_CONSCRIPT,                D_HT, 0);
  1280.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_FLARE,                    D_HT, 0);
  1281.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_HEADCRAB,                 D_HT, 0);
  1282.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                       CLASS_HOUNDEYE,                 D_HT, 0);
  1283.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_MANHACK,                  D_HT, 0);
  1284.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_METROPOLICE,              D_HT, 0);
  1285.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_MILITARY,                 D_HT, 0);
  1286.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_MISSILE,                  D_HT, 0);
  1287.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_SCANNER,                  D_HT, 0);
  1288.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_STALKER,                  D_HT, 0);
  1289.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_VORTIGAUNT,               D_HT, 0);
  1290.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_ZOMBIE,                   D_HT, 0);
  1291.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_PROTOSNIPER,              D_HT, 0);
  1292.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_EARTH_FAUNA,              D_NU, 0);
  1293.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_PLAYER_ALLY,              D_HT, 0);
  1294.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_PLAYER_ALLY_VITAL,D_HT, 0);
  1295.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_EARTH_FAUNA,                 CLASS_HACKED_ROLLERMINE,D_NU, 0);
  1296.  
  1297.                 // ------------------------------------------------------------
  1298.                 //      > CLASS_HACKED_ROLLERMINE
  1299.                 // ------------------------------------------------------------
  1300.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_NONE,                             D_NU, 0);                      
  1301.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_PLAYER,                   D_LI, 0);                      
  1302.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_ANTLION,                  D_HT, 0);
  1303.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_BARNACLE,                 D_NU, 0);
  1304.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_BULLSEYE,                 D_NU, 0);
  1305.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                 CLASS_BULLSQUID,                D_HT, 0);
  1306.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_CITIZEN_PASSIVE,  D_NU, 0);      
  1307.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_CITIZEN_REBEL,    D_NU, 0);
  1308.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_COMBINE,                  D_HT, 0);
  1309.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_COMBINE_GUNSHIP,  D_NU, 0);
  1310.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_COMBINE_HUNTER,   D_NU, 0);
  1311.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_CONSCRIPT,                D_NU, 0);
  1312.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_FLARE,                    D_NU, 0);
  1313.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_HEADCRAB,                 D_HT, 0);
  1314.                 //CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                 CLASS_HOUNDEYE,                 D_HT, 0);
  1315.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_MANHACK,                  D_NU, 0);
  1316.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_METROPOLICE,              D_HT, 0);
  1317.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_MILITARY,                 D_HT, 0);
  1318.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_MISSILE,                  D_NU, 0);
  1319.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_SCANNER,                  D_NU, 0);              
  1320.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_STALKER,                  D_HT, 0);              
  1321.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_VORTIGAUNT,               D_LI, 0);              
  1322.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_ZOMBIE,                   D_HT, 1);
  1323.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_PROTOSNIPER,              D_NU, 0);
  1324.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_EARTH_FAUNA,              D_HT, 0);
  1325.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_PLAYER_ALLY,              D_LI, 0);
  1326.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_PLAYER_ALLY_VITAL,D_LI, 0);
  1327.                 CBaseCombatCharacter::SetDefaultRelationship(CLASS_HACKED_ROLLERMINE,                   CLASS_HACKED_ROLLERMINE,D_LI, 0);
  1328.         }
  1329.  
  1330.  
  1331.         //------------------------------------------------------------------------------
  1332.         // Purpose : Return classify text for classify type
  1333.         // Input   :
  1334.         // Output  :
  1335.         //------------------------------------------------------------------------------
  1336.         const char* CHalfLife2::AIClassText(int classType)
  1337.         {
  1338.                 switch (classType)
  1339.                 {
  1340.                         case CLASS_NONE:                        return "CLASS_NONE";
  1341.                         case CLASS_PLAYER:                      return "CLASS_PLAYER";
  1342.                         case CLASS_ANTLION:                     return "CLASS_ANTLION";
  1343.                         case CLASS_BARNACLE:            return "CLASS_BARNACLE";
  1344.                         case CLASS_BULLSEYE:            return "CLASS_BULLSEYE";
  1345.                         //case CLASS_BULLSQUID:         return "CLASS_BULLSQUID";      
  1346.                         case CLASS_CITIZEN_PASSIVE: return "CLASS_CITIZEN_PASSIVE";            
  1347.                         case CLASS_CITIZEN_REBEL:       return "CLASS_CITIZEN_REBEL";
  1348.                         case CLASS_COMBINE:                     return "CLASS_COMBINE";
  1349.                         case CLASS_COMBINE_GUNSHIP:     return "CLASS_COMBINE_GUNSHIP";
  1350.                         case CLASS_COMBINE_HUNTER:      return "CLASS_COMBINE_HUNTER";
  1351.                         case CLASS_CONSCRIPT:           return "CLASS_CONSCRIPT";
  1352.                         case CLASS_HEADCRAB:            return "CLASS_HEADCRAB";
  1353.                         //case CLASS_HOUNDEYE:          return "CLASS_HOUNDEYE";
  1354.                         case CLASS_MANHACK:                     return "CLASS_MANHACK";
  1355.                         case CLASS_METROPOLICE:         return "CLASS_METROPOLICE";
  1356.                         case CLASS_MILITARY:            return "CLASS_MILITARY";       
  1357.                         case CLASS_SCANNER:                     return "CLASS_SCANNER";        
  1358.                         case CLASS_STALKER:                     return "CLASS_STALKER";        
  1359.                         case CLASS_VORTIGAUNT:          return "CLASS_VORTIGAUNT";
  1360.                         case CLASS_ZOMBIE:                      return "CLASS_ZOMBIE";
  1361.                         case CLASS_PROTOSNIPER:         return "CLASS_PROTOSNIPER";
  1362.                         case CLASS_MISSILE:                     return "CLASS_MISSILE";
  1363.                         case CLASS_FLARE:                       return "CLASS_FLARE";
  1364.                         case CLASS_EARTH_FAUNA:         return "CLASS_EARTH_FAUNA";
  1365.  
  1366.                         default:                                        return "MISSING CLASS in ClassifyText()";
  1367.                 }
  1368.         }
  1369.  
  1370.         void CHalfLife2::PlayerThink( CBasePlayer *pPlayer )
  1371.         {
  1372.         }
  1373.  
  1374.         //-----------------------------------------------------------------------------
  1375.         // Purpose: Returns how much damage the given ammo type should do to the victim
  1376.         //                      when fired by the attacker.
  1377.         // Input  : pAttacker - Dude what shot the gun.
  1378.         //                      pVictim - Dude what done got shot.
  1379.         //                      nAmmoType - What been shot out.
  1380.         // Output : How much hurt to put on dude what done got shot (pVictim).
  1381.         //-----------------------------------------------------------------------------
  1382.         float CHalfLife2::GetAmmoDamage( CBaseEntity *pAttacker, CBaseEntity *pVictim, int nAmmoType )
  1383.         {
  1384.                 float flDamage = 0.0f;
  1385.                 CAmmoDef *pAmmoDef = GetAmmoDef();
  1386.  
  1387.                 if ( pAmmoDef->DamageType( nAmmoType ) & DMG_SNIPER )
  1388.                 {
  1389.                         // If this damage is from a SNIPER, we do damage based on what the bullet
  1390.                         // HITS, not who fired it. All other bullets have their damage values
  1391.                         // arranged according to the owner of the bullet, not the recipient.
  1392.                         if ( pVictim->IsPlayer() )
  1393.                         {
  1394.                                 // Player
  1395.                                 flDamage = pAmmoDef->PlrDamage( nAmmoType );
  1396.                         }
  1397.                         else
  1398.                         {
  1399.                                 // NPC or breakable
  1400.                                 flDamage = pAmmoDef->NPCDamage( nAmmoType );
  1401.                         }
  1402.                 }
  1403.                 else
  1404.                 {
  1405.                         flDamage = BaseClass::GetAmmoDamage( pAttacker, pVictim, nAmmoType );
  1406.                 }
  1407.  
  1408.                 if( pAttacker->IsPlayer() && pVictim->IsNPC() )
  1409.                 {
  1410.                         if( pVictim->MyCombatCharacterPointer() )
  1411.                         {
  1412.                                 // Player is shooting an NPC. Adjust the damage! This protects breakables
  1413.                                 // and other 'non-living' entities from being easier/harder to break
  1414.                                 // in different skill levels.
  1415.                                 flDamage = pAmmoDef->PlrDamage( nAmmoType );
  1416.                                 flDamage = AdjustPlayerDamageInflicted( flDamage );
  1417.                         }
  1418.                 }
  1419.  
  1420.                 return flDamage;
  1421.         }
  1422.  
  1423.         //-----------------------------------------------------------------------------
  1424.         //-----------------------------------------------------------------------------
  1425.         bool CHalfLife2::AllowDamage( CBaseEntity *pVictim, const CTakeDamageInfo &info )
  1426.         {
  1427. #ifndef CLIENT_DLL
  1428.         if( (info.GetDamageType() & DMG_CRUSH) && info.GetInflictor() && pVictim->MyNPCPointer() )
  1429.         {
  1430.                 if( pVictim->MyNPCPointer()->IsPlayerAlly() )
  1431.                 {
  1432.                         // A physics object has struck a player ally. Don't allow damage if it
  1433.                         // came from the player's physcannon.
  1434.                         CBasePlayer *pPlayer = UTIL_PlayerByIndex(1);
  1435.  
  1436.                         if( pPlayer )
  1437.                         {
  1438.                                 CBaseEntity *pWeapon = pPlayer->HasNamedPlayerItem("weapon_physcannon");
  1439.  
  1440.                                 if( pWeapon )
  1441.                                 {
  1442.                                         CBaseCombatWeapon *pCannon = assert_cast <CBaseCombatWeapon*>(pWeapon);
  1443.  
  1444.                                         if( pCannon )
  1445.                                         {
  1446.                                                 if( PhysCannonAccountableForObject(pCannon, info.GetInflictor() ) )
  1447.                                                 {
  1448.                                                         // Antlions can always be squashed!
  1449.                                                         if ( pVictim->Classify() == CLASS_ANTLION )
  1450.                                                                 return true;
  1451.  
  1452.                                                         return false;
  1453.                                                 }
  1454.                                         }
  1455.                                 }
  1456.                         }
  1457.                 }
  1458.         }
  1459. #endif
  1460.                 return true;
  1461.         }
  1462.         //-----------------------------------------------------------------------------
  1463.         // Purpose: Whether or not the NPC should drop a health vial
  1464.         // Output : Returns true on success, false on failure.
  1465.         //-----------------------------------------------------------------------------
  1466.         bool CHalfLife2::NPC_ShouldDropHealth( CBasePlayer *pRecipient )
  1467.         {
  1468.                 // Can only do this every so often
  1469.                 if ( m_flLastHealthDropTime > gpGlobals->curtime )
  1470.                         return false;
  1471.  
  1472.                 //Try to throw dynamic health
  1473.                 float healthPerc = ( (float) pRecipient->m_iHealth / (float) pRecipient->m_iMaxHealth );
  1474.  
  1475.                 if ( random->RandomFloat( 0.0f, 1.0f ) > healthPerc*1.5f )
  1476.                         return true;
  1477.  
  1478.                 return false;
  1479.         }
  1480.  
  1481.         //-----------------------------------------------------------------------------
  1482.         // Purpose: Whether or not the NPC should drop a health vial
  1483.         // Output : Returns true on success, false on failure.
  1484.         //-----------------------------------------------------------------------------
  1485.         bool CHalfLife2::NPC_ShouldDropGrenade( CBasePlayer *pRecipient )
  1486.         {
  1487.                 // Can only do this every so often
  1488.                 if ( m_flLastGrenadeDropTime > gpGlobals->curtime )
  1489.                         return false;
  1490.                
  1491.                 int grenadeIndex = GetAmmoDef()->Index( "grenade" );
  1492.                 int numGrenades = pRecipient->GetAmmoCount( grenadeIndex );
  1493.  
  1494.                 // If we're not maxed out on grenades and we've randomly okay'd it
  1495.                 if ( ( numGrenades < GetAmmoDef()->MaxCarry( grenadeIndex, pRecipient ) ) && ( random->RandomInt( 0, 2 ) == 0 ) )
  1496.                         return true;
  1497.  
  1498.                 return false;
  1499.         }
  1500.  
  1501.         //-----------------------------------------------------------------------------
  1502.         // Purpose: Update the drop counter for health
  1503.         //-----------------------------------------------------------------------------
  1504.         void CHalfLife2::NPC_DroppedHealth( void )
  1505.         {
  1506.                 m_flLastHealthDropTime = gpGlobals->curtime + sk_plr_health_drop_time.GetFloat();
  1507.         }
  1508.  
  1509.         //-----------------------------------------------------------------------------
  1510.         // Purpose: Update the drop counter for grenades
  1511.         //-----------------------------------------------------------------------------
  1512.         void CHalfLife2::NPC_DroppedGrenade( void )
  1513.         {
  1514.                 m_flLastGrenadeDropTime = gpGlobals->curtime + sk_plr_grenade_drop_time.GetFloat();
  1515.         }
  1516.  
  1517. #endif //} !CLIENT_DLL
  1518.  
  1519.  
  1520. // ------------------------------------------------------------------------------------ //
  1521. // Shared CHalfLife2 implementation.
  1522. // ------------------------------------------------------------------------------------ //
  1523. bool CHalfLife2::ShouldCollide( int collisionGroup0, int collisionGroup1 )
  1524. {
  1525.         // The smaller number is always first
  1526.         if ( collisionGroup0 > collisionGroup1 )
  1527.         {
  1528.                 // swap so that lowest is always first
  1529.                 int tmp = collisionGroup0;
  1530.                 collisionGroup0 = collisionGroup1;
  1531.                 collisionGroup1 = tmp;
  1532.         }
  1533.        
  1534.         // Prevent the player movement from colliding with spit globs (caused the player to jump on top of globs while in water)
  1535.         if ( collisionGroup0 == COLLISION_GROUP_PLAYER_MOVEMENT && collisionGroup1 == HL2COLLISION_GROUP_SPIT )
  1536.                 return false;
  1537.  
  1538.         // HL2 treats movement and tracing against players the same, so just remap here
  1539.         if ( collisionGroup0 == COLLISION_GROUP_PLAYER_MOVEMENT )
  1540.         {
  1541.                 collisionGroup0 = COLLISION_GROUP_PLAYER;
  1542.         }
  1543.  
  1544.         if( collisionGroup1 == COLLISION_GROUP_PLAYER_MOVEMENT )
  1545.         {
  1546.                 collisionGroup1 = COLLISION_GROUP_PLAYER;
  1547.         }
  1548.  
  1549.         //If collisionGroup0 is not a player then NPC_ACTOR behaves just like an NPC.
  1550.         if ( collisionGroup1 == COLLISION_GROUP_NPC_ACTOR && collisionGroup0 != COLLISION_GROUP_PLAYER )
  1551.         {
  1552.                 collisionGroup1 = COLLISION_GROUP_NPC;
  1553.         }
  1554.  
  1555.         // This is only for the super physcannon
  1556.         if ( m_bMegaPhysgun )
  1557.         {
  1558.                 if ( collisionGroup0 == COLLISION_GROUP_INTERACTIVE_DEBRIS && collisionGroup1 == COLLISION_GROUP_PLAYER )
  1559.                         return false;
  1560.         }
  1561.  
  1562.         if ( collisionGroup0 == HL2COLLISION_GROUP_COMBINE_BALL )
  1563.         {
  1564.                 if ( collisionGroup1 == HL2COLLISION_GROUP_COMBINE_BALL )
  1565.                         return false;
  1566.         }
  1567.  
  1568.         if ( collisionGroup0 == HL2COLLISION_GROUP_COMBINE_BALL && collisionGroup1 == HL2COLLISION_GROUP_COMBINE_BALL_NPC )
  1569.                 return false;
  1570.  
  1571.         if ( ( collisionGroup0 == COLLISION_GROUP_WEAPON ) ||
  1572.                 ( collisionGroup0 == COLLISION_GROUP_PLAYER ) ||
  1573.                 ( collisionGroup0 == COLLISION_GROUP_PROJECTILE ) )
  1574.         {
  1575.                 if ( collisionGroup1 == HL2COLLISION_GROUP_COMBINE_BALL )
  1576.                         return false;
  1577.         }
  1578.  
  1579.         if ( collisionGroup0 == COLLISION_GROUP_DEBRIS )
  1580.         {
  1581.                 if ( collisionGroup1 == HL2COLLISION_GROUP_COMBINE_BALL )
  1582.                         return true;
  1583.         }
  1584.  
  1585.         if (collisionGroup0 == HL2COLLISION_GROUP_HOUNDEYE && collisionGroup1 == HL2COLLISION_GROUP_HOUNDEYE )
  1586.                 return false;
  1587.  
  1588.         if (collisionGroup0 == HL2COLLISION_GROUP_HOMING_MISSILE && collisionGroup1 == HL2COLLISION_GROUP_HOMING_MISSILE )
  1589.                 return false;
  1590.  
  1591.         if ( collisionGroup1 == HL2COLLISION_GROUP_CROW )
  1592.         {
  1593.                 if ( collisionGroup0 == COLLISION_GROUP_PLAYER || collisionGroup0 == COLLISION_GROUP_NPC ||
  1594.                          collisionGroup0 == HL2COLLISION_GROUP_CROW )
  1595.                         return false;
  1596.         }
  1597.  
  1598.         if ( ( collisionGroup0 == HL2COLLISION_GROUP_HEADCRAB ) && ( collisionGroup1 == HL2COLLISION_GROUP_HEADCRAB ) )
  1599.                 return false;
  1600.  
  1601.         // striders don't collide with other striders
  1602.         if ( collisionGroup0 == HL2COLLISION_GROUP_STRIDER && collisionGroup1 == HL2COLLISION_GROUP_STRIDER )
  1603.                 return false;
  1604.  
  1605.         // gunships don't collide with other gunships
  1606.         if ( collisionGroup0 == HL2COLLISION_GROUP_GUNSHIP && collisionGroup1 == HL2COLLISION_GROUP_GUNSHIP )
  1607.                 return false;
  1608.  
  1609.         // weapons and NPCs don't collide
  1610.         if ( collisionGroup0 == COLLISION_GROUP_WEAPON && (collisionGroup1 >= HL2COLLISION_GROUP_FIRST_NPC && collisionGroup1 <= HL2COLLISION_GROUP_LAST_NPC ) )
  1611.                 return false;
  1612.  
  1613.         //players don't collide against NPC Actors.
  1614.         //I could've done this up where I check if collisionGroup0 is NOT a player but I decided to just
  1615.         //do what the other checks are doing in this function for consistency sake.
  1616.         if ( collisionGroup1 == COLLISION_GROUP_NPC_ACTOR && collisionGroup0 == COLLISION_GROUP_PLAYER )
  1617.                 return false;
  1618.                
  1619.         // In cases where NPCs are playing a script which causes them to interpenetrate while riding on another entity,
  1620.         // such as a train or elevator, you need to disable collisions between the actors so the mover can move them.
  1621.         if ( collisionGroup0 == COLLISION_GROUP_NPC_SCRIPTED && collisionGroup1 == COLLISION_GROUP_NPC_SCRIPTED )
  1622.                 return false;
  1623.  
  1624.         // Spit doesn't touch other spit
  1625.         if ( collisionGroup0 == HL2COLLISION_GROUP_SPIT && collisionGroup1 == HL2COLLISION_GROUP_SPIT )
  1626.                 return false;
  1627.  
  1628.         return BaseClass::ShouldCollide( collisionGroup0, collisionGroup1 );
  1629. }
  1630.  
  1631. #ifndef CLIENT_DLL
  1632. //---------------------------------------------------------
  1633. //---------------------------------------------------------
  1634. void CHalfLife2::AdjustPlayerDamageTaken( CTakeDamageInfo *pInfo )
  1635. {
  1636.         if( pInfo->GetDamageType() & (DMG_DROWN|DMG_CRUSH|DMG_FALL|DMG_POISON|DMG_SNIPER) )
  1637.         {
  1638.                 // Skill level doesn't affect these types of damage.
  1639.                 return;
  1640.         }
  1641.  
  1642.         switch( GetSkillLevel() )
  1643.         {
  1644.         case SKILL_EASY:
  1645.                 pInfo->ScaleDamage( sk_dmg_take_scale1.GetFloat() );
  1646.                 break;
  1647.  
  1648.         case SKILL_MEDIUM:
  1649.                 pInfo->ScaleDamage( sk_dmg_take_scale2.GetFloat() );
  1650.                 break;
  1651.  
  1652.         case SKILL_HARD:
  1653.                 pInfo->ScaleDamage( sk_dmg_take_scale3.GetFloat() );
  1654.                 break;
  1655.         }
  1656. }
  1657.  
  1658. //---------------------------------------------------------
  1659. //---------------------------------------------------------
  1660. float CHalfLife2::AdjustPlayerDamageInflicted( float damage )
  1661. {
  1662.         switch( GetSkillLevel() )
  1663.         {
  1664.         case SKILL_EASY:
  1665.                 return damage * sk_dmg_inflict_scale1.GetFloat();
  1666.                 break;
  1667.  
  1668.         case SKILL_MEDIUM:
  1669.                 return damage * sk_dmg_inflict_scale2.GetFloat();
  1670.                 break;
  1671.  
  1672.         case SKILL_HARD:
  1673.                 return damage * sk_dmg_inflict_scale3.GetFloat();
  1674.                 break;
  1675.  
  1676.         default:
  1677.                 return damage;
  1678.                 break;
  1679.         }
  1680. }
  1681. #endif//CLIENT_DLL
  1682.  
  1683. //---------------------------------------------------------
  1684. //---------------------------------------------------------
  1685. bool CHalfLife2::ShouldUseRobustRadiusDamage(CBaseEntity *pEntity)
  1686. {
  1687. #ifdef CLIENT_DLL
  1688.         return false;
  1689. #endif
  1690.  
  1691.         if( !sv_robust_explosions.GetBool() )
  1692.                 return false;
  1693.  
  1694.         if( !pEntity->IsNPC() )
  1695.         {
  1696.                 // Only NPC's
  1697.                 return false;
  1698.         }
  1699.  
  1700. #ifndef CLIENT_DLL
  1701.         CAI_BaseNPC *pNPC = pEntity->MyNPCPointer();
  1702.         if( pNPC->CapabilitiesGet() & bits_CAP_SIMPLE_RADIUS_DAMAGE )
  1703.         {
  1704.                 // This NPC only eligible for simple radius damage.
  1705.                 return false;
  1706.         }
  1707. #endif//CLIENT_DLL
  1708.  
  1709.         return true;
  1710. }
  1711.  
  1712. #ifndef CLIENT_DLL
  1713. //---------------------------------------------------------
  1714. //---------------------------------------------------------
  1715. bool CHalfLife2::ShouldAutoAim( CBasePlayer *pPlayer, edict_t *target )
  1716. {
  1717.         return sk_allow_autoaim.GetBool() != 0;
  1718. }
  1719.  
  1720. //---------------------------------------------------------
  1721. //---------------------------------------------------------
  1722. float CHalfLife2::GetAutoAimScale( CBasePlayer *pPlayer )
  1723. {
  1724. #ifdef _X360
  1725.         return 1.0f;
  1726. #else
  1727.         switch( GetSkillLevel() )
  1728.         {
  1729.         case SKILL_EASY:
  1730.                 return sk_autoaim_scale1.GetFloat();
  1731.  
  1732.         case SKILL_MEDIUM:
  1733.                 return sk_autoaim_scale2.GetFloat();
  1734.  
  1735.         default:
  1736.                 return 0.0f;
  1737.         }
  1738. #endif
  1739. }
  1740.  
  1741. //---------------------------------------------------------
  1742. //---------------------------------------------------------
  1743. float CHalfLife2::GetAmmoQuantityScale( int iAmmoIndex )
  1744. {
  1745.         switch( GetSkillLevel() )
  1746.         {
  1747.         case SKILL_EASY:
  1748.                 return sk_ammo_qty_scale1.GetFloat();
  1749.  
  1750.         case SKILL_MEDIUM:
  1751.                 return sk_ammo_qty_scale2.GetFloat();
  1752.  
  1753.         case SKILL_HARD:
  1754.                 return sk_ammo_qty_scale3.GetFloat();
  1755.  
  1756.         default:
  1757.                 return 0.0f;
  1758.         }
  1759. }
  1760.  
  1761. void CHalfLife2::LevelInitPreEntity()
  1762. {
  1763.         // Remove this if you fix the bug in ep1 where the striders need to touch
  1764.         // triggers using their absbox instead of their bbox
  1765. #ifdef HL2_EPISODIC
  1766.         if ( !Q_strnicmp( gpGlobals->mapname.ToCStr(), "ep1_", 4 ) )
  1767.         {
  1768.                 // episode 1 maps use the surrounding box trigger behavior
  1769.                 CBaseEntity::sm_bAccurateTriggerBboxChecks = false;
  1770.         }
  1771. #endif
  1772.         BaseClass::LevelInitPreEntity();
  1773. }
  1774.  
  1775. //-----------------------------------------------------------------------------
  1776. // Returns whether or not Alyx cares about light levels in order to see.
  1777. //-----------------------------------------------------------------------------
  1778. bool CHalfLife2::IsAlyxInDarknessMode()
  1779. {
  1780. #ifdef HL2_EPISODIC
  1781.         if ( alyx_darkness_force.GetBool() )
  1782.                 return true;
  1783.  
  1784.         return ( GlobalEntity_GetState( "ep_alyx_darknessmode" ) == GLOBAL_ON );
  1785. #else
  1786.         return false;
  1787. #endif // HL2_EPISODIC
  1788. }
  1789.  
  1790.  
  1791. //-----------------------------------------------------------------------------
  1792. // This takes the long way around to see if a prop should emit a DLIGHT when it
  1793. // ignites, to avoid having Alyx-related code in props.cpp.
  1794. //-----------------------------------------------------------------------------
  1795. bool CHalfLife2::ShouldBurningPropsEmitLight()
  1796. {
  1797. #ifdef HL2_EPISODIC
  1798.         return IsAlyxInDarknessMode();
  1799. #else
  1800.         return false;
  1801. #endif // HL2_EPISODIC
  1802. }
  1803.  
  1804.  
  1805. #endif//CLIENT_DLL
  1806.  
  1807. // ------------------------------------------------------------------------------------ //
  1808. // Global functions.
  1809. // ------------------------------------------------------------------------------------ //
  1810.  
  1811. #ifndef HL2MP
  1812. #ifndef PORTAL
  1813.  
  1814. // shared ammo definition
  1815. // JAY: Trying to make a more physical bullet response
  1816. #define BULLET_MASS_GRAINS_TO_LB(grains)        (0.002285*(grains)/16.0f)
  1817. #define BULLET_MASS_GRAINS_TO_KG(grains)        lbs2kg(BULLET_MASS_GRAINS_TO_LB(grains))
  1818.  
  1819. // exaggerate all of the forces, but use real numbers to keep them consistent
  1820. #define BULLET_IMPULSE_EXAGGERATION                     3.5
  1821. // convert a velocity in ft/sec and a mass in grains to an impulse in kg in/s
  1822. #define BULLET_IMPULSE(grains, ftpersec)        ((ftpersec)*12*BULLET_MASS_GRAINS_TO_KG(grains)*BULLET_IMPULSE_EXAGGERATION)
  1823.  
  1824.  
  1825. CAmmoDef *GetAmmoDef()
  1826. {
  1827.         static CAmmoDef def;
  1828.         static bool bInitted = false;
  1829.        
  1830.         if ( !bInitted )
  1831.         {
  1832.                 bInitted = true;
  1833.  
  1834.                 def.AddAmmoType("AR2",                          DMG_BULLET,                                     TRACER_LINE_AND_WHIZ,   "sk_plr_dmg_ar2",                       "sk_npc_dmg_ar2",                       "sk_max_ar2",                   BULLET_IMPULSE(200, 1225), 0 );
  1835.                 def.AddAmmoType("AlyxGun",                      DMG_BULLET,                                     TRACER_LINE,                    "sk_plr_dmg_alyxgun",           "sk_npc_dmg_alyxgun",           "sk_max_alyxgun",               BULLET_IMPULSE(200, 1225), 0 );
  1836.                 def.AddAmmoType("Pistol",                       DMG_BULLET,                                     TRACER_LINE_AND_WHIZ,   "sk_plr_dmg_pistol",            "sk_npc_dmg_pistol",            "sk_max_pistol",                BULLET_IMPULSE(200, 1225), 0 );
  1837.                 def.AddAmmoType("SMG1",                         DMG_BULLET,                                     TRACER_LINE_AND_WHIZ,   "sk_plr_dmg_smg1",                      "sk_npc_dmg_smg1",                      "sk_max_smg1",                  BULLET_IMPULSE(200, 1225), 0 );
  1838.                 def.AddAmmoType("357",                          DMG_BULLET,                                     TRACER_LINE_AND_WHIZ,   "sk_plr_dmg_357",                       "sk_npc_dmg_357",                       "sk_max_357",                   BULLET_IMPULSE(800, 5000), 0 );
  1839.                 def.AddAmmoType("XBowBolt",                     DMG_BULLET,                                     TRACER_LINE,                    "sk_plr_dmg_crossbow",          "sk_npc_dmg_crossbow",          "sk_max_crossbow",              BULLET_IMPULSE(800, 8000), 0 );
  1840.  
  1841.                 def.AddAmmoType("Buckshot",                     DMG_BULLET | DMG_BUCKSHOT,      TRACER_LINE,                    "sk_plr_dmg_buckshot",          "sk_npc_dmg_buckshot",          "sk_max_buckshot",              BULLET_IMPULSE(400, 1200), 0 );
  1842.                 def.AddAmmoType("RPG_Round",            DMG_BURN,                                       TRACER_NONE,                    "sk_plr_dmg_rpg_round",         "sk_npc_dmg_rpg_round",         "sk_max_rpg_round",             0, 0 );
  1843.                 def.AddAmmoType("SMG1_Grenade",         DMG_BURN,                                       TRACER_NONE,                    "sk_plr_dmg_smg1_grenade",      "sk_npc_dmg_smg1_grenade",      "sk_max_smg1_grenade"0, 0 );
  1844.                 def.AddAmmoType("SniperRound",          DMG_BULLET | DMG_SNIPER,        TRACER_NONE,                    "sk_plr_dmg_sniper_round",      "sk_npc_dmg_sniper_round",      "sk_max_sniper_round",  BULLET_IMPULSE(650, 6000), 0 );
  1845.                 def.AddAmmoType("SniperPenetratedRound", DMG_BULLET | DMG_SNIPER, TRACER_NONE,                  "sk_dmg_sniper_penetrate_plr", "sk_dmg_sniper_penetrate_npc", "sk_max_sniper_round", BULLET_IMPULSE(150, 6000), 0 );
  1846.                 def.AddAmmoType("Grenade",                      DMG_BURN,                                       TRACER_NONE,                    "sk_plr_dmg_grenade",           "sk_npc_dmg_grenade",           "sk_max_grenade",               0, 0);
  1847.                 def.AddAmmoType("Thumper",                      DMG_SONIC,                                      TRACER_NONE,                    10, 10, 2, 0, 0 );
  1848.                 def.AddAmmoType("Gravity",                      DMG_CLUB,                                       TRACER_NONE,                    0,      0, 8, 0, 0 );
  1849. //              def.AddAmmoType("Extinguisher",         DMG_BURN,                                       TRACER_NONE,                    0,      0, 100, 0, 0 );
  1850.                 def.AddAmmoType("Battery",                      DMG_CLUB,                                       TRACER_NONE,                    NULL, NULL, NULL, 0, 0 );
  1851.                 def.AddAmmoType("GaussEnergy",          DMG_SHOCK,                                      TRACER_NONE,                    "sk_jeep_gauss_damage",         "sk_jeep_gauss_damage", "sk_max_gauss_round", BULLET_IMPULSE(650, 8000), 0 ); // hit like a 10kg weight at 400 in/s
  1852.                 def.AddAmmoType("CombineCannon",        DMG_BULLET,                                     TRACER_LINE,                    "sk_npc_dmg_gunship_to_plr", "sk_npc_dmg_gunship", NULL, 1.5 * 750 * 12, 0 ); // hit like a 1.5kg weight at 750 ft/s
  1853.                 def.AddAmmoType("AirboatGun",           DMG_AIRBOAT,                            TRACER_LINE,                    "sk_plr_dmg_airboat",           "sk_npc_dmg_airboat",           NULL,                                   BULLET_IMPULSE(10, 600), 0 );
  1854.  
  1855.                 //=====================================================================
  1856.                 // STRIDER MINIGUN DAMAGE - Pull up a chair and I'll tell you a tale.
  1857.                 //
  1858.                 // When we shipped Half-Life 2 in 2004, we were unaware of a bug in
  1859.                 // CAmmoDef::NPCDamage() which was returning the MaxCarry field of
  1860.                 // an ammotype as the amount of damage that should be done to a NPC
  1861.                 // by that type of ammo. Thankfully, the bug only affected Ammo Types
  1862.                 // that DO NOT use ConVars to specify their parameters. As you can see,
  1863.                 // all of the important ammotypes use ConVars, so the effect of the bug
  1864.                 // was limited. The Strider Minigun was affected, though.
  1865.                 //
  1866.                 // According to my perforce Archeology, we intended to ship the Strider
  1867.                 // Minigun ammo type to do 15 points of damage per shot, and we did.
  1868.                 // To achieve this we, unaware of the bug, set the Strider Minigun ammo
  1869.                 // type to have a maxcarry of 15, since our observation was that the
  1870.                 // number that was there before (8) was indeed the amount of damage being
  1871.                 // done to NPC's at the time. So we changed the field that was incorrectly
  1872.                 // being used as the NPC Damage field.
  1873.                 //
  1874.                 // The bug was fixed during Episode 1's development. The result of the
  1875.                 // bug fix was that the Strider was reduced to doing 5 points of damage
  1876.                 // to NPC's, since 5 is the value that was being assigned as NPC damage
  1877.                 // even though the code was returning 15 up to that point.
  1878.                 //
  1879.                 // Now as we go to ship Orange Box, we discover that the Striders in
  1880.                 // Half-Life 2 are hugely ineffective against citizens, causing big
  1881.                 // problems in maps 12 and 13.
  1882.                 //
  1883.                 // In order to restore balance to HL2 without upsetting the delicate
  1884.                 // balance of ep2_outland_12, I have chosen to build Episodic binaries
  1885.                 // with 5 as the Strider->NPC damage, since that's the value that has
  1886.                 // been in place for all of Episode 2's development. Half-Life 2 will
  1887.                 // build with 15 as the Strider->NPC damage, which is how HL2 shipped
  1888.                 // originally, only this time the 15 is located in the correct field
  1889.                 // now that the AmmoDef code is behaving correctly.
  1890.                 //
  1891.                 //=====================================================================
  1892. #ifdef HL2_EPISODIC
  1893.                 def.AddAmmoType("StriderMinigun",       DMG_BULLET,                                     TRACER_LINE,                    5, 5, 15, 1.0 * 750 * 12, AMMO_FORCE_DROP_IF_CARRIED ); // hit like a 1.0kg weight at 750 ft/s
  1894. #else
  1895.                 def.AddAmmoType("StriderMinigun",       DMG_BULLET,                                     TRACER_LINE,                    5, 15,15, 1.0 * 750 * 12, AMMO_FORCE_DROP_IF_CARRIED ); // hit like a 1.0kg weight at 750 ft/s
  1896. #endif//HL2_EPISODIC
  1897.  
  1898.                 def.AddAmmoType("StriderMinigunDirect", DMG_BULLET,                             TRACER_LINE,                    2, 2, 15, 1.0 * 750 * 12, AMMO_FORCE_DROP_IF_CARRIED ); // hit like a 1.0kg weight at 750 ft/s
  1899.                 def.AddAmmoType("HelicopterGun",        DMG_BULLET,                                     TRACER_LINE_AND_WHIZ,   "sk_npc_dmg_helicopter_to_plr", "sk_npc_dmg_helicopter",        "sk_max_smg1",  BULLET_IMPULSE(400, 1225), AMMO_FORCE_DROP_IF_CARRIED | AMMO_INTERPRET_PLRDAMAGE_AS_DAMAGE_TO_PLAYER );
  1900.                 def.AddAmmoType("AR2AltFire",           DMG_DISSOLVE,                           TRACER_NONE,                    0, 0, "sk_max_ar2_altfire", 0, 0 );
  1901.                 def.AddAmmoType("Grenade",                      DMG_BURN,                                       TRACER_NONE,                    "sk_plr_dmg_grenade",           "sk_npc_dmg_grenade",           "sk_max_grenade",               0, 0);
  1902. #ifdef HL2_EPISODIC
  1903.                 def.AddAmmoType("Hopwire",                      DMG_BLAST,                                      TRACER_NONE,                    "sk_plr_dmg_grenade",           "sk_npc_dmg_grenade",           "sk_max_hopwire",               0, 0);
  1904.                 def.AddAmmoType("CombineHeavyCannon",   DMG_BULLET,                             TRACER_LINE,                    40,     40, NULL, 10 * 750 * 12, AMMO_FORCE_DROP_IF_CARRIED ); // hit like a 10 kg weight at 750 ft/s
  1905.                 def.AddAmmoType("ammo_proto1",                  DMG_BULLET,                             TRACER_LINE,                    0, 0, 10, 0, 0 );
  1906. #endif // HL2_EPISODIC
  1907.         }
  1908.  
  1909.         return &def;
  1910. }
  1911.  
  1912. #endif
  1913. #endif
clone this paste RAW Paste Data