mirror of
https://github.com/1dot13/source.git
synced 2026-08-12 14:10:23 +02:00
Updated Enemy taunts feature (by anv)
- ridiculous amount of tags: attack, hit, miss, kill, head pop, blinded, type of attack, is target a zombie...
- ripostes to merc quotes,
- taunts can now make noise,
- bumped up amount of taunts to respectable 733, mostly thanks to your contributions guys,
- accidently squashed bug with incorrect noise notifications ("hears scream" instead of "hears explosion" etc.)
Ripostes
At the moment enemies can react to quotes "enemy detected", "1st enemy detected", "multiple enemies detected", "bullet flew by", "under heavy fire", as these are most likely to be used in combat. In the first three cases, riposting enemy will be chosen randomly from all enemy witnesses, latter two - last enemy to attack this merc will taunt.
Enemy's riposte will come as soon as merc quote is finished.
Noisy taunts
Taunts can be handled like other noises in game - shots, explosions, etc., meaning:
- they will be displayed only if someone from our team is close enough to hear them,
- they can be heard even if you don't see enemy (with twist of his name changed to "unknown voice". Yay.)
- volume of taunts is configurable in .ini.
see: http://www.ja-galaxy-forum.com/board/ubbthreads.php/topics/327830/4.html
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6628 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+422
-65
@@ -55,6 +55,7 @@ tauntStartElementHandle(void *userData, const XML_Char *name, const XML_Char **a
|
||||
else if(pData->curElement == ELEMENT &&
|
||||
(strcmp(name, "uiIndex") == 0 ||
|
||||
strcmp(name, "szText") == 0 ||
|
||||
|
||||
strcmp(name, "aggressive") == 0 ||
|
||||
strcmp(name, "defensive") == 0 ||
|
||||
strcmp(name, "cunning") == 0 ||
|
||||
@@ -63,33 +64,100 @@ tauntStartElementHandle(void *userData, const XML_Char *name, const XML_Char **a
|
||||
strcmp(name, "brave") == 0 ||
|
||||
strcmp(name, "brave_aid") == 0 ||
|
||||
strcmp(name, "brave_solo") == 0 ||
|
||||
|
||||
strcmp(name, "attack") == 0 ||
|
||||
strcmp(name, "fire_gun") == 0 ||
|
||||
strcmp(name, "fire_launcher") == 0 ||
|
||||
strcmp(name, "charge_knife") == 0 ||
|
||||
strcmp(name, "charge_fists") == 0 ||
|
||||
strcmp(name, "steal") == 0 ||
|
||||
strcmp(name, "attack_blade") == 0 ||
|
||||
strcmp(name, "attack_hth") == 0 ||
|
||||
|
||||
strcmp(name, "throw_knife") == 0 ||
|
||||
strcmp(name, "throw_grenade") == 0 ||
|
||||
strcmp(name, "alert") == 0 ||
|
||||
strcmp(name, "seek_noise") == 0 ||
|
||||
strcmp(name, "noticed_unseen") == 0 ||
|
||||
|
||||
strcmp(name, "out_of_ammo") == 0 ||
|
||||
strcmp(name, "reload") == 0 ||
|
||||
|
||||
strcmp(name, "steal") == 0 ||
|
||||
|
||||
strcmp(name, "charge_blade") == 0 ||
|
||||
strcmp(name, "charge_hth") == 0 ||
|
||||
strcmp(name, "run_away") == 0 ||
|
||||
strcmp(name, "seek_noise") == 0 ||
|
||||
strcmp(name, "alert") == 0 ||
|
||||
strcmp(name, "suspicious") == 0 ||
|
||||
strcmp(name, "noticed_unseen") == 0 ||
|
||||
strcmp(name, "say_hi") == 0 ||
|
||||
strcmp(name, "inform_about") == 0 ||
|
||||
|
||||
strcmp(name, "got_hit") == 0 ||
|
||||
strcmp(name, "got_hit_gunfire") == 0 ||
|
||||
strcmp(name, "got_hit_blade") == 0 ||
|
||||
strcmp(name, "got_hit_hth") == 0 ||
|
||||
strcmp(name, "got_hit_fallroof") == 0 ||
|
||||
strcmp(name, "got_hit_bloodloss") == 0 ||
|
||||
strcmp(name, "got_hit_explosion") == 0 ||
|
||||
strcmp(name, "got_hit_gas") == 0 ||
|
||||
strcmp(name, "got_hit_tentacle") == 0 ||
|
||||
strcmp(name, "got_hit_structure_explosion") == 0 ||
|
||||
strcmp(name, "got_hit_object") == 0 ||
|
||||
strcmp(name, "got_hit_throwing_knife") == 0 ||
|
||||
|
||||
strcmp(name, "got_deafened") == 0 ||
|
||||
strcmp(name, "got_blinded") == 0 ||
|
||||
|
||||
strcmp(name, "got_robbed") == 0 ||
|
||||
|
||||
strcmp(name, "got_missed") == 0 ||
|
||||
strcmp(name, "got_missed_gunfire") == 0 ||
|
||||
strcmp(name, "got_missed_blade") == 0 ||
|
||||
strcmp(name, "got_missed_hth") == 0 ||
|
||||
strcmp(name, "got_missed_throwing_knife") == 0 ||
|
||||
|
||||
strcmp(name, "hit") == 0 ||
|
||||
strcmp(name, "hit_gunfire") == 0 ||
|
||||
strcmp(name, "hit_blade") == 0 ||
|
||||
strcmp(name, "hit_hth") == 0 ||
|
||||
strcmp(name, "hit_throwing_knife") == 0 ||
|
||||
|
||||
strcmp(name, "kill") == 0 ||
|
||||
strcmp(name, "kill_gunfire") == 0 ||
|
||||
strcmp(name, "kill_blade") == 0 ||
|
||||
strcmp(name, "kill_hth") == 0 ||
|
||||
strcmp(name, "kill_throwing_knife") == 0 ||
|
||||
|
||||
strcmp(name, "head_pop") == 0 ||
|
||||
|
||||
strcmp(name, "miss") == 0 ||
|
||||
strcmp(name, "miss_gunfire") == 0 ||
|
||||
strcmp(name, "miss_blade") == 0 ||
|
||||
strcmp(name, "miss_hth") == 0 ||
|
||||
strcmp(name, "miss_throwing_knife") == 0 ||
|
||||
|
||||
strcmp(name, "riposte_bullet_flew_by") == 0 ||
|
||||
strcmp(name, "riposte_under_heavy_fire") == 0 ||
|
||||
strcmp(name, "riposte_enemy_detected") == 0 ||
|
||||
strcmp(name, "riposte_1st_enemy_detected") == 0 ||
|
||||
strcmp(name, "riposte_multiple_enemies") == 0 ||
|
||||
|
||||
strcmp(name, "enemy") == 0 ||
|
||||
strcmp(name, "admin") == 0 ||
|
||||
strcmp(name, "army") == 0 ||
|
||||
strcmp(name, "elite") == 0 ||
|
||||
strcmp(name, "militia") == 0 ||
|
||||
strcmp(name, "green") == 0 ||
|
||||
strcmp(name, "regular") == 0 ||
|
||||
strcmp(name, "veteran") == 0 ||
|
||||
|
||||
strcmp(name, "admin_profile") == 0 ||
|
||||
strcmp(name, "army_profile") == 0 ||
|
||||
strcmp(name, "elite_profile") == 0 ||
|
||||
strcmp(name, "green_profile") == 0 ||
|
||||
strcmp(name, "regular_profile") == 0 ||
|
||||
strcmp(name, "veteran_profile") == 0 ||
|
||||
|
||||
strcmp(name, "male") == 0 ||
|
||||
strcmp(name, "female") == 0 ||
|
||||
|
||||
strcmp(name, "exp_level_gt") == 0 ||
|
||||
strcmp(name, "exp_level_lt") == 0 ||
|
||||
strcmp(name, "health_gt") == 0 ||
|
||||
@@ -100,8 +168,11 @@ tauntStartElementHandle(void *userData, const XML_Char *name, const XML_Char **a
|
||||
strcmp(name, "energy_lt") == 0 ||
|
||||
strcmp(name, "energy_max_gt") == 0 ||
|
||||
strcmp(name, "energy_max_lt") == 0 ||
|
||||
strcmp(name, "morale_gt") == 0 ||
|
||||
strcmp(name, "morale_lt") == 0 ||
|
||||
strcmp(name, "progress_gt") == 0 ||
|
||||
strcmp(name, "progress_lt") == 0 ||
|
||||
|
||||
strcmp(name, "target_type") == 0 ||
|
||||
strcmp(name, "target_male") == 0 ||
|
||||
strcmp(name, "target_female") == 0 ||
|
||||
@@ -115,8 +186,11 @@ tauntStartElementHandle(void *userData, const XML_Char *name, const XML_Char **a
|
||||
strcmp(name, "target_energy_lt") == 0 ||
|
||||
strcmp(name, "target_energy_max_gt") == 0 ||
|
||||
strcmp(name, "target_energy_max_lt") == 0 ||
|
||||
strcmp(name, "target_morale_gt") == 0 ||
|
||||
strcmp(name, "target_morale_lt") == 0 ||
|
||||
strcmp(name, "target_appearance") == 0 ||
|
||||
strcmp(name, "target_merc_profile") == 0 ))
|
||||
strcmp(name, "target_merc_profile") == 0 ) ||
|
||||
strcmp(name, "target_zombie") == 0 )
|
||||
{
|
||||
pData->curElement = ELEMENT_PROPERTY;
|
||||
|
||||
@@ -167,12 +241,8 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
else
|
||||
{
|
||||
// no attitude specified -> set all
|
||||
if( !(pData->curTaunt.uiFlags & TAUNT_A_AGGRESSIVE) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_A_DEFENSIVE) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_A_BRAVE_AID) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_A_BRAVE_SOLO) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_A_CUNNING_AID) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_A_CUNNING_SOLO) )
|
||||
if( !(pData->curTaunt.uiFlags & ( TAUNT_A_AGGRESSIVE | TAUNT_A_DEFENSIVE | TAUNT_A_BRAVE_AID | TAUNT_A_BRAVE_SOLO |
|
||||
TAUNT_A_CUNNING_AID | TAUNT_A_CUNNING_SOLO) ) )
|
||||
{
|
||||
pData->curTaunt.uiFlags |= TAUNT_A_AGGRESSIVE;
|
||||
pData->curTaunt.uiFlags |= TAUNT_A_DEFENSIVE;
|
||||
@@ -182,51 +252,47 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curTaunt.uiFlags |= TAUNT_A_CUNNING_SOLO;
|
||||
}
|
||||
// no gender specified -> set all
|
||||
if( !(pData->curTaunt.uiFlags & TAUNT_G_FEMALE) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_G_MALE) )
|
||||
if( !(pData->curTaunt.uiFlags2 & ( TAUNT_G_FEMALE | TAUNT_G_MALE ) ) )
|
||||
{
|
||||
pData->curTaunt.uiFlags |= TAUNT_G_FEMALE;
|
||||
pData->curTaunt.uiFlags |= TAUNT_G_MALE;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_G_FEMALE;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_G_MALE;
|
||||
}
|
||||
if( !(pData->curTaunt.uiFlags & TAUNT_T_FEMALE) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_T_MALE) )
|
||||
if( !(pData->curTaunt.uiFlags2 & TAUNT_T_FEMALE) &&
|
||||
!(pData->curTaunt.uiFlags2 & TAUNT_T_MALE) )
|
||||
{
|
||||
pData->curTaunt.uiFlags |= TAUNT_T_FEMALE;
|
||||
pData->curTaunt.uiFlags |= TAUNT_T_MALE;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_T_FEMALE;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_T_MALE;
|
||||
}
|
||||
|
||||
// no class specified -> set all enemies
|
||||
if( !(pData->curTaunt.uiFlags & TAUNT_C_ADMIN) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_C_ARMY) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_C_ELITE) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_C_GREEN) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_C_REGULAR) &&
|
||||
!(pData->curTaunt.uiFlags & TAUNT_C_VETERAN) )
|
||||
if( !(pData->curTaunt.uiFlags2 & ( TAUNT_C_ADMIN | TAUNT_C_ARMY | TAUNT_C_ELITE | TAUNT_C_GREEN |
|
||||
TAUNT_C_REGULAR | TAUNT_C_VETERAN ) ) )
|
||||
{
|
||||
pData->curTaunt.uiFlags |= TAUNT_C_ADMIN;
|
||||
pData->curTaunt.uiFlags |= TAUNT_C_ARMY;
|
||||
pData->curTaunt.uiFlags |= TAUNT_C_ELITE;
|
||||
pData->curTaunt.uiFlags |= TAUNT_C_GREEN;
|
||||
pData->curTaunt.uiFlags |= TAUNT_C_REGULAR;
|
||||
pData->curTaunt.uiFlags |= TAUNT_C_VETERAN;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_C_ADMIN;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_C_ARMY;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_C_ELITE;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_C_GREEN;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_C_REGULAR;
|
||||
pData->curTaunt.uiFlags2 |= TAUNT_C_VETERAN;
|
||||
}
|
||||
|
||||
//pData->curArray[pData->curTaunt.uiIndex] = pData->curTaunt;
|
||||
pData->curArray[num_found_taunt-1] = pData->curTaunt;
|
||||
pData->curTaunt.uiFlags = 0;
|
||||
for(UINT16 i = 0; i < TAUNT_MAX; i++)
|
||||
{
|
||||
pData->curTaunt.value[i] = (-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
num_found_taunt++;
|
||||
//num_found_taunt = pData->curTaunt.uiIndex;
|
||||
//num_found_taunt = pData->curTaunt.uiIndex;
|
||||
}
|
||||
else if(strcmp(name, "uiIndex") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiIndex = (UINT16) atol(pData->szCharData);
|
||||
for(UINT16 i = 0; i < TAUNT_MAX; i++)
|
||||
{
|
||||
pData->curTaunt.value[i] = (-1);
|
||||
}
|
||||
pData->curTaunt.uiFlags = 0;
|
||||
pData->curTaunt.uiFlags2 = 0;
|
||||
}
|
||||
else if(strcmp(name, "szText") == 0 )
|
||||
{
|
||||
@@ -277,6 +343,14 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_A_CUNNING_AID : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_A_CUNNING_SOLO : 0;
|
||||
}
|
||||
else if(strcmp(name, "attack") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_FIRE_GUN : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_FIRE_LAUNCHER : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_ATTACK_BLADE : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_ATTACK_HTH : 0;
|
||||
}
|
||||
else if(strcmp(name, "fire_gun") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
@@ -287,21 +361,17 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_FIRE_LAUNCHER : 0;
|
||||
}
|
||||
else if(strcmp(name, "charge_knife") == 0)
|
||||
else if(strcmp(name, "attack_blade") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_CHARGE_KNIFE : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_ATTACK_BLADE : 0;
|
||||
}
|
||||
else if(strcmp(name, "charge_fists") == 0)
|
||||
else if(strcmp(name, "attack_hth") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_CHARGE_FISTS : 0;
|
||||
}
|
||||
else if(strcmp(name, "steal") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_STEAL : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_ATTACK_HTH : 0;
|
||||
}
|
||||
|
||||
else if(strcmp(name, "throw_knife") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
@@ -312,50 +382,332 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_THROW_GRENADE: 0;
|
||||
}
|
||||
else if(strcmp(name, "alert") == 0)
|
||||
|
||||
else if(strcmp(name, "out_of_ammo") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_ALERT : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_OUT_OF_AMMO : 0;
|
||||
}
|
||||
else if(strcmp(name, "seek_noise") == 0)
|
||||
else if(strcmp(name, "reload") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_SEEK_NOISE : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_RELOAD: 0;
|
||||
}
|
||||
else if(strcmp(name, "noticed_unseen") == 0)
|
||||
|
||||
else if(strcmp(name, "charge_blade") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_NOTICED_UNSEEN : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_CHARGE_BLADE : 0;
|
||||
}
|
||||
else if(strcmp(name, "charge_hth") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_CHARGE_HTH : 0;
|
||||
}
|
||||
else if(strcmp(name, "steal") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_STEAL : 0;
|
||||
}
|
||||
else if(strcmp(name, "run_away") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_RUN_AWAY : 0;
|
||||
}
|
||||
else if(strcmp(name, "seek_noise") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_SEEK_NOISE : 0;
|
||||
}
|
||||
else if(strcmp(name, "alert") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_ALERT : 0;
|
||||
}
|
||||
else if(strcmp(name, "suspicious") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_SUSPICIOUS : 0;
|
||||
}
|
||||
else if(strcmp(name, "noticed_unseen") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_NOTICED_UNSEEN : 0;
|
||||
}
|
||||
else if(strcmp(name, "say_hi") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_SAY_HI : 0;
|
||||
}
|
||||
else if(strcmp(name, "inform_about") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_INFORM_ABOUT : 0;
|
||||
}
|
||||
|
||||
else if(strcmp(name, "got_hit") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_GUNFIRE: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_BLADE: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_HTH: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_FALLROOF: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_BLOODLOSS: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_EXPLOSION: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_GAS: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_TENTACLES: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_STRUCTURE_EXPLOSION: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_THROWING_KNIFE: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_gunfire") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_GUNFIRE: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_blade") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_BLADE: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_hth") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_HTH: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_fallroof") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_FALLROOF: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_bloodloss") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_BLOODLOSS: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_explosion") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_EXPLOSION: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_gas") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_GAS: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_tentacle") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_TENTACLES: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_structure_explosion") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_STRUCTURE_EXPLOSION: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_object") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_OBJECT: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_hit_throwing_knife") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_HIT_THROWING_KNIFE: 0;
|
||||
}
|
||||
|
||||
else if(strcmp(name, "got_deafened") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_DEAFENED: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_blinded") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_BLINDED: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_robbed") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_ROBBED: 0;
|
||||
}
|
||||
|
||||
else if(strcmp(name, "got_missed") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED_GUNFIRE: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED_BLADE: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED_HTH: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED_THROWING_KNIFE: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_missed_gunfire") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED_GUNFIRE: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_missed_blade") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED_BLADE: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_missed_hth") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED_HTH: 0;
|
||||
}
|
||||
else if(strcmp(name, "got_missed_throwing_knife") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_GOT_MISSED_THROWING_KNIFE: 0;
|
||||
}
|
||||
|
||||
else if(strcmp(name, "hit") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT_GUNFIRE: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT_BLADE: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT_HTH: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT_THROWING_KNIFE: 0;
|
||||
}
|
||||
else if(strcmp(name, "hit_gunfire") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT_GUNFIRE: 0;
|
||||
}
|
||||
else if(strcmp(name, "hit_blade") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT_BLADE: 0;
|
||||
}
|
||||
else if(strcmp(name, "hit_hth") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT_HTH: 0;
|
||||
}
|
||||
else if(strcmp(name, "hit_throwing_knife") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HIT_THROWING_KNIFE: 0;
|
||||
}
|
||||
|
||||
else if(strcmp(name, "kill") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_KILL : 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_KILL_GUNFIRE: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_KILL_BLADE: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_KILL_HTH: 0;
|
||||
}
|
||||
else if(strcmp(name, "kill_gunfire") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_KILL_GUNFIRE: 0;
|
||||
}
|
||||
else if(strcmp(name, "kill_blade") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_KILL_BLADE: 0;
|
||||
}
|
||||
else if(strcmp(name, "kill_hth") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_KILL_HTH: 0;
|
||||
}
|
||||
else if(strcmp(name, "kill_throwing_knife") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_KILL_THROWING_KNIFE: 0;
|
||||
}
|
||||
else if(strcmp(name, "head_pop") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_HEAD_POP : 0;
|
||||
}
|
||||
|
||||
else if(strcmp(name, "miss") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_MISS: 0;
|
||||
}
|
||||
else if(strcmp(name, "miss_gunfire") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_MISS_GUNFIRE: 0;
|
||||
}
|
||||
else if(strcmp(name, "miss_blade") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_MISS_BLADE: 0;
|
||||
}
|
||||
else if(strcmp(name, "miss_hth") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_MISS_HTH: 0;
|
||||
}
|
||||
else if(strcmp(name, "miss_throwing_knife") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_MISS_THROWING_KNIFE: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(strcmp(name, "riposte_bullet_flew_by") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_R_BULLET_FLEW_BY: 0;
|
||||
}
|
||||
else if(strcmp(name, "riposte_under_heavy_fire") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_R_UNDER_HEAVY_FIRE: 0;
|
||||
}
|
||||
else if(strcmp(name, "riposte_enemy_detected") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_S_R_ENEMY_DETECTED: 0;
|
||||
}
|
||||
else if(strcmp(name, "riposte_1st_enemy_detected") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_S_R_1ST_ENEMY_DETECTED: 0;
|
||||
}
|
||||
else if(strcmp(name, "riposte_multiple_enemies") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_S_R_MULTIPLE_ENEMIES: 0;
|
||||
}
|
||||
|
||||
if(strcmp(name, "enemy") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ADMIN: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ARMY: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ELITE: 0;
|
||||
}
|
||||
else if(strcmp(name, "admin") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ADMIN: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ADMIN: 0;
|
||||
}
|
||||
else if(strcmp(name, "army") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ARMY: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ARMY: 0;
|
||||
}
|
||||
else if(strcmp(name, "elite") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ELITE: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_C_ELITE: 0;
|
||||
}
|
||||
else if(strcmp(name, "militia") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_C_GREEN: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_C_REGULAR: 0;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_C_VETERAN: 0;
|
||||
}
|
||||
else if(strcmp(name, "green") == 0)
|
||||
{
|
||||
@@ -365,12 +717,12 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
else if(strcmp(name, "regular") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_C_REGULAR: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_C_REGULAR: 0;
|
||||
}
|
||||
else if(strcmp(name, "veteran") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_C_VETERAN: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_C_VETERAN: 0;
|
||||
}
|
||||
else if(strcmp(name, "admin_profile") == 0)
|
||||
{
|
||||
@@ -405,12 +757,12 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
else if(strcmp(name, "male") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_G_MALE: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_G_MALE: 0;
|
||||
}
|
||||
else if(strcmp(name, "female") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_G_FEMALE: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_G_FEMALE: 0;
|
||||
}
|
||||
else if(strcmp(name, "exp_level_gt") == 0)
|
||||
{
|
||||
@@ -510,12 +862,12 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
else if(strcmp(name, "target_male") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_T_MALE: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_T_MALE: 0;
|
||||
}
|
||||
else if(strcmp(name, "target_female") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags |= (UINT16) atol(pData->szCharData) ? TAUNT_T_FEMALE: 0;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_T_FEMALE: 0;
|
||||
}
|
||||
else if(strcmp(name, "target_exp_level_gt") == 0)
|
||||
{
|
||||
@@ -587,6 +939,11 @@ tauntEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.value[TAUNT_TARGET_MERC_PROFILE] = (INT16) atol(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "target_zombie") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curTaunt.uiFlags2 |= (UINT16) atol(pData->szCharData) ? TAUNT_T_ZOMBIE: 0;
|
||||
}
|
||||
pData->maxReadDepth--;
|
||||
}
|
||||
pData->currentDepth--;
|
||||
|
||||
Reference in New Issue
Block a user