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:
Wanne
2013-11-19 07:52:51 +00:00
parent 496616a2bd
commit 47210f9b14
27 changed files with 1477 additions and 277 deletions
+422 -65
View File
@@ -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--;