- Added Karate Chris's poison cloud fix.

SVN r1647 (trunk)
This commit is contained in:
Christoph Oelckers 2009-06-07 09:41:22 +00:00
parent 88e2e36a03
commit 93742aca31
4 changed files with 12 additions and 6 deletions

View file

@ -1,4 +1,7 @@
June 6, 2009 June 7, 2009 (Changes by Graf Zahl)
- Added Karate Chris's poison cloud fix.
June 6, 2009
- Added per-tier texture scaling with these new UDMF sidedef properties: - Added per-tier texture scaling with these new UDMF sidedef properties:
* scalex_top * scalex_top
* scaley_top * scaley_top

View file

@ -274,9 +274,10 @@ int APoisonCloud::DoSpecialDamage (AActor *victim, int damage)
{ {
P_PoisonDamage (victim->player, this, P_PoisonDamage (victim->player, this,
15+(pr_poisoncloudd()&15), false); // Don't play painsound 15+(pr_poisoncloudd()&15), false); // Don't play painsound
P_PoisonPlayer (victim->player, this, this->target, 50);
S_Sound (victim, CHAN_VOICE, "*poison", 1, ATTN_NORM); // If successful, play the posion sound.
if (P_PoisonPlayer (victim->player, this, this->target, 50))
S_Sound (victim, CHAN_VOICE, "*poison", 1, ATTN_NORM);
} }
} }
return -1; return -1;

View file

@ -1388,11 +1388,11 @@ bool AActor::OkayToSwitchTarget (AActor *other)
// //
//========================================================================== //==========================================================================
void P_PoisonPlayer (player_t *player, AActor *poisoner, AActor *source, int poison) bool P_PoisonPlayer (player_t *player, AActor *poisoner, AActor *source, int poison)
{ {
if((player->cheats&CF_GODMODE) || (player->mo->flags2 & MF2_INVULNERABLE)) if((player->cheats&CF_GODMODE) || (player->mo->flags2 & MF2_INVULNERABLE))
{ {
return; return false;
} }
if (source != NULL && source->player != player && player->mo->IsTeammate (source)) if (source != NULL && source->player != player && player->mo->IsTeammate (source))
{ {
@ -1407,6 +1407,7 @@ void P_PoisonPlayer (player_t *player, AActor *poisoner, AActor *source, int poi
player->poisoncount = 100; player->poisoncount = 100;
} }
} }
return true;
} }
//========================================================================== //==========================================================================
@ -1490,6 +1491,7 @@ void P_PoisonDamage (player_t *player, AActor *source, int damage,
P_SetMobjState(target, target->info->painstate); P_SetMobjState(target, target->info->painstate);
} }
*/ */
return;
} }
bool CheckCheatmode (); bool CheckCheatmode ();

View file

@ -449,7 +449,7 @@ extern FBlockNode** blocklinks; // for thing chains
void P_TouchSpecialThing (AActor *special, AActor *toucher); void P_TouchSpecialThing (AActor *special, AActor *toucher);
void P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage, FName mod, int flags=0); void P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage, FName mod, int flags=0);
bool P_GiveBody (AActor *actor, int num); bool P_GiveBody (AActor *actor, int num);
void P_PoisonPlayer (player_t *player, AActor *poisoner, AActor *source, int poison); bool P_PoisonPlayer (player_t *player, AActor *poisoner, AActor *source, int poison);
void P_PoisonDamage (player_t *player, AActor *source, int damage, bool playPainSound); void P_PoisonDamage (player_t *player, AActor *source, int damage, bool playPainSound);
enum EDmgFlags enum EDmgFlags