mirror of
https://github.com/ZDoom/qzdoom.git
synced 2025-01-18 23:21:41 +00:00
Merge remote-tracking branch 'origin/master' into vulkan2
This commit is contained in:
commit
73efe707ac
119 changed files with 1086 additions and 55 deletions
|
@ -132,9 +132,7 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize,
|
|||
do
|
||||
{
|
||||
sc.MustGetString();
|
||||
if(sc.Compare("NoTextcolor")) iwad->flags |= GI_NOTEXTCOLOR;
|
||||
else if (sc.Compare("NoBigFont")) iwad->flags |= GI_IGNOREBIGFONTLUMP;
|
||||
else if(sc.Compare("Poly1")) iwad->flags |= GI_COMPATPOLY1;
|
||||
if(sc.Compare("Poly1")) iwad->flags |= GI_COMPATPOLY1;
|
||||
else if(sc.Compare("Poly2")) iwad->flags |= GI_COMPATPOLY2;
|
||||
else if(sc.Compare("Shareware")) iwad->flags |= GI_SHAREWARE;
|
||||
else if(sc.Compare("Teaser2")) iwad->flags |= GI_TEASER2;
|
||||
|
|
|
@ -2388,7 +2388,7 @@ void D_DoomMain (void)
|
|||
}
|
||||
|
||||
if (!batchrun) Printf ("W_Init: Init WADfiles.\n");
|
||||
Wads.InitMultipleFiles (allwads);
|
||||
Wads.InitMultipleFiles (allwads, iwad_info->DeleteLumps);
|
||||
allwads.Clear();
|
||||
allwads.ShrinkToFit();
|
||||
SetMapxxFlag();
|
||||
|
|
|
@ -489,12 +489,6 @@ int userinfo_t::PlayerClassChanged(const char *classname)
|
|||
return classnum;
|
||||
}
|
||||
|
||||
int userinfo_t::PlayerClassNumChanged(int classnum)
|
||||
{
|
||||
*static_cast<FIntCVar *>((*this)[NAME_PlayerClass]) = classnum;
|
||||
return classnum;
|
||||
}
|
||||
|
||||
int userinfo_t::ColorSetChanged(int setnum)
|
||||
{
|
||||
*static_cast<FIntCVar *>((*this)[NAME_ColorSet]) = setnum;
|
||||
|
|
|
@ -264,8 +264,7 @@ struct userinfo_t : TMap<FName,FBaseCVar *>
|
|||
int SkinNumChanged(int skinnum);
|
||||
int GenderChanged(const char *gendername);
|
||||
int PlayerClassChanged(const char *classname);
|
||||
int PlayerClassNumChanged(int classnum);
|
||||
uint32_t ColorChanged(const char *colorname);
|
||||
uint32_t ColorChanged(const char *colorname);
|
||||
uint32_t ColorChanged(uint32_t colorval);
|
||||
int ColorSetChanged(int setnum);
|
||||
};
|
||||
|
|
|
@ -1169,15 +1169,6 @@ void V_InitFontColors ()
|
|||
|
||||
while ((lump = Wads.FindLump ("TEXTCOLO", &lastlump)) != -1)
|
||||
{
|
||||
if (gameinfo.flags & GI_NOTEXTCOLOR)
|
||||
{
|
||||
// Chex3 contains a bad TEXTCOLO lump, probably to force all text to be green.
|
||||
// This renders the Gray, Gold, Red and Yellow color range inoperable, some of
|
||||
// which are used by the menu. So we have no choice but to skip this lump so that
|
||||
// all colors work properly.
|
||||
// The text colors should be the end user's choice anyway.
|
||||
if (Wads.GetLumpFile(lump) == Wads.GetIwadNum()) continue;
|
||||
}
|
||||
FScanner sc(lump);
|
||||
while (sc.GetString())
|
||||
{
|
||||
|
|
|
@ -2059,6 +2059,8 @@ void FMapInfoParser::ParseEpisodeInfo ()
|
|||
ParseAssign();
|
||||
sc.MustGetString ();
|
||||
pic = sc.String;
|
||||
// If no name has been specified, synthesize a string table reference with the same name as the patch.
|
||||
if (name.IsEmpty()) name.Format("$%s", sc.String);
|
||||
}
|
||||
else if (sc.Compare ("remove"))
|
||||
{
|
||||
|
|
|
@ -48,9 +48,7 @@ enum
|
|||
GI_COMPATSTAIRS = 0x00000020, // same for stairbuilding
|
||||
GI_COMPATPOLY1 = 0x00000040, // Hexen's MAP36 needs old polyobject drawing
|
||||
GI_COMPATPOLY2 = 0x00000080, // so does HEXDD's MAP47
|
||||
GI_NOTEXTCOLOR = 0x00000100, // Chex Quest 3 would have everything green
|
||||
GI_IGNORETITLEPATCHES = 0x00000200, // Ignore the map name graphics when not runnning in English language
|
||||
GI_IGNOREBIGFONTLUMP = 0x00000400, // Needed for Chex Quest 3, so that the extended internal font can be used instead.
|
||||
};
|
||||
|
||||
#include "gametype.h"
|
||||
|
|
|
@ -134,7 +134,7 @@ void FWadCollection::DeleteAll ()
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
void FWadCollection::InitMultipleFiles (TArray<FString> &filenames)
|
||||
void FWadCollection::InitMultipleFiles (TArray<FString> &filenames, const TArray<FString> &deletelumps)
|
||||
{
|
||||
int numfiles;
|
||||
|
||||
|
@ -154,7 +154,7 @@ void FWadCollection::InitMultipleFiles (TArray<FString> &filenames)
|
|||
I_FatalError ("W_InitMultipleFiles: no files found");
|
||||
}
|
||||
RenameNerve();
|
||||
RenameSprites();
|
||||
RenameSprites(deletelumps);
|
||||
FixMacHexen();
|
||||
|
||||
// [RH] Set up hash table
|
||||
|
@ -755,7 +755,7 @@ void FWadCollection::InitHashChains (void)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
void FWadCollection::RenameSprites ()
|
||||
void FWadCollection::RenameSprites (const TArray<FString> &deletelumps)
|
||||
{
|
||||
bool renameAll;
|
||||
bool MNTRZfound = false;
|
||||
|
@ -894,16 +894,14 @@ void FWadCollection::RenameSprites ()
|
|||
}
|
||||
else if (LumpInfo[i].lump->Namespace == ns_global)
|
||||
{
|
||||
// Rename the game specific big font lumps so that the font manager does not have to do problematic special checks for them.
|
||||
if (!strcmp(LumpInfo[i].lump->Name, altbigfont))
|
||||
strcpy(LumpInfo[i].lump->Name, "BIGFONT");
|
||||
|
||||
if (LumpInfo[i].wadnum == GetIwadNum() && gameinfo.flags & GI_IGNOREBIGFONTLUMP)
|
||||
if (LumpInfo[i].wadnum == GetIwadNum() && deletelumps.Find(LumpInfo[i].lump->Name) < deletelumps.Size())
|
||||
{
|
||||
if (!strcmp(LumpInfo[i].lump->Name, "BIGFONT"))
|
||||
{
|
||||
LumpInfo[i].lump->Name[0] = 0;
|
||||
}
|
||||
LumpInfo[i].lump->Name[0] = 0; // Lump must be deleted from directory.
|
||||
}
|
||||
// Rename the game specific big font lumps so that the font manager does not have to do problematic special checks for them.
|
||||
else if (!strcmp(LumpInfo[i].lump->Name, altbigfont))
|
||||
{
|
||||
strcpy(LumpInfo[i].lump->Name, "BIGFONT");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ public:
|
|||
int GetIwadNum() { return IwadIndex; }
|
||||
void SetIwadNum(int x) { IwadIndex = x; }
|
||||
|
||||
void InitMultipleFiles (TArray<FString> &filenames);
|
||||
void InitMultipleFiles (TArray<FString> &filenames, const TArray<FString> &deletelumps);
|
||||
void AddFile (const char *filename, FileReader *wadinfo = NULL);
|
||||
int CheckIfWadLoaded (const char *name);
|
||||
|
||||
|
@ -213,7 +213,7 @@ protected:
|
|||
void InitHashChains (); // [RH] Set up the lumpinfo hashing
|
||||
|
||||
private:
|
||||
void RenameSprites();
|
||||
void RenameSprites(const TArray<FString> &deletelumps);
|
||||
void RenameNerve();
|
||||
void FixMacHexen();
|
||||
void DeleteAll();
|
||||
|
|
|
@ -66,7 +66,6 @@ CVAR (Bool, show_obituaries, true, CVAR_ARCHIVE)
|
|||
CVAR (Int, m_showinputgrid, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||
CVAR(Bool, m_blockcontrollers, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||
|
||||
|
||||
CVAR (Float, snd_menuvolume, 0.6f, CVAR_ARCHIVE)
|
||||
CVAR(Int, m_use_mouse, 2, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Int, m_show_backbutton, 0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
|
@ -518,6 +517,10 @@ void M_SetMenu(FName menu, int param)
|
|||
void ActivateEndGameMenu();
|
||||
ActivateEndGameMenu();
|
||||
return;
|
||||
|
||||
case NAME_Playermenu:
|
||||
menu = NAME_NewPlayerMenu; // redirect the old player menu to the new one.
|
||||
break;
|
||||
}
|
||||
|
||||
// End of special checks
|
||||
|
|
|
@ -48,6 +48,8 @@
|
|||
#include "i_system.h"
|
||||
#include "v_video.h"
|
||||
#include "gstrings.h"
|
||||
#include "teaminfo.h"
|
||||
#include "r_data/sprites.h"
|
||||
|
||||
|
||||
void ClearSaveGames();
|
||||
|
@ -1543,6 +1545,95 @@ void M_CreateMenus()
|
|||
{
|
||||
I_BuildALResamplersList(*opt);
|
||||
}
|
||||
opt = OptionValues.CheckKey(NAME_PlayerTeam);
|
||||
if (opt != nullptr)
|
||||
{
|
||||
auto op = *opt;
|
||||
op->mValues.Resize(Teams.Size() + 1);
|
||||
op->mValues[0].Value = 0;
|
||||
op->mValues[0].Text = "$OPTVAL_NONE";
|
||||
for (unsigned i = 0; i < Teams.Size(); i++)
|
||||
{
|
||||
op->mValues[i+1].Value = i+1;
|
||||
op->mValues[i+1].Text = Teams[i].GetName();
|
||||
}
|
||||
}
|
||||
opt = OptionValues.CheckKey(NAME_PlayerClass);
|
||||
if (opt != nullptr)
|
||||
{
|
||||
auto op = *opt;
|
||||
int o = 0;
|
||||
if (!gameinfo.norandomplayerclass && PlayerClasses.Size() > 1)
|
||||
{
|
||||
op->mValues.Resize(PlayerClasses.Size()+1);
|
||||
op->mValues[0].Value = -1;
|
||||
op->mValues[0].Text = "$MNU_RANDOM";
|
||||
o = 1;
|
||||
}
|
||||
else op->mValues.Resize(PlayerClasses.Size());
|
||||
for (unsigned i = 0; i < PlayerClasses.Size(); i++)
|
||||
{
|
||||
op->mValues[i+o].Value = i;
|
||||
op->mValues[i+o].Text = GetPrintableDisplayName(PlayerClasses[i].Type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DEFINE_ACTION_FUNCTION(DMenu, UpdateColorsets)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_POINTER(playerClass, FPlayerClass);
|
||||
|
||||
TArray<int> PlayerColorSets;
|
||||
|
||||
EnumColorSets(playerClass->Type, &PlayerColorSets);
|
||||
|
||||
auto opt = OptionValues.CheckKey(NAME_PlayerColors);
|
||||
if (opt != nullptr)
|
||||
{
|
||||
auto op = *opt;
|
||||
op->mValues.Resize(PlayerColorSets.Size() + 1);
|
||||
op->mValues[0].Value = -1;
|
||||
op->mValues[0].Text = "$OPTVAL_CUSTOM";
|
||||
for (unsigned i = 0; i < PlayerColorSets.Size(); i++)
|
||||
{
|
||||
auto cset = GetColorSet(playerClass->Type, PlayerColorSets[i]);
|
||||
op->mValues[i + 1].Value = PlayerColorSets[i];
|
||||
op->mValues[i + 1].Text = cset? cset->Name.GetChars() : "?"; // The null case should never happen here.
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(DMenu, UpdateSkinOptions)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_POINTER(playerClass, FPlayerClass);
|
||||
|
||||
auto opt = OptionValues.CheckKey(NAME_PlayerSkin);
|
||||
if (opt != nullptr)
|
||||
{
|
||||
auto op = *opt;
|
||||
|
||||
if ((GetDefaultByType(playerClass->Type)->flags4 & MF4_NOSKIN) || players[consoleplayer].userinfo.GetPlayerClassNum() == -1)
|
||||
{
|
||||
op->mValues.Resize(1);
|
||||
op->mValues[0].Value = -1;
|
||||
op->mValues[0].Text = "$OPTVAL_DEFAULT";
|
||||
}
|
||||
else
|
||||
{
|
||||
op->mValues.Clear();
|
||||
for (unsigned i = 0; i < Skins.Size(); i++)
|
||||
{
|
||||
op->mValues.Reserve(1);
|
||||
op->mValues.Last().Value = i;
|
||||
op->mValues.Last().Text = Skins[i].Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
|
|
@ -133,8 +133,9 @@ DEFINE_ACTION_FUNCTION(DPlayerMenu, ClassChanged)
|
|||
PARAM_POINTER(cls, FPlayerClass);
|
||||
if (DMenu::InMenu)
|
||||
{
|
||||
players[consoleplayer].userinfo.PlayerClassNumChanged(gameinfo.norandomplayerclass ? sel : sel - 1);
|
||||
cvar_set("playerclass", sel == 0 && !gameinfo.norandomplayerclass ? "Random" : GetPrintableDisplayName(cls->Type).GetChars());
|
||||
const char *pclass = sel == -1 ? "Random" : GetPrintableDisplayName(cls->Type).GetChars();
|
||||
players[consoleplayer].userinfo.PlayerClassChanged(pclass);
|
||||
cvar_set("playerclass", pclass);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1380,6 +1380,7 @@ void P_PredictPlayer (player_t *player)
|
|||
|
||||
act->flags &= ~MF_PICKUP;
|
||||
act->flags2 &= ~MF2_PUSHWALL;
|
||||
act->renderflags &= ~RF_NOINTERPOLATEVIEW;
|
||||
player->cheats |= CF_PREDICTING;
|
||||
|
||||
BackupNodeList(act, act->touching_sectorlist, §or_t::touching_thinglist, PredictionTouchingSectors_sprev_Backup, PredictionTouchingSectorsBackup);
|
||||
|
|
|
@ -1083,3 +1083,7 @@ xx(MapMarker)
|
|||
xx(Spawn2)
|
||||
xx(LevelLocals)
|
||||
xx(Level)
|
||||
xx(PlayerTeam)
|
||||
xx(PlayerColors)
|
||||
xx(PlayerSkin)
|
||||
xx(NewPlayerMenu)
|
||||
|
|
|
@ -105,9 +105,10 @@ IWad
|
|||
Config = "Chex"
|
||||
IWADName = "chex3.wad"
|
||||
Mapinfo = "mapinfo/chex.txt"
|
||||
Compatibility = "NoTextcolor", "NoBigFont"
|
||||
MustContain = "E1M1", "CYCLA1", "FLMBA1", "MAPINFO"
|
||||
BannerColors = "ff ff 00", "00 c0 00"
|
||||
IgnoreTitlePatches = 1
|
||||
DeleteLumps = "LANGUAGE", "TEXTCOLO", "DBIGFONT"
|
||||
}
|
||||
|
||||
IWad
|
||||
|
@ -120,6 +121,7 @@ IWad
|
|||
Mapinfo = "mapinfo/chex.txt"
|
||||
MustContain = "E1M1", "E4M1", "W94_1", "POSSH0M0"
|
||||
BannerColors = "ff ff 00", "00 c0 00"
|
||||
IgnoreTitlePatches = 1
|
||||
}
|
||||
|
||||
IWad
|
||||
|
|
|
@ -369,7 +369,7 @@ OptionMenu "OptionsMenu" protected
|
|||
Submenu "$OPTMNU_MOUSE", "MouseOptions"
|
||||
Submenu "$OPTMNU_JOYSTICK", "JoystickOptions"
|
||||
StaticText " "
|
||||
Submenu "$OPTMNU_PLAYER", "PlayerMenu"
|
||||
Submenu "$OPTMNU_PLAYER", "NewPlayerMenu"
|
||||
Submenu "$OPTMNU_GAMEPLAY", "GameplayOptions"
|
||||
Submenu "$OPTMNU_COMPATIBILITY", "CompatibilityOptions"
|
||||
Submenu "$OPTMNU_AUTOMAP", "AutomapOptions"
|
||||
|
@ -401,6 +401,58 @@ OptionValue "Gender"
|
|||
3, "$OPTVAL_OTHER"
|
||||
}
|
||||
|
||||
OptionValue "PlayerTeam"
|
||||
{
|
||||
// Filled in programmatically
|
||||
}
|
||||
|
||||
OptionValue "PlayerColors"
|
||||
{
|
||||
// Filled in programmatically
|
||||
}
|
||||
|
||||
OptionValue "PlayerClass"
|
||||
{
|
||||
// Filled in programmatically
|
||||
}
|
||||
|
||||
OptionValue "PlayerSkin"
|
||||
{
|
||||
// Filled in programmatically
|
||||
}
|
||||
|
||||
/*
|
||||
IfGame(Doom, Heretic, Strife, Chex)
|
||||
{
|
||||
MouseWindow 0, 220
|
||||
PlayerDisplay 220, 48, "20 00 00", "80 00 40", 1, "PlayerDisplay"
|
||||
}
|
||||
IfGame(Hexen)
|
||||
{
|
||||
MouseWindow 0, 220
|
||||
PlayerDisplay 220, 48, "00 07 00", "40 53 40", 1, "PlayerDisplay"
|
||||
}
|
||||
*/
|
||||
|
||||
OptionMenu "NewPlayerMenu"
|
||||
{
|
||||
Title "$MNU_PLAYERSETUP"
|
||||
PlayerNameField "$PLYRMNU_NAME"
|
||||
PlayerTeamItem "$PLYRMNU_TEAM", "PlayerTeam"
|
||||
PlayerColorItem "$PLYRMNU_PLAYERCOLOR", "PlayerColors"
|
||||
PlayerColorSlider "$PLYRMNU_RED", 0
|
||||
PlayerColorSlider "$PLYRMNU_GREEN", 1
|
||||
PlayerColorSlider "$PLYRMNU_BLUE", 2
|
||||
PlayerClassItem "$PLYRMNU_PLAYERCLASS", "PlayerClass"
|
||||
PlayerSkinItem "$PLYRMNU_PLAYERSKIN", "PlayerSkin"
|
||||
PlayerGenderItem "$PLYRMNU_PLAYERGENDER", "Gender"
|
||||
AutoaimSlider "$PLYRMNU_AUTOAIM"
|
||||
PlayerSwitchOnPickupItem "$PLYRMNU_SWITCHONPICKUP", "OffOn"
|
||||
Option "$PLYRMNU_ALWAYSRUN", cl_run, "OnOff"
|
||||
Class "NewPlayerMenu"
|
||||
}
|
||||
|
||||
// The old player menu is kept for mods that redefine it.
|
||||
ListMenu "PlayerMenu"
|
||||
{
|
||||
StaticTextCentered 160, 6, "$MNU_PLAYERSETUP"
|
||||
|
|
|
@ -246,6 +246,7 @@ version "3.8"
|
|||
#include "zscript/ui/menu/messagebox.zs"
|
||||
#include "zscript/ui/menu/optionmenu.zs"
|
||||
#include "zscript/ui/menu/optionmenuitems.zs"
|
||||
#include "zscript/ui/menu/newplayermenu.zs"
|
||||
#include "zscript/ui/menu/playercontrols.zs"
|
||||
#include "zscript/ui/menu/playerdisplay.zs"
|
||||
#include "zscript/ui/menu/playermenu.zs"
|
||||
|
|
|
@ -98,6 +98,8 @@ class Menu : Object native ui version("2.4")
|
|||
native static void SetMouseCapture(bool on);
|
||||
native void Close();
|
||||
native void ActivateMenu();
|
||||
native static void UpdateColorsets(PlayerClass cls);
|
||||
native static void UpdateSkinOptions(PlayerClass cls);
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
|
|
556
wadsrc/static/zscript/ui/menu/newplayermenu.zs
Normal file
556
wadsrc/static/zscript/ui/menu/newplayermenu.zs
Normal file
|
@ -0,0 +1,556 @@
|
|||
/*
|
||||
** playermenu.cpp
|
||||
** The player setup menu
|
||||
**
|
||||
**---------------------------------------------------------------------------
|
||||
** Copyright 2001-2010 Randy Heit
|
||||
** Copyright 2010-2017 Christoph Oelckers
|
||||
** All rights reserved.
|
||||
**
|
||||
** Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions
|
||||
** are met:
|
||||
**
|
||||
** 1. Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** 2. Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in the
|
||||
** documentation and/or other materials provided with the distribution.
|
||||
** 3. The name of the author may not be used to endorse or promote products
|
||||
** derived from this software without specific prior written permission.
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
**---------------------------------------------------------------------------
|
||||
**
|
||||
*/
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemPlayerNameField : OptionMenuItemTextField
|
||||
{
|
||||
OptionMenuItemTextField Init(String label)
|
||||
{
|
||||
Super.Init(label, "", null);
|
||||
mEnter = null;
|
||||
return self;
|
||||
}
|
||||
|
||||
override bool, String GetString (int i)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
return true, players[consoleplayer].GetUserName();
|
||||
;
|
||||
}
|
||||
return false, "";
|
||||
}
|
||||
|
||||
override bool SetString (int i, String s)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
PlayerMenu.PlayerNameChanged(s);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemPlayerTeamItem : OptionMenuItemOptionBase
|
||||
{
|
||||
OptionMenuItemPlayerTeamItem Init(String label, Name values)
|
||||
{
|
||||
Super.Init(label, 'none', values, null , false);
|
||||
return self;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
override int GetSelection()
|
||||
{
|
||||
int Selection = -1;
|
||||
int cnt = OptionValues.GetCount(mValues);
|
||||
if (cnt > 0)
|
||||
{
|
||||
int myteam = players[consoleplayer].GetTeam();
|
||||
let f = double(myteam == Team.NoTeam? 0 : myteam + 1);
|
||||
for(int i = 0; i < cnt; i++)
|
||||
{
|
||||
if (f ~== OptionValues.GetValue(mValues, i))
|
||||
{
|
||||
Selection = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Selection;
|
||||
}
|
||||
|
||||
override void SetSelection(int Selection)
|
||||
{
|
||||
int cnt = OptionValues.GetCount(mValues);
|
||||
if (cnt > 0)
|
||||
{
|
||||
PlayerMenu.TeamChanged(Selection);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemPlayerColorItem : OptionMenuItemOptionBase
|
||||
{
|
||||
OptionMenuItemPlayerColorItem Init(String label, Name values)
|
||||
{
|
||||
Super.Init(label, 'none', values, null , false);
|
||||
return self;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
override int GetSelection()
|
||||
{
|
||||
int Selection = -1;
|
||||
int cnt = OptionValues.GetCount(mValues);
|
||||
if (cnt > 0)
|
||||
{
|
||||
int mycolorset = players[consoleplayer].GetColorSet();
|
||||
let f = double(mycolorset);
|
||||
for(int i = 0; i < cnt; i++)
|
||||
{
|
||||
if (f ~== OptionValues.GetValue(mValues, i))
|
||||
{
|
||||
Selection = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Selection;
|
||||
}
|
||||
|
||||
override void SetSelection(int Selection)
|
||||
{
|
||||
int cnt = OptionValues.GetCount(mValues);
|
||||
if (cnt > 0)
|
||||
{
|
||||
let val = int(OptionValues.GetValue(mValues, Selection));
|
||||
PlayerMenu.ColorSetChanged(val);
|
||||
let menu = NewPlayerMenu(Menu.GetCurrentMenu());
|
||||
if (menu) menu.UpdateTranslation();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemPlayerColorSlider : OptionMenuSliderBase
|
||||
{
|
||||
int mChannel;
|
||||
|
||||
OptionMenuItemPlayerColorSlider Init(String label, int channel)
|
||||
{
|
||||
Super.Init(label, 0, 255, 16, false, 'none');
|
||||
mChannel = channel;
|
||||
return self;
|
||||
}
|
||||
|
||||
override double GetSliderValue()
|
||||
{
|
||||
Color colr = players[consoleplayer].GetColor();
|
||||
if (mChannel == 0) return colr.r;
|
||||
else if (mChannel == 1) return colr.g;
|
||||
else return colr.b;
|
||||
}
|
||||
|
||||
override void SetSliderValue(double val)
|
||||
{
|
||||
Color colr = players[consoleplayer].GetColor();
|
||||
int r = colr.r;
|
||||
int g = colr.g;
|
||||
int b = colr.b;
|
||||
if (mChannel == 0) r = int(val);
|
||||
else if (mChannel == 1) g = int(val);
|
||||
else b = int(val);
|
||||
PlayerMenu.ColorChanged(r, g, b);
|
||||
let menu = NewPlayerMenu(Menu.GetCurrentMenu());
|
||||
if (menu) menu.UpdateTranslation();
|
||||
}
|
||||
|
||||
override int Draw(OptionMenuDescriptor desc, int y, int indent, bool selected)
|
||||
{
|
||||
int mycolorset = players[consoleplayer].GetColorSet();
|
||||
if (mycolorset == -1)
|
||||
{
|
||||
return super.Draw(desc, y, indent, selected);
|
||||
}
|
||||
return indent;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemPlayerClassItem : OptionMenuItemOptionBase
|
||||
{
|
||||
OptionMenuItemPlayerClassItem Init(String label, Name values)
|
||||
{
|
||||
Super.Init(label, 'none', values, null , false);
|
||||
return self;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
override int GetSelection()
|
||||
{
|
||||
int Selection = -1;
|
||||
int cnt = OptionValues.GetCount(mValues);
|
||||
if (cnt > 0)
|
||||
{
|
||||
double f = players[consoleplayer].GetPlayerClassNum();
|
||||
for(int i = 0; i < cnt; i++)
|
||||
{
|
||||
if (f ~== OptionValues.GetValue(mValues, i))
|
||||
{
|
||||
Selection = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Selection;
|
||||
}
|
||||
|
||||
override void SetSelection(int Selection)
|
||||
{
|
||||
|
||||
int cnt = OptionValues.GetCount(mValues);
|
||||
if (cnt > 1)
|
||||
{
|
||||
let val = int(OptionValues.GetValue(mValues, Selection));
|
||||
let menu = NewPlayerMenu(Menu.GetCurrentMenu());
|
||||
if (menu)
|
||||
{
|
||||
menu.PickPlayerClass(val);
|
||||
PlayerMenu.ClassChanged(val, menu.mPlayerClass);
|
||||
menu.mPlayerDisplay.SetValue(ListMenuItemPlayerDisplay.PDF_CLASS, players[consoleplayer].GetPlayerClassNum());
|
||||
menu.UpdateSkins();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemPlayerSkinItem : OptionMenuItemOptionBase
|
||||
{
|
||||
OptionMenuItemPlayerSkinItem Init(String label, Name values)
|
||||
{
|
||||
Super.Init(label, 'none', values, null , false);
|
||||
return self;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
override int GetSelection()
|
||||
{
|
||||
int Selection = 0;
|
||||
int cnt = OptionValues.GetCount(mValues);
|
||||
if (cnt > 1)
|
||||
{
|
||||
double f = players[consoleplayer].GetSkin();
|
||||
for(int i = 0; i < cnt; i++)
|
||||
{
|
||||
if (f ~== OptionValues.GetValue(mValues, i))
|
||||
{
|
||||
Selection = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Selection;
|
||||
}
|
||||
|
||||
override void SetSelection(int Selection)
|
||||
{
|
||||
|
||||
int cnt = OptionValues.GetCount(mValues);
|
||||
if (cnt > 1)
|
||||
{
|
||||
let val = int(OptionValues.GetValue(mValues, Selection));
|
||||
let menu = NewPlayerMenu(Menu.GetCurrentMenu());
|
||||
PlayerMenu.SkinChanged(val);
|
||||
if (menu)
|
||||
{
|
||||
menu.mPlayerDisplay.SetValue(ListMenuItemPlayerDisplay.PDF_SKIN, val);
|
||||
menu.UpdateTranslation();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemPlayerGenderItem : OptionMenuItemOptionBase
|
||||
{
|
||||
OptionMenuItemPlayerGenderItem Init(String label, Name values)
|
||||
{
|
||||
Super.Init(label, 'none', values, null , false);
|
||||
return self;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
override int GetSelection()
|
||||
{
|
||||
return players[consoleplayer].GetGender();
|
||||
}
|
||||
|
||||
override void SetSelection(int Selection)
|
||||
{
|
||||
PlayerMenu.GenderChanged(Selection);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemAutoaimSlider : OptionMenuSliderBase
|
||||
{
|
||||
OptionMenuItemAutoaimSlider Init(String label)
|
||||
{
|
||||
Super.Init(label, 0, 35, 1, false, 'none');
|
||||
return self;
|
||||
}
|
||||
|
||||
override double GetSliderValue()
|
||||
{
|
||||
return players[consoleplayer].GetAutoaim();
|
||||
}
|
||||
|
||||
override void SetSliderValue(double val)
|
||||
{
|
||||
PlayerMenu.AutoaimChanged(val);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class OptionMenuItemPlayerSwitchOnPickupItem : OptionMenuItemOptionBase
|
||||
{
|
||||
OptionMenuItemPlayerSwitchOnPickupItem Init(String label, Name values)
|
||||
{
|
||||
Super.Init(label, 'none', values, null , false);
|
||||
return self;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
override int GetSelection()
|
||||
{
|
||||
return players[consoleplayer].GetNeverSwitch()? 1:0;
|
||||
}
|
||||
|
||||
override void SetSelection(int Selection)
|
||||
{
|
||||
PlayerMenu.SwitchOnPickupChanged(Selection);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class NewPlayerMenu : OptionMenu
|
||||
{
|
||||
PlayerClass mPlayerClass;
|
||||
int mRotation;
|
||||
PlayerMenuPlayerDisplay mPlayerDisplay;
|
||||
|
||||
const PLAYERDISPLAY_X = 220;
|
||||
const PLAYERDISPLAY_Y = 60;
|
||||
const PLAYERDISPLAY_W = 144;
|
||||
const PLAYERDISPLAY_H = 160;
|
||||
const PLAYERDISPLAY_SPACE = 180;
|
||||
|
||||
override void Init(Menu parent, OptionMenuDescriptor desc)
|
||||
{
|
||||
Super.Init(parent, desc);
|
||||
let BaseColor = gameinfo.gametype == GAME_Hexen? 0x200000 : 0x000700;
|
||||
let AddColor = gameinfo.gametype == GAME_Hexen? 0x800040 : 0x405340;
|
||||
mPlayerDisplay = new("PlayerMenuPlayerDisplay");
|
||||
mPlayerDisplay.init(BaseColor, AddColor);
|
||||
PickPlayerClass();
|
||||
|
||||
PlayerInfo p = players[consoleplayer];
|
||||
mRotation = 0;
|
||||
|
||||
mPlayerDisplay.SetValue(ListMenuItemPlayerDisplay.PDF_ROTATION, 0);
|
||||
mPlayerDisplay.SetValue(ListMenuItemPlayerDisplay.PDF_MODE, 1);
|
||||
mPlayerDisplay.SetValue(ListMenuItemPlayerDisplay.PDF_TRANSLATE, 1);
|
||||
mPlayerDisplay.SetValue(ListMenuItemPlayerDisplay.PDF_CLASS, p.GetPlayerClassNum());
|
||||
UpdateSkins();
|
||||
}
|
||||
|
||||
override int GetIndent()
|
||||
{
|
||||
return Super.GetIndent() - 45*CleanXfac_1;
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
void UpdateTranslation()
|
||||
{
|
||||
Translation.SetPlayerTranslation(TRANSLATION_Players, MAXPLAYERS, consoleplayer, mPlayerClass);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
static int GetPlayerClassIndex(int pick = -100)
|
||||
{
|
||||
int pclass = 0;
|
||||
// [GRB] Pick a class from player class list
|
||||
if (PlayerClasses.Size () > 1)
|
||||
{
|
||||
pclass = pick == -100? players[consoleplayer].GetPlayerClassNum() : pick;
|
||||
|
||||
if (pclass < 0)
|
||||
{
|
||||
pclass = (MenuTime() >> 7) % PlayerClasses.Size ();
|
||||
}
|
||||
}
|
||||
return pclass;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
void PickPlayerClass(int pick = -100)
|
||||
{
|
||||
let PlayerClassIndex = GetPlayerClassIndex(pick);
|
||||
mPlayerClass = PlayerClasses[PlayerClassIndex];
|
||||
UpdateColorsets(mPlayerClass);
|
||||
UpdateSkinOptions(mPlayerClass);
|
||||
UpdateTranslation();
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
void UpdateSkins()
|
||||
{
|
||||
PlayerInfo p = players[consoleplayer];
|
||||
if (mPlayerClass != NULL && !(GetDefaultByType (mPlayerClass.Type).bNoSkin) && p.GetPlayerClassNum() != -1)
|
||||
{
|
||||
mPlayerDisplay.SetValue(ListMenuItemPlayerDisplay.PDF_SKIN, p.GetSkin());
|
||||
}
|
||||
UpdateTranslation();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
override bool OnUIEvent(UIEvent ev)
|
||||
{
|
||||
if (ev.Type == UIEvent.Type_Char && ev.KeyChar == 32)
|
||||
{
|
||||
// turn the player sprite around
|
||||
mRotation = 8 - mRotation;
|
||||
mPlayerDisplay.SetValue(ListMenuItemPlayerDisplay.PDF_ROTATION, mRotation);
|
||||
return true;
|
||||
}
|
||||
return Super.OnUIEvent(ev);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
override void Ticker()
|
||||
{
|
||||
mPlayerDisplay.Ticker();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
override void Drawer()
|
||||
{
|
||||
Super.Drawer();
|
||||
mPlayerDisplay.Drawer(false);
|
||||
|
||||
int x = screen.GetWidth()/(CleanXfac_1*2) + PLAYERDISPLAY_X + PLAYERDISPLAY_W/2;
|
||||
int y = PLAYERDISPLAY_Y + PLAYERDISPLAY_H + 5;
|
||||
String str = Stringtable.Localize("$PLYRMNU_PRESSSPACE");
|
||||
screen.DrawText (NewSmallFont, Font.CR_GOLD, x - NewSmallFont.StringWidth(str)/2, y, str, DTA_VirtualWidth, CleanWidth_1, DTA_VirtualHeight, CleanHeight_1, DTA_KeepRatio, true);
|
||||
str = Stringtable.Localize(mRotation ? "$PLYRMNU_SEEFRONT" : "$PLYRMNU_SEEBACK");
|
||||
y += NewSmallFont.GetHeight();
|
||||
screen.DrawText (NewSmallFont, Font.CR_GOLD,x - NewSmallFont.StringWidth(str)/2, y, str, DTA_VirtualWidth, CleanWidth_1, DTA_VirtualHeight, CleanHeight_1, DTA_KeepRatio, true);
|
||||
|
||||
}
|
||||
}
|
|
@ -410,6 +410,12 @@ class OptionMenu : Menu
|
|||
//
|
||||
//=============================================================================
|
||||
|
||||
virtual int GetIndent()
|
||||
{
|
||||
int indent = max(0, (mDesc.mIndent + 40) - CleanWidth_1 / 2);
|
||||
return screen.GetWidth() / 2 + indent * CleanXfac_1;
|
||||
}
|
||||
|
||||
override void Drawer ()
|
||||
{
|
||||
int y = mDesc.mPosition;
|
||||
|
@ -433,8 +439,7 @@ class OptionMenu : Menu
|
|||
int fontheight = OptionMenuSettings.mLinespacing * CleanYfac_1;
|
||||
y *= CleanYfac_1;
|
||||
|
||||
int indent = max(0, (mDesc.mIndent + 40) - CleanWidth_1 / 2);
|
||||
indent = screen.GetWidth() / 2 + indent * CleanXfac_1;
|
||||
int indent = GetIndent();
|
||||
|
||||
int ytop = y + mDesc.mScrollTop * 8 * CleanYfac_1;
|
||||
int lastrow = screen.GetHeight() - OptionHeight() * CleanYfac_1;
|
||||
|
|
|
@ -132,6 +132,7 @@ class ListMenuItemPlayerDisplay : ListMenuItem
|
|||
{
|
||||
if (classnum < 0 || classnum >= PlayerClasses.Size ())
|
||||
{
|
||||
Console.Printf("Setting random class for %d, size = %d", classnum, PlayerClasses.Size ());
|
||||
if (mClassNum != -1)
|
||||
{
|
||||
mClassNum = -1;
|
||||
|
@ -141,6 +142,7 @@ class ListMenuItemPlayerDisplay : ListMenuItem
|
|||
}
|
||||
else if (mPlayerClass != PlayerClasses[classnum] || force)
|
||||
{
|
||||
Console.Printf("Setting class for %d", classnum);
|
||||
UpdatePlayer(classnum);
|
||||
mClassNum = classnum;
|
||||
}
|
||||
|
@ -154,7 +156,7 @@ class ListMenuItemPlayerDisplay : ListMenuItem
|
|||
|
||||
bool UpdatePlayerClass()
|
||||
{
|
||||
if (mOwner.mSelectedItem >= 0)
|
||||
if (mOwner && mOwner.mSelectedItem >= 0)
|
||||
{
|
||||
int classnum;
|
||||
Name seltype;
|
||||
|
@ -289,4 +291,67 @@ class ListMenuItemPlayerDisplay : ListMenuItem
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
class PlayerMenuPlayerDisplay : ListMenuItemPlayerDisplay
|
||||
{
|
||||
void Init(Color c1, Color c2)
|
||||
{
|
||||
Super.Init(null, 0, 0, c1, c2, true, 'none');
|
||||
}
|
||||
|
||||
override void Drawer(bool selected)
|
||||
{
|
||||
int x = screen.GetWidth()/2 + NewPlayerMenu.PLAYERDISPLAY_X * CleanXfac_1;
|
||||
int y = NewPlayerMenu.PLAYERDISPLAY_Y * CleanYfac_1;
|
||||
|
||||
int r = mBaseColor.r + mAddColor.r;
|
||||
int g = mBaseColor.g + mAddColor.g;
|
||||
int b = mBaseColor.b + mAddColor.b;
|
||||
int m = max(r, g, b);
|
||||
r = r * 255 / m;
|
||||
g = g * 255 / m;
|
||||
b = b * 255 / m;
|
||||
Color c = Color(255, r, g, b);
|
||||
|
||||
screen.DrawTexture(mBackdrop, false, x, y - 1,
|
||||
DTA_DestWidth, NewPlayerMenu.PLAYERDISPLAY_W * CleanXfac_1,
|
||||
DTA_DestHeight, NewPlayerMenu.PLAYERDISPLAY_H * CleanYfac_1,
|
||||
DTA_Color, c,
|
||||
DTA_KeepRatio, mNoPortrait,
|
||||
DTA_Masked, true);
|
||||
|
||||
Screen.DrawFrame (x, y, NewPlayerMenu.PLAYERDISPLAY_W*CleanXfac_1, NewPlayerMenu.PLAYERDISPLAY_H*CleanYfac_1-1);
|
||||
|
||||
if (mPlayerState != NULL)
|
||||
{
|
||||
Vector2 Scale;
|
||||
TextureID sprite;
|
||||
bool flip;
|
||||
|
||||
let playdef = GetDefaultByType((class<PlayerPawn>)(mPlayerClass.Type));
|
||||
[sprite, flip, Scale] = mPlayerState.GetSpriteTexture(mRotation, mSkin, playdef.Scale);
|
||||
|
||||
if (sprite.IsValid())
|
||||
{
|
||||
int trans = mTranslate? Translation.MakeID(TRANSLATION_Players, MAXPLAYERS) : 0;
|
||||
let tscale = TexMan.GetScaledSize(sprite);
|
||||
Scale.X *= CleanXfac_1 * tscale.X * 2;
|
||||
Scale.Y *= CleanYfac_1 * tscale.Y * 2;
|
||||
|
||||
screen.DrawTexture (sprite, false,
|
||||
x + (NewPlayerMenu.PLAYERDISPLAY_W/2) * CleanXfac_1, y + (NewPlayerMenu.PLAYERDISPLAY_H-16) * CleanYfac_1,
|
||||
DTA_DestWidthF, Scale.X, DTA_DestHeightF, Scale.Y,
|
||||
DTA_TranslationIndex, trans,
|
||||
DTA_KeepRatio, mNoPortrait,
|
||||
DTA_FlipX, flip);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -42,16 +42,16 @@ class PlayerMenu : ListMenu
|
|||
Array<int> mPlayerSkins;
|
||||
|
||||
// All write function for the player config are native to prevent abuse.
|
||||
protected static native void AutoaimChanged(float val);
|
||||
protected static native void TeamChanged(int val);
|
||||
protected static native void AlwaysRunChanged(int val);
|
||||
protected static native void GenderChanged(int val);
|
||||
protected static native void SwitchOnPickupChanged(int val);
|
||||
protected static native void ColorChanged(int red, int green, int blue);
|
||||
protected static native void ColorSetChanged(int red);
|
||||
protected static native void PlayerNameChanged(String name);
|
||||
protected static native void SkinChanged (int val);
|
||||
protected static native void ClassChanged(int sel, PlayerClass cls);
|
||||
static native void AutoaimChanged(float val);
|
||||
static native void TeamChanged(int val);
|
||||
static native void AlwaysRunChanged(int val);
|
||||
static native void GenderChanged(int val);
|
||||
static native void SwitchOnPickupChanged(int val);
|
||||
static native void ColorChanged(int red, int green, int blue);
|
||||
static native void ColorSetChanged(int red);
|
||||
static native void PlayerNameChanged(String name);
|
||||
static native void SkinChanged (int val);
|
||||
static native void ClassChanged(int sel, PlayerClass cls);
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
|
|
268
wadsrc_extra/static/filter/chex.chex3/language.csv
Normal file
268
wadsrc_extra/static/filter/chex.chex3/language.csv
Normal file
|
@ -0,0 +1,268 @@
|
|||
default,Identifier,Remarks,Filter,eng enc ena enz eni ens enj enb enl ent enw,cz,de,es,esm esn esg esc esa esd esv eso esr ess esf esl esy esz esb ese esh esi esu,fr,hu,it,pt,ro,ru,sr,ko
|
||||
,,,,,,,,,,,,,,,,
|
||||
Picked up a blue flemkey.,GOTBLUEFLEM,,,,,Blauen Flemschlüssel genommen,,,Flemclé bleue récupérée.,,,Pegou uma flemchave azul.,,,,청색 플렘열쇠 획득.
|
||||
Picked up a yellow flemkey.,GOTYELLOWFLEM,,,,,Gelben Flemschlüssel genommen,,,Flemclé jaune récupérée.,,,Pegou uma flemchave amarela.,,,,황색 플렘열쇠 획득.
|
||||
Picked up a red flemkey.,GOTREDFLEM,,,,,Roten Flemschlüssel genommen.,,,Flemclé rouge récupérée.,,,Pegou uma flemchave vermelha.,,,,적색 플렘열쇠 획득.
|
||||
Found Ultra Goggles,GOTGOGGLES,,,,,Ultrasichtbrille gefunden,,,Ultra-lunettes récupérées.,,,Achou um Ultra Óculos.,,,,울트라 고글 사용.
|
||||
You need a blue key to activate this object,PD_BLUECO,,,,,"Du brauchst einen blauen Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una llave azul para activar este objeto,,Il vous faut une clé bleue pour activer cet objet.,Egy kék kulcs szükséges az objektum aktiválásához.,Ti serve una chiave blu per attivare questo oggetto,Você precisa de uma chave azul para ativar este objeto,,Для активации нужен синий ключ,Треба вам плави кључ да би активирали овај предмет,이걸 작동하려면 청색 열쇠가 필요합니다
|
||||
You need a red key to activate this object,PD_REDCO,,,,,"Du brauchst einen roten Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una llave roja para activar este objeto,,Il vous faut une clé rouge pour activer cet objet.,"Piros kulcs kell, hogy aktiválhasd ezt az objektumot.",Ti serve una chiave rossa per attivare questo oggetto,Você precisa de uma chave vermelha para ativar este objeto,,Для активации нужен красный ключ,Треба вам црвени кључ да би активирали овај предмет,이걸 작동하려면 적색 열쇠가 필요합니다
|
||||
You need a yellow key to activate this object,PD_YELLOWCO,,,,,"Du brauchst einen gelben Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una llave amarilla para activar este objeto,,Il vous faut une clé jaune pour activer cet objet.,Egy sárga kulccsal aktiválható ez az objektum,Ti serve una chiave gialla per attivare questo oggetto,Você precisa de uma chave amarela para ativar este objeto,,Для активации нужен жёлтый ключ,Треба вам жути кључ да би активирали овај предмет,이걸 작동하려면 황색 열쇠가 필요합니다
|
||||
You need a blue flemkey to activate this object,PD_BLUEFO,,,,,"Du brauchst einen blauen Flemschlüssel, um dieses Objekt zu aktivieren.",,,Il vous faut une flemclé bleue pour activer cet objet.,,,Você precisa de uma flemchave azul para ativar este objeto,,,,이걸 작동하려면 청색 플렘열쇠가 필요합니다
|
||||
You need a red flemkey to activate this object,PD_REDFO,,,,,"Du brauchst einen roten Flemschlüssel, um dieses Objekt zu aktivieren.",,,Il vous faut une flemclé rouge pour activer cet objet.,,,Você precisa de uma flemchave vermelha para ativar este objeto,,,,이걸 작동하려면 적색 플렘열쇠가 필요합니다
|
||||
You need a yellow flemkey to activate this object,PD_YELLOWFO,,,,,"Du brauchst einen gelben Flemschlüssel, um dieses Objekt zu aktivieren.",,,Il vous faut une flemclé jaune pour activer cet objet.,,,Você precisa de uma flemchave amarela para ativar este objeto,,,,이걸 작동하려면 황색 플렘열쇠가 필요합니다
|
||||
Picked up a zorcher.,PICKUP_PISTOL_DROPPED,,,,,Zorcher genommen.,,,Zorcheur récupéré.,,,Pegou um zorcher.,,,,자쳐 습득.
|
||||
Invincible mode on,STSTR_DQDON,,,,,Unverwundbarkeit AN,,,Mode invincible ON.,,,Modo invencível LIGADO,,,,무적모드 켬
|
||||
Invincible mode OFF,STSTR_DQDOFF,,,,,Unverwundbarkeit AUS,,,Mode invincible OFF.,,,Modo invencível DESLIGADO,,,,무적모드 끔
|
||||
Zorch and keys added,STSTR_KFAADDED,,,,,Zorch und Schlüssel hinzugefügt.,,,Zorch et clés ajoutées.,,,Zorch e chaves adicionadas,,,,저치와 열쇠
|
||||
Zorch Added,STSTR_FAADDED,,,,,Zorch hinzugefügt.,,,Zorch ajouté.,,,Zorch adicionado,,,,저치가 추가됨
|
||||
E1M1: Landing Zone,HUSTR_E1M1,,,,,E1M1: Landezone,E1M1: Zona de Aterrizaje,,E1M1: Zone D'Atterissage,E1M1: Landoló Zóna,E1M1: Zona di Atterraggio,E1M1: Zona de Pouso,,E1M1: Зона приземления,,E1M1: 착륙 지점
|
||||
E1M2: Storage Facility,HUSTR_E1M2,,,,,E1M2: Lagerhalle,E1M2: Instalación de Almacenamiento,,E1M2: Centre de Stockage,,E1M2: Struttura di Immagazzinamento,E1M2: Depósito,,E1M2: Хранилище,,E1M2: 저장 시설
|
||||
E1M3: Laboratory,HUSTR_E1M3,,,,,E1M3: Labor,E1M3: Laboratorio,,E1M3: Laboratoire,,E1M3: Laboratorio,E1M3: Laboratório de Experimentos,,E1M3: Лаборатория,,E1M3: 연구소
|
||||
E1M4: Arboretum,HUSTR_E1M4,,,,,,E1M4: Arboreto,,E1M4: Arboretum,,E1M4: Arboreto,E1M4: Arvoredo,,E1M4: Дендрарий,,E1M4: 수목원
|
||||
E1M5: Caverns of Bazoik,HUSTR_E1M5,,,,,E1M5: Die Höhlen von Bazoik,E1M5: Cavernas de Bazoik,,E1M5: Cavernes de Bazoik,,E1M5: Caverne di Bazoik,E1M5: Cavernas de Bazoik,,E1M5: Каверны Базоика,,E1M5: 바조이크의 대동굴
|
||||
E2M1: Spaceport,HUSTR_E2M1,,,,,E2M1: Raumhafen,,,E2M1: Spatioport,,,E2M1: Espaçoporto,,,,E2M1: 우주공항
|
||||
E2M2: Cinema,HUSTR_E2M2,,,,,E2M2: Kino,,,E2M2: Cinéma,,,E2M2: Cinema,,,,E2M2: 극장
|
||||
E2M3: Chex Museum,HUSTR_E2M3,,,,,,,,E2M3: Musée Chex,,,E2M3: Museu Chex,,,,E2M3: 첵스 박물관
|
||||
E2M4: City Streets,HUSTR_E2M4,,,,,E2M4: städtische Straßen,,,E2M4: Rues de la Ville,,,E2M4: Ruas da Cidade,,,,E2M4: 도시 거리
|
||||
E2M5: Sewer System,HUSTR_E2M5,,,,,E2M5: Kanalisation,,,E2M5: Système d'égouts,,,E2M5: Rede de Esgoto,,,,E2M5: 하수도
|
||||
E3M1: Central Command,HUSTR_E3M1,,,,,E3M1: Kommandozentrale,,,E3M1: Commandement,,,E3M1: Comando Central,,,,E3M1: 중앙 사령부
|
||||
E3M2: United Cereals,HUSTR_E3M2,,,,,E3M2: Vereinigte Zerealien,,,E3M2: Céréales Unies,,,E3M2: Cereais Unidos,,,,E3M2: 시리얼 연합
|
||||
E3M3: Villa Chex,HUSTR_E3M3,,,,,,,,E3M3: Villa Chex,,,E3M3: Villa Chex,,,,E3M3: 책스 주택
|
||||
E3M4: Provincial Park,HUSTR_E3M4,,,,,E3M4: Provinzpark,,,E3M4: Parc Naturel,,,E3M4: Parque Natural,,,,E3M4: 주립공원
|
||||
E3M5: Meteor Spaceship,HUSTR_E3M5,,,,,E3M5: Meteor-Raumschiff,,,E3M5: Vaisseau Météore,,,E3M5: Espaçonave Meteoro,,,,E3M5: 거대 유성호
|
||||
Commonus,CC_ZOMBIE,,,,,,,,,,,,,,,커머누스
|
||||
Bipedicus,CC_SHOTGUN,,,,,,,,,,,,,,,바이피디쿠스
|
||||
Bipedicus with Armor,CC_IMP,,,,,Bipedicus mit Panzerung,,,Bipedicus avec Armure,,,Bipedicus de Armadura,,,,정예 바이피디쿠스
|
||||
Stridicus,CC_DEMON,,,,,,,,,,,,,,,스트리디쿠스
|
||||
Flem Mine,CC_LOST,,,,,,,,,,,Mina Flem,,,,플렘 지뢰
|
||||
Super Cycloptis,CC_CACO,,,,,,,,,,,,,,,슈퍼 사이클롭티스
|
||||
Maximus,CC_BARON,,,,,,,,,,,,,,,맥시무스
|
||||
The Flembomination,CC_SPIDER,,,,,Die Flembomination,,,La Flembomination,,,A Flembominação,,,,플렘보미네이션
|
||||
Lord Snotfolus,CC_CYBER,,,,,,,,Seigneur Morvator,,,Lorde Snotfolus,,,,스놋폴러스 마왕
|
||||
Chex Warrior,CC_HERO,,,,,Chex Krieger,,,Guerrier Chex,,,,,,,첵스 전사
|
||||
You need a blue key to open this door,PD_BLUEC,,,,,"Du brauchst einen blauen Schlüssel, um diese Tür zu öffnen.",Necesitas una llave azul para abrir esta puerta,,Il vous faut une clé bleue pour ouvrir cette porte.,Az ajtót a kék kulcs nyitja.,Ti serve una chiave blu per aprire questa porta,Você precisa de uma chave azul para abrir essa porta,,"Нужен синий ключ, чтобы открыть",Треба вам плави кључ да би отворили ова врата,이 문을 열려면 청색 열쇠가 필요합니다
|
||||
You need a red key to open this door,PD_REDC,,,,,"Du brauchst einen roten Schlüssel, um diese Tür zu öffnen.",Necesitas una llave roja para abrir esta puerta,,Il vous faut une clé rouge pour ouvrir cette porte.,"Piros kulcs szükséges, hogy az ajtót kinyithasd.",Ti serve una chiave rossa per aprire questa porta,Você precisa de uma chave vermelha para abrir essa porta,,"Нужен красный ключ, чтобы открыть",Треба вам црвени кључ да би отворили ова врата,이 문을 열려면 적색 열쇠가 필요합니다
|
||||
You need a yellow key to open this door,PD_YELLOWC,,,,,"Du brauchst einen gelben Schlüssel, um diese Tür zu öffnen.",Necesitas una llave amarilla para abrir esta puerta,,Il vous faut une clé jaune pour ouvrir cette porte.,Kell egy sárga kulcs hogy kinyisd ezt az ajtót.,Ti serve una chiave gialla per aprire questa porta,Você precisa de uma chave amarela para abrir essa porta,,"Нужен жёлтый ключ, чтобы открыть",Треба вам жути кључ да би отворили ова врата,이 문을 열려면 황색 열쇠가 필요합니다
|
||||
You need a blue flemkey to open this door,PD_BLUEF,,,,,"Du brauchst einen blauen Flemschlüssel, um diese Tür zu öffnen.",,,Il vous faut une flemclé bleue pour ouvrir cette porte.,,,Você precisa de uma flemchave azul para ativar este objeto,,,,이 문을 열려면 청색 플렘열쇠가 필요합니다
|
||||
You need a red flemkey to open this door,PD_REDF,,,,,"Du brauchst einen roten Flemschlüssel, um diese Tür zu öffnen.",,,Il vous faut une flemclé rouge pour ouvrir cette porte.,,,Você precisa de uma flemchave vermelha para ativar este objeto,,,,이 문을 열려면 적색 플렘열쇠가 필요합니다
|
||||
You need a yellow flemkey to open this door,PD_YELLOWF,,,,,"Du brauchst einen gelben Flemschlüssel, um diese Tür zu öffnen.",,,Il vous faut une flemclé jaune pour ouvrir cette porte.,,,Você precisa de uma flemchave amarela para ativar este objeto,,,,이 문을 열려면 황색 플렘열쇠가 필요합니다
|
||||
%o sinks into some slime.,OB_SLIME,,,,,%o versank im Schleim,,,%o se noie dans la morve.,,,%o afundou na gosma.,,,,%o 는(은) 점액 속으로 가라앉았습니다.
|
||||
%o sinks into some slime.,OB_LAVA,,,,,%o versank im Schleim,,,%o se noie dans la morve.,,,%o afundou na gosma.,,,,%o 는(은) 질척하게 가라앉았습니다.
|
||||
%o was hit by inter-dimensional slime!,OB_POWERSTRAND,,,,,%o wurde von interdimensionalem Schleim getroffen,,,%o s'est fait@[e_fr] toucher par de la morve interdimensionelle!,,,%o foi atingid@[ao_ptb] por gosma interdimensional!,,,,%o 는(은) 차원균열 점액에 맞았습니다!
|
||||
%o was hit by inter-dimensional slime!,OB_KILLEDSELF,,,,,%o wurde von interdimensionalem Schleim getroffen,,,%o s'est fait@[e_fr] toucher par de la morve interdimensionelle!,,,%o foi atingid@[ao_ptb] por gosma interdimensional!,,,,%o 는(은) 모르는 사이에 점액에 당했습니다!
|
||||
%o was boogered by a stridicus.,OB_STRIDICUS,,,,,%o wurde von einem Stridicus bepopelt.,,,%o s'est fait@[e_fr] engluer par un stridicus.,,,%o foi melecad@[ao_ptb] por um stridicus.,,,,%o 는(은) 스트리디쿠스의 코딱지에 당했습니다.
|
||||
%o was gooed by a flem mine.,OB_FLEMMINE,,,,,%o wurde von einer Flem-Mine beschmiert.,,,%o s'est fait@[e_fr] éclabousser par une flem mine.,,,%o foi engosmad@[ao_ptb] por uma mina flem.,,,,%o 는(은) 플렘 지뢰에 의해 점액 범벅이 됐습니다.
|
||||
%o was slimed by a super cycloptis.,OB_SUPERCYCLOPTIS,,,,,%o wurde von einem Super Cycloptis vollgeschleimt.,,,%o s'est fait@[e_fr] gélifier par un super cycloptis.,,,%o foi lambuzad@[ao_ptb] por um super cyclóptis.,,,,%o 는(은) 슈퍼 사이클롭티스의 점액에 당했습니다.
|
||||
%o was defeated by a Maximus.,OB_MAXIMUS,,,,,%o wurde von einem Maximus besiegt.,,,%o s'est fait@[e_fr] batre par un Maximus.,,,%o foi derrotad@[ao_ptb] por um Maximus.,,,,%o 는(은) 맥시무스에게 패배했습니다.
|
||||
%o was gooed by a larva.,OB_LARVA,,,,,%o wurde von einer Larve beschmiert.,,,%o s'est fait@[e_fr] tacher par une larve.,,,%o foi engosmad@[ao_ptb] por uma larva.,,,,%o 는(은) 애벌레에 의해 점액 범벅이 됐습니다.
|
||||
%o was slimed by a Quadrumpus.,OB_QUADRUMPUS,,,,,%o wurde von einem Quadrumpus vollgeschleimt.,,,%o s'est fait@[e_fr] morver par un quadrumpus.,,,%o foi melecad@[ao_ptb] por um Quadrumpus.,,,,%o 는(은) 쿼드럼푸스의 점액에 당했습니다.
|
||||
%o was defeated by the Flembomination.,OB_FLEMBOMINATION,,,,,%o wurde von der Flembomination besiegt.,,,%o s'est fait@[e_fr] éliminer par la Flembomination.,,,%o foi derrotad@[ao_ptb] pela Flembominação.,,,,%o 는(은) 플렘보미네이션으로부터 벗어날 수 없었습니다.
|
||||
%o was defeated by Lord Snotfolus.,OB_SNOTFOLUS,,,,,%o wurde von Lord Snotfolus besiegt.,,,%o est tombé@[e_fr] face au Seigneur Morvator.,,,%o foi derrotad@[ao_ptb] pelo Lorde Snotfolus.,,,,%o 는(은) 스놋폴러스 마왕과 싸울 준비를 제대로 하지 못했습니다.
|
||||
%o was hit by %k's propulsor.,OB_MPR_SPLASH,,,,,%o wurde von %ks Propeller getroffen,,,%o s'est fait@[e_fr] propulser par %k.,,,%o foi atingid@[ao_ptb] pelo propulsor de %k.,,,,%o 는(은) %k 의 추진력에 휘말렸습니다.
|
||||
%o was lazzed by %k.,OB_MPBFG_SPLASH,,,,,%o wurde von %o weggezorcht.,,,%o est entré@[e_fr] dans la zone de zorchage large de %k.,,,%o foi LAZead@[ao_ptb] por %k.,,,,%o 는(은) %k 에게 레이져를 쐬였습니다.
|
||||
"After sending the monstrous Flembrane
|
||||
back to his own dimension, you free the
|
||||
captives. Yet flemoids are everywhere!
|
||||
You and the captives make a break for
|
||||
your spaceship. The flemoids slime your
|
||||
ship, but you narrowly escape into orbit.
|
||||
During the return you are congratulated
|
||||
for the daring rescue, but you issue a
|
||||
warning...
|
||||
We haven't seen the last of the Flemoids.
|
||||
|
||||
Unfortunately you are correct. For as you
|
||||
return home, you find that the Flemoids
|
||||
have somehow followed you here. Prepare
|
||||
for Chex Quest 2: Terror in Chex City!",E1TEXT,,,,,"Nachdem du die monströse Flembrane
|
||||
in ihre eigene Dimension zurückgeschickt
|
||||
hast, befreist du die Gefangenen.
|
||||
Und dennoch sind die Flemoiden
|
||||
überall! Du kämpfst dich mit den
|
||||
Gefangenen zu deinem Raumschiff
|
||||
durch und entkommst mit knapper Not.
|
||||
Du schickst eine Warnung ab, dass wir
|
||||
die Flemoiden noch nicht los sind.
|
||||
|
||||
Unglückicherweise hast du Recht.
|
||||
Denn als du nach Hause kommst,
|
||||
erkennst du, dass dir die Flemoiden
|
||||
gefolgt sind. Bereite dich auf Chex
|
||||
Quest 2: Terror in Chex-City vor!",,,"Ayant renvoyé la terrible Flembrane dans
|
||||
sa dimension, vous libérez les prisonniers.
|
||||
Pourtant, les flémoïdes sont partout!
|
||||
Vous aidez les prisonniers à rejoindre
|
||||
votre vaisseau. Les flémoïdes s'agglutinent
|
||||
dessus, mais vous arrivez à vous mettre
|
||||
en orbite. Lors du retour, vous êtes félicité,
|
||||
mais vous avez un avertissement..
|
||||
Ce n'est pas la fin de la menace flémoïde.
|
||||
|
||||
Malheureusement, vous avez raison.
|
||||
Quand vous retournez sur votre planète,
|
||||
vous découvrez que les flémoïdes vous
|
||||
ont suivi jusqu'ici. Préparez vous pour
|
||||
Chex Quest 2: Terreur à Chex City!",,,"Após mandar a monstruosa Flembrana
|
||||
para sua dimensão, você libertou os
|
||||
prisioneiros! Você e os prisioneiros correm
|
||||
até a sua espaçonave. Os flemóides
|
||||
lambuzam a sua nave, mas por pouco
|
||||
você consegue escapar até a órbita.
|
||||
Ao retornar, você é parabenizado pelo seu
|
||||
resgate ousado, mas também há um aviso...
|
||||
A ameaça flemóide ainda não chegou ao fim.
|
||||
|
||||
Infelizmente, você está corret@[ao_ptb].
|
||||
Pois ao retornar para casa, você descobre
|
||||
que os flemóides te seguiram até aqui de
|
||||
alguma forma. Prepare-se para o
|
||||
Chex Quest 2: Terror em Chexópolis!",,,,"플렘브레인을 원래 차원으로 보내버린 뒤, 당신은 인질들을 풀어줬지만,
|
||||
아직 플레모이드들이 사방에 있습니다! 당신과 인질들은 당신의
|
||||
우주선으로 도망갔습니다. 플레모이드들이 당신의 우주선에
|
||||
공격을 가하지만, 아슬아슬하게 궤도 밖으로 탈출하는
|
||||
데 성공했습니다. 돌아오는 동안 당신의 용맹한 구출 작전의
|
||||
성공에 모두 축배를 들지만, 한 가지 걸리는 게 있으니...
|
||||
바로 플레모이드들과 끝장을 보지 못했다는 것!
|
||||
|
||||
불행히도 그 예감은 맞았습니다. 집으로 돌아가는 와중,
|
||||
플레모이드들이 당신을 추적해왔다는 걸 알게 됐는데...
|
||||
다음 이야기는 ""첵스 퀘스트 2 : 첵스 시티의 공포""에서 계속됩니다!"
|
||||
"You zorch the remaining flemoids who had
|
||||
gathered in the sewers. Chex City has been
|
||||
saved. It seems that the Flemoid threat
|
||||
has finally ended.
|
||||
|
||||
|
||||
Ten years pass in peace and prosperity.
|
||||
But the Flemoids were not defeated and
|
||||
their desire to control the nutritionally
|
||||
rich cereal dimension has not diminished.
|
||||
They have gathered all their forces, opened
|
||||
a gigantic inter-dimensional rift in space
|
||||
and now a great ball of slime is headed
|
||||
straight for the cereals' planet!
|
||||
|
||||
Get ready for
|
||||
Chex Quest 3: Invasion!
|
||||
",E2TEXT,,,,,"Du zorchst die verbleibenden
|
||||
Flemoiden, die sich noch in der
|
||||
Kanalisation aufhielten, weg. Chex
|
||||
City ist gerettet. Es sieht aus, als ob die
|
||||
Flemoidenbedrohung beendet ist.
|
||||
|
||||
Zehn Jahre vergehen in Frieden und
|
||||
Wohlstand. Aber die Flemoiden waren
|
||||
nicht besiegt und ihr Verlangen, die
|
||||
Zerealiendimension zu kontollieren, hat
|
||||
nicht abgenommen. Sie haben all ihre
|
||||
Truppen zusammengezogen und ein
|
||||
gigantisches interdimensionales Portal
|
||||
erschaffen, und nun macht sich ein
|
||||
gigantischer Ball intergalaktischen
|
||||
Schleims auf den Weg zum Zerealien-
|
||||
planeten.
|
||||
|
||||
Mach dich bereit für Chex Quest 3:
|
||||
Invasion!",,,"Vous zorchez les derniers flémoïdes
|
||||
restant dans les égouts. Chex City
|
||||
est sauvée. Il semble que la menace
|
||||
flémoïde n'existe plus.
|
||||
|
||||
Dix ans se déroulent dans la paix et
|
||||
la prospérité, mais les flémoïdes ne
|
||||
se sont pas laissé battre, et veulent
|
||||
contrôler la dimension des céréales,
|
||||
riche en nutriments. Ils on regroupé
|
||||
leur forces et ont ouvert un portail
|
||||
inter-dimensionnel colossal, et
|
||||
maintenant, une sphère de morve
|
||||
géante se dirige vers la planète
|
||||
des céréales!
|
||||
|
||||
Préparez vous pour Chex Quest 3:
|
||||
Invasion!",,,"Você zorcha os flemóides que restaram nos
|
||||
esgotos. Chexópolis foi salva. Parece que
|
||||
a ameaça flemóide finalmente acabou.
|
||||
|
||||
Dez anos se passaram com paz e
|
||||
propseridade. Mas os flemóides não foram
|
||||
derrotados e seu desejo para controlar a
|
||||
dimensão dos cereias ricos em nutrientes
|
||||
não diminuiu. Eles juntaram todas as suas
|
||||
forças, abriram uma grande fenda
|
||||
interdimensional no espaço e agora uma
|
||||
bola gigante de gosma está vindo direto
|
||||
para o planeta dos cereais!
|
||||
|
||||
Se prepare para o
|
||||
Chex Quest 3: A Invasão!",,,,"당신은 하수구에 모인 잔존 플레모이드들을 처리하는 데 성공했습니다.
|
||||
이제 책스 시티는 안전합니다. 플레모이드들의 위협도 이로써
|
||||
막을 내린 것 같습니다.
|
||||
|
||||
평화와 번창 속에서 10 년이라는 세월이 흘렀지만, 사실 플레모이드들
|
||||
전부가 패배한 것이 아니었고, 그들의 영양가 풍부한 시리얼 행성을
|
||||
지배하려는 야망은 아직 사그라지지 않았던 것이었습니다! 그들은
|
||||
병력을 모아, 우주에 거대한 차원균열 관문을 열었고 그들의 거대한
|
||||
녹색 점액 덩어리가 시리얼 행성을 향하고 있는데!
|
||||
|
||||
다음 이야기는 """"첵스 퀘스트 3: 대침공""""에서 이어집니다!"
|
||||
"With one final blast, you zorch Lord
|
||||
Snotfolus back to his own dimension!
|
||||
Against all the odds you have single-
|
||||
handedly foiled the invasion!
|
||||
|
||||
You truly hope that the Flemoids have
|
||||
finally learned their lesson and will
|
||||
never again return to the cereal
|
||||
dimension.
|
||||
|
||||
|
||||
|
||||
But if they do you know you will be
|
||||
ready for them!
|
||||
",E3TEXT,,,,,"Mit einem letzten Schuss zorchst du
|
||||
Lord Snotfolus zurück in seine eigene
|
||||
Dimension! Gegen alle Widerstände
|
||||
hast du eigenhändiig die Invasion
|
||||
scheitern lassen!
|
||||
|
||||
Du hoffst wirklich, dass die Flemoiden
|
||||
ihre Lektion gelernt haben und nie
|
||||
wieder in die Zerealiendimension
|
||||
zurückkehren.
|
||||
|
||||
Aber falls sie das doch tun, wirst du
|
||||
bereit sein!",,,"Avec un dernier tir, vous zorchez
|
||||
Seigneur Morvator dans sa propre
|
||||
dimension! Contre toute attente,
|
||||
vous avez surmonté l'invasion
|
||||
de par vos propres moyens.
|
||||
|
||||
Vous espérez sincèrement que les
|
||||
flémoïdes ont appris leur leçon
|
||||
et qu'il n'essaieront jamais de
|
||||
revenir envahir la dimension des
|
||||
céréales.
|
||||
|
||||
Mais vous savez que vous serez
|
||||
prêt pour eux!",,,"Com mais uma última explosão, você zorcha
|
||||
o Lorde Snotfolus de volta para sua
|
||||
dimensão! Contra todas as probabilidades
|
||||
você impediu sozinh@[ao_ptb] a invasão!
|
||||
|
||||
Você torce que os flemóides finalmente
|
||||
tenham aprendido a lição e que eles nunca
|
||||
mais voltarão para a dimensão dos cereais.
|
||||
|
||||
|
||||
Mas se voltarem, você sabe que você
|
||||
estará preparad@[ao_ptb]!",,,,"최후의 한방으로, 당신은 스놋폴러스 마왕을 원래 세계로 추방했습니다!
|
||||
그 모든 역경 속에서 당신은 손쉽게 모든 침공을 막아냈습니다!
|
||||
|
||||
당신은 드디어 플레모이드들이 정신을 차리고 다신
|
||||
시리얼 차원에 발을 들일 생각조차 안 하기를 바랐습니다.
|
||||
|
||||
뭐, 다시 온다 해도 당신은 항상 대비하고 있을 테지만!"
|
||||
Rescue on Bazoik,M_EPI1,,,,,Rettung auf Bazoik,,,,,,,,,,
|
||||
Terror in Chex City,M_EPI2,,,,,,,,,,,Terror em Chexópolis!,,,,"첵스 시티의 공포""에서 계속됩니다"
|
||||
Invasion!,M_EPI3,,,,,,,,,,,A Invasão!,,,,"대침공""""에서 이어집니다!"
|
|
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0410.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0410.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0411.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0411.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0412.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0412.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0413.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0413.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0414.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0414.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0415.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0415.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0416.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0416.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0417.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0417.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0418.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0418.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0419.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0419.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041A.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041A.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041B.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041B.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041D.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041D.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041E.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041E.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041F.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/041F.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0420.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0420.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0421.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0421.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0422.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0422.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0423.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0423.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0424.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0424.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0425.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0425.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0426.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0426.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0427.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0427.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0428.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0428.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0429.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/0429.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042A.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042A.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042B.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042B.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042D.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042D.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042E.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042E.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042F.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/bigfont/042F.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00C6.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00C6.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00D0.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00D0.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00D8.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00D8.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00DD.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00DD.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00DE.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/00DE.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0100.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0100.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0102.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0102.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0104.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0104.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0106.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0106.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0108.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0108.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/010C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/010C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/010E.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/010E.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0112.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0112.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0114.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0114.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0118.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0118.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/011A.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/011A.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/011C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/011C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0124.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0124.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0134.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0134.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0141.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0141.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0143.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0143.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0147.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0147.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0154.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0154.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0158.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0158.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/015A.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/015A.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/015C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/015C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/015E.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/015E.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0160.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0160.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0162.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0162.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/016C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/016C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/016E.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/016E.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0179.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0179.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/017B.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/017B.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/017D.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/017D.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C6.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C6.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D0.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D0.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D8.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D8.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DD.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DD.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DE.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DE.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0100.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0100.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0102.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0102.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0104.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0104.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0106.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0106.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/010C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/010C.lmp
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue