- exported Shadow Warrior strings to stringtable.

The MP obituaries are not handled yet, they were only copied but there's no code using them.
This commit is contained in:
Christoph Oelckers 2019-12-09 21:19:05 +01:00
parent 6ef1f96b40
commit 16818d2d71
10 changed files with 162 additions and 124 deletions

View file

@ -45,6 +45,7 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#include "control.h" #include "control.h"
#include "gamecontrol.h" #include "gamecontrol.h"
#include "gstrings.h"
//#include "inv.h" //#include "inv.h"
BEGIN_SW_NS BEGIN_SW_NS
@ -104,8 +105,7 @@ void MapCheat(PLAYERp pp, const char *)
else else
MapSetAll2D(0xFF); MapSetAll2D(0xFF);
sprintf(ds, "AUTOMAPPING %s", automapping ? "ON" : "OFF" ); PutStringInfo(pp, GStrings(automapping ? "TXT_AMON" : "TXT_AMOFF"));
PutStringInfo(pp, ds);
} }
void LocCheat(PLAYERp pp, const char *) void LocCheat(PLAYERp pp, const char *)
@ -123,7 +123,7 @@ void GunsCheat(PLAYERp pp, const char *cheat_string)
unsigned int i; unsigned int i;
short gAmmo[10] = {0,9,12,20,3,6,5,5,10,1}; short gAmmo[10] = {0,9,12,20,3,6,5,5,10,1};
const char *cp = cheat_string; const char *cp = cheat_string;
const char *str = "GIVEN WEAPON %1d"; const char *str = "TXT_GIVENW";
int gunnum, x; int gunnum, x;
USERp u; USERp u;
@ -142,17 +142,16 @@ void GunsCheat(PLAYERp pp, const char *cheat_string)
if (TEST(p->WpnFlags, BIT(gunnum-1)) == 0) if (TEST(p->WpnFlags, BIT(gunnum-1)) == 0)
p->WpnFlags += BIT(gunnum-2) << 1; p->WpnFlags += BIT(gunnum-2) << 1;
else else
str = "ADD AMMO TO WEAPON %1d"; str = "TXTS_AMMOW";
p->WpnAmmo[gunnum-1] += x; p->WpnAmmo[gunnum-1] += x;
if (p->WpnAmmo[gunnum-1] > DamageData[gunnum-1].max_ammo) if (p->WpnAmmo[gunnum-1] > DamageData[gunnum-1].max_ammo)
{ {
p->WpnAmmo[gunnum-1] = DamageData[gunnum-1].max_ammo; p->WpnAmmo[gunnum-1] = DamageData[gunnum-1].max_ammo;
str = ""; str = nullptr;
} }
PlayerUpdateWeapon(p, u->WeaponNum); PlayerUpdateWeapon(p, u->WeaponNum);
} }
sprintf(ds, str, gunnum); if (str) PutStringInfo(pp, FStringf("%s %d", GStrings(str), gunnum));
PutStringInfo(pp, ds);
} }
void WeaponCheat(PLAYERp pp, const char *) void WeaponCheat(PLAYERp pp, const char *)
@ -195,16 +194,13 @@ void GodCheat(PLAYERp pp, const char *)
// //
GodMode ^= 1; GodMode ^= 1;
sprintf(ds, "GOD MODE %s", GodMode ? "ON" : "OFF"); PutStringInfo(pp, GStrings(GodMode? "GOD MODE: ON" : "GOD MODE: OFF"));
PutStringInfo(pp, ds);
} }
void ClipCheat(PLAYERp pp, const char *) void ClipCheat(PLAYERp pp, const char *)
{ {
FLIP(pp->Flags, PF_CLIP_CHEAT); FLIP(pp->Flags, PF_CLIP_CHEAT);
PutStringInfo(pp, GStrings(TEST(pp->Flags, PF_CLIP_CHEAT) ? "CLIPPING: OFF" : "CLIPPING: ON"));;
sprintf(ds, "NO CLIP MODE %s", TEST(pp->Flags, PF_CLIP_CHEAT) ? "ON" : "OFF");
PutStringInfo(pp, ds);
} }
void WarpCheat(PLAYERp pp, const char *cheat_string) void WarpCheat(PLAYERp pp, const char *cheat_string)
@ -233,7 +229,7 @@ void WarpCheat(PLAYERp pp, const char *cheat_string)
Level = level_num; Level = level_num;
ExitLevel = TRUE; ExitLevel = TRUE;
sprintf(ds, "ENTERING %1d", Level); sprintf(ds, "%s %1d", GStrings("TXT_ENTERING"), Level);
PutStringInfo(pp, ds); PutStringInfo(pp, ds);
} }
@ -284,15 +280,15 @@ void ItemCheat(PLAYERp pp, const char *cheat_string)
VOID HealCheat(PLAYERp pp, const char *cheat_string) VOID HealCheat(PLAYERp pp, const char *cheat_string)
{ {
short pnum; short pnum;
const char *str = ""; const char *str = nullptr;
TRAVERSE_CONNECT(pnum) TRAVERSE_CONNECT(pnum)
{ {
if (User[Player[pnum].PlayerSprite]->Health < pp->MaxHealth) if (User[Player[pnum].PlayerSprite]->Health < pp->MaxHealth)
str = "ADDED HEALTH"; str = "TXTS_ADDEDHEALTH";
User[Player[pnum].PlayerSprite]->Health += 25; User[Player[pnum].PlayerSprite]->Health += 25;
} }
PutStringInfo(pp, str); if (str) PutStringInfo(pp, GStrings(str));
} }
VOID SortKeyCheat(PLAYERp pp, const char *sKey) VOID SortKeyCheat(PLAYERp pp, const char *sKey)
@ -359,7 +355,7 @@ VOID KeysCheat(PLAYERp pp, const char *cheat_string)
PLAYERp p; PLAYERp p;
short pnum; short pnum;
const char *cp = cheat_string; const char *cp = cheat_string;
const char *str = "Given all keys"; const char *str = "TXT_GIVEKEY";
int keynum = 0; int keynum = 0;
cp += sizeof("swkey")-1; cp += sizeof("swkey")-1;
@ -378,21 +374,17 @@ VOID KeysCheat(PLAYERp pp, const char *cheat_string)
if (p->HasKey[keynum-1] == FALSE) if (p->HasKey[keynum-1] == FALSE)
{ {
p->HasKey[keynum-1] = TRUE; // cards: 0=red 1=blue 2=green 3=yellow | keys: 4=gold 5=silver 6=bronze 7=red p->HasKey[keynum-1] = TRUE; // cards: 0=red 1=blue 2=green 3=yellow | keys: 4=gold 5=silver 6=bronze 7=red
str = "Given %s"; str = "TXT_KEYGIVEN";
} }
else else
{ {
p->HasKey[keynum-1] = FALSE; p->HasKey[keynum-1] = FALSE;
str = "Removed %s"; str = "TXT_KEYREMOVED";
} }
} }
} }
PlayerUpdateKeys(pp); PlayerUpdateKeys(pp);
if (keynum == 0) PutStringInfo(pp, GStrings(str));
sprintf(ds, str);
else
sprintf(ds, str, CheatKeyType);
PutStringInfo(pp, ds);
} }
void EveryCheatToggle(PLAYERp pp, const char *cheat_string) void EveryCheatToggle(PLAYERp pp, const char *cheat_string)
@ -402,9 +394,6 @@ void EveryCheatToggle(PLAYERp pp, const char *cheat_string)
WeaponCheat(pp, cheat_string); WeaponCheat(pp, cheat_string);
GodCheat(pp, cheat_string); GodCheat(pp, cheat_string);
ItemCheat(pp, cheat_string); ItemCheat(pp, cheat_string);
sprintf(ds, "EVERY CHEAT %s", EveryCheat ? "ON" : "OFF");
PutStringInfo(pp, ds);
} }
void GeorgeFunc(PLAYERp pp, char *) void GeorgeFunc(PLAYERp pp, char *)
@ -521,7 +510,7 @@ void CheatInput(void)
if (Skill >= 3) if (Skill >= 3)
{ {
PutStringInfo(Player, "You're too skillful to cheat\n"); PutStringInfo(Player, GStrings("TXTS_TOOSKILLFUL"));
return; return;
} }
} }

View file

@ -98,6 +98,7 @@ Things required to make savegames work:
#include "menu/menu.h" #include "menu/menu.h"
#include "z_music.h" #include "z_music.h"
#include "statistics.h" #include "statistics.h"
#include "gstrings.h"
//#include "crc32.h" //#include "crc32.h"
@ -2413,17 +2414,18 @@ void StatScreen(PLAYERp mpp)
memset(death_total,0,sizeof(death_total)); memset(death_total,0,sizeof(death_total));
memset(kills,0,sizeof(kills)); memset(kills,0,sizeof(kills));
sprintf(ds,"MULTIPLAYER TOTALS"); auto c = GStrings("MULTIPLAYER TOTALS");
MNU_MeasureString(ds, &w, &h); MNU_MeasureString(c, &w, &h);
MNU_DrawString(TEXT_TEST_COL(w), 68, ds, 0, 0); MNU_DrawString(TEXT_TEST_COL(w), 68, c, 0, 0);
sprintf(ds,"PRESS SPACE BAR TO CONTINUE"); c = GStrings("TXTS_PRESSSPACE");
MNU_MeasureString(ds, &w, &h); MNU_MeasureString(c, &w, &h);
MNU_DrawString(TEXT_TEST_COL(w), 189, ds, 0, 0); MNU_DrawString(TEXT_TEST_COL(w), 189, c, 0, 0);
x = STAT_START_X; x = STAT_START_X;
y = STAT_START_Y; y = STAT_START_Y;
// Hm.... how to translate this without messing up the formatting?
sprintf(ds," NAME 1 2 3 4 5 6 7 8 KILLS"); sprintf(ds," NAME 1 2 3 4 5 6 7 8 KILLS");
DisplayMiniBarSmString(mpp, x, y, 0, ds); DisplayMiniBarSmString(mpp, x, y, 0, ds);
rows = OrigCommPlayers; rows = OrigCommPlayers;
@ -2485,7 +2487,7 @@ void StatScreen(PLAYERp mpp)
x = STAT_START_X; x = STAT_START_X;
y += STAT_OFF_Y; y += STAT_OFF_Y;
sprintf(ds," DEATHS"); sprintf(ds," %s", GStrings("DEATHS"));
DisplayMiniBarSmString(mpp, x, y, 0, ds); DisplayMiniBarSmString(mpp, x, y, 0, ds);
x = STAT_TABLE_X; x = STAT_TABLE_X;

View file

@ -66,6 +66,7 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#include "track.h" #include "track.h"
#include "interp.h" #include "interp.h"
#include "menu/menu.h" #include "menu/menu.h"
#include "gstrings.h"
BEGIN_SW_NS BEGIN_SW_NS
@ -6521,7 +6522,7 @@ DoPlayerBeginDie(PLAYERp pp)
{ {
bak = GlobInfoStringTime; bak = GlobInfoStringTime;
GlobInfoStringTime = 999; GlobInfoStringTime = 999;
PutStringInfo(pp, "Press SPACE to restart"); PutStringInfo(pp, GStrings("TXT_PRESSSPACER"));
GlobInfoStringTime = bak; GlobInfoStringTime = bak;
} }
@ -7880,11 +7881,11 @@ void PauseMultiPlay(void)
if (GamePaused) if (GamePaused)
{ {
short w,h; short w,h;
#define MSG_GAME_PAUSED "Game Paused" auto m = GStrings("Game Paused");
MNU_MeasureString(MSG_GAME_PAUSED, &w, &h); MNU_MeasureString(m, &w, &h);
TRAVERSE_CONNECT(p) TRAVERSE_CONNECT(p)
PutStringTimer(Player + p, TEXT_TEST_COL(w), 100, MSG_GAME_PAUSED, 999); PutStringTimer(Player + p, TEXT_TEST_COL(w), 100, m, 999);
SavePrediction = PredictionOn; SavePrediction = PredictionOn;
PredictionOn = FALSE; PredictionOn = FALSE;

View file

@ -181,7 +181,7 @@ DoRotatorMatch(PLAYERp pp, short match, SWBOOL manual)
// SWBOOL 8 must be set for message to display // SWBOOL 8 must be set for message to display
if (TEST_BOOL4(fsp) && (gNet.MultiGameType == MULTI_GAME_COMMBAT || gNet.MultiGameType == MULTI_GAME_AI_BOTS)) if (TEST_BOOL4(fsp) && (gNet.MultiGameType == MULTI_GAME_COMMBAT || gNet.MultiGameType == MULTI_GAME_AI_BOTS))
{ {
if (pp && TEST_BOOL11(fsp)) PutStringInfo(pp,"This only opens in single play."); if (pp && TEST_BOOL11(fsp)) PutStringInfo(pp, GStrings("TXT_SPONLY"));
continue; continue;
} }

View file

@ -506,46 +506,6 @@ static int cm_transtok(const char *tok, const struct _tokset *set, const unsigne
return -1; return -1;
} }
// level # {
// title "Map Name"
// filename "filename.map"
// song "filename.mid"
// cdatrack n
// besttime secs
// partime secs
// }
//
// episode # {
// title "Episode Name"
// subtitle "Caption text"
// }
//
// skill # {
// name "Tiny grasshopper"
// }
//
// fortune {
// "You never going to score."
// "26-31-43-82-16-29"
// "Sorry, you no win this time, try again."
// }
// gotkey {
// "Got the RED key!"
// "Got the BLUE key!"
// "Got the GREEN key!"
// ...
// }
// needkey {
// "You need a RED key for this door."
// "You need a BLUE key for this door."
// "You need a GREEN key for this door."
// ...
// }
// inventory # { name "Armour" amount 50 }
// weapon # { name "Uzi Submachine Gun" ammoname "Uzi Clip" maxammo 200 mindamage 5 maxdamage 7 pickup 50 }
// secret "You found a secret area!"
// quit "PRESS (Y) TO QUIT, (N) TO FIGHT ON."
static LEVEL_INFO custommaps[MAX_LEVELS_REG]; static LEVEL_INFO custommaps[MAX_LEVELS_REG];
#define WM_DAMAGE 1 #define WM_DAMAGE 1

View file

@ -46,6 +46,8 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#include "common_game.h" #include "common_game.h"
#include "light.h" #include "light.h"
#include "text.h" #include "text.h"
#include "gstrings.h"
#include "secrets.h"
BEGIN_SW_NS BEGIN_SW_NS
@ -2141,7 +2143,9 @@ OperateTripTrigger(PLAYERp pp)
PlayerSound(DIGI_ANCIENTSECRET, &pp->posx, &pp->posy, &pp->posz, PlayerSound(DIGI_ANCIENTSECRET, &pp->posx, &pp->posy, &pp->posz,
v3df_dontpan|v3df_doppler|v3df_follow,pp); v3df_dontpan|v3df_doppler|v3df_follow,pp);
sprintf(ds,"You found a secret area!"); sprintf(ds, GStrings("TXTS_SECRET"));
SECRET_Trigger(pp->cursectnum);
PutStringInfo(pp, ds); PutStringInfo(pp, ds);
// always give to the first player // always give to the first player
Player->SecretsFound++; Player->SecretsFound++;

View file

@ -177,7 +177,7 @@ DoSlidorMatch(PLAYERp pp, short match, SWBOOL manual)
// SWBOOL 8 must be set for message to display // SWBOOL 8 must be set for message to display
if (TEST_BOOL4(fsp) && (gNet.MultiGameType == MULTI_GAME_COMMBAT || gNet.MultiGameType == MULTI_GAME_AI_BOTS)) if (TEST_BOOL4(fsp) && (gNet.MultiGameType == MULTI_GAME_COMMBAT || gNet.MultiGameType == MULTI_GAME_AI_BOTS))
{ {
if (pp && TEST_BOOL11(fsp)) PutStringInfo(pp,"This only opens in single play."); if (pp && TEST_BOOL11(fsp)) PutStringInfo(pp, GStrings("TXTS_SPONLY"));
continue; continue;
} }

View file

@ -242,7 +242,7 @@ DoVatorMatch(PLAYERp pp, short match)
// SWBOOL 8 must be set for message to display // SWBOOL 8 must be set for message to display
if (TEST_BOOL4(fsp) && (gNet.MultiGameType == MULTI_GAME_COMMBAT || gNet.MultiGameType == MULTI_GAME_AI_BOTS)) if (TEST_BOOL4(fsp) && (gNet.MultiGameType == MULTI_GAME_COMMBAT || gNet.MultiGameType == MULTI_GAME_AI_BOTS))
{ {
if (pp && TEST_BOOL11(fsp)) PutStringInfo(pp,"This only opens in single play."); if (pp && TEST_BOOL11(fsp)) PutStringInfo(pp, GStrings("TXTS_SPONLY"));
continue; continue;
} }

View file

@ -48,6 +48,7 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#include "actor.h" #include "actor.h"
#include "track.h" #include "track.h"
#include "player.h" #include "player.h"
#include "gstrings.h"
BEGIN_SW_NS BEGIN_SW_NS
@ -7466,94 +7467,94 @@ const char *DeathString(short SpriteNum)
case NINJA_RUN_R0: case NINJA_RUN_R0:
return " "; return " ";
case ZOMBIE_RUN_R0: case ZOMBIE_RUN_R0:
return "Zombie"; return GStrings("Zombie");
case BLOOD_WORM: case BLOOD_WORM:
return "Blood Worm"; return GStrings("Blood Worm");
case SKEL_RUN_R0: case SKEL_RUN_R0:
return "Skeletor Priest"; return GStrings("Skeletor Priest");
case COOLG_RUN_R0: case COOLG_RUN_R0:
return "Coolie Ghost"; return GStrings("Coolie Ghost");
case GORO_RUN_R0: case GORO_RUN_R0:
return "Guardian"; return GStrings("Guardian");
case HORNET_RUN_R0: case HORNET_RUN_R0:
return "Hornet"; return GStrings("Hornet");
case RIPPER_RUN_R0: case RIPPER_RUN_R0:
return "Ripper Hatchling"; return GStrings("Ripper Hatchling");
case RIPPER2_RUN_R0: case RIPPER2_RUN_R0:
return "Ripper"; return GStrings("Ripper");
case BUNNY_RUN_R0: case BUNNY_RUN_R0:
return "Killer Rabbit"; return GStrings("Killer Rabbit");
case SERP_RUN_R0: case SERP_RUN_R0:
return "Serpent god"; return GStrings("Serpent god");
case GIRLNINJA_RUN_R0: case GIRLNINJA_RUN_R0:
return "Girl Ninja"; return GStrings("Girl Ninja");
case BLADE1: case BLADE1:
case BLADE2: case BLADE2:
case BLADE3: case BLADE3:
case 5011: case 5011:
return "blade"; return GStrings("blade");
case STAR1: case STAR1:
if (sw_darts) return "dart"; if (sw_darts) return GStrings("dart");
else return "shuriken"; else return GStrings("shuriken");
case CROSSBOLT: case CROSSBOLT:
return "crossbow bolt"; return GStrings("crossbow bolt");
case SPEAR_R0: case SPEAR_R0:
return "spear"; return GStrings("spear");
case LAVA_BOULDER: case LAVA_BOULDER:
case LAVA_SHARD: case LAVA_SHARD:
return "lava boulder"; return GStrings("lava boulder");
case UZI_SMOKE: case UZI_SMOKE:
return "Uzi"; return GStrings("Uzi");
case UZI_SMOKE+2: case UZI_SMOKE+2:
return "Evil Ninja Uzi"; return GStrings("Evil Ninja Uzi");
case SHOTGUN_SMOKE: case SHOTGUN_SMOKE:
return "shotgun"; return GStrings("shotgun");
case MIRV_METEOR: case MIRV_METEOR:
case SERP_METEOR: case SERP_METEOR:
return "meteor"; return GStrings("meteor");
case BOLT_THINMAN_R0: case BOLT_THINMAN_R0:
return "rocket"; return GStrings("rocket");
case BOLT_THINMAN_R1: case BOLT_THINMAN_R1:
return "rail gun"; return GStrings("rail gun");
case BOLT_THINMAN_R2: case BOLT_THINMAN_R2:
return "enemy rocket"; return GStrings("enemy rocket");
case BOLT_THINMAN_R4: // BunnyRocket case BOLT_THINMAN_R4: // BunnyRocket
return "bunny rocket"; return GStrings("bunny rocket");
case BOLT_EXP: case BOLT_EXP:
return "explosion"; return GStrings("explosion");
case TANK_SHELL_EXP: case TANK_SHELL_EXP:
return "tank shell"; return GStrings("tank shell");
case MUSHROOM_CLOUD: case MUSHROOM_CLOUD:
return "nuclear bomb"; return GStrings("nuclear bomb");
case GRENADE_EXP: case GRENADE_EXP:
return "40mm grenade"; return GStrings("40mm grenade");
case MICRO_EXP: case MICRO_EXP:
return "micro missile"; return GStrings("micro missile");
case MINE_EXP: case MINE_EXP:
//case MINE_SHRAP: //case MINE_SHRAP:
return "sticky bomb"; return GStrings("sticky bomb");
case NAP_EXP: case NAP_EXP:
return "napalm"; return GStrings("napalm");
case Vomit1: case Vomit1:
case Vomit2: case Vomit2:
return "vomit"; return GStrings("vomit");
case COOLG_FIRE: case COOLG_FIRE:
return "Coolie Ghost phlem"; return GStrings("Coolie Ghost phlem");
case SKULL_R0: case SKULL_R0:
return "Accursed Head"; return GStrings("Accursed Head");
case BETTY_R0: case BETTY_R0:
return "Bouncing Betty"; return GStrings("Bouncing Betty");
case SKULL_SERP: case SKULL_SERP:
return "Serpent god Protector"; return GStrings("Serpent god Protector");
case FIREBALL1: case FIREBALL1:
case FIREBALL: case FIREBALL:
case GORO_FIREBALL: case GORO_FIREBALL:
case FIREBALL_FLAMES: case FIREBALL_FLAMES:
return "flames"; return GStrings("flames");
case RADIATION_CLOUD: case RADIATION_CLOUD:
return "radiation"; return GStrings("radiation");
case CALTROPS: case CALTROPS:
return "caltrops"; return GStrings("caltrops");
} }
return ""; return "";
} }

View file

@ -1840,4 +1840,85 @@ Grenade Shells,TXTS_AMMO8,,,,,,,,,,,,,,,,,,,,,,
Rail Gun Rods,TXTS_AMMO9,,,,,,,,,,,,,,,,,,,,,, Rail Gun Rods,TXTS_AMMO9,,,,,,,,,,,,,,,,,,,,,,
Shotshells,TXTS_AMMO10,,,,,,,,,,,,,,,,,,,,,, Shotshells,TXTS_AMMO10,,,,,,,,,,,,,,,,,,,,,,
Firebursts,TXTS_AMMO11,,,,,,,,,,,,,,,,,,,,,, Firebursts,TXTS_AMMO11,,,,,,,,,,,,,,,,,,,,,,
Deathcoils,TXTS_AMMO12,,,,,,,,,,,,,,,,,,,,,, Deathcoils,TXTS_AMMO12,,,,,,,,,,,,,,,,,,,,,,
"Automapping ON
",TXTS_AMON,,,,,,,,,,,,,,,,,,,,,,
Automapping OFF,TXTS_AMOFF,,,,,,,,,,,,,,,,,,,,,,
Given Weapon,TXTS_GIVENW,,,,,,,,,,,,,,,,,,,,,,
Add Ammo to Weapon,TXTS_AMMOW,,,,,,,,,,,,,,,,,,,,,,
Added Health,TXTS_ADDEDHEALTH,,,,,,,,,,,,,,,,,,,,,,
Given all keys,TXTS_GIVEKEY,,,,,,,,,,,,,,,,,,,,,,
Key given,TXTS_KEYGIVEN,,,,,,,,,,,,,,,,,,,,,,
Key removed,TXTS_KEYREMOVED,,,,,,,,,,,,,,,,,,,,,,
You're too skillful to cheat,TXTS_TOOSKILLFUL,,,,,,,,,,,,,,,,,,,,,,
Press Space Bar to continue,TXTS_PRESSSPACE,,,,,,,,,,,,,,,,,,,,,,
Press SPACE to restart,TXTS_PRESSSPACER,,,,,,,,,,,,,,,,,,,,,,
%p decided to do the graveyard tour.,TXTS_SUICIDE01,"todo (player.cpp, line 6346ff)",,,,,,,,,,,,,,,,,,,,,
%p had enough and checked out.,TXTS_SUICIDE02,,,,,,,,,,,,,,,,,,,,,,
%p didn't fear the Reaper.,TXTS_SUICIDE03,,,,,,,,,,,,,,,,,,,,,,
%p dialed the 1-800-CYANIDE line.,TXTS_SUICIDE04,,,,,,,,,,,,,,,,,,,,,,
%p wasted himself.,TXTS_SUICIDE05,,,,,,,,,,,,,,,,,,,,,,
%p kicked his own ass.,TXTS_SUICIDE06,,,,,,,,,,,,,,,,,,,,,,
%p went out in blaze of his own glory.,TXTS_SUICIDE07,,,,,,,,,,,,,,,,,,,,,,
%p killed himself before anyone else could.,TXTS_SUICIDE08,,,,,,,,,,,,,,,,,,,,,,
%p needs shooting lessons.,TXTS_SUICIDE09,,,,,,,,,,,,,,,,,,,,,,
%p blew his head off.,TXTS_SUICIDE10,,,,,,,,,,,,,,,,,,,,,,
%p did everyone a favor and offed himself,TXTS_SUICIDE11,,,,,,,,,,,,,,,,,,,,,,
%p was wasted by %k's %z.,TXTS_MPOBIT01,,,,,,,,,,,,,,,,,,,,,,
%p got his ass kicked by %k's %z.,TXTS_MPOBIT02,,,,,,,,,,,,,,,,,,,,,,
%p bows down before the mighty power of %z.,TXTS_MPOBIT03,,,,,,,,,,,,,,,,,,,,,,
%p was killed by %k's %z.,TXTS_MPOBIT04,,,,,,,,,,,,,,,,,,,,,,
%p got slapped down hard by %k's %z.,TXTS_MPOBIT05,,,,,,,,,,,,,,,,,,,,,,
%p got on his knees before %k.,TXTS_MPOBIT06,,,,,,,,,,,,,,,,,,,,,,
%p was totally out classed by %k's %z.,TXTS_MPOBIT07,,,,,,,,,,,,,,,,,,,,,,
%p got chewed apart by %k's %z.,TXTS_MPOBIT08,,,,,,,,,,,,,,,,,,,,,,
%p was retired by %k's %z.,TXTS_MPOBIT09,,,,,,,,,,,,,,,,,,,,,,
%p was greased by %k's %z.,TXTS_MPOBIT10,,,,,,,,,,,,,,,,,,,,,,
%p was humbled lower than dirt by %k.,TXTS_MPOBIT11,,,,,,,,,,,,,,,,,,,,,,
%p beats %k like a red headed step child.,TXTS_MPOBIT12,,,,,,,,,,,,,,,,,,,,,,
%p begs for mercy as %k terminates @[en_ppro] with extreme prejudice.,TXTS_MPOBIT13,,,,,,,,,,,,,,,,,,,,,,
%p falls before the superior skills of %k.,TXTS_MPOBIT14,,,,,,,,,,,,,,,,,,,,,,
%k gives %p a beating @[en_pro] will never forget.,TXTS_MPOBIT15,,,,,,,,,,,,,,,,,,,,,,
%k puts the Smack Dab on %p with the %z.,TXTS_MPOBIT16,,,,,,,,,,,,,,,,,,,,,,
This only opens in single play.,TXTS_SPONLY,,,,,,,,,,,,,,,,,,,,,,
You found a secret area!,TXTS_SECRET,,,,,,,,,,,,,,,,,,,,,,
Zombie,Zombie,,,,,,,,,,,,,,,,,,,,,,
Blood Worm,Blood Worm,,,,,,,,,,,,,,,,,,,,,,
Skeletor Priest,Skeletor Priest,,,,,,,,,,,,,,,,,,,,,,
Coolie Ghost,Coolie Ghost,,,,,,,,,,,,,,,,,,,,,,
Guardian,Guardian,,,,,,,,,,,,,,,,,,,,,,
Hornet,Hornet,,,,,,,,,,,,,,,,,,,,,,
Ripper Hatchling,Ripper Hatchling,,,,,,,,,,,,,,,,,,,,,,
Ripper,Ripper,,,,,,,,,,,,,,,,,,,,,,
Killer Rabbit,Killer Rabbit,,,,,,,,,,,,,,,,,,,,,,
Serpent God,Serpent God,,,,,,,,,,,,,,,,,,,,,,
Girl Ninja,Girl Ninja,,,,,,,,,,,,,,,,,,,,,,
Blade,Blade,,,,,,,,,,,,,,,,,,,,,,
Dart,Dart,,,,,,,,,,,,,,,,,,,,,,
Shuriken,Shuriken,,,,,,,,,,,,,,,,,,,,,,
Crossbow Bolt,Crossbow Bolt,,,,,,,,,,,,,,,,,,,,,,
Spear,Spear,,,,,,,,,,,,,,,,,,,,,,
Lava Boulder,Lava Boulder,,,,,,,,,,,,,,,,,,,,,,
Uzi,Uzi,,,,,,,,,,,,,,,,,,,,,,
Evil Ninja Uzi,Evil Ninja Uzi,,,,,,,,,,,,,,,,,,,,,,
Shotgun,Shotgun,,,,,,,,,,,,,,,,,,,,,,
Meteor,Meteor,,,,,,,,,,,,,,,,,,,,,,
Rocket,Rocket,,,,,,,,,,,,,,,,,,,,,,
Rail Gun,Rail Gun,,,,,,,,,,,,,,,,,,,,,,
Enemy Rocket,Enemy Rocket,,,,,,,,,,,,,,,,,,,,,,
Bunny Rocket,Bunny Rocket,,,,,,,,,,,,,,,,,,,,,,
Explosion,Explosion,,,,,,,,,,,,,,,,,,,,,,
Tank Shell,Tank Shell,,,,,,,,,,,,,,,,,,,,,,
Nuclear Bomb,Nuclear Bomb,,,,,,,,,,,,,,,,,,,,,,
40mm Grenade,40mm Grenade,,,,,,,,,,,,,,,,,,,,,,
Micro Missile,Micro Missile,,,,,,,,,,,,,,,,,,,,,,
Sticky Bomb,Sticky Bomb,,,,,,,,,,,,,,,,,,,,,,
Napalm,Napalm,,,,,,,,,,,,,,,,,,,,,,
Vomit,Vomit,,,,,,,,,,,,,,,,,,,,,,
Coolie Ghost Phlem,Coolie Ghost Phlem,,,,,,,,,,,,,,,,,,,,,,
Accursed Head,Accursed Head,,,,,,,,,,,,,,,,,,,,,,
Bouncing Betty,Bouncing Betty,,,,,,,,,,,,,,,,,,,,,,
Serpent God Protector,Serpent God Protector,,,,,,,,,,,,,,,,,,,,,,
Flames,Flames,,,,,,,,,,,,,,,,,,,,,,
Radiation,Radiation,,,,,,,,,,,,,,,,,,,,,,
Caltrops,Caltrops,,,,,,,,,,,,,,,,,,,,,,
1 default Identifier Remarks Filter eng enc ena enz eni ens enj enb enl ent enw cs de el eo es esm esn esg esc esa esd esv eso esr ess esf esl esy esz esb ese esh esi esu fi fr hu it jp ko nl pl pt ptg ro ru sr
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924