mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 05:51:20 +00:00
Merge remote-tracking branch 'origin/master' into vulkan2
This commit is contained in:
commit
7b06fbe28e
41 changed files with 155 additions and 3801 deletions
|
@ -210,13 +210,23 @@ void FGameConfigFile::DoAutoloadSetup (FIWadManager *iwad_man)
|
|||
RenameSection("Freedoom2.Autoload", "doom.freedoom.phase2.Autoload");
|
||||
RenameSection("Freedoom1.Autoload", "doom.freedoom.phase1.Autoload");
|
||||
RenameSection("Freedoom.Autoload", "doom.freedoom.Autoload");
|
||||
RenameSection("DoomBFG.Autoload", "doom.doom1.bfg.Autoload");
|
||||
RenameSection("DoomU.Autoload", "doom.doom1.ultimate.Autoload");
|
||||
RenameSection("Doom1.Autoload", "doom.doom1.registered.Autoload");
|
||||
RenameSection("TNT.Autoload", "doom.doom2.tnt.Autoload");
|
||||
RenameSection("Plutonia.Autoload", "doom.doom2.plutonia.Autoload");
|
||||
RenameSection("Doom2BFG.Autoload", "doom.doom2.bfg.Autoload");
|
||||
RenameSection("Doom2.Autoload", "doom.doom2.commercial.Autoload");
|
||||
RenameSection("DoomBFG.Autoload", "doom.id.doom1.bfg.Autoload");
|
||||
RenameSection("DoomU.Autoload", "doom.id.doom1.ultimate.Autoload");
|
||||
RenameSection("Doom1.Autoload", "doom.id.doom1.registered.Autoload");
|
||||
RenameSection("TNT.Autoload", "doom.id.doom2.tnt.Autoload");
|
||||
RenameSection("Plutonia.Autoload", "doom.id.doom2.plutonia.Autoload");
|
||||
RenameSection("Doom2BFG.Autoload", "doom.id.doom2.bfg.Autoload");
|
||||
RenameSection("Doom2.Autoload", "doom.id.doom2.commercial.Autoload");
|
||||
}
|
||||
else if (last < 218)
|
||||
{
|
||||
RenameSection("doom.doom1.bfg.Autoload", "doom.id.doom1.bfg.Autoload");
|
||||
RenameSection("doom.doom1.ultimate.Autoload", "doom.id.doom1.ultimate.Autoload");
|
||||
RenameSection("doom.doom1.registered.Autoload", "doom.id.doom1.registered.Autoload");
|
||||
RenameSection("doom.doom2.tnt.Autoload", "doom.id.doom2.tnt.Autoload");
|
||||
RenameSection("doom.doom2.plutonia.Autoload", "doom.id.doom2.plutonia.Autoload");
|
||||
RenameSection("doom.doom2.bfg.Autoload", "doom.id.doom2.bfg.Autoload");
|
||||
RenameSection("doom.doom2.commercial.Autoload", "doom.id.doom2.commercial.Autoload");
|
||||
}
|
||||
const FString *pAuto;
|
||||
for (int num = 0; (pAuto = iwad_man->GetAutoname(num)) != NULL; num++)
|
||||
|
|
|
@ -765,12 +765,30 @@ void FMapInfoParser::ParseCluster()
|
|||
ParseAssign();
|
||||
if (ParseLookupName(clusterinfo->EnterText))
|
||||
clusterinfo->flags |= CLUSTER_LOOKUPENTERTEXT;
|
||||
else
|
||||
{
|
||||
FStringf testlabel("CLUSTERENTER%d", clusterinfo->cluster);
|
||||
if (GStrings.MatchDefaultString(testlabel, clusterinfo->EnterText))
|
||||
{
|
||||
clusterinfo->EnterText = testlabel;
|
||||
clusterinfo->flags |= CLUSTER_LOOKUPENTERTEXT;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sc.Compare("exittext"))
|
||||
{
|
||||
ParseAssign();
|
||||
if (ParseLookupName(clusterinfo->ExitText))
|
||||
clusterinfo->flags |= CLUSTER_LOOKUPEXITTEXT;
|
||||
else
|
||||
{
|
||||
FStringf testlabel("CLUSTEREXIT%d", clusterinfo->cluster);
|
||||
if (GStrings.MatchDefaultString(testlabel, clusterinfo->ExitText))
|
||||
{
|
||||
clusterinfo->ExitText = testlabel;
|
||||
clusterinfo->flags |= CLUSTER_LOOKUPEXITTEXT;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sc.Compare("music"))
|
||||
{
|
||||
|
@ -1933,8 +1951,8 @@ level_info_t *FMapInfoParser::ParseMapHeader(level_info_t &defaultinfo)
|
|||
// Workaround to allow localizazion of IWADs which do not have a string label here (e.g. HACX.WAD)
|
||||
// This checks for a string labelled with the MapName and if that is identical to what got parsed here
|
||||
// the string table entry will be used.
|
||||
auto c = GStrings.GetLanguageString(levelinfo->MapName, FStringTable::default_table);
|
||||
if (c && !strcmp(c, sc.String))
|
||||
|
||||
if (GStrings.MatchDefaultString(levelinfo->MapName, sc.String))
|
||||
{
|
||||
levelinfo->flags |= LEVEL_LOOKUPLEVELNAME;
|
||||
levelinfo->LevelName = levelinfo->MapName;
|
||||
|
|
|
@ -367,6 +367,7 @@ void FResourceFile::PostProcessArchive(void *lumps, size_t lumpsize)
|
|||
{
|
||||
// Entries in archives are sorted alphabetically
|
||||
qsort(lumps, NumLumps, lumpsize, lumpcmp);
|
||||
|
||||
|
||||
// Filter out lumps using the same names as the Autoload.* sections
|
||||
// in the ini file use. We reduce the maximum lump concidered after
|
||||
|
@ -406,7 +407,17 @@ int FResourceFile::FilterLumps(FString filtername, void *lumps, size_t lumpsize,
|
|||
return 0;
|
||||
}
|
||||
filter << "filter/" << filtername << '/';
|
||||
if (FindPrefixRange(filter, lumps, lumpsize, max, start, end))
|
||||
|
||||
bool found = FindPrefixRange(filter, lumps, lumpsize, max, start, end);
|
||||
|
||||
// Workaround for old Doom filter names.
|
||||
if (!found && filtername.IndexOf("doom.id.doom") == 0)
|
||||
{
|
||||
filter.Substitute("doom.id.doom", "doom.doom");
|
||||
found = FindPrefixRange(filter, lumps, lumpsize, max, start, end);
|
||||
}
|
||||
|
||||
if (found)
|
||||
{
|
||||
void *from = (uint8_t *)lumps + start * lumpsize;
|
||||
|
||||
|
|
|
@ -250,6 +250,10 @@ bool FStringTable::ParseLanguageCSV(const TArray<uint8_t> &buffer)
|
|||
{
|
||||
InsertString(langentry.second, strName, str);
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteString(langentry.second, strName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -372,6 +376,17 @@ void FStringTable::LoadLanguage (const TArray<uint8_t> &buffer)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
void FStringTable::DeleteString(int langid, FName label)
|
||||
{
|
||||
allStrings[langid].Remove(label);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void FStringTable::InsertString(int langid, FName label, const FString &string)
|
||||
{
|
||||
const char *strlangid = (const char *)&langid;
|
||||
|
@ -386,7 +401,7 @@ void FStringTable::InsertString(int langid, FName label, const FString &string)
|
|||
break;
|
||||
}
|
||||
FString macroname(te.strings[0].GetChars() + index + 2, endindex - index - 2);
|
||||
FStringf lookupstr("%s/%s", strlangid, macroname.GetChars());
|
||||
FStringf lookupstr("%s/%s", strlangid, macroname.GetChars());
|
||||
FStringf replacee("@[%s]", macroname.GetChars());
|
||||
FName lookupname(lookupstr, true);
|
||||
auto replace = allMacros.CheckKey(lookupname);
|
||||
|
@ -550,6 +565,20 @@ const char *FStringTable::GetLanguageString(const char *name, uint32_t langtable
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
bool FStringTable::MatchDefaultString(const char *name, const char *content) const
|
||||
{
|
||||
// This only compares the first line to avoid problems with bad linefeeds. For the few cases where this feature is needed it is sufficient.
|
||||
auto c = GetLanguageString(name, FStringTable::default_table);
|
||||
if (!c) return false;
|
||||
|
||||
// Check a secondary key, in case the text comparison cannot be done due to needed orthographic fixes (see Harmony's exit text)
|
||||
FStringf checkkey("%s_CHECK", name);
|
||||
auto cc = GetLanguageString(checkkey, FStringTable::default_table);
|
||||
if (cc) c = cc;
|
||||
|
||||
return (c && !strnicmp(c, content, strcspn(content, "\n\r\t")));
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// Finds a string by name and returns its value. If the string does
|
||||
|
|
|
@ -89,6 +89,7 @@ public:
|
|||
}
|
||||
|
||||
const char *GetLanguageString(const char *name, uint32_t langtable, int gender = -1) const;
|
||||
bool MatchDefaultString(const char *name, const char *content) const;
|
||||
const char *GetString(const char *name, uint32_t *langtable, int gender = -1) const;
|
||||
const char *operator() (const char *name) const; // Never returns NULL
|
||||
const char *operator[] (const char *name) const
|
||||
|
@ -110,6 +111,7 @@ private:
|
|||
bool LoadLanguageFromSpreadsheet(int lumpnum, const TArray<uint8_t> &buffer);
|
||||
bool readMacros(int lumpnum);
|
||||
void InsertString(int langid, FName label, const FString &string);
|
||||
void DeleteString(int langid, FName label);
|
||||
|
||||
static size_t ProcessEscapes (char *str);
|
||||
};
|
||||
|
|
|
@ -130,6 +130,9 @@ void HU_SortPlayers
|
|||
*/
|
||||
|
||||
bool SB_ForceActive = false;
|
||||
static FFont *displayFont;
|
||||
static int FontScale;
|
||||
|
||||
|
||||
// PRIVATE DATA DEFINITIONS ------------------------------------------------
|
||||
|
||||
|
@ -143,6 +146,9 @@ bool SB_ForceActive = false;
|
|||
|
||||
void HU_DrawScores (player_t *player)
|
||||
{
|
||||
displayFont = NewSmallFont;
|
||||
FontScale = MAX(screen->GetHeight() / 400, 1);
|
||||
|
||||
if (deathmatch)
|
||||
{
|
||||
if (teamplay)
|
||||
|
@ -195,7 +201,7 @@ void HU_DrawScores (player_t *player)
|
|||
|
||||
void HU_GetPlayerWidths(int &maxnamewidth, int &maxscorewidth, int &maxiconheight)
|
||||
{
|
||||
maxnamewidth = SmallFont->StringWidth("Name");
|
||||
maxnamewidth = displayFont->StringWidth("Name");
|
||||
maxscorewidth = 0;
|
||||
maxiconheight = 0;
|
||||
|
||||
|
@ -203,7 +209,7 @@ void HU_GetPlayerWidths(int &maxnamewidth, int &maxscorewidth, int &maxiconheigh
|
|||
{
|
||||
if (playeringame[i])
|
||||
{
|
||||
int width = SmallFont->StringWidth(players[i].userinfo.GetName());
|
||||
int width = displayFont->StringWidth(players[i].userinfo.GetName());
|
||||
if (width > maxnamewidth)
|
||||
{
|
||||
maxnamewidth = width;
|
||||
|
@ -235,6 +241,11 @@ void HU_GetPlayerWidths(int &maxnamewidth, int &maxscorewidth, int &maxiconheigh
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
static void HU_DrawFontScaled(double x, double y, int color, const char *text)
|
||||
{
|
||||
screen->DrawText(displayFont, color, x / FontScale, y / FontScale, text, DTA_VirtualWidth, screen->GetWidth() / FontScale, DTA_VirtualHeight, screen->GetHeight() / FontScale, TAG_END);
|
||||
}
|
||||
|
||||
static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYERS])
|
||||
{
|
||||
int color;
|
||||
|
@ -258,7 +269,7 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER
|
|||
}
|
||||
|
||||
HU_GetPlayerWidths(maxnamewidth, maxscorewidth, maxiconheight);
|
||||
height = SmallFont->GetHeight() * CleanYfac;
|
||||
height = displayFont->GetHeight() * FontScale;
|
||||
lineheight = MAX(height, maxiconheight * CleanYfac);
|
||||
ypadding = (lineheight - height + 1) / 2;
|
||||
|
||||
|
@ -327,23 +338,16 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER
|
|||
*text_name = GStrings("SCORE_NAME"),
|
||||
*text_delay = GStrings("SCORE_DELAY");
|
||||
|
||||
col2 = (SmallFont->StringWidth(text_color) + 8) * CleanXfac;
|
||||
col3 = col2 + (SmallFont->StringWidth(text_frags) + 8) * CleanXfac;
|
||||
col4 = col3 + maxscorewidth * CleanXfac;
|
||||
col5 = col4 + (maxnamewidth + 8) * CleanXfac;
|
||||
x = (SCREENWIDTH >> 1) - (((SmallFont->StringWidth(text_delay) * CleanXfac) + col5) >> 1);
|
||||
col2 = (displayFont->StringWidth(text_color) + 16) * FontScale;
|
||||
col3 = col2 + (displayFont->StringWidth(text_frags) + 16) * FontScale;
|
||||
col4 = col3 + maxscorewidth * FontScale;
|
||||
col5 = col4 + (maxnamewidth + 16) * FontScale;
|
||||
x = (SCREENWIDTH >> 1) - (((displayFont->StringWidth(text_delay) * FontScale) + col5) >> 1);
|
||||
|
||||
screen->DrawText (SmallFont, color, x, y, text_color,
|
||||
DTA_CleanNoMove, true, TAG_DONE);
|
||||
|
||||
screen->DrawText (SmallFont, color, x + col2, y, text_frags,
|
||||
DTA_CleanNoMove, true, TAG_DONE);
|
||||
|
||||
screen->DrawText (SmallFont, color, x + col4, y, text_name,
|
||||
DTA_CleanNoMove, true, TAG_DONE);
|
||||
|
||||
screen->DrawText(SmallFont, color, x + col5, y, text_delay,
|
||||
DTA_CleanNoMove, true, TAG_DONE);
|
||||
//HU_DrawFontScaled(x, y, color, text_color);
|
||||
HU_DrawFontScaled(x + col2, y, color, text_frags);
|
||||
HU_DrawFontScaled(x + col4, y, color, text_name);
|
||||
HU_DrawFontScaled(x + col5, y, color, text_delay);
|
||||
|
||||
y += height + 6 * CleanYfac;
|
||||
bottom -= height;
|
||||
|
@ -385,9 +389,8 @@ static void HU_DrawTimeRemaining (int y)
|
|||
mysnprintf (str, countof(str), "Level ends in %d:%02d:%02d", hours, minutes, seconds);
|
||||
else
|
||||
mysnprintf (str, countof(str), "Level ends in %d:%02d", minutes, seconds);
|
||||
|
||||
screen->DrawText (SmallFont, CR_GREY, SCREENWIDTH/2 - SmallFont->StringWidth (str)/2*CleanXfac,
|
||||
y, str, DTA_CleanNoMove, true, TAG_DONE);
|
||||
|
||||
HU_DrawFontScaled(SCREENWIDTH / 2 - displayFont->StringWidth(str) / 2 * FontScale, y, CR_GRAY, str);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -407,7 +410,7 @@ static void HU_DrawPlayer (player_t *player, bool highlight, int col1, int col2,
|
|||
// The teamplay mode uses colors to show teams, so we need some
|
||||
// other way to do highlighting. And it may as well be used for
|
||||
// all modes for the sake of consistancy.
|
||||
screen->Dim(MAKERGB(200,245,255), 0.125f, col1 - 12*CleanXfac, y - 1, col5 + (maxnamewidth + 24)*CleanXfac, height + 2);
|
||||
screen->Dim(MAKERGB(200,245,255), 0.125f, col1 - 12*FontScale, y - 1, col5 + (maxnamewidth + 24)*FontScale, height + 2);
|
||||
}
|
||||
|
||||
col2 += col1;
|
||||
|
@ -419,8 +422,7 @@ static void HU_DrawPlayer (player_t *player, bool highlight, int col1, int col2,
|
|||
HU_DrawColorBar(col1, y, height, (int)(player - players));
|
||||
mysnprintf (str, countof(str), "%d", deathmatch ? player->fragcount : player->killcount);
|
||||
|
||||
screen->DrawText (SmallFont, color, col2, y + ypadding, player->playerstate == PST_DEAD && !deathmatch ? "DEAD" : str,
|
||||
DTA_CleanNoMove, true, TAG_DONE);
|
||||
HU_DrawFontScaled(col2, y + ypadding, color, player->playerstate == PST_DEAD && !deathmatch ? "DEAD" : str);
|
||||
|
||||
auto icon = FSetTextureID(player->mo->IntVar(NAME_ScoreIcon));
|
||||
if (icon.isValid())
|
||||
|
@ -431,8 +433,7 @@ static void HU_DrawPlayer (player_t *player, bool highlight, int col1, int col2,
|
|||
TAG_DONE);
|
||||
}
|
||||
|
||||
screen->DrawText (SmallFont, color, col4, y + ypadding, player->userinfo.GetName(),
|
||||
DTA_CleanNoMove, true, TAG_DONE);
|
||||
HU_DrawFontScaled(col4, y + ypadding, color, player->userinfo.GetName());
|
||||
|
||||
int avgdelay = 0;
|
||||
for (int i = 0; i < BACKUPTICS; i++)
|
||||
|
@ -443,8 +444,7 @@ static void HU_DrawPlayer (player_t *player, bool highlight, int col1, int col2,
|
|||
|
||||
mysnprintf(str, countof(str), "%d", (avgdelay * ticdup) * (1000 / TICRATE));
|
||||
|
||||
screen->DrawText(SmallFont, color, col5, y + ypadding, str,
|
||||
DTA_CleanNoMove, true, TAG_DONE);
|
||||
HU_DrawFontScaled(col5, y + ypadding, color, str);
|
||||
|
||||
if (teamplay && Teams[player->userinfo.GetTeam()].GetLogo().IsNotEmpty ())
|
||||
{
|
||||
|
@ -467,7 +467,10 @@ void HU_DrawColorBar(int x, int y, int height, int playernum)
|
|||
D_GetPlayerColor (playernum, &h, &s, &v, NULL);
|
||||
HSVtoRGB (&r, &g, &b, h, s, v);
|
||||
|
||||
screen->Clear (x, y, x + 24*CleanXfac, y + height, -1,
|
||||
//float aspect = ActiveRatio(SCREENWIDTH, SCREENHEIGHT);
|
||||
//if (!AspectTallerThanWide(aspect)) x += (screen->GetWidth() - AspectBaseWidth(aspect)) / 2;
|
||||
|
||||
screen->Clear (x, y, x + 24*FontScale, y + height, -1,
|
||||
MAKEARGB(255,clamp(int(r*255.f),0,255),
|
||||
clamp(int(g*255.f),0,255),
|
||||
clamp(int(b*255.f),0,255)));
|
||||
|
|
|
@ -65,7 +65,7 @@ const char *GetVersionString();
|
|||
// Version stored in the ini's [LastRun] section.
|
||||
// Bump it if you made some configuration change that you want to
|
||||
// be able to migrate in FGameConfigFile::DoGlobalSetup().
|
||||
#define LASTRUNVERSION "217"
|
||||
#define LASTRUNVERSION "218"
|
||||
|
||||
// Protocol version used in demos.
|
||||
// Bump it if you change existing DEM_ commands or add new ones.
|
||||
|
|
|
@ -1,162 +0,0 @@
|
|||
BAR1A0, 10, 32, iwad
|
||||
BAR1B0, 10, 32, iwad
|
||||
BEXPA0, 10, 32, iwad
|
||||
BEXPB0, 10, 31, iwad
|
||||
BEXPC0, 19, 36, iwad
|
||||
BEXPD0, 27, 49, iwad
|
||||
BEXPE0, 29, 52, iwad
|
||||
BOS2I0, 20, 71, iwad
|
||||
BOS2J0, 26, 62, iwad
|
||||
BOS2K0, 26, 52, iwad
|
||||
BOS2L0, 29, 33, iwad
|
||||
BOS2M0, 30, 29, iwad
|
||||
BOS2N0, 30, 29, iwad
|
||||
BOS2O0, 30, 29, iwad
|
||||
BOSSI0, 20, 72, iwad
|
||||
BOSSJ0, 26, 63, iwad
|
||||
BOSSK0, 26, 51, iwad
|
||||
BOSSL0, 29, 33, iwad
|
||||
BOSSM0, 30, 29, iwad
|
||||
BOSSN0, 30, 29, iwad
|
||||
BOSSO0, 30, 29, iwad
|
||||
BRS1A0, 13, 8, iwad
|
||||
BSPIJ0, 50, 54, iwad
|
||||
BSPIK0, 50, 57, iwad
|
||||
BSPIL0, 47, 52, iwad
|
||||
BSPIM0, 45, 44, iwad
|
||||
BSPIN0, 45, 42, iwad
|
||||
BSPIO0, 45, 30, iwad
|
||||
BSPIP0, 45, 28, iwad
|
||||
CBRAA0, 15, 60, iwad
|
||||
CEYEA0, 21, 59, iwad
|
||||
CEYEB0, 21, 58, iwad
|
||||
CEYEC0, 21, 59, iwad
|
||||
COL1A0, 16, 51, iwad
|
||||
COL2A0, 16, 39, iwad
|
||||
COL3A0, 16, 52, iwad
|
||||
COL4A0, 17, 39, iwad
|
||||
COL5A0, 16, 44, iwad
|
||||
COL5B0, 16, 45, iwad
|
||||
COL6A0, 17, 47, iwad
|
||||
COLUA0, 9, 45, iwad
|
||||
CPOSH0, 20, 61, iwad
|
||||
CPOSI0, 23, 64, iwad
|
||||
CPOSJ0, 28, 59, iwad
|
||||
CPOSK0, 30, 48, iwad
|
||||
CPOSL0, 31, 34, iwad
|
||||
CPOSM0, 32, 22, iwad
|
||||
CPOSN0, 32, 18, iwad
|
||||
CPOSO0, 26, 59, iwad
|
||||
CPOSP0, 28, 59, iwad
|
||||
CPOSQ0, 30, 48, iwad
|
||||
CPOSR0, 32, 40, iwad
|
||||
CPOSS0, 32, 31, iwad
|
||||
CPOST0, 32, 19, iwad
|
||||
CYBRH0, 60, 108, iwad
|
||||
CYBRI0, 55, 110, iwad
|
||||
CYBRJ0, 49, 113, iwad
|
||||
CYBRK0, 56, 114, iwad
|
||||
CYBRL0, 62, 121, iwad
|
||||
CYBRM0, 67, 128, iwad
|
||||
CYBRN0, 70, 132, iwad
|
||||
CYBRO0, 69, 132, iwad
|
||||
CYBRP0, 60, 28, iwad
|
||||
ELECA0, 19, 125, iwad
|
||||
FATTO0, 35, 43, iwad
|
||||
FATTP0, 36, 41, iwad
|
||||
FATTQ0, 36, 40, iwad
|
||||
FATTR0, 36, 40, iwad
|
||||
FATTS0, 36, 40, iwad
|
||||
FATTT0, 36, 39, iwad
|
||||
FCANA0, 19, 52, iwad
|
||||
FCANB0, 19, 52, iwad
|
||||
FCANC0, 19, 50, iwad
|
||||
PLAYH0, 16, 50, iwad
|
||||
PLAYI0, 11, 42, iwad
|
||||
PLAYJ0, 12, 45, iwad
|
||||
PLAYK0, 17, 37, iwad
|
||||
PLAYL0, 27, 14, iwad
|
||||
PLAYM0, 27, 14, iwad
|
||||
PLAYN0, 27, 14, iwad
|
||||
POB1A0, 16, 6, iwad
|
||||
POB2A0, 14, 3, iwad
|
||||
POL1A0, 22, 65, iwad
|
||||
POL2A0, 19, 66, iwad
|
||||
POL3A0, 19, 42, iwad
|
||||
POL3B0, 19, 42, iwad
|
||||
POL4A0, 19, 55, iwad
|
||||
POL5A0, 27, 8, iwad
|
||||
POL6A0, 17, 65, iwad
|
||||
POL6B0, 19, 65, iwad
|
||||
POSSH0, 19, 55, iwad
|
||||
POSSL0, 22, 14, iwad
|
||||
SARGI0, 25, 56, iwad
|
||||
SARGM0, 33, 43, iwad
|
||||
SARGN0, 33, 29, iwad
|
||||
SKELM0, 27, 78, iwad
|
||||
SKELN0, 38, 69, iwad
|
||||
SKELO0, 28, 55, iwad
|
||||
SKELP0, 28, 35, iwad
|
||||
SKELQ0, 40, 20, iwad
|
||||
SMITA0, 22, 44, iwad
|
||||
SPIDJ0, 79, 102, iwad
|
||||
SPIDK0, 95, 95, iwad
|
||||
SPIDL0, 94, 88, iwad
|
||||
SPIDM0, 94, 76, iwad
|
||||
SPIDN0, 98, 71, iwad
|
||||
SPIDO0, 101, 68, iwad
|
||||
SPIDP0, 104, 85, iwad
|
||||
SPIDQ0, 109, 90, iwad
|
||||
SPIDR0, 110, 111, iwad
|
||||
SPIDS0, 98, 35, iwad
|
||||
SPOSH0, 14, 60, iwad
|
||||
SPOSL0, 24, 15, iwad
|
||||
SSWVI0, 18, 54, iwad
|
||||
SSWVJ0, 15, 44, iwad
|
||||
SSWVK0, 15, 40, iwad
|
||||
SSWVL0, 15, 25, iwad
|
||||
SSWVM0, 24, 13, iwad
|
||||
SSWVN0, 15, 57, iwad
|
||||
SSWVO0, 22, 59, iwad
|
||||
SSWVP0, 25, 58, iwad
|
||||
TBLUA0, 14, 94, iwad
|
||||
TBLUB0, 14, 94, iwad
|
||||
TBLUC0, 14, 94, iwad
|
||||
TBLUD0, 14, 95, iwad
|
||||
TGRNA0, 14, 94, iwad
|
||||
TGRNB0, 14, 89, iwad
|
||||
TGRNC0, 14, 89, iwad
|
||||
TGRND0, 14, 95, iwad
|
||||
TLMPA0, 11, 78, iwad
|
||||
TLMPB0, 11, 78, iwad
|
||||
TLMPC0, 11, 78, iwad
|
||||
TLMPD0, 11, 78, iwad
|
||||
TLP2A0, 10, 58, iwad
|
||||
TLP2B0, 10, 58, iwad
|
||||
TLP2C0, 10, 58, iwad
|
||||
TLP2D0, 10, 58, iwad
|
||||
TRE1A0, 25, 67, iwad
|
||||
TREDA0, 14, 94, iwad
|
||||
TREDB0, 14, 89, iwad
|
||||
TREDC0, 14, 89, iwad
|
||||
TREDD0, 14, 95, iwad
|
||||
TROOI0, 22, 62, iwad
|
||||
TROOJ0, 21, 59, iwad
|
||||
TROOM0, 29, 20, iwad
|
||||
TROON0, 24, 59, iwad
|
||||
TROOO0, 20, 61, iwad
|
||||
TROOP0, 24, 61, iwad
|
||||
TROOQ0, 24, 61, iwad
|
||||
TROOR0, 24, 44, iwad
|
||||
TROOS0, 27, 34, iwad
|
||||
TROOT0, 27, 31, iwad
|
||||
TROOU0, 27, 18, iwad
|
||||
VILER0, 18, 80, iwad
|
||||
VILES0, 23, 76, iwad
|
||||
VILET0, 27, 69, iwad
|
||||
VILEU0, 35, 56, iwad
|
||||
VILEV0, 34, 45, iwad
|
||||
VILEW0, 34, 35, iwad
|
||||
VILEX0, 34, 23, iwad
|
||||
VILEY0, 34, 20, iwad
|
||||
VILEZ0, 34, 20, iwad
|
|
@ -307,7 +307,7 @@ IWad
|
|||
IWad
|
||||
{
|
||||
Name = "DOOM: BFG Edition"
|
||||
Autoname = "doom.doom1.bfg"
|
||||
Autoname = "doom.id.doom1.bfg"
|
||||
Game = "Doom"
|
||||
Config = "Doom"
|
||||
IWADName = "doom.wad", 2
|
||||
|
@ -324,7 +324,7 @@ IWad
|
|||
IWad
|
||||
{
|
||||
Name = "DOOM: Complete: WadSmoosh"
|
||||
Autoname = "doom.doom2.wadsmoosh"
|
||||
Autoname = "doom.id.doom2.wadsmoosh"
|
||||
Game = "Doom"
|
||||
Config = "Doom"
|
||||
Mapinfo = "mapinfo/doom2.txt"
|
||||
|
@ -337,7 +337,7 @@ IWad
|
|||
IWad
|
||||
{
|
||||
Name = "The Ultimate DOOM"
|
||||
Autoname = "doom.doom1.ultimate"
|
||||
Autoname = "doom.id.doom1.ultimate"
|
||||
Game = "Doom"
|
||||
Config = "Doom"
|
||||
IWADName = "doom.wad"
|
||||
|
@ -353,7 +353,7 @@ IWad
|
|||
IWad
|
||||
{
|
||||
Name = "DOOM Registered"
|
||||
Autoname = "doom.doom1.registered"
|
||||
Autoname = "doom.id.doom1.registered"
|
||||
Game = "Doom"
|
||||
Config = "Doom"
|
||||
IWADName = "doom.wad", 1
|
||||
|
@ -381,7 +381,7 @@ IWad
|
|||
IWad
|
||||
{
|
||||
Name = "Final Doom: TNT - Evilution"
|
||||
Autoname = "doom.doom2.tnt"
|
||||
Autoname = "doom.id.doom2.tnt"
|
||||
Game = "Doom"
|
||||
Config = "Doom"
|
||||
IWADName = "tnt.wad"
|
||||
|
@ -395,7 +395,7 @@ IWad
|
|||
IWad
|
||||
{
|
||||
Name = "Final Doom: Plutonia Experiment"
|
||||
Autoname = "doom.doom2.plutonia"
|
||||
Autoname = "doom.id.doom2.plutonia"
|
||||
Game = "Doom"
|
||||
Config = "Doom"
|
||||
IWADName = "plutonia.wad"
|
||||
|
@ -409,7 +409,7 @@ IWad
|
|||
IWad
|
||||
{
|
||||
Name = "DOOM 2: BFG Edition"
|
||||
Autoname = "doom.doom2.bfg"
|
||||
Autoname = "doom.id.doom2.bfg"
|
||||
Game = "Doom"
|
||||
Config = "Doom"
|
||||
IWADName = "doom2.wad"
|
||||
|
@ -425,7 +425,7 @@ IWad
|
|||
IWad
|
||||
{
|
||||
Name = "DOOM 2: Hell on Earth"
|
||||
Autoname = "doom.doom2.commercial"
|
||||
Autoname = "doom.id.doom2.commercial"
|
||||
Game = "Doom"
|
||||
Config = "Doom"
|
||||
IWADName = "doom2.wad", 1
|
||||
|
|
|
@ -41,7 +41,7 @@ class os_SearchField : OptionMenuItemTextField
|
|||
override String Represent()
|
||||
{
|
||||
return mEnter
|
||||
? mEnter.GetText() .. SmallFont.GetCursor()
|
||||
? mEnter.GetText() .. NewSmallFont.GetCursor()
|
||||
: mText;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ class CoopStatusScreen : StatusScreen
|
|||
acceleratestage = 0;
|
||||
ng_state = 1;
|
||||
displayFont = NewSmallFont;
|
||||
FontScale = max(screen.GetHeight() / 480, 1);
|
||||
FontScale = max(screen.GetHeight() / 400, 1);
|
||||
RowHeight = int(max((displayFont.GetHeight() + 1) * FontScale, 1));
|
||||
|
||||
cnt_pause = Thinker.TICRATE;
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
class DeathmatchStatusScreen : StatusScreen
|
||||
{
|
||||
int textcolor;
|
||||
double FontScale;
|
||||
int RowHeight;
|
||||
Font displayFont;
|
||||
|
||||
//====================================================================
|
||||
//
|
||||
|
@ -13,10 +16,14 @@ class DeathmatchStatusScreen : StatusScreen
|
|||
{
|
||||
int i, j;
|
||||
|
||||
textcolor = (gameinfo.gametype & GAME_Raven) ? Font.CR_GREEN : Font.CR_UNTRANSLATED;
|
||||
|
||||
textcolor = Font.CR_GRAY;
|
||||
|
||||
CurState = StatCount;
|
||||
acceleratestage = 0;
|
||||
displayFont = NewSmallFont;
|
||||
FontScale = max(screen.GetHeight() / 400, 1);
|
||||
RowHeight = max((displayFont.GetHeight() + 1) * FontScale, 1);
|
||||
|
||||
for(i = 0; i < MAXPLAYERS; i++)
|
||||
{
|
||||
playerready[i] = false;
|
||||
|
@ -160,7 +167,7 @@ class DeathmatchStatusScreen : StatusScreen
|
|||
Vector2 readyoffset = TexMan.GetScaledOffset(readyico);
|
||||
height = int(readysize.Y - readyoffset.Y);
|
||||
maxiconheight = MAX(height, maxiconheight);
|
||||
height = SmallFont.GetHeight() * CleanYfac;
|
||||
height = displayFont.GetHeight() * FontScale;
|
||||
lineheight = MAX(height, maxiconheight * CleanYfac);
|
||||
ypadding = (lineheight - height + 1) / 2;
|
||||
y += CleanYfac;
|
||||
|
@ -169,22 +176,22 @@ class DeathmatchStatusScreen : StatusScreen
|
|||
//text_color = Stringtable.Localize("$SCORE_COLOR");
|
||||
text_frags = Stringtable.Localize("$SCORE_FRAGS");
|
||||
|
||||
icon_x = 8 * CleanXfac;
|
||||
name_x = icon_x + maxscorewidth * CleanXfac;
|
||||
frags_x = name_x + (maxnamewidth + MAX(SmallFont.StringWidth("XXXXX"), SmallFont.StringWidth(text_frags)) + 8) * CleanXfac;
|
||||
deaths_x = frags_x + ((deaths_len = SmallFont.StringWidth(text_deaths)) + 8) * CleanXfac;
|
||||
|
||||
icon_x = 8 * FontScale;
|
||||
name_x = icon_x + maxscorewidth * FontScale;
|
||||
frags_x = name_x + (maxnamewidth + 1 + MAX(displayFont.StringWidth("XXXXXXXXXX"), displayFont.StringWidth(text_frags)) + 16) * FontScale;
|
||||
deaths_x = frags_x + ((deaths_len = displayFont.StringWidth(text_deaths)) + 16) * FontScale;
|
||||
|
||||
x = (Screen.GetWidth() - deaths_x) >> 1;
|
||||
icon_x += x;
|
||||
name_x += x;
|
||||
frags_x += x;
|
||||
deaths_x += x;
|
||||
|
||||
screen.DrawText(SmallFont, textcolor, name_x, y, Stringtable.Localize("$SCORE_NAME"), DTA_CleanNoMove, true);
|
||||
screen.DrawText(SmallFont, textcolor, frags_x - SmallFont.StringWidth(text_frags) * CleanXfac, y, text_frags, DTA_CleanNoMove, true);
|
||||
screen.DrawText(SmallFont, textcolor, deaths_x - deaths_len * CleanXfac, y, text_deaths, DTA_CleanNoMove, true);
|
||||
y += height + 6 * CleanYfac;
|
||||
|
||||
drawTextScaled(displayFont, name_x, y, Stringtable.Localize("$SCORE_NAME"), FontScale, textcolor);
|
||||
drawTextScaled(displayFont, frags_x - displayFont.StringWidth(text_frags) * FontScale, y, text_frags, FontScale, textcolor);
|
||||
drawTextScaled(displayFont, deaths_x - deaths_len * FontScale, y, text_deaths, FontScale, textcolor);
|
||||
y += height + 6 * FontScale;
|
||||
|
||||
// Sort all players
|
||||
Array<int> sortedplayers;
|
||||
GetSortedPlayers(sortedplayers, teamplay);
|
||||
|
@ -208,22 +215,25 @@ class DeathmatchStatusScreen : StatusScreen
|
|||
{
|
||||
screen.DrawTexture(player.mo.ScoreIcon, true, icon_x, y, DTA_CleanNoMove, true);
|
||||
}
|
||||
screen.DrawText(SmallFont, thiscolor, name_x, y + ypadding, player.GetUserName(), DTA_CleanNoMove, true);
|
||||
drawNum(SmallFont, frags_x, y + ypadding, cnt_frags[pnum], 0, false, thiscolor, true);
|
||||
|
||||
drawTextScaled(displayFont, name_x, y + ypadding, player.GetUserName(), FontScale, thiscolor);
|
||||
drawNumScaled(displayFont, frags_x, y + ypadding, FontScale, cnt_frags[pnum], 0, textcolor);
|
||||
|
||||
if (ng_state >= 2)
|
||||
{
|
||||
drawNum(SmallFont, deaths_x, y + ypadding, cnt_deaths[pnum], 0, false, thiscolor, true);
|
||||
drawNumScaled(displayFont, deaths_x, y + ypadding, FontScale, cnt_deaths[pnum], 0, textcolor);
|
||||
}
|
||||
y += lineheight + CleanYfac;
|
||||
}
|
||||
|
||||
// Draw "TOTAL" line
|
||||
y += height + 3 * CleanYfac;
|
||||
screen.DrawText(SmallFont, textcolor, name_x, y, Stringtable.Localize("$SCORE_TOTAL"), DTA_CleanNoMove, true);
|
||||
drawNum(SmallFont, frags_x, y, total_frags, 0, false, textcolor, true);
|
||||
drawTextScaled(displayFont, name_x, y, Stringtable.Localize("$SCORE_TOTAL"), FontScale, textcolor);
|
||||
drawNumScaled(displayFont, frags_x, y, FontScale, total_frags, 0, textcolor);
|
||||
|
||||
if (ng_state >= 4)
|
||||
{
|
||||
drawNum(SmallFont, deaths_x, y, total_deaths, 0, false, textcolor, true);
|
||||
drawNumScaled(displayFont, deaths_x, y, FontScale, total_deaths, 0, textcolor);
|
||||
}
|
||||
|
||||
// Draw game time
|
||||
|
@ -235,7 +245,6 @@ class DeathmatchStatusScreen : StatusScreen
|
|||
seconds = seconds % 60;
|
||||
|
||||
String leveltime = Stringtable.Localize("$SCORE_LVLTIME") .. ": " .. String.Format("%02i:%02i:%02i", hours, minutes, seconds);
|
||||
|
||||
screen.DrawText(SmallFont, textcolor, x, y, leveltime, DTA_CleanNoMove, true);
|
||||
drawTextScaled(displayFont, x, y, leveltime, FontScale, textcolor);
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/0108.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/0108.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/011C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/011C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/0124.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/0124.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/0134.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/0134.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/015C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/015C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/016C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigfont/016C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0108.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0108.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0109.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0109.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/011C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/011C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/011D.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/011D.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0124.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0124.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0125.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0125.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0134.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0134.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0135.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/0135.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/015C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/015C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/015D.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/015D.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/016C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/016C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/016D.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/bigupper/016D.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0108.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0108.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/011C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/011C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0124.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0124.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0134.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0134.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/015C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/015C.lmp
Normal file
Binary file not shown.
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/016C.lmp
Normal file
BIN
wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/016C.lmp
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue