Advertisement
Guest User

Updated hl2_gamerules

a guest
Apr 10th, 2012
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 115.91 KB | None | 0 0
  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,            00, 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement