diff --git a/doomsday/Defs/jDoom/Text.ded b/doomsday/Defs/jDoom/Text.ded index ba5532dc49..af0c18e05d 100644 --- a/doomsday/Defs/jDoom/Text.ded +++ b/doomsday/Defs/jDoom/Text.ded @@ -1870,3 +1870,8 @@ Text { ID = "KILLMSG_SUPERSHOTGUN"; Text = "%1 blasted %2 to tiny bits."; } + +Text { + ID = "KILLMSG_STOMP"; + Text = "%1 stomped %2!!"; +} diff --git a/doomsday/Include/Common/d_netsv.h b/doomsday/Include/Common/d_netsv.h index 18394025ed..0b398604bd 100644 --- a/doomsday/Include/Common/d_netsv.h +++ b/doomsday/Include/Common/d_netsv.h @@ -43,7 +43,8 @@ void NetSv_SaveGame(unsigned int game_id); void NetSv_LoadGame(unsigned int game_id); void NetSv_LoadReply(int plnum, int console); void NetSv_FragsForAll(player_t * player); -void NetSv_KillMessage(player_t * killer, player_t * fragged); +void NetSv_KillMessage(player_t * killer, player_t * fragged, + boolean stomping); void NetSv_UpdateGameConfig(void); void NetSv_Paused(boolean isPaused); void NetSv_DoCheat(int player, const char *data); diff --git a/doomsday/Include/jDoom/info.h b/doomsday/Include/jDoom/info.h index 961f699ab9..6eb74120b9 100644 --- a/doomsday/Include/jDoom/info.h +++ b/doomsday/Include/jDoom/info.h @@ -1606,7 +1606,8 @@ typedef enum { TXT_KILLMSG_BFG, // 331 TXT_KILLMSG_CHAINSAW, // 332 TXT_KILLMSG_SUPERSHOTGUN, // 333 - NUMTEXT // 334 + TXT_KILLMSG_STOMP, // 334 + NUMTEXT // 335 } textenum_t; #endif diff --git a/doomsday/Include/jDoom/p_local.h b/doomsday/Include/jDoom/p_local.h index e5a3003de5..87b8cc4caa 100644 --- a/doomsday/Include/jDoom/p_local.h +++ b/doomsday/Include/jDoom/p_local.h @@ -300,6 +300,8 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher); void P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, int damage); +void P_DamageMobj2(mobj_t *target, mobj_t *inflictor, mobj_t *source, + int damage, boolean stomping); void P_ExplodeMissile(mobj_t *mo); @@ -312,6 +314,9 @@ void P_ExplodeMissile(mobj_t *mo); //----------------------------------------------------------------------------- // // $Log$ +// Revision 1.7 2004/06/16 18:21:34 skyjake +// Added a separate killmsg for telestomp +// // Revision 1.6 2004/05/30 08:42:35 skyjake // Tweaked indentation style // diff --git a/doomsday/Src/Common/d_netsv.c b/doomsday/Src/Common/d_netsv.c index 21e7fafe99..74435d0dc3 100644 --- a/doomsday/Src/Common/d_netsv.c +++ b/doomsday/Src/Common/d_netsv.c @@ -1042,7 +1042,7 @@ void NetSv_SendPlayerClass(int pnum, char cls) // NetSv_KillMessage // Send one of the kill messages, depending on the weapon of the killer. //=========================================================================== -void NetSv_KillMessage(player_t * killer, player_t * fragged) +void NetSv_KillMessage(player_t * killer, player_t * fragged, boolean stomping) { #if __JDOOM__ char buf[160], *in, tmp[2]; @@ -1054,8 +1054,8 @@ void NetSv_KillMessage(player_t * killer, player_t * fragged) tmp[1] = 0; // Choose the right kill message template. - in = GET_TXT(killer == - fragged ? TXT_KILLMSG_SUICIDE : TXT_KILLMSG_WEAPON0 + + in = GET_TXT(stomping ? TXT_KILLMSG_STOMP : killer == fragged ? + TXT_KILLMSG_SUICIDE : TXT_KILLMSG_WEAPON0 + killer->readyweapon); for(; *in; in++) { diff --git a/doomsday/Src/jDoom/p_inter.c b/doomsday/Src/jDoom/p_inter.c index 15351ce850..e78bc98348 100644 --- a/doomsday/Src/jDoom/p_inter.c +++ b/doomsday/Src/jDoom/p_inter.c @@ -15,6 +15,9 @@ // for more details. // // $Log$ +// Revision 1.10 2004/06/16 18:21:34 skyjake +// Added a separate killmsg for telestomp +// // Revision 1.9 2004/05/30 08:42:41 skyjake // Tweaked indentation style // @@ -704,7 +707,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher) //=========================================================================== // P_KillMobj //=========================================================================== -void P_KillMobj(mobj_t *source, mobj_t *target) +void P_KillMobj(mobj_t *source, mobj_t *target, boolean stomping) { mobjtype_t item; mobj_t *mo; @@ -728,7 +731,7 @@ void P_KillMobj(mobj_t *source, mobj_t *target) { source->player->frags[target->player - players]++; NetSv_FragsForAll(source->player); - NetSv_KillMessage(source->player, target->player); + NetSv_KillMessage(source->player, target->player, stomping); } } else if(!IS_NETGAME && (target->flags & MF_COUNTKILL)) @@ -745,7 +748,7 @@ void P_KillMobj(mobj_t *source, mobj_t *target) { target->player->frags[target->player - players]++; NetSv_FragsForAll(target->player); - NetSv_KillMessage(target->player, target->player); + NetSv_KillMessage(target->player, target->player, stomping); } target->flags &= ~MF_SOLID; @@ -807,6 +810,12 @@ void P_KillMobj(mobj_t *source, mobj_t *target) mo->flags |= MF_DROPPED; // special versions of items } +void P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, + int damage) +{ + P_DamageMobj2(target, inflictor, source, damage, false); +} + //=========================================================================== // P_DamageMobj // Damages both enemies and players @@ -818,8 +827,8 @@ void P_KillMobj(mobj_t *source, mobj_t *target) // Source can be NULL for slime, barrel explosions // and other environmental stuff. //=========================================================================== -void P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, - int damage) +void P_DamageMobj2(mobj_t *target, mobj_t *inflictor, mobj_t *source, + int damage, boolean stomping) { unsigned ang; int saved; @@ -942,9 +951,6 @@ void P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, player->damagecount = 100; // teleport stomp does 10k points... temp = damage < 100 ? damage : 100; - - /* if (player == &players[consoleplayer]) - I_Tactile (40,10,40+temp*2); */ } // How about some particles, yes? @@ -955,7 +961,7 @@ void P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, target->health -= damage; if(target->health <= 0) { - P_KillMobj(source, target); + P_KillMobj(source, target, stomping); return; } diff --git a/doomsday/Src/jDoom/p_map.c b/doomsday/Src/jDoom/p_map.c index 9cc9284820..4f22a10b94 100644 --- a/doomsday/Src/jDoom/p_map.c +++ b/doomsday/Src/jDoom/p_map.c @@ -15,6 +15,9 @@ // for more details. // // $Log$ +// Revision 1.9 2004/06/16 18:25:09 skyjake +// Added a separate killmsg for telestomp +// // Revision 1.8 2004/05/30 08:42:41 skyjake // Tweaked indentation style // @@ -140,7 +143,8 @@ boolean PIT_StompThing(mobj_t *thing, void *data) if(!tmthing->player && gamemap != 30) return false; - P_DamageMobj(thing, tmthing, tmthing, 10000); + // Do stomp damage. + P_DamageMobj2(thing, tmthing, tmthing, 10000, true); return true; }