diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 3ef2785a4b..5300b38894 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,27 @@ +May 6, 2006 +- Updated Italian strings that someone kindly e-mailed to me. +- The CRT no longer detects any memory leaks when I run to the IWAD picker and quit. +- Fixed: The memory used to hold the path to zdoom.wad/.pk3 was not freed if + the IWAD picker was cancelled. +- Fixed: Some implementations of cvar->GetGenericRep (CVAR_String) returned a + statically allocated string and others returned a dynamically allocated string. + To be consistant, they should all be static. +- Fixed: DObject also has three static TArrays that should not be explicitly + initialized: Objects, FreeIndices, and ToDestroy. +- Added a new do-nothing constructor for TArray that can be used for BSS objects + that are manipulated before startup. Specifically, this was added because + C_AddTabCommand() is called before main, but the TabCommands constructor is + called after the array already has over 100 entries in it, orphaning everything + that was already inserted. And since the code is much nicer-looking now, I didn't + want to revert to the old non-TArray version. + + This could also have been used to fix FName, but I consider the current + implementation to be better than the old one, so I'm leaving it as-is. + May 5, 2006 +- Fixed: Scanned IWAD paths were not freed if you exited without selecting one. +- Fixed: Dynamically allocated cvars were not freed on exit. +- Fixed: FConfigFile's destructor did not free space used for Values. - Added "DropItem None" as a way for inherited actors to avoid dropping items if their superclass normally does. This is only needed if somebody dehacks DeadZombieMan or DeadShotgunGuy. diff --git a/src/c_console.cpp b/src/c_console.cpp index 1d36888bd0..a7ef0ca3d4 100644 --- a/src/c_console.cpp +++ b/src/c_console.cpp @@ -528,6 +528,21 @@ static void AddLine (const char *text, bool more, int len) } } +static char *work = NULL; +static int worklen = 0; + +static struct FreeWork +{ + ~FreeWork() + { + if (work != NULL) + { + free (work); + work = NULL; + } + } +} FreeTheWork; + void AddToConsole (int printlevel, const char *text) { static enum @@ -536,8 +551,6 @@ void AddToConsole (int printlevel, const char *text) APPENDLINE, REPLACELINE } addtype = NEWLINE; - static char *work = NULL; - static int worklen = 0; char *work_p; char *linestart; @@ -1721,7 +1734,7 @@ struct TabData } }; -static TArray TabCommands; +static TArray TabCommands (TArray::NoInit); static int TabPos; // Last TabCommand tabbed to static int TabStart; // First char in CmdLine to use for tab completion static int TabSize; // Size of tab string diff --git a/src/c_cvars.cpp b/src/c_cvars.cpp index b077218c5a..cb7d9c8ed4 100644 --- a/src/c_cvars.cpp +++ b/src/c_cvars.cpp @@ -68,6 +68,22 @@ FBaseCVar *CVars = NULL; int cvar_defflags; +static struct RuntimeCVarDestroyer +{ + ~RuntimeCVarDestroyer() + { + FBaseCVar *var, *next; + for (var = CVars; var != NULL; var = next) + { + next = var->m_Next; + if (var->GetFlags() & CVAR_UNSETTABLE) + { + delete var; + } + } + } +} DestroyTheRuntimeCVars; + FBaseCVar::FBaseCVar (const FBaseCVar &var) { I_FatalError ("Use of cvar copy constructor"); @@ -810,7 +826,7 @@ UCVarValue FStringCVar::GetFavoriteRep (ECVarType *type) const { UCVarValue ret; *type = CVAR_String; - ret.String = copystring (Value); + ret.String = Value; return ret; } @@ -823,7 +839,7 @@ UCVarValue FStringCVar::GetFavoriteRepDefault (ECVarType *type) const { UCVarValue ret; *type = CVAR_String; - ret.String = copystring (DefaultValue); + ret.String = DefaultValue; return ret; } @@ -890,11 +906,9 @@ UCVarValue FColorCVar::FromInt2 (int value, ECVarType type) if (type == CVAR_String) { UCVarValue ret; - char work[9]; - - sprintf (work, "%02x %02x %02x", + sprintf (cstrbuf, "%02x %02x %02x", RPART(value), GPART(value), BPART(value)); - ret.String = copystring (work); + ret.String = cstrbuf; return ret; } return FromInt (value, type); diff --git a/src/c_cvars.h b/src/c_cvars.h index 1c6d09c565..554f9e0e7a 100644 --- a/src/c_cvars.h +++ b/src/c_cvars.h @@ -174,6 +174,8 @@ private: friend void C_SetCVarsToDefaults (void); friend void FilterCompactCVars (TArray &cvars, DWORD filter); + + friend struct RuntimeCVarDestroyer; }; class FBoolCVar : public FBaseCVar diff --git a/src/configfile.cpp b/src/configfile.cpp index 3f46478710..af8545cb4e 100644 --- a/src/configfile.cpp +++ b/src/configfile.cpp @@ -85,6 +85,7 @@ FConfigFile::~FConfigFile () while (entry != NULL) { FConfigEntry *nextentry = entry->Next; + delete[] entry->Value; delete[] (char *)entry; entry = nextentry; } diff --git a/src/d_main.cpp b/src/d_main.cpp index d03cb882aa..f6084efac6 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -1477,7 +1477,7 @@ static int CheckIWAD (const char *doomwaddir, WadStuff *wads) // Search for a pre-defined IWAD for (i = IWADNames[0] ? 0 : 1; IWADNames[i]; i++) { - if (wads[i].Path == NULL) + if (wads[i].Path.IsEmpty()) { sprintf (iwad, "%s%s%s", doomwaddir, slash, IWADNames[i]); FixPathSeperator (iwad); @@ -1486,7 +1486,7 @@ static int CheckIWAD (const char *doomwaddir, WadStuff *wads) wads[i].Type = ScanIWAD (iwad); if (wads[i].Type != NUM_IWAD_TYPES) { - wads[i].Path = copystring (iwad); + wads[i].Path = iwad; numfound++; } } @@ -1541,7 +1541,7 @@ static int CheckIWADinEnvDir (const char *envname, WadStuff *wads) // //========================================================================== -static EIWADType IdentifyVersion (void) +static EIWADType IdentifyVersion (const char *zdoom_wad) { WadStuff wads[sizeof(IWADNames)/sizeof(char *)]; size_t foundwads[NUM_IWAD_TYPES] = { 0 }; @@ -1658,6 +1658,9 @@ static EIWADType IdentifyVersion (void) if (pickwad < 0) exit (0); + // zdoom.pk3 must always be the first file loaded and the IWAD second. + D_AddFile (zdoom_wad); + if (wads[pickwad].Type == IWAD_HexenDK) { // load hexen.wad before loading hexdd.wad D_AddFile (wads[foundwads[IWAD_Hexen]-1].Path); @@ -1680,11 +1683,6 @@ static EIWADType IdentifyVersion (void) D_AddFile (wads[pickwad].Path); } - for (i = 0; i < numwads; i++) - { - delete[] wads[i].Path; - } - return wads[pickwad].Type; } @@ -1927,17 +1925,19 @@ void D_DoomMain (void) // as it contains magic stuff we need. wad = BaseFileSearch ("zdoom.pk3", NULL, true); - if (wad) - D_AddFile (wad); - else + if (wad == NULL) + { I_FatalError ("Cannot find zdoom.pk3"); + } - I_SetTitleString (IWADTypeNames[IdentifyVersion ()]); + I_SetTitleString (IWADTypeNames[IdentifyVersion(wad)]); GameConfig->DoGameSetup (GameNames[gameinfo.gametype]); // [RH] zvox.wad - A wad I had intended to be automatically generated // from Q2's pak0.pak so the female and cyborg player could have // voices. I never got around to writing the utility to do it, though. + // And I probably never will now. But I know at least one person uses + // it for something else, so this gets to stay here. wad = BaseFileSearch ("zvox.wad", NULL); if (wad) D_AddFile (wad); diff --git a/src/d_main.h b/src/d_main.h index 0601738e1a..4cb493ed15 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -77,7 +77,7 @@ enum EIWADType struct WadStuff { - char *Path; + FString Path; EIWADType Type; }; diff --git a/src/dobject.cpp b/src/dobject.cpp index 90e2cfffa9..c7caa76a1a 100644 --- a/src/dobject.cpp +++ b/src/dobject.cpp @@ -455,9 +455,9 @@ CCMD (dumpclasses) Printf ("%d classes shown, %d omitted\n", shown, omitted); } -TArray DObject::Objects; -TArray DObject::FreeIndices; -TArray DObject::ToDestroy; +TArray DObject::Objects (TArray::NoInit); +TArray DObject::FreeIndices (TArray::NoInit); +TArray DObject::ToDestroy (TArray::NoInit); bool DObject::Inactive; DObject::DObject () diff --git a/src/tarray.h b/src/tarray.h index 37bf0cbdfa..1e69f39589 100644 --- a/src/tarray.h +++ b/src/tarray.h @@ -73,6 +73,20 @@ template class TArray { public: + //////// + // This is a dummy constructor that does nothing. The purpose of this + // is so you can create a global TArray in the data segment that gets + // used by code before startup without worrying about the constructor + // resetting it after it's already been used. You MUST NOT use it for + // heap- or stack-allocated TArrays. + enum ENoInit + { + NoInit + }; + TArray (ENoInit dummy) + { + } + //////// TArray () { Most = 0; @@ -278,7 +292,8 @@ private: void DoResize () { - T *newarray = (T *)M_Malloc (sizeof(T)*Most); + size_t allocsize = sizeof(T)*Most; + T *newarray = (T *)M_Malloc (allocsize); for (unsigned int i = 0; i < Count; ++i) { CopyForTArray (newarray[i], Array[i]); diff --git a/wadsrc/languages/italian.txt b/wadsrc/languages/italian.txt index 1b8f6a0fbd..978b41dc9c 100644 --- a/wadsrc/languages/italian.txt +++ b/wadsrc/languages/italian.txt @@ -6,55 +6,55 @@ D_DEVSTR = "Modalita' sviluppo ATTIVA.\n"; D_CDROM = "Versione del CD-ROM: zdoom.cfg da c:\\zdoomdat\n"; -PRESSKEY = "premere un tasto."; -PRESSYN = "premere y oppure n."; +PRESSKEY = "premi un tasto."; +PRESSYN = "premi y oppure n."; QUITMSG = "Sei sicuro di volere uscire\nda questo grandioso gioco?"; // QuitDoom1 messages -QUITMSG1 = "per favore non uscire, ci sono ancora \ndemoni da eliminare!"; -QUITMSG2 = "ammettiamolo - tutto cio' si sta \ntrasformando in un bagno di sangue!"; -QUITMSG3 = "non uscirei fossi in te. \nil dos e' molto peggio."; -QUITMSG4 = "stai cercando di dire che il dos\ne' meglio di me, vero?"; +QUITMSG1 = "per favore non uscire, ci sono altri\ndemoni da ammazzare!"; +QUITMSG2 = "ammettiamolo - tutto cio' si sta\ntrasformando in un bagno di sangue!"; +QUITMSG3 = "non uscirei se fossi in te.\nil dos e' molto peggio."; +QUITMSG4 = "stai cercando di dire che il dos\nti piace piu' di me, vero?"; QUITMSG5 = "non abbandonare ora - c'e' un\ndemone dietro l'angolo!"; QUITMSG6 = "sai, la prossima volta che verrai qui\nti faro' a pezzi."; -QUITMSG7 = "continua ed esci. ci vediamo se ci tengo."; +QUITMSG7 = "continua ed esci. sai che mi frega."; // QuitDOOM II messages QUITMSG8 = "vuoi uscire?\nallora hai perso il senno!"; -QUITMSG9 = "non andartene ora, c'e'un \ncancello dimensionale che aspetta\nal prompt del dos!"; -QUITMSG10 = "fuori di qui e torna\nai tuoi noiosi programmi."; -QUITMSG11 = "se fossi il tuo capo, ti batterei\n ad un deathmatch in un minuto!"; -QUITMSG12 = "senti, amico. esci ora\ne perdi il tuo body count!"; +QUITMSG9 = "non andartene adesso, c'e' un\nportale dimensionale che ti aspetta\nal prompt del dos!"; +QUITMSG10 = "vai fuori di qui e torna\nai tuoi noiosi programmi."; +QUITMSG11 = "se fossi il tuo capo, ti batterei\na un deathmatch in un minuto!"; +QUITMSG12 = "senti amico, esci adesso\ne perdi il tuo body count!"; QUITMSG13 = "esci pure. quanto tornerai\nti aspettero' con un bastone."; -QUITMSG14 = "sei fortunato che non ti schiaffeggi\n per aver pensato di andartene."; +QUITMSG14 = "sei fortunato che non ti picchi\nper aver pensato di andartene."; -LOADNET = "non puoi caricare una partita durante un netgame!\n\npremere un tasto."; -QLOADNET = "non puoi fare un quickload durante un netgame!\n\npremere un tasto."; -QSAVESPOT = "non hai ancora scelto uno slot per il quicksave!\n\npremere un tasto."; -SAVEDEAD = "non puoi salvare se non stai giocando!\n\npremere un tasto."; -QSPROMPT = "Sovrascrivere il tuo salvataggio\n\n'%s'?\n\npremere y oppure n."; -QLPROMPT = "Vuoi eseguire il quickload della partita\n\n'%s'?\n\npremere y oppure n."; -NEWGAME = "non puoi iniziare una nuova partita\ndurante una partita in rete.\n\npremere un tasto."; -NIGHTMARE = "sei sicuro? quello livello di difficolta'\nnon e' minimamente semplice.\n\npremere y oppure n."; -SWSTRING = "questa e' la versione shareware di doom.\n\ndevi ordinare la trilogia completa.\n\npremere un tasto."; -MSGOFF = "Messaggi Disattivati"; -MSGON = "Messaggi Attivati"; -NETEND = "non puoi terminare un netgame!\n\npremere un tasto"; -ENDGAME = "sei sicuro di voler terminare il gioco?\n\npremere y oppure n."; -DOSY = "(premere y per uscire)"; +LOADNET = "non puoi caricare una partita durante un netgame!\n\npremi un tasto."; +QLOADNET = "non puoi fare un quickload durante un netgame!\n\npremi un tasto."; +QSAVESPOT = "non hai ancora scelto uno slot per il quicksave!\n\npremi un tasto."; +SAVEDEAD = "non puoi salvare se non stai giocando!\n\npremi un tasto."; +QSPROMPT = "sovrascrivere il salvataggio\n\n'%s'?\n\npremi y oppure n."; +QLPROMPT = "vuoi fare un quickload della partita\n\n'%s'?\n\npremi y oppure n."; +NEWGAME = "non puoi iniziare una nuova partita\ndurante una partita in rete.\n\npremi un tasto."; +NIGHTMARE = "sei sicuro? questo livello di difficolta'\ne' dannatamente difficile.\n\npremi y oppure n."; +SWSTRING = "questa e' la versione shareware di doom.\n\ndevi ordinare la trilogia completa.\n\npremi un tasto."; +MSGOFF = "messaggi disattivati"; +MSGON = "messaggi attivati"; +NETEND = "non puoi terminare un netgame!\n\npremi un tasto"; +ENDGAME = "sei sicuro di voler terminare la partita?\n\npremi y oppure n."; +DOSY = "(premi y per uscire)"; EMPTYSTRING = "slot libero"; -GOTARMOR = "Hai trovato un armatura."; +GOTARMOR = "Hai trovato un'armatura."; GOTMEGA = "Hai trovato una MegaArmatura!"; -GOTHTHBONUS = "Raccolto un bonus di energia."; -GOTARMBONUS = "Raccolto un bonus di armatura."; +GOTHTHBONUS = "Raccolto un bonus d'energia."; +GOTARMBONUS = "Raccolto un bonus d'armatura."; GOTSTIM = "Raccolto uno stimpack."; -GOTMEDINEED = "Raccolto un medikit di cui hai PROPRIO bisogno!"; -GOTMEDIKIT = " Raccolto un medikit."; -GOTSUPER = "Sfera dell'anima!"; -GOTBLUECARD = "Raccolta una tessera blu."; -GOTYELWCARD = "Raccolta una tessera gialla."; -GOTREDCARD = "Raccolta una tessera rossa."; +GOTMEDINEED = "Hai raccolto un medikit di cui avevi PROPRIO bisogno!"; +GOTMEDIKIT = "Raccolto un medikit."; +GOTSUPER = "Sfera dell'Anima!"; +GOTBLUECARD = "Raccolta una card blu."; +GOTYELWCARD = "Raccolta una card gialla."; +GOTREDCARD = "Raccolta una card rossa."; GOTBLUESKUL = "Raccolta una chiave-teschio blu."; GOTYELWSKUL = "Raccolta una chiave-teschio gialla."; GOTREDSKUL = "Raccolta una chiave-teschio rossa."; @@ -62,28 +62,28 @@ GOTINVUL = "Invulnerabilita'!"; GOTBERSERK = "Berserk!"; GOTINVIS = "Invisibilita' parziale"; GOTSUIT = "Tuta anti-radiazioni"; -GOTMAP = "Mappa Computerizzata"; +GOTMAP = "Mappa Completata."; GOTVISOR = "Amplificatore di luce"; GOTMSPHERE = "MegaSfera!"; GOTCLIP = "Raccolto un caricatore."; GOTCLIPBOX = "Raccolta una scatola di proiettili."; GOTROCKET = "Raccolto un razzo."; -GOTROCKBOX = "Raccolta una scatola di razzi."; +GOTROCKBOX = "Raccolta una cassa di razzi."; GOTCELL = "Raccolta una batteria."; -GOTCELLBOX = "Raccolta una scatola di batterie."; -GOTSHELLS = "Raccolte 4 cartucce per shotgun."; -GOTSHELLBOX = "Raccolta una scatola di cartucce per shotgun."; -GOTBACKPACK = "Raccolto uno zaino pieno di proeiettili!"; -GOTBFG9000 = "Hai trovato il BFG9000! Eh, si'."; -GOTCHAINGUN = "Hai raccolto un chaingun!"; +GOTCELLBOX = "Raccolta una confezione di batterie."; +GOTSHELLS = "Raccolte 4 cartucce per fucile."; +GOTSHELLBOX = "Raccolta una scatola di cartucce per fucile."; +GOTBACKPACK = "Raccolto uno zaino zeppo di munizioni!"; +GOTBFG9000 = "Hai trovato il BFG9000! Eh, si'!"; +GOTCHAINGUN = "Hai trovato un mitragliatore!"; GOTCHAINSAW = "Una motosega! Trova un po' di carne!"; -GOTLAUNCHER = "Hai trovato un Lancia razzi!"; +GOTLAUNCHER = "Hai trovato un lanciarazzi!"; GOTPLASMA = "Hai trovato un fucile al plasma!"; -GOTSHOTGUN = "Hai raccolto uno shotgun!"; -GOTSHOTGUN2 = "Hai trovato un super shotgun!"; +GOTSHOTGUN = "Hai trovato un fucile!"; +GOTSHOTGUN2 = "Hai trovato una doppietta!"; PD_BLUEO = "Ti serve una chiave blu per attivare questo oggetto"; -PD_REDO = "Ti serve una chiave rossa per attivare questo oggetto "; -PD_YELLOWO = "Ti serve una chiave gialla per attivare questo oggetto "; +PD_REDO = "Ti serve una chiave rossa per attivare questo oggetto"; +PD_YELLOWO = "Ti serve una chiave gialla per attivare questo oggetto"; PD_BLUEK = "Ti serve una chiave blu per aprire questa porta"; PD_REDK = "Ti serve una chiave rossa per aprire questa porta"; PD_YELLOWK = "Ti serve una chiave gialla per aprire questa porta"; @@ -106,7 +106,7 @@ HUSTR_E2M3 = "E2M3: Raffineria"; HUSTR_E2M4 = "E2M4: Laboratorio di Deimos"; HUSTR_E2M5 = "E2M5: Centro di Comando"; HUSTR_E2M6 = "E2M6: Sale dei Dannati"; -HUSTR_E2M7 = "E2M7: Nicchie di Spawn"; +HUSTR_E2M7 = "E2M7: Vasche di Riproduzione"; HUSTR_E2M8 = "E2M8: Torre di Babele"; HUSTR_E2M9 = "E2M9: Fortezza del Mistero"; HUSTR_E3M1 = "E3M1: Bastioni dell'Inferno"; @@ -116,23 +116,23 @@ HUSTR_E3M4 = "E3M4: Casa del Dolore"; HUSTR_E3M5 = "E3M5: Cattedrale Blasfema"; HUSTR_E3M6 = "E3M6: Monte Erebus"; HUSTR_E3M7 = "E3M7: Limbo"; -HUSTR_E3M8 = "E3M8: Dis"; -HUSTR_E3M9 = "E3M9: Warrens"; +HUSTR_E3M8 = "E3M8: Dite"; +HUSTR_E3M9 = "E3M9: Le Garenne"; HUSTR_E4M1 = "E4M1: L'inferno sotto"; HUSTR_E4M2 = "E4M2: Odio Puro"; -HUSTR_E4M3 = "E4M3: Spezza il malvagio"; +HUSTR_E4M3 = "E4M3: Spezza il maligno"; HUSTR_E4M4 = "E4M4: Male Ingovernabile"; HUSTR_E4M5 = "E4M5: Essi si pentiranno"; HUSTR_E4M6 = "E4M6: Contro di te Crudelmente"; HUSTR_E4M7 = "E4M7: E l'inferno segui'"; -HUSTR_E4M8 = "E4M8: Contro il Malvagio"; +HUSTR_E4M8 = "E4M8: Verso il Crudele"; HUSTR_E4M9 = "E4M9: Paura"; HUSTR_1 = "livello 1: ingresso"; HUSTR_2 = "livello 2: sotterranei"; -HUSTR_3 = "livello 3: la sfida"; +HUSTR_3 = "livello 3: le forche"; HUSTR_4 = "livello 4: l'epicentro"; -HUSTR_5 = "livello 5: tunnel dei rifiuti"; +HUSTR_5 = "livello 5: i tunnel dei rifiuti"; HUSTR_6 = "livello 6: la pressa"; HUSTR_7 = "livello 7: morte pura"; HUSTR_8 = "livello 8: trucchi e trappole"; @@ -156,7 +156,7 @@ HUSTR_25 = "livello 25: cascate di sangue"; HUSTR_26 = "livello 26: le miniere abbandonate"; HUSTR_27 = "livello 27: casa dei mostri"; HUSTR_28 = "livello 28: il mondo dello spirito"; -HUSTR_29 = "livello 29: la fine vivente"; +HUSTR_29 = "livello 29: la fine imminente"; HUSTR_30 = "livello 30: icona del peccato"; HUSTR_31 = "livello 31: wolfenstein"; HUSTR_32 = "livello 32: grosse"; @@ -187,24 +187,24 @@ PHUSTR_23 = "livello 23: tombstone"; PHUSTR_24 = "livello 24: la frontiera finale"; PHUSTR_25 = "livello 25: il tempio dell'oscurita'"; PHUSTR_26 = "livello 26: bunker"; -PHUSTR_27 = "livello 27: anti-cristo"; +PHUSTR_27 = "livello 27: anticristo"; PHUSTR_28 = "livello 28: le fogne"; PHUSTR_29 = "livello 29: odissea di rumori"; PHUSTR_30 = "livello 30: il cancello dell'inferno"; PHUSTR_31 = "livello 31: cybergabbia"; PHUSTR_32 = "livello 32: dacci dentro"; -THUSTR_1 = "livello 1: centro controllo di sistema"; +THUSTR_1 = "livello 1: controllo del sistema"; THUSTR_2 = "livello 2: barbecue umano"; -THUSTR_3 = "livello 3: Centrale energetica"; +THUSTR_3 = "livello 3: centrale energetica"; THUSTR_4 = "livello 4: wormhole"; -THUSTR_5 = "livello 5: hanger"; +THUSTR_5 = "livello 5: ganci"; THUSTR_6 = "livello 6: stagione aperta"; THUSTR_7 = "livello 7: prigione"; THUSTR_8 = "livello 8: metallo"; THUSTR_9 = "livello 9: fortezza"; THUSTR_10 = "livello 10: redenzione"; -THUSTR_11 = "livello 11: impianto di immagazzinamento"; +THUSTR_11 = "livello 11: impianto di stoccaggio"; THUSTR_12 = "livello 12: cratere"; THUSTR_13 = "livello 13: raffineria delle tossine"; THUSTR_14 = "livello 14: acciaieria"; @@ -218,77 +218,77 @@ THUSTR_21 = "livello 21: centro amministrativo"; THUSTR_22 = "livello 22: habitat"; THUSTR_23 = "livello 23: progetto minerario lunare"; THUSTR_24 = "livello 24: caccia"; -THUSTR_25 = "livello 25: l'antro del barone"; +THUSTR_25 = "livello 25: antro del barone"; THUSTR_26 = "livello 26: ballistyx"; THUSTR_27 = "livello 27: monte del dolore"; -THUSTR_28 = "livello 28: heck"; +THUSTR_28 = "livello 28: la grata"; THUSTR_29 = "livello 29: fiume stige"; THUSTR_30 = "livello 30: ultima chiamata"; THUSTR_31 = "livello 31: faraone"; THUSTR_32 = "livello 32: caraibi"; HUSTR_TALKTOSELF1 = "Pensi fra te e te"; -HUSTR_TALKTOSELF2 = "Chi c'e' li'??"; +HUSTR_TALKTOSELF2 = "Chi c'e' li'?"; HUSTR_TALKTOSELF3 = "Ti spaventi da solo"; -HUSTR_TALKTOSELF4 = "Cominci a delirare"; -HUSTR_TALKTOSELF5 = "L'hai perso..."; +HUSTR_TALKTOSELF4 = "Inizi a delirare"; +HUSTR_TALKTOSELF5 = "Sei andato..."; HUSTR_MESSAGESENT = "[Messaggio Inviato]"; -AMSTR_FOLLOWON = "Modalita' a inseguimento Attiva"; -AMSTR_FOLLOWOFF = "Modalita' a inseguimento Disattiva"; -AMSTR_GRIDON = "Reticolo Attivo"; -AMSTR_GRIDOFF = "Reticolo Disattivo"; +AMSTR_FOLLOWON = "Mappa scorribile disattivata"; +AMSTR_FOLLOWOFF = "Mappa scorribile attivata"; +AMSTR_GRIDON = "Griglia Attivata"; +AMSTR_GRIDOFF = "Griglia Disattivata"; AMSTR_MARKEDSPOT = "Posizione segnata"; -AMSTR_MARKSCLEARED = "Eliminati tutti i segni"; +AMSTR_MARKSCLEARED = "Cancellati tutti i segni"; STSTR_MUS = "Musica cambiata"; STSTR_NOMUS = "SELEZIONE IMPOSSIBILE"; -STSTR_DQDON = "Invincibilita' Attiva"; -STSTR_DQDOFF = "Invincibilita' Disattiva"; -STSTR_KFAADDED = "Equipaggiamento aggiunto"; -STSTR_FAADDED = "Equipaggiamento (no chiavi) Aggiunto"; -STSTR_NCON = "Modalità No Clipping Attiva"; -STSTR_NCOFF = "Modalità No Clipping Disattiva"; -STSTR_BEHOLD = "inVuln, BerSerk, Invisibilita', Tuta anti-Rad, MAppa, o Amplif-Luce"; -STSTR_BEHOLDX = "Power-up abilitato/disabilitato"; -STSTR_CHOPPERS = "aggiunta motosega"; +STSTR_DQDON = "Invincibilita' attivata"; +STSTR_DQDOFF = "Invincibilita' disattivata"; +STSTR_KFAADDED = "Equipaggiamento Completato"; +STSTR_FAADDED = "Equipaggiamento Completato (senza chiavi)"; +STSTR_NCON = "No Clipping Attivato"; +STSTR_NCOFF = "No Clipping Disattivato"; +STSTR_BEHOLD = "inVuln, BerSerk, Invisib, Tuta anti-Rad, MAppa, o Amplif-Luce"; +STSTR_BEHOLDX = "Power-up concesso/tolto"; +STSTR_CHOPPERS = "Ora vai e segali tutti!"; STSTR_CLEV = "Cambio di livello...\n"; E1TEXT = "Una volta che hai eliminato i cattivi e\n" - "liberato le basi lunari si suppone che\n" - "tu vinca, vero? Vero? Dove sono la tua\n" - "ricca ricompensa e il biglietto x casa?\n" - "Che diavolo e' questo? Non dovrebbe\n" - "finire in questo modo!\n" + "liberato la base lunare dovresti aver\n" + "vinto, vero? Vero? Dove sono la tua\n" + "ricca ricompensa e il biglietto per\n" + "casa? Cosa diavolo e' questo? Non\n" + "avrebbe dovuto finire cosi'!\n" "\n" - "Puzza come carne marcia, ma sembra\n" - "essere la base di Deimos dispersa.\n" - "Sembra che tu sia approdato sulle\n" - "Spiagge dell'inferno.\n" + "Puzza come carne marcia, ma pare\n" + "essere la dispersa base di Deimos.\n" + "Pare proprio che tu sia approdato\n" + "sulle Coste dell'Inferno.\n" "L'unica uscita ci passa in mezzo.\n" "\n" - "Per continuare l'esperienza di DOOM,\n" - "gioca The Shores of Hell e il suo\n" - "incredibile seguito, Inferno!\n"; + "Per continuare l'esperienza di DOOM\n" + "gioca 'The Shores of Hell' e il suo\n" + "incredibile seguito, 'Inferno'!\n"; E2TEXT = "Ce l'hai fatta! Il malvagio cyber-\n" "demonio che governava la dispersa\n" - "base di Deimo e' stato ucciso e tu\n" - "sei trionfante! Ma... dove ti trivi?\n" - "Scali fino all'orlo della luna e\n" + "base di Deimos e' stato ucciso e tu\n" + "sei trionfante! Ma... dove ti trovi?\n" + "Sali fino all'orlo della luna e\n" "guardi giu' scoprendo l'orribile\n" "verita'.\n" "\n" "Deimos fluttua sopra l'Inferno stesso!\n" "Non hai mai sentito di nessuno fuggito\n" - "dall'Inferno, ma farai spiacere ai\n" - "bastardi di aver anche solo\n" + "dall'Inferno, ma quei bastardi si\n" + "pentiranno di aver anche solo\n" "sentito parlare di te!\n" - "Velocemente scendi sulla superficie\n" + "Velocemente scendi verso la superficie\n" "dell'Inferno.\n" "\n" "E' ora del capitolo finale di\n" - "DOOM! -- Inferno."; + "DOOM! - 'Inferno'."; E3TEXT = "Il terribile demone-ragno che aveva\n" "progettato l'invasione delle basi\n" @@ -296,11 +296,11 @@ E3TEXT = "sempre avuto i minuti contati.\n" "\n" "Una porta nascosta si apre ed entri.\n" - "Sei stato troppo forte xche' l'Inferno\n" + "Sei stato troppo forte perche' l'Inferno\n" "ti fermasse ed ora l'Inferno gioca pulito\n" "per una volta, perche' emergi dalla porta\n" "per vedere i campi verdi della Terra!\n" - "Casa alla fine.\n" + "Finalmente a casa.\n" "\n" "Ti chiedi cosa sia successo sulla\n" "Terra mentre combattevi il male.\n" @@ -308,25 +308,25 @@ E3TEXT = "Inferno sia passata per quella porta\n" "con te..."; E4TEXT = - "il demone ragno doveva aver mandato\n" + "Il demone ragno doveva aver mandato\n" "avanti le sue legioni infernali prima\n" "del tuo confronto finale con quella\n" "terribile bestia. Ma ti sei fatto avanti\n" - "ed hai portato dannazione eterna e\n" + "e hai portato dannazione eterna e\n" "sofferenza all'orda come un vero eroe\n" - "farebbe a fronte di qualcosa di cosi'\n" + "farebbe di fronte a qualcosa di cosi'\n" "crudele.\n" "\n" - "inoltre, qualcuno doveva pagare per\n" - "quello che era successo a daisy, il\n" - "tuo coniglietto.\n" + "Inoltre, qualcuno doveva pagare per\n" + "quello che era successo a Daisy, la\n" + "tua coniglietta domestica.\n" "\n" - "ma ora vedi sparso di fronte a te\n" - "ulteriore dolore e perversione mentre\n" - "una popolazione di demoni si sparge\n" - "per le nostre citta'.\n" + "Ma ora vedi diffondersi davanti a te\n" + "ulteriori dolori e massacri mentre\n" + "una popolazione di demoni si sparge\n" + "furiosa per le nostre citta'.\n" "\n" - "prossima fermata, Inferno in terra!"; + "prossima fermata, l'Inferno in terra!"; C1TEXT = "SEI ENTRATO PROFONDAMENTE NEL SPAZIOPORTO\n" "INFESTATO. MA QUALCOSA NON VA. I\n" @@ -338,12 +338,12 @@ C1TEXT = "UNA ZONA FORTIFICATA. SE RIESCI A PASSARLA,\n" "POTRAI PENETRARE NEL CUORE INFESTATO DELLA\n" "STAZIONE SPAZIALE E TROVARE L'INTERRUTTORE\n" - "DI CONTROLLO CHE TIENE LA POPOLAZIONE DELLA\n" - "TERRA IN OSTAGGIO."; + "DI CONTROLLO CHE TIENE LA POPOLAZIONE \n" + "DELLA TERRA IN OSTAGGIO."; C2TEXT = "HAI VINTO! LA TUA VITTORIA HA PERMESSO\n" "AL GENERE UMANO DI EVACUARE LA TERRA E\n" - "DI FUGGIRE ALL'INCUBO. ORA SEI IL SOLO\n" + "DI FUGGIRE DALL'INCUBO. ORA SEI IL SOLO\n" "UMANO RIMASTO SULLA FACCIA DEL PIANETA.\n" "MUTAZIONI CANNIBALI, ALIENI CARNIVORI E\n" "SPIRITI MALVAGI SONO I TUOI SOLI VICINI.\n" @@ -351,17 +351,17 @@ C2TEXT = "AVER SALVATO LA TUA SPECIE.\n" "\n" "PROPRIO ALLORA, IL CONTROLLO DELLA TERRA\n" - "INVIA UN MESSAGGIO DALLO SPAZIO: \"I\n" + "RIMANDA UN MESSAGGIO DALLO SPAZIO: \"I\n" "SENSORI HANNO LOCALIZZATO LA FONTE \n" "DELL'INVASIONE ALIENA. SE ANDRAI LI'\n" "POTRAI FORSE BLOCCARE IL LORO\n" "INGRESSO. LA BASE ALIENA E' NEL CUORE\n" "DELLA TUA CITTA' NATALE, NON LONTANO\n" - "DALLO SPAZIOPORTO.\"\N" + "DALLO SPAZIOPORTO.\"\n" "LENTAMENTE E DOLOROSAMENTE TI ALZI\n" "E RITORNI ALLA BATTAGLIA."; C3TEXT = - "SEI NEL CUORE INFESTATO DELLA CITTA,\n" + "SEI NEL CUORE INFESTATO DELLA CITTA',\n" "CIRCONDATO DAI CORPI DEI TUOI NEMICI.\n" "NON VEDI IL MODO DI DISTRUGGERE L'INGRESSO\n" "DELLE CREATURE DA QUESTO LATO, COSI'\n" @@ -371,8 +371,8 @@ C3TEXT = "ALTRO LATO. QUELLO CHE TI CHIEDI E' SE\n" "DOVRAI ATTRAVERSARE L'INFERNO PER TROVARLO?"; C4TEXT = - "L'ORRENDO VISO DEL DEMONE PIù GROSSO\n" - "CHE TU ABBIA MAI VISTO SI SFASCIA DI FRONTE\n" + "L'ORRENDO VISO DEL DEMONE PIU' GROSSO\n" + "CHE TU ABBIA MAI VISTO SI SFASCIA DAVANTI\n" "A TE, DOPO CHE HAI SPARATO I TUOI RAZZI\n" "NEL SUO CERVELLO ESPOSTO. IL MOSTRO SI\n" "CONTORCE E MUORE, LE SUE MEMBRA CHE SI\n" @@ -396,8 +396,8 @@ C5TEXT = "DELL'INFERNO."; C6TEXT = "CONGRATULAZIONI, HAI TROVATO IL\n" - "LIVELLO SUPER SEGRETO! DOVRESTI\n" - "SCHIZZARCI ATTRAVERSO!\n"; + "LIVELLO SUPER SEGRETO! E' MEGLIO\n" + "CHE TU LO PERCORRA DI CORSA!\n"; P1TEXT = "Esulti sulla carcassa fumante del\n" "Guardiano. con la sua morte hai estratto\n" @@ -410,14 +410,14 @@ P1TEXT = "Devi trovare il prototipo o tutti i tuoi\n" "sforzi saranno stati vani. Continua a\n" "muoverti, continua a combattere, continua\n" - "a uccidere. E continua anche a vivere"; + "a uccidere. E continua a restare vivo."; P2TEXT = - "Neppure il mortale labirinto degli Arch-vile\n" + "Neanche il letale labirinto degli Arch-Vile\n" "ti ha fermato e sei arrivato al prototipo\n" "dell'acceleratore che viene disattivato\n" "efficientemente e permanentemente.\n" "\n" - "Sei bravo in queste cose."; + "Sei bravo in questo genere di cose."; P3TEXT = "Ti sei aperto la via nel cuore del nido\n" "dei demoni. E' ora di una missione\n" @@ -426,7 +426,7 @@ P3TEXT = "creature si riversano sulla Terra. Si',\n" "e' malvagio, ma tu sai chi e' peggio!\n" "\n" - "Sorridendo malvagiamente controlli il tuo\n" + "Sorridendo malignamente controlli il tuo\n" "equipaggiamento e ti prepari a dare al\n" "bastardo un piccolo inferno di tua fattura!"; P4TEXT = @@ -436,138 +436,130 @@ P4TEXT = "i resti dell'ultimo acceleratore\n" "prototipo, per non parlare dei pochi demoni\n" "rimanenti. Sei soddisfatto. L'Inferno\n" - "e' tornato a perseguitare i dannati anziche'\n" - "i vivi. Ricordati di dire ai tuoi nipoti\n" - "di mettere un lancia-razzi nella tua\n" + "e' tornato a perseguitare i dannati invece\n" + "dei vivi. Ricordati di dire ai tuoi nipoti\n" + "di mettere un lanciarazzi nella tua\n" "bara. Se andrai all'inferno quando\n" - "morirai ne avrai bisogno per fare il\n" + "morirai, ne avrai bisogno per fare un\n" "repulisti finale..."; P5TEXT = "Hai trovato il secondo livello piu' tosto\n" - "che abbiamo. Spero tu abbia un gioco salvato\n" - "un livello o due prima. Se no, preparati a morire\n" - "in quantita'. Solo per marines veterani."; + "che abbiamo. Spero che tu abbia salvato uno\n" + "o due livelli fa. Se no, preparati a morire\n" + "in continuazione. Solo per marine veterani."; P6TEXT = "Scommetto che ti chiedevi quale fosse il\n" - "livello piu' difficile che avevamo per te?\n" - "Ora lo sai.\n" + "livello piu' duro che avessimo per te.\n" + "Adesso lo sai.\n" "Nessuno ne esce vivo."; T1TEXT = "Ti sei aperto la via fuori dai laboratori\n" "sperimentali infestati. Sembra che la UAC\n" "abbia fatto il passo più lungo della gamba\n" - "un'altra volta. Con il loro elevato ricambio\n" + "di nuovo. Con questi continui turnover,\n" "deve essere dura per la UAC comprare delle\n" "polizze di assicurazione sulla vita degli\n" "impiegati di questi tempi...\n" "\n" "Piu' avanti si trova il complesso militare,\n" "ora infestato da orrori malati, ansiosi di\n" - "mettere i loro denti su du te. Con un po'\n" - "di fortuna il complesso avra' ancora un po'\n" - "di armi in giro."; + "mettere i loro denti su di te. Con un po'\n" + "di fortuna nel complesso potrebbero ancora\n" + "esserci delle armi in giro."; T2TEXT = "Senti lo sferragliare di grossi macchinari\n" "piu' avanti. Ti auguri che non stiano\n" "producendo nuovi demoni, ma sei pronto per\n" "farne fuori un intero branco se fosse\n" "necessario.\n" - "Forse stanno progettando un orgia sanguinaria,\n" + "Staranno progettando un'orgia di sangue,\n" "ma ti senti forte come duecento pazzi\n" "assiepati in un unico maniaco omicida.\n" "\n" "Non intendi farti battere facilmente."; T3TEXT = "Il panorama visibile sembra dannatamente\n" - "familiare. Ha anche un odore familiare, tipo\n" + "familiare. Ha pure un puzzo familiare, da\n" "escrementi fritti. Non ti piaceva questo\n" - "posto prima e non pensi di fartelo piacere\n" - "proprio adesso. Piu' ci pensi e piu' nervoso\n" - "diventi.\n" - "Sollevando la tua arma, un sorriso diabolico\n" - "si fa strada sul tuo viso.\n" - "E' ora di andare prendere un po' di nomi."; + "posto prima e non pensi di fartelo piace-\n" + "re proprio adesso. Piu' ci pensi e piu'\n" + "diventi nervoso.\n" + "Soppesando l'arma, un sorriso maligno\n" + "si fa strada sul tuo volto.\n" + "E' ora di prendere un po' di nomi."; T4TEXT = "Improvvisamente tutto si fa silenzioso, da\n" "un orizzonte all'altro. L'agonizzante eco\n" "dell'inferno svanisce, il cielo da incubo\n" - "diventa blu, l'ammasso di corpi di mostri\n" - "comincia ad evaporare con il malvagio \n" + "diventa blu, le pile dei cadaveri dei\n" + "mostri iniziano a evaporare con il maligno\n" "fetore che riempiva l'aria. Diamine, forse\n" "ce l'hai fatta. Hai davvero vinto?\n" "\n" "Qualcosa tuona distante.\n" - "Una luce blu inizia a brillare dentro\n" - "il cranio rovinato dello sputa-demoni."; + "Una luce bluastra inizia a brillare dentro\n" + "il cranio in rovina dello sputa-demoni."; T5TEXT = - "E ora? Sembra tutto differente. Tipo\n" + "E ora? Tutto sembra differente. Tipo\n" "dimora del faraone Tutankamon. Be',\n" "qualunque cosa ci sia qui non sara' peggio\n" "del solito, o no? O forse sarebbe meglio\n" - "lasciar riposare le divinita' dormienti"; + "non disturbare le divinita' dormienti..."; T6TEXT = - "Ora di una vacanza. Hai percorso le\n" + "Tempo di una vacanza. Hai percorso le\n" "profondita' dell'inferno e sei pronto\n" - "per una pausa. Dici a te stesso,\n" - "Forse qualcun altro puo' spaccare la testa\n" + "per una pausa. Dici a te stesso che\n" + "forse qualcun altro puo' rompere la testa\n" "ai demoni la prossima volta. Laggiu' c'e'\n" - "una cittadina tranquilla, con una pacifica\n" - "acqua che scorre, pittoreschi edifici\n" - "e probabilmente nessun demone..\n" + "una cittadina tranquilla, con dell'acqua\n" + "che scorre pacifica, edifici pittoreschi\n" + "e probabilmente nessun demone.\n" "\n" "Mentre scendi dal trasporto senti il\n" "tonfo del piede ferrato di un Cyberdemonio."; // Cast list (must appear in this order) -CC_ZOMBIE = "ZOMBIE"; -CC_SHOTGUN = "TIZIO CON LO SHOTGUN"; -CC_HEAVY = "TIZIO CON ARTIGLIERIA PESANTE"; +CC_ZOMBIE = "ZOMBIE MARINE"; +CC_SHOTGUN = "ZOMBIE SERGENTE"; +CC_HEAVY = "ZOMBIE COMMANDO"; CC_IMP = "IMP"; CC_DEMON = "DEMONE"; -CC_LOST = "ANIMA PERSA"; +CC_LOST = "ANIMA PERDUTA"; CC_CACO = "CACODEMONE"; -CC_HELL = "CAVALIERE DELL'INFERNO"; -CC_BARON = "BARONE DELL'INFERNO"; +CC_HELL = "CAVALIERE INFERNALE"; +CC_BARON = "BARONE INFERNALE"; CC_ARACH = "ARACHNOTRON"; -CC_PAIN = "ELEMENTALE DEL DOLORE"; +CC_PAIN = "DOLORE ELEMENTALE"; CC_REVEN = "REVENANT"; -CC_MANCU = "MANCUBUS"; +CC_MANCU = "MANCUBO"; CC_ARCH = "ARCH-VILE"; -CC_SPIDER = "IL RAGNO CERVELLO"; +CC_SPIDER = "IL CERVELLO RAGNO"; CC_CYBER = "IL CYBERDEMONIO"; CC_HERO = "IL NOSTRO EROE"; // New strings from BOOM -PD_BLUEC = "ti serve una tessera blu per aprire questa porta"; -PD_REDC = "ti serve una tessera rossa per aprire questa porta"; -PD_YELLOWC = "ti serve una tessera gialla per aprire questa porta"; -PD_BLUES = "ti serve una chiave-teschio blu per aprire questa porta"; -PD_REDS = "ti serve una chiave-teschio rossa per aprire questa porta"; -PD_YELLOWS = "ti serve una chiave-teschio gialla per aprire questa porta"; +PD_BLUEC = "Ti serve una tessera blu per aprire questa porta"; +PD_REDC = "Ti serve una tessera rossa per aprire questa porta"; +PD_YELLOWC = "Ti serve una tessera gialla per aprire questa porta"; +PD_BLUES = "Ti serve una chiave-teschio blu per aprire questa porta"; +PD_REDS = "Ti serve una chiave-teschio rossa per aprire questa porta"; +PD_YELLOWS = "Ti serve una chiave-teschio gialla per aprire questa porta"; PD_ANY = "Una chiave qualunque aprira' questa porta"; -PD_ALL3 = "Ti servono tutte le tre chiavi per aprire questa porta"; -PD_ALL6 = "Ti servono tutte le sei chiavi per aprire questa porta"; -PD_ALL3O = "Ti servono tutte le tre chiavi per attivare questo oggetto "; -PD_ALL6O = "Ti servono tutte le sei chiavi per attivare questo oggetto "; -PD_BLUECO = "ti serve una tessera blu per attivare questo oggetto "; -PD_REDCO = "ti serve una tessera rossa per attivare questo oggetto "; -PD_YELLOWCO = "ti serve una tessera gialla per attivare questo oggetto "; -PD_BLUESO = "ti serve una chiave-teschio blu per attivare questo oggetto "; -PD_REDSO = "ti serve una chiave-teschio rossa per attivare questo oggetto "; -PD_YELLOWSO = "ti serve una chiave-teschio gialla per attivare questo oggetto "; +PD_ALL3 = "Ti servono tutte e tre le chiavi per aprire questa porta"; +PD_ALL6 = "Ti servono tutte e sei le chiavi per aprire questa porta"; // Gameflow messages TXT_FRAGLIMIT = "Fraglimit raggiunto."; TXT_TIMELIMIT = "Timelimit raggiunto."; // Spree messages -SPREEKILLSELF = "%o aveva un bell'aspetto finche' %g non si e' ucciso!"; +SPREEKILLSELF = "%o stava bene finche' %g non si e' ucciso!"; SPREEOVER = "La sequela di frag di %o e' stata terminata da %k"; SPREE5 = "%k e' preda di un momento omicida!"; SPREE10 = "%k sta facendo un massacro!"; -SPREE15 = "%k sta dominando!"; +SPREE15 = "%k sta dominando tutti!"; SPREE20 = "%k e' inarrestabile!"; -SPREE25 = "%k e' divino!"; +SPREE25 = "%k e' un dio!"; // Mulitkill messages MULTI2 = "Frag doppio!"; @@ -577,65 +569,65 @@ MULTI5 = "Frag DA PAURA!"; // Obituary strings // First the self-kills, then the other-kills -OB_SUICIDE = "%o si suicida."; +OB_SUICIDE = "%o si e' suicidato."; OB_FALLING = "%o e' caduto troppo in basso."; -OB_CRUSH = "%o e' stato spiaccicato."; -OB_EXIT = "%o ha provato ad uscire."; -OB_WATER = "%o non sa nuotare."; +OB_CRUSH = "%o e' stato schiacciato."; +OB_EXIT = "%o ha provato a uscire."; +OB_WATER = "%o non sapeva nuotare."; OB_SLIME = "%o e' mutato."; OB_LAVA = "%o si e' sciolto."; OB_BARREL = "%o e' esploso."; OB_SPLASH = "%o si e' trovato nel posto sbagliato."; -OB_R_SPLASH = "%o avrebbe dovuto stare indietro."; -OB_ROCKET = "%o avrebbe dovuto stare indietro."; -OB_KILLEDSELF = "%o ha ammazzato se stess%h."; +OB_R_SPLASH = "%o avrebbe dovuto allontanarsi."; +OB_ROCKET = "%o avrebbe dovuto allontanarsi."; +OB_KILLEDSELF = "%o ha ucciso se stesso."; OB_STEALTHBABY = "%o pensava che %g avesse visto un arachnotron."; -OB_STEALTHVILE = "%o pensava che %g avesse visto un archvile."; -OB_STEALTHBARON = "%o pensava che %g avesse visto un Barone dell'Inferno."; +OB_STEALTHVILE = "%o pensava che %g avesse visto un Arch-Vile."; +OB_STEALTHBARON = "%o pensava che %g avesse visto un Barone Infernale."; OB_STEALTHCACO = "%o pensava che %g avesse visto un cacodemone."; -OB_STEALTHCHAINGUY = "%o pensava che %g avesse visto un chaingunner."; +OB_STEALTHCHAINGUY = "%o pensava che %g avesse visto uno zombie commando."; OB_STEALTHDEMON = "%o pensava che %g avesse visto un demone."; -OB_STEALTHKNIGHT = "%o pensava che %g avesse visto un Cavaliere dell'Inferno."; +OB_STEALTHKNIGHT = "%o pensava che %g avesse visto un Cavaliere Infernale."; OB_STEALTHIMP = "%o pensava che %g avesse visto un imp."; -OB_STEALTHFATSO = "%o pensava che %g avesse visto un mancubus."; +OB_STEALTHFATSO = "%o pensava che %g avesse visto un mancubo."; OB_STEALTHUNDEAD = "%o pensava che %g avesse visto un revenant."; -OB_STEALTHSHOTGUY = "%o pensava che %g avesse visto un sergeante."; +OB_STEALTHSHOTGUY = "%o pensava che %g avesse visto un sergente."; OB_STEALTHZOMBIE = "%o pensava che %g avesse visto uno zombie."; -OB_UNDEADHIT = "%o e' stato pestato da un revenant."; +OB_UNDEADHIT = "%o e' stato massacrato da un revenant."; OB_IMPHIT = "%o e' stato squarciato da un imp."; -OB_CACOHIT = "%o si e' avvicinato troppo ad un cacodemone."; -OB_DEMONHIT = "%o e' stato morso da un demone."; +OB_CACOHIT = "%o si e' avvicinato troppo a un cacodemone."; +OB_DEMONHIT = "%o e' stato sbranato da un demone."; OB_SPECTREHIT = "%o e' stato divorato da uno spettro."; OB_BARONHIT = "%o e' stato scoperchiato da un Barone dell'Inferno."; OB_KNIGHTHIT = "%o e' stato sbudellato da un Cavaliere dell'Inferno."; OB_ZOMBIE = "%o e' stato ucciso da uno zombie."; -OB_SHOTGUY = "%o e' sato impallinato da un sergeante."; -OB_VILE = "%o e' stato incenerito da un archvile."; -OB_UNDEAD = "%o non e' riuscito ad evitare la palla di fuoco di un revenant."; -OB_FATSO = "%o e' stato spiaccicato da un mancubus."; -OB_CHAINGUY = "%o e' stato perforato da un chaingunner."; -OB_SKULL = "%o e' stato spaventao a morte da un'anima persa."; +OB_SHOTGUY = "%o e' sato impallinato da un sergente."; +OB_VILE = "%o e' stato incenerito da un arch-vile."; +OB_UNDEAD = "%o non ha potuto evitare il missile di un revenant."; +OB_FATSO = "%o e' stato disintegrato da un mancubo."; +OB_CHAINGUY = "%o e' stato perforato da uno zombie commando."; +OB_SKULL = "%o e' stato spaventato a morte da un'Anima Perduta."; OB_IMP = "%o e' stato bruciato da un imp."; OB_CACO = "%o e' stato abbattuto da un cacodemone."; -OB_BARON = "%o e' stato scorticato da un Barone dell'Inferno."; -OB_KNIGHT = "%o e' stato squartato da un Cavaliere dell'Inferno."; -OB_SPIDER = "%o è stato soggiogato dal demone ragno."; -OB_BABY = "%o ha permesso che un arachnotron lo uccidesse."; -OB_CYBORG = "%o e' stato spiaccicato da un cyberdemon."; +OB_BARON = "%o e' stato scorticato da un Barone Infernale."; +OB_KNIGHT = "%o e' stato squartato da un Cavaliere Infernale."; +OB_SPIDER = "%o e' stato soggiogato dal Cervello Ragno."; +OB_BABY = "%o ha permesso che un arachnotron l'uccidesse."; +OB_CYBORG = "%o e' stato spiaccicato da un Cyberdemonio."; OB_WOLFSS = "%o ha incontrato un Nazista."; OB_CHICKEN = "%o e' stato beccato a morte."; OB_BEAST = "%o e' stato carbonizzato da una bestia."; -OB_CLINK = "%o e' stato squartato da un clink."; +OB_CLINK = "%o e' stato squarciato da un lapillo."; OB_DSPARIL1 = "%o e' stato bruciato dal serpente di D'Sparil."; OB_DSPARIL1HIT = "%o e' stato masticato dal serpente di D'Sparil."; OB_DSPARIL2 = "%o non era all'altezza di D'Sparil."; OB_DSPARIL2HIT = "%o e' stato abbattuto da D'Sparil."; -OB_HERETICIMP = "%o e' stato terrorizzato da un diavoletto."; -OB_HERETICIMPHIT = "%o e' stato eliminato da un diavoletto."; +OB_HERETICIMP = "%o e' stato terrorizzato da un imp."; +OB_HERETICIMPHIT = "%o e' stato eliminato da un imp."; OB_IRONLICH = "%o e' stato devastato da un ironlich."; -OB_IRONLICHHIT = "%o e' andato troppo vicino ad un ironlich."; +OB_IRONLICHHIT = "%o e' andato troppo vicino a un ironlich."; OB_BONEKNIGHT = "%o e' stato accettato da un cavaliere."; OB_BONEKNIGHTHIT = "%o e' stato ucciso da un cavaliere."; OB_MUMMY = "%o e' stato schiacciato da una mummia."; @@ -644,19 +636,22 @@ OB_SNAKE = "%o e' stato stritolato da un serpente."; OB_WIZARD = "%o e' stato maledetto da un mago."; OB_WIZARDHIT = "%o e' stato toccato da un mago."; -OB_MPFIST = "%o si schianta contro il pugno di %k."; +OB_MPFIST = "%o si e' schiantato contro il pugno di %k."; OB_MPCHAINSAW = "%o e' stato falciato dalla motosega di %k."; OB_MPPISTOL = "%o e' stato sforacchiato dalla pistola di %k'."; -OB_MPSHOTGUN = "%o si e' trovato davanti al fucile di %k."; -OB_MPSSHOTGUN = "%o e' stato smembrato dal super shotgun di %k."; -OB_MPCHAINGUN = "%o e' stato falciato dal chaingun di %k."; +OB_MPSHOTGUN = "%o si e' trovato davanti il fucile di %k."; +OB_MPSSHOTGUN = "%o e' stato smembrato dalla doppietta di %k."; +OB_MPCHAINGUN = "%o e' stato falciato dal mitragliatore di %k."; OB_MPROCKET = "%o ha cavalcato il razzo di %k."; OB_MPR_SPLASH = "%o aveva quasi schivato il razzo di %k."; OB_MPPLASMARIFLE = "%o e' stato fuso dal fucile al plasma di %k."; OB_MPBFG_BOOM = "%o e' stato sminuzzato dal BFG di %k."; OB_MPBFG_SPLASH = "%o non poteva nascondersi dal BFG di %k."; OB_MPTELEFRAG = "%o e' stato telefraggato da %k."; -OB_RAILGUN = "%o e' stato perforato dal railgun di %k."; +OB_RAILGUN = "%o e' stato bucherellato dal railgun di %k."; + +// Same as OB_MPTELEFRAG, but shown when a monster telefrags you +OB_MONTELEFRAG = "%o si e' fatto telefraggare."; OB_DEFAULT = "%o e' morto."; OB_FRIENDLY1 = "%k falcia via un compagno."; @@ -673,106 +668,106 @@ STARTUP5 = ""; // Heretic strings HE1TEXT = - "con la distruzione degli iron\n" - "liches e dei loro servi, gli ultimi\n" - "non-morti sono rimossi da questa\n" - "dimensione.\n\n" + "con la distruzione degli iron lich\n" + "e dei loro servi, gli ultimi non-\n" + "morti vengono rimossi da questo\n" + "piano dell'esistenza.\n\n" "quelle creature dovevano venire da\n" - "qualche parte, pensi, ed hai il\n" - "sospetto che il fiero portale\n" + "qualche parte, pensi, e hai il\n" + "sospetto che l'ardente portale\n" "delle fauci dell'inferno si apra\n" "sul loro posto di provenienza.\n\n" - "Per assicurarti che altri non-morti\n" - "(o anche peggio) non vi passino\n" - "attraverso devi sigillare la porta\n" - "dell'inferno dall'altro lato. Certo,\n" - "questo significa che potresti rimanere\n" - "bloccato in un posto poco amichevole,\n" - "ma chi ha detto che essere un Eretico\n" - "fosse facile!"; + "per assicurarti che altri non-morti\n" + "(o altro di peggio) non vi passino\n" + "attraverso, devi sigillare la porta\n" + "dell'inferno dall'altro lato.\n" + "certo, questo significa che rischi\n" + "rimanere bloccato in un posto poco\n" + "amichevole, ma chi ha detto che\n" + "essere un eretico fosse facile!"; HE2TEXT = - "i potenti maulotaur non erano\n" - "alla tua altezza e mentre i loro\n" - "corpi fumanti scivolano a terra\n" - "provi un senso di triste soddisfazione\n" - "per la loro distruzione.\n\n" - "i cancelli cui facevano la guardia\n" + "nemmeno i possenti maulotaur erano\n" + "alla tua altezza e mentre le loro\n" + "carcasse fumanti cadono al suolo\n" + "provi una feroce soddisfazione\n" + "nell'averli distrutti.\n\n" + "i portali cui facevano la guardia\n" "si sono aperti rivelando quella che\n" - "speri sia la via di casa, ma mentre\n" - "la attraversi, senti risa di scherno\n" - "eccheggiare nelle tue orecchie.\n\n" + "speri sia la via di casa. ma mentre\n" + "la attraversi, odi risa di scherno\n" + "echeggiare nelle tue orecchie.\n\n" "una qualche altra forza controllava\n" - "i maulotaur? possono esistere altri\n" - "essere ancor piu' spaventosi oltre\n" - "questo cancello? il baluginio di una\n" + "i maulotaur? che possano esserci\n" + "altri piu' spaventosi esseri oltre\n" + "questo portale? il baluginio di una\n" "volta cristallina la' dove dovrebbe\n" - "esserci il cielo non e' certo\n" - "un buon segno"; + "esserci il cielo non e' certo un\n" + "buon segno..."; HE3TEXT = - "la morte di d'sparil ha spezzato\n" - "i magici legami che tenevano le\n" - "sue creature in questa dimensione,\n" - "i loro lamenti di morte coprono le\n" + "la morte di d'sparil ha spezzato i\n" + "magici legami che tenevano le sue\n" + "creature in questa dimensione, e i\n" + "loro lamenti di morte coprono le\n" "sue urla di agonia.\n\n" - "il tuo giuramento di vendetta e' compiuto,\n" - "entri il portale che conduce al tuo\n" - "mondo, pochi secondi prima che la\n" - "cupola si frantumi in mille pezzi.\n\n" - "ma se il potere di d'sparil e' infranto\n" - "per sempre, perche' non ti senti al sicuro?\n" - "e' a causa del suo ultimo urlo prima\n" - "della morte, quelle che suonava\n" - "come una maledizione? un invocazione?\n" - "Non ne puoi essere sicuro, avrebbe\n" - "potuto essere solo un urlo.\n\n" - "E allora, cosa ne e' degli altri\n" + "il tuo voto di vendetta e' sciolto,\n" + "ed entri nel portale che conduce al\n" + "tuo mondo pochi secondi prima che\n" + "la cupola vada in mille pezzi.\n\n" + "ma se il potere di d'sparil e'\n" + "infranto per sempre, perche' non ti\n" + "senti al sicuro? e' a causa del suo\n" + "ultimo urlo prima di morire, quello\n" + "che suonava come una maledizione? o\n" + "un'invocazione? non puoi esserne\n" + "certo, poteva essere solo un urlo.\n\n" + "ma allora, cosa ne e' degli altri\n" "serpent rider?"; HE4TEXT = - "pensavi di tornare al tuo mondo\n" - "dopo la morte di d'sparil, ma\n" - "il suo atto finale ti ha esilianto\n" - "nel suo mondo. sei qui entrato\n" + "pensavi di tornare nel tuo mondo\n" + "dopo la morte di d'sparil, ma il\n" + "il suo ultimo atto ti ha esiliato\n" + "in questo posto. sei quindi entrato\n" "nei resti infranti delle terre\n" - "conquistate da d'sparil. hai battuto\n" - "gli ultimi guardiani di queste terre,\n" + "conquistate da d'sparil. Ne hai poi\n" + "abbattuto gli ultimi guardiani,\n" "ma ora ti trovi davanti ai cancelli\n" "della fortezza di d'sparil. finora\n" "non avevi avuto dubbi sulla tua\n" - "abilita' di fronteggiare ogni cosa,\n" + "abilita' nel fronteggiare di tutto,\n" "ma oltre questo portale si trova\n" "il cuore del male che ha invaso\n" "il tuo mondo. d'sparil sara' anche\n" "morto, ma il pozzo dove e' apparso\n" "esiste ancora. devi entrare in quel\n" "pozzo nella speranza di trovare\n" - "un uscita. e da qualche parte,\n" + "un'uscita. e da qualche parte,\n" "negli oscuri angoli del dominio\n" - "di d'sparil le sue guardie del corpo\n" - "aspettano il tuo arrivo ..."; + "di d'sparil le sue guardie del\n" + "corpo aspettano il tuo arrivo..."; HE5TEXT = - "mentre l'ultmo maulotaur ruggisce\n" - "agonizzante, comprendi che non sei\n" + "mentre l'ultimo maulotaur muggisce\n" + "agonizzante, comprendi che non eri\n" "mai stato cosi' vicino alla tua\n" - "distruzione. neanche la lotta con\n" - "d'sparil e i suoi discepoli e' stata\n" + "distruzione. nemmeno la lotta con\n" + "d'sparil e i suoi discepoli fu\n" "cosi' disperata. triste, guardi i\n" - "cancelli che si aprono di fronte a te,\n" - "chiedendoti se portano a casa o se\n" - "conducono ad un altro inimagginabile\n" + "cancelli che ti si aprono innanzi,\n" + "chiedendoti se portino a casa o se\n" + "conducano a un altro inimmaginabile\n" "orrore. ti chiedi se avrai la forza\n" - "di andare avanti, se niente tranne,\n" - "dolore e morte ti attendono, ma che\n" + "di andare avanti, se niente tranne\n" + "dolore e morte ti attendano, ma che\n" "altro puoi fare se la forza di\n" "combattere se ne va? puoi sforzarti\n" - "di continuare nonostante la\n" + "di continuare, nonostante la\n" "disperazione?\n" "ne hai il coraggio? decidi infine\n" - "che non e' da te arrendersi senza,\n" + "che non e' da te arrendersi senza\n" "combattere. ad occhi aperti\n" "vai incontro al tuo destino."; // EPISODE 1 - LA CITTA' DEI DANNATI -HHUSTR_E1M1 = "GLI ATTRACCHI"; +HHUSTR_E1M1 = "IL MOLO"; HHUSTR_E1M2 = "I SOTTERRANEI"; HHUSTR_E1M3 = "L'INGRESSO"; HHUSTR_E1M4 = "LA TORRE DI GUARDIA"; @@ -790,7 +785,7 @@ HHUSTR_E2M4 = "LA GROTTA DEL GHIACCIO"; HHUSTR_E2M5 = "LE CATACOMBE"; HHUSTR_E2M6 = "IL LABIRINTO"; HHUSTR_E2M7 = "LA GRANDE SALA"; -HHUSTR_E2M8 = "IL PORTALE DEL CAOS"; +HHUSTR_E2M8 = "I PORTALI DEL CAOS"; HHUSTR_E2M9 = "IL GHIACCIAIO"; // EPISODE 3 - LA CUPOLA DI D'SPARIL @@ -798,21 +793,21 @@ HHUSTR_E3M1 = "IL MAGAZZINO"; HHUSTR_E3M2 = "IL POZZO NERO"; HHUSTR_E3M3 = "LA CONFLUENZA"; HHUSTR_E3M4 = "LA FORTEZZA AZZURRA"; -HHUSTR_E3M5 = "LA TANA DEL SERPENTE"; +HHUSTR_E3M5 = "L'ANTRO DEGLI OPHIDIAN"; HHUSTR_E3M6 = "LE SALE DELLA PAURA"; HHUSTR_E3M7 = "L'ABISSO"; -HHUSTR_E3M8 = "LA TENUTA DI D'SPARIL"; -HHUSTR_E3M9 = "ACQUEDOTTO"; +HHUSTR_E3M8 = "LA DIMORA DI D'SPARIL"; +HHUSTR_E3M9 = "L'ACQUEDOTTO"; // EPISODE 4: L'OSSARIO HHUSTR_E4M1 = "CATAFALCO"; -HHUSTR_E4M2 = "IL BLOCCO DI CASE"; +HHUSTR_E4M2 = "BLOCCO DI CASE"; HHUSTR_E4M3 = "AMBULATORIO"; HHUSTR_E4M4 = "SEPOLCRO"; -HHUSTR_E4M5 = "LA GRANDE SCALA"; -HHUSTR_E4M6 = "LE SALE DELL'APOSTATO"; +HHUSTR_E4M5 = "GRANDE SCALA"; +HHUSTR_E4M6 = "SALE DELL'APOSTATA"; HHUSTR_E4M7 = "TORRIONI DELLA PERDIZIONE"; -HHUSTR_E4M8 = "IL PONTE DISTRUTTO"; +HHUSTR_E4M8 = "PONTE DISTRUTTO"; HHUSTR_E4M9 = "MAUSOLEO"; // EPISODE 5: I POSSEDIMENTI STAGNANTI @@ -824,7 +819,7 @@ HHUSTR_E5M5 = "HYDRATYR"; HHUSTR_E5M6 = "COLONNATO"; HHUSTR_E5M7 = "FETIDO CASTELLO"; HHUSTR_E5M8 = "CAMPO DEL GIUDIZIO"; -HHUSTR_E5M9 = "MATASSA DI D'SPARIL"; +HHUSTR_E5M9 = "GROVIGLIO DI D'SPARIL"; // Keys @@ -835,11 +830,11 @@ TXT_GOTGREENKEY = "CHIAVE VERDE"; // Artifacts TXT_ARTIHEALTH = "AMPOLLA DI QUARZO"; -TXT_ARTIFLY = "ALI DELLA FEROCIA"; +TXT_ARTIFLY = "ALI DELLA RABBIA"; TXT_ARTIINVULNERABILITY = "ANELLO DELL'INVINCIBILITA'"; TXT_ARTITOMEOFPOWER = "LIBRO DEL POTERE"; -TXT_ARTIINVISIBILITY = "SFPERA-OMBRA"; -TXT_ARTIEGG = "MORPH OVUM"; +TXT_ARTIINVISIBILITY = "SFERA DELL'OMBRA"; +TXT_ARTIEGG = "UOVO DELLA METAMORFOSI"; TXT_ARTISUPERHEALTH = "URNA MISTICA"; TXT_ARTITORCH = "TORCIA"; TXT_ARTIFIREBOMB = "BOMBA A TEMPO DEGLI ANTICHI"; @@ -857,8 +852,8 @@ TXT_ITEMSUPERMAP = "MAPPA"; TXT_AMMOGOLDWAND1 = "BACCHETTA DI CRISTALLO"; TXT_AMMOGOLDWAND2 = "GEOIDE DI CRISTALLO"; -TXT_AMMOMACE1 = "SFERE A MAZZA"; -TXT_AMMOMACE2 = "PILA DI SFERE A MAZZA"; +TXT_AMMOMACE1 = "SFERE PER MAZZA"; +TXT_AMMOMACE2 = "PILA DI SFERE PER MAZZA"; TXT_AMMOCROSSBOW1 = "FRECCIE ETEREE"; TXT_AMMOCROSSBOW2 = "FARETRA DI FRECCIE ETEREE"; TXT_AMMOBLASTER1 = "GLOBO ARTIGLIATO"; @@ -883,12 +878,129 @@ TXT_NEEDYELLOWKEY = "TI SERVE UNA CHIAVE GIALLA PER APRIRE QUESTA PORTA"; TXT_CHEATHEALTH = "ENERGIA COMPLETA"; TXT_CHEATKEYS = "TUTTE LE CHIAVI"; -TXT_CHEATSOUNDON = "DEBUG DEL SUONO ATTIVO"; +TXT_CHEATSOUNDON = "DEBUG DEL SUONO ATTIVATO"; TXT_CHEATSOUNDOFF = "DEBUG DEL SUONO DISATTIVATO"; -TXT_CHEATIDDQD = "SI CERCA DI BARARE, EH? ORA MUORI!"; -TXT_CHEATIDKFA = "BARO - NON MERITI ARMI"; -TXT_CHEATTICKERON = "TICKER ATTIVO"; -TXT_CHEATTICKEROFF = "TICKER DISATTIVO"; +TXT_CHEATIDDQD = "CERCHI DI BARARE, EH? ALLORA MUORI!"; +TXT_CHEATIDKFA = "BARO - NON MERITI ARMI!"; +TXT_CHEATTICKERON = "TICKER ATTIVATO"; +TXT_CHEATTICKEROFF = "TICKER DISATTIVATO"; TXT_CHEATARTIFACTS3 = "CONCESSO"; RAVENQUITMSG = "SEI SICURO DI VOLER ABBANDONARE?"; + +// Hexen strings + +// Mana + +TXT_MANA_1 = "MANA BLU"; +TXT_MANA_2 = "MANA VERDE"; +TXT_MANA_BOTH = "MANA MISTO"; + +// Keys + +TXT_KEY_STEEL = "CHIAVE D'ACCIAIO"; +TXT_KEY_CAVE = "CHIAVE DELLA CAVERNA"; +TXT_KEY_AXE = "CHIAVE DELL'ASCIA"; +TXT_KEY_FIRE = "CHIAVE DEL FUOCO"; +TXT_KEY_EMERALD = "CHIAVE DI SMERALDO"; +TXT_KEY_DUNGEON = "CHIAVE DEL DUNGEON"; +TXT_KEY_SILVER = "CHIAVE D'ARGENTO"; +TXT_KEY_RUSTED = "CHIAVE ARRUGGINITA"; +TXT_KEY_HORN = "CHIAVE DEL CORNO"; +TXT_KEY_SWAMP = "CHIAVE DELLA PALUDE"; +TXT_KEY_CASTLE = "CHIAVE DEL CASTELLO"; + +// Artifacts + +TXT_ARTIINVULNERABILITY2 = "ICONA DEL DIFENSORE"; +TXT_ARTISUMMON = "SERVITORE OSCURO"; +TXT_ARTIEGG2 = "MAIALIZZATORE"; +TXT_ARTIPOISONBAG = "FIASCHETTA"; +TXT_ARTITELEPORTOTHER = "ARTIFATTO DELL'ESILIO"; +TXT_ARTISPEED = "STIVALI DELLA VELOCITA'"; +TXT_ARTIBOOSTMANA = "CRATERE DELLA FORZA"; +TXT_ARTIBOOSTARMOR = "BRACCIALI IN PELLE DI DRAGO"; +TXT_ARTIBLASTRADIUS = "DISCO DELLA REPULSIONE"; +TXT_ARTIHEALINGRADIUS = "CONFINE MISTICO"; + +// Puzzle artifacts + +TXT_ARTIPUZZSKULL = "TESCHIO DI YORICK"; +TXT_ARTIPUZZGEMBIG = "CUORE DI D'SPARIL"; +TXT_ARTIPUZZGEMRED = "PIANETA DI RUBINO"; +TXT_ARTIPUZZGEMGREEN1 = "PIANETA DI SMERALDO"; +TXT_ARTIPUZZGEMGREEN2 = "PIANETA DI SMERALDO"; +TXT_ARTIPUZZGEMBLUE1 = "PIANETA DI ZAFFIRO"; +TXT_ARTIPUZZGEMBLUE2 = "PIANETA DI ZAFFIRO"; +TXT_ARTIPUZZBOOK1 = "DAEMON CODEX"; +TXT_ARTIPUZZBOOK2 = "LIBER OSCURA"; +TXT_ARTIPUZZSKULL2 = "MASCHERA DELLA FIAMMA"; +TXT_ARTIPUZZFWEAPON = "SIGILLO DEL BRANDO"; +TXT_ARTIPUZZCWEAPON = "RELIQUIA SACRA"; +TXT_ARTIPUZZMWEAPON = "SUGELLO DEL MAGUS"; +TXT_ARTIPUZZGEAR = "INGRANAGGIO D'OROLOGIO"; +TXT_USEPUZZLEFAILED = "NON PUOI USARE QUESTO OGGETTO QUI"; + +// Items + +TXT_ARMOR1 = "MAGLIA METALLICA"; +TXT_ARMOR2 = "SCUDO DEL FALCO"; +TXT_ARMOR3 = "ELMO DI PLATINO"; +TXT_ARMOR4 = "AMULETO DI PROTEZIONE"; + +// Weapons + +TXT_WEAPON_F2 = "ASCIA DI TIMONE"; +TXT_WEAPON_F3 = "MARTELLO DELLA RETRIBUZIONE"; +TXT_WEAPON_F4 = "QUIETUS ASSEMBLATO"; +TXT_WEAPON_C2 = "BASTONE DEL SERPENTE"; +TXT_WEAPON_C3 = "TEMPESTA DI FUOCO"; +TXT_WEAPON_C4 = "VERGA DELLA FURIA ASSEMBLATA"; +TXT_WEAPON_M2 = "FRANTUMI GELATI"; +TXT_WEAPON_M3 = "ARCO DELLA MORTE"; +TXT_WEAPON_M4 = "FLAGELLO DI SANGUE ASSEMBLATO"; +TXT_QUIETUS_PIECE = "PARTE DEL QUIETUS"; +TXT_WRAITHVERGE_PIECE = "PARTE DELLA VERGA DELLA FURIA"; +TXT_BLOODSCOURGE_PIECE = "PARTE DEL FLAGELLO DI SANGUE"; + + +// Bloodbath announcer + +BBA_BONED = "%k ha dissossato %o come un pesce"; +BBA_CASTRA = "%k ha castrato %o"; +BBA_CREAMED = "%k ha cremato %o"; +BBA_DECIMAT = "%k ha decimato %o"; +BBA_DESTRO = "%k ha distrutto %o"; +BBA_DICED = "%k ha tagliato a cubetti %o"; +BBA_DISEMBO = "%k ha smembrato %o"; +BBA_FLATTE = "%k ha schiacciato %o"; +BBA_JUSTICE = "%k da' a %o Giustizia Anale"; +BBA_MADNESS = "%k da' FoLlIa AnAle a %o"; +BBA_KILLED = "%k ha ucciso %o"; +BBA_MINCMEAT = "%k ha triturato %o"; +BBA_MASSACR = "%k ha massacrato %o"; +BBA_MUTILA = "%k ha mutilato %o"; +BBA_REAMED = "%k ha squartato %o"; +BBA_RIPPED = "%k ha aperto a %o un altro orifizio"; +BBA_SLAUGHT = "%k ha macellato %o"; +BBA_SMASHED = "%k ha colpito %o"; +BBA_SODOMIZ = "%k ha sodomizzato %o"; +BBA_SPLATT = "%k ha spiaccicato %o"; +BBA_SQUASH = "%k ha schiacciato %o"; +BBA_THROTTL = "%k ha strozzato %o"; +BBA_WASTED = "%k ha distrutto %o"; +BBA_BODYBAG = "%k ha mandato %o all'obitorio"; +BBA_HELL = "%k ha spedito all'Inferno %o"; +BBA_TOAST = "%k ha arrostito %o"; +BBA_SNUFF = "%k ha spento %o"; +BBA_HOSED = "%k l'ha fatta sopra %o"; +BBA_SPRAYED = "%k ha vaporizzato %o"; +BBA_DOGMEAT = "%k ha fatto polpette di %o"; +BBA_BEATEN = "%k ha battuto %o come un cane"; + +BBA_EXCREMENT = "%o e' un escremento"; +BBA_HAMBURGER = "%o e' un hamburger"; +BBA_SCROTUM = "%o ha subito la separazione dello scroto"; +BBA_POPULATION = "%o si e' offerto per il controllo della popolazione"; +BBA_SUICIDE = "%o si e' suicidato"; +BBA_DARWIN = "%o ha ricevuto il Darwin Award"; diff --git a/wadsrc/zdoom.lst b/wadsrc/zdoom.lst index 8724a6d3e9..cfb6dd3bea 100644 --- a/wadsrc/zdoom.lst +++ b/wadsrc/zdoom.lst @@ -74,9 +74,9 @@ spalhtic.lmp spalhtic.lmp ======== # Language lumps -language.en languages/english-us.txt +language.enu languages/english-us.txt language.fr languages/french.txt -language.it languages/italian.txt +language.ita languages/italian.txt ========