# Conflicts:
#	src/gamedata/gi.cpp
#	src/gamedata/gi.h
#	wadsrc/static/mapinfo/chex.txt
#	wadsrc/static/mapinfo/doomcommon.txt
#	wadsrc/static/mapinfo/heretic.txt
#	wadsrc/static/mapinfo/hexen.txt
#	wadsrc/static/mapinfo/mindefaults.txt
#	wadsrc/static/mapinfo/strife.txt
#	wadsrc/static/zscript/base.zs
This commit is contained in:
Rachael Alexanderson 2019-08-05 21:09:21 -04:00
commit c63ce8a6ec
20 changed files with 163 additions and 58 deletions

View file

@ -134,6 +134,7 @@ void G_LeavingHub(FLevelLocals *Level, int mode, cluster_info_t * cluster, wbsta
else
{
wbs->thisname = cluster->ClusterName;
wbs->thisauthor = "";
}
wbs->LName0.SetInvalid(); // The level's own name was just invalidated, and so was its name patch.
}

View file

@ -814,6 +814,7 @@ bool FLevelLocals::DoCompleted (FString nextlevel, wbstartstruct_t &wminfo)
wminfo.finished_ep = cluster - 1;
wminfo.LName0 = TexMan.CheckForTexture(info->PName, ETextureType::MiscPatch);
wminfo.thisname = info->LookupLevelName(&langtable[0]); // re-get the name so we have more info about its origin.
wminfo.thisauthor = info->AuthorName;
wminfo.current = MapName;
if (deathmatch &&
@ -823,6 +824,7 @@ bool FLevelLocals::DoCompleted (FString nextlevel, wbstartstruct_t &wminfo)
wminfo.next = MapName;
wminfo.LName1 = wminfo.LName0;
wminfo.nextname = wminfo.thisname;
wminfo.nextauthor = wminfo.thisauthor;
}
else
{
@ -832,12 +834,14 @@ bool FLevelLocals::DoCompleted (FString nextlevel, wbstartstruct_t &wminfo)
wminfo.next = "";
wminfo.LName1.SetInvalid();
wminfo.nextname = "";
wminfo.nextauthor = "";
}
else
{
wminfo.next = nextinfo->MapName;
wminfo.LName1 = TexMan.CheckForTexture(nextinfo->PName, ETextureType::MiscPatch);
wminfo.nextname = nextinfo->LookupLevelName(&langtable[1]);
wminfo.nextauthor = nextinfo->AuthorName;
}
}
@ -1611,6 +1615,7 @@ void FLevelLocals::Init()
NextMap = info->NextMap;
NextSecretMap = info->NextSecretMap;
F1Pic = info->F1Pic;
AuthorName = info->AuthorName;
hazardcolor = info->hazardcolor;
hazardflash = info->hazardflash;

View file

@ -512,6 +512,7 @@ public:
FString MapName; // the lump name (E1M1, MAP01, etc)
FString NextMap; // go here when using the regular exit
FString NextSecretMap; // map to go to when used secret exit
FString AuthorName;
FString F1Pic;
FTranslator *Translator;
EMapType maptype;

View file

@ -241,6 +241,7 @@ void level_info_t::Reset()
flags3 = 0;
Music = "";
LevelName = "";
AuthorName = "";
FadeTable = "COLORMAP";
WallHorizLight = -8;
WallVertLight = +8;
@ -922,6 +923,13 @@ DEFINE_MAP_OPTION(next, true)
parse.ParseNextMap(info->NextMap);
}
DEFINE_MAP_OPTION(author, true)
{
parse.ParseAssign();
parse.sc.MustGetString();
info->AuthorName = parse.sc.String;
}
DEFINE_MAP_OPTION(secretnext, true)
{
parse.ParseAssign();

View file

@ -323,6 +323,7 @@ struct level_info_t
FString Music;
FString LevelName;
FString AuthorName;
int8_t WallVertLight, WallHorizLight;
int musicorder;
FCompressedBuffer Snapshot;

View file

@ -59,6 +59,8 @@ DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mBackButton)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mStatscreenMapNameFont)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mStatscreenEnteringFont)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mStatscreenFinishedFont)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mStatscreenContentFont)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mStatscreenAuthorFont)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, gibfactor)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, intermissioncounter)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, statusscreen_single)
@ -425,6 +427,8 @@ void FMapInfoParser::ParseGameInfo()
GAMEINFOKEY_FONT(mStatscreenMapNameFont, "statscreen_mapnamefont")
GAMEINFOKEY_FONT(mStatscreenFinishedFont, "statscreen_finishedfont")
GAMEINFOKEY_FONT(mStatscreenEnteringFont, "statscreen_enteringfont")
GAMEINFOKEY_FONT(mStatscreenContentFont, "statscreen_contentfont")
GAMEINFOKEY_FONT(mStatscreenAuthorFont, "statscreen_authorfont")
GAMEINFOKEY_BOOL(norandomplayerclass, "norandomplayerclass")
GAMEINFOKEY_BOOL(forcekillscripts, "forcekillscripts") // [JM] Force kill scripts on thing death. (MF7_NOKILLSCRIPTS overrides.)
GAMEINFOKEY_STRING(Dialogue, "dialogue")

View file

@ -191,6 +191,8 @@ struct gameinfo_t
FGIFont mStatscreenMapNameFont;
FGIFont mStatscreenFinishedFont;
FGIFont mStatscreenEnteringFont;
FGIFont mStatscreenContentFont;
FGIFont mStatscreenAuthorFont;
bool norandomplayerclass;
bool forcekillscripts;
FName statusscreen_single;

View file

@ -3116,6 +3116,7 @@ DEFINE_FIELD(FLevelLocals, MapName)
DEFINE_FIELD(FLevelLocals, NextMap)
DEFINE_FIELD(FLevelLocals, NextSecretMap)
DEFINE_FIELD(FLevelLocals, F1Pic)
DEFINE_FIELD(FLevelLocals, AuthorName)
DEFINE_FIELD(FLevelLocals, maptype)
DEFINE_FIELD(FLevelLocals, Music)
DEFINE_FIELD(FLevelLocals, musicorder)

View file

@ -860,6 +860,8 @@ DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, current);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, next);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, nextname);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, thisname);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, nextauthor);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, thisauthor);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, LName0);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, LName1);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, maxkills);

View file

@ -56,6 +56,8 @@ struct wbstartstruct_t
FString next; // next level, [RH] actual map name
FString nextname; // printable name for next level.
FString thisname; // printable name for next level.
FString nextauthor; // printable name for next level.
FString thisauthor; // printable name for next level.
FTextureID LName0;
FTextureID LName1;

View file

@ -65,8 +65,10 @@ gameinfo
defaultendsequence = "Inter_Pic1"
maparrow = "maparrows/arrow.txt", "maparrows/ddtarrow.txt"
statscreen_mapnamefont = "*BigFont"
statscreen_finishedfont = "*BigFont", "green"
statscreen_enteringfont = "*BigFont", "green"
statscreen_finishedfont = "*BigFont"
statscreen_enteringfont = "*BigFont"
statscreen_contentfont = "*BigFont"
statscreen_authorFont = "*SmallFont", "gray"
statscreen_coop = "CoopStatusScreen"
statscreen_dm = "DeathmatchStatusScreen"
statscreen_single = "DoomStatusScreen"
@ -256,6 +258,7 @@ map E1M5 lookup "CHUSTR_E1M5"
cluster = 1
par = 165
music = "$MUSIC_E1M5"
needclustertext
}
// Clusters (correspond with same-numbered episode)

View file

@ -67,6 +67,9 @@ gameinfo
statscreen_mapnamefont = "*BigFont"
statscreen_finishedfont = "*BigFont", "red"
statscreen_enteringfont = "*BigFont", "red"
statscreen_contentfont = "*BigFont", "red"
statscreen_authorFont = "*SmallFont", "brick"
statscreen_coop = "CoopStatusScreen"
statscreen_dm = "DeathmatchStatusScreen"
statscreen_single = "DoomStatusScreen"

View file

@ -66,6 +66,8 @@ gameinfo
statscreen_mapnamefont = "*BigFont"
statscreen_finishedfont = "*SmallFont"
statscreen_enteringfont = "*SmallFont"
statscreen_contentfont = "*BigFont"
statscreen_authorFont = "*SmallFont"
statscreen_coop = "CoopStatusScreen"
statscreen_dm = "DeathmatchStatusScreen"
statscreen_single = "RavenStatusScreen"
@ -421,6 +423,7 @@ map E1M8 lookup "HHUSTR_E1M8"
ironlichspecial
specialaction_lowerfloortohighest
music = "MUS_E1M8"
needclustertext
}
map E1M9 lookup "HHUSTR_E1M9"
@ -508,6 +511,7 @@ map E2M8 lookup "HHUSTR_E2M8"
specialaction_lowerfloortohighest
specialaction_killmonsters
music = "MUS_E2M8"
needclustertext
}
map E2M9 lookup "HHUSTR_E2M9"
@ -595,6 +599,7 @@ map E3M8 lookup "HHUSTR_E3M8"
specialaction_lowerfloortohighest
specialaction_killmonsters
music = "MUS_E1M9"
needclustertext
}
map E3M9 lookup "HHUSTR_E3M9"
@ -682,6 +687,7 @@ map E4M8 lookup "HHUSTR_E4M8"
specialaction_lowerfloortohighest
specialaction_killmonsters
music = "MUS_E1M8"
needclustertext
}
map E4M9 lookup "HHUSTR_E4M9"
@ -769,6 +775,7 @@ map E5M8 lookup "HHUSTR_E5M8"
specialaction_killmonsters
specialaction_lowerfloortohighest
music = "MUS_E2M8"
needclustertext
}
map E5M9 lookup "HHUSTR_E5M9"

View file

@ -64,6 +64,8 @@ gameinfo
statscreen_mapnamefont = "*BigFont"
statscreen_finishedfont = "*SmallFont"
statscreen_enteringfont = "*SmallFont"
statscreen_contentfont = "*BigFont"
statscreen_authorFont = "*SmallFont"
statscreen_coop = "CoopStatusScreen"
statscreen_dm = "DeathmatchStatusScreen"
statscreen_single = "RavenStatusScreen"

View file

@ -57,6 +57,8 @@ gameinfo
statscreen_mapnamefont = "*BigFont"
statscreen_finishedfont = "*BigFont"
statscreen_enteringfont = "*BigFont"
statscreen_contentfont = "*BigFont"
statscreen_authorFont = "*SmallFont"
messageboxclass = "MessageBoxMenu"
}

View file

@ -65,6 +65,8 @@ gameinfo
statscreen_mapnamefont = "*BigFont"
statscreen_finishedfont = "*BigFont", "white"
statscreen_enteringfont = "*BigFont", "white"
statscreen_contentfont = "*BigFont"
statscreen_authorFont = "*SmallFont"
statscreen_coop = "CoopStatusScreen"
statscreen_dm = "DeathmatchStatusScreen"
statscreen_single = "RavenStatusScreen"

View file

@ -2619,83 +2619,83 @@ OptionMenu "ReverbEdit" protected
StaticTextSwitchable "", "", "EvironmentName", 1
StaticTextSwitchable "", "", "EvironmentID"
StaticText " "
Submenu "Select Environment", "ReverbSelect"
Option "Test Environment", "eaxedit_test", OnOff
Submenu "$REVMNU_SELECT", "ReverbSelect"
Option "$REVMNU_TEST", "eaxedit_test", OnOff
StaticText " "
Submenu "New Environment", "ReverbNew"
Submenu "Save Environments", "ReverbSave"
Submenu "Edit Environment", "ReverbSettings"
Submenu "$REVMNU_NEW", "ReverbNew"
Submenu "$REVMNU_SAVE", "ReverbSave"
Submenu "$REVMNU_EDIT", "ReverbSettings"
}
OptionMenu "ReverbSelect" protected
{
Class "ReverbSelect"
Title "Select Environment"
Title "$REVMNU_SELECT"
// filled in by code
}
OptionMenu "ReverbSettings" protected
{
Title "Edit Reverb Environment"
SafeCommand "Revert settings", "revertenvironment"
Title "$REVMNU_EDIT"
SafeCommand "$REVMNU_REVERT", "revertenvironment"
StaticText " "
SliderReverbEditOption "Environment Size", 1, 100, 0.01, 3, 1
SliderReverbEditOption "Environment Diffusion", 0, 1, 0.01, 3, 2
SliderReverbEditOption "Room", -10000, 0, 1, 0, 3
SliderReverbEditOption "Room HF", -10000, 0, 1, 0, 4
SliderReverbEditOption "Room LF", -10000, 0, 1, 0, 5
SliderReverbEditOption "Decay Time", 1, 200, 0.01, 3, 6
SliderReverbEditOption "Decay HF Ratio", 1, 20, 0.01, 3, 7
SliderReverbEditOption "Decay LF Ratio", 1, 20, 0.01, 3, 8
SliderReverbEditOption "Reflections", -10000, 1000, 1, 0, 9
SliderReverbEditOption "Reflections Delay", 0, 0.3, 1, 3, 10
SliderReverbEditOption "Reflections Pan X", -2000, 2000, 1, 3, 11
SliderReverbEditOption "Reflections Pan Y", -2000, 2000, 1, 3, 12
SliderReverbEditOption "Reflections Pan Z", -2000, 2000, 1, 3, 13
SliderReverbEditOption "Reverb", -10000, 2000, 1, 0, 14
SliderReverbEditOption "Reverb Delay", 0, 0.1, 0.01, 3, 15
SliderReverbEditOption "Reverb Pan X", -2000, 2000, 1, 3, 16
SliderReverbEditOption "Reverb Pan Y", -2000, 2000, 1, 3, 17
SliderReverbEditOption "Reverb Pan Z", -2000, 2000, 1, 3, 18
SliderReverbEditOption "Echo Time", 0.075, 0.25, 0.005, 3, 19
SliderReverbEditOption "Echo Depth", 0, 1, 0.01, 3, 20
SliderReverbEditOption "Modulation Time", 0.04, 4, 0.01, 3, 21
SliderReverbEditOption "Modulation Depth",0, 1, 0.01, 3, 22
SliderReverbEditOption "Air Absorption HF", -100, 0, 0.01, 3, 23
SliderReverbEditOption "HF Reference", 10000, 200000, 1, 3, 24
SliderReverbEditOption "LF Reference",20, 10000, 0.1, 3, 25
SliderReverbEditOption "Room Rolloff Factor",0, 10, 0.01, 3, 26
SliderReverbEditOption "Diffusion",0, 100, 0.01, 3, 27
SliderReverbEditOption "Density",0, 100, 0.01, 3, 28
SliderReverbEditOption "$REVMNU_Environment_Size", 1, 100, 0.01, 3, 1
SliderReverbEditOption "$REVMNU_Environment_Diffusion", 0, 1, 0.01, 3, 2
SliderReverbEditOption "$REVMNU_Room", -10000, 0, 1, 0, 3
SliderReverbEditOption "$REVMNU_Room_HF", -10000, 0, 1, 0, 4
SliderReverbEditOption "$REVMNU_Room_LF", -10000, 0, 1, 0, 5
SliderReverbEditOption "$REVMNU_Decay_Time", 1, 200, 0.01, 3, 6
SliderReverbEditOption "$REVMNU_Decay_HF_Ratio", 1, 20, 0.01, 3, 7
SliderReverbEditOption "$REVMNU_Decay_LF_Ratio", 1, 20, 0.01, 3, 8
SliderReverbEditOption "$REVMNU_Reflections", -10000, 1000, 1, 0, 9
SliderReverbEditOption "$REVMNU_Reflections_Delay", 0, 0.3, 1, 3, 10
SliderReverbEditOption "$REVMNU_Reflections_Pan_X", -2000, 2000, 1, 3, 11
SliderReverbEditOption "$REVMNU_Reflections_Pan_Y", -2000, 2000, 1, 3, 12
SliderReverbEditOption "$REVMNU_Reflections_Pan_Z", -2000, 2000, 1, 3, 13
SliderReverbEditOption "$REVMNU_Reverb", -10000, 2000, 1, 0, 14
SliderReverbEditOption "$REVMNU_Reverb_Delay", 0, 0.1, 0.01, 3, 15
SliderReverbEditOption "$REVMNU_Reverb_Pan_X", -2000, 2000, 1, 3, 16
SliderReverbEditOption "$REVMNU_Reverb_Pan_Y", -2000, 2000, 1, 3, 17
SliderReverbEditOption "$REVMNU_Reverb_Pan_Z", -2000, 2000, 1, 3, 18
SliderReverbEditOption "$REVMNU_Echo_Time", 0.075, 0.25, 0.005, 3, 19
SliderReverbEditOption "$REVMNU_Echo_Depth", 0, 1, 0.01, 3, 20
SliderReverbEditOption "$REVMNU_Modulation_Time", 0.04, 4, 0.01, 3, 21
SliderReverbEditOption "$REVMNU_Modulation_Depth",0, 1, 0.01, 3, 22
SliderReverbEditOption "$REVMNU_Air Absorption_HF", -100, 0, 0.01, 3, 23
SliderReverbEditOption "$REVMNU_HF_Reference", 10000, 200000, 1, 3, 24
SliderReverbEditOption "$REVMNU_LF_Reference",20, 10000, 0.1, 3, 25
SliderReverbEditOption "$REVMNU_Room_Rolloff_Factor",0, 10, 0.01, 3, 26
SliderReverbEditOption "$REVMNU_Diffusion",0, 100, 0.01, 3, 27
SliderReverbEditOption "$REVMNU_Density",0, 100, 0.01, 3, 28
StaticText " "
ReverbOption "Reflections Scale", 29, OnOff
ReverbOption "Reflections Delay Scale", 30, OnOff
ReverbOption "Decay Time Scale", 31, OnOff
ReverbOption "Decay HF Limit", 32, OnOff
ReverbOption "Reverb Scale", 33, OnOff
ReverbOption "Reverb Delay Scale", 34, OnOff
ReverbOption "Echo Time Scale", 35, OnOff
ReverbOption "Modulation Time Scale", 36, OnOff
ReverbOption "$REVMNU_Reflections_Scale", 29, OnOff
ReverbOption "$REVMNU_Reflections_Delay_Scale", 30, OnOff
ReverbOption "$REVMNU_Decay_Time_Scale", 31, OnOff
ReverbOption "$REVMNU_Decay_HF_Limit", 32, OnOff
ReverbOption "$REVMNU_Reverb_Scale", 33, OnOff
ReverbOption "$REVMNU_Reverb_Delay_Scale", 34, OnOff
ReverbOption "$REVMNU_Echo_Time_Scale", 35, OnOff
ReverbOption "$REVMNU_Modulation_Time_Scale", 36, OnOff
}
OptionMenu "ReverbNew" protected
{
Title "New Reverb Environment"
ReverbSelect "Based on", "ReverbSelect"
TextField "Name", "reverbedit_name"
NumberField "ID #1", "reverbedit_id1", 0, 255
NumberField "ID #2", "reverbedit_id2", 0, 255
Command "Create", "createenvironment", 0, 1
Title "$REVMNU_NEW"
ReverbSelect "$REVMNU_Based_on", "ReverbSelect"
TextField "$REVMNU_Name", "reverbedit_name"
NumberField "$REVMNU_ID_1", "reverbedit_id1", 0, 255
NumberField "$REVMNU_ID_2", "reverbedit_id2", 0, 255
Command "$REVMNU_Create", "createenvironment", 0, 1
}
OptionMenu "ReverbSave" protected
{
Class "ReverbSave"
Title "Save Reverb Environments"
Command "Save...", "savereverbs"
TextField "File name", "reverbsavename"
Title "$REVMNU_SAVE"
Command "$REVMNU_Save", "savereverbs"
TextField "$REVMNU_File_name", "reverbsavename"
StaticText ""
StaticText "Environments to save"
StaticText "$REVMNU_Environments_to_save"
// Rest is filled in by code.
}
@ -2713,6 +2713,7 @@ OptionString "LanguageOptions"
"de", "Deutsch (German)"
"es", "Español (España) (Castilian Spanish)"
"esm", "Español (Latino) (Latin American Spanish)"
"fi", "Suomi (Finnish)"
"fr", "Français (French)"
"it", "Italiano (Italian)"
"jp", "日本語 (Japanese)"

View file

@ -193,6 +193,14 @@ enum DrawTextureTags
DTA_Monospace, // Strings only: Use a fixed distance between characters.
};
class Shape2DTransform : Object native
{
native void Clear();
native void Rotate(double angle);
native void Scale(Vector2 scaleVec);
native void Translate(Vector2 translateVec);
}
class Shape2D : Object native
{
enum EClearWhich
@ -202,6 +210,8 @@ class Shape2D : Object native
C_Indices = 4,
};
native void SetTransform(Shape2DTransform transform);
native void Clear( int which = C_Verts|C_Coords|C_Indices );
native void PushVertex( Vector2 v );
native void PushCoord( Vector2 c );
@ -313,6 +323,7 @@ struct Font native
native int GetMaxAscender(String code);
native bool CanPrint(String code);
native int GetHeight();
native int GetDisplacement();
native String GetCursor();
native static int FindFontColor(Name color);
@ -392,6 +403,8 @@ struct GameInfoStruct native
native GIFont mStatscreenMapNameFont;
native GIFont mStatscreenEnteringFont;
native GIFont mStatscreenFinishedFont;
native GIFont mStatscreenContentFont;
native GIFont mStatscreenAuthorFont;
native double gibfactor;
native bool intermissioncounter;
native Name mSliderColor;
@ -605,7 +618,7 @@ struct TraceResults native
native bool unlinked; // passed through a portal without static offset.
native ETraceResult HitType;
native F3DFloor ffloor;
// F3DFloor *ffloor;
native Sector CrossedWater; // For Boom-style, Transfer_Heights-based deep water
native vector3 CrossedWaterPos; // remember the position so that we can use it for spawning the splash
@ -673,6 +686,7 @@ struct LevelLocals native
native String NextSecretMap;
native readonly String F1Pic;
native readonly int maptype;
native readonly String AuthorName;
native readonly String Music;
native readonly int musicorder;
native readonly TextureID skytexture1;
@ -775,6 +789,8 @@ struct LevelLocals native
native play bool CreateCeiling(sector sec, int type, line ln, double speed, double speed2, double height = 0, int crush = -1, int silent = 0, int change = 0, int crushmode = 0 /*Floor.crushDoom*/);
native play bool CreateFloor(sector sec, int floortype, line ln, double speed, double height = 0, int crush = -1, int change = 0, bool crushmode = false, bool hereticlower = false);
native void ExitLevel(int position, bool keepFacing);
native void SecretExitLevel(int position);
}
struct StringTable native
@ -819,6 +835,10 @@ struct State native
native bool InStateSequence(State base);
}
struct F3DFloor native
{
}
struct Wads
{
enum WadNamespace

View file

@ -107,6 +107,7 @@ class StatusScreen abstract play version("2.5")
PatchInfo finished;
PatchInfo entering;
PatchInfo content;
PatchInfo author;
TextureID p_secret;
TextureID kills;
@ -120,6 +121,7 @@ class StatusScreen abstract play version("2.5")
// [RH] Info to dynamically generate the level name graphics
String lnametexts[2];
String authortexts[2];
bool snl_pointeron;
@ -181,6 +183,32 @@ class StatusScreen abstract play version("2.5")
return 0;
}
//====================================================================
//
// Draws a level author's name with the big font
//
//====================================================================
int DrawAuthor(int y, String levelname)
{
if (levelname.Length() > 0)
{
int h = 0;
int lumph = author.mFont.GetHeight() * CleanYfac;
BrokenLines lines = author.mFont.BreakLines(levelname, screen.GetWidth() / CleanXfac);
int count = lines.Count();
for (int i = 0; i < count; i++)
{
screen.DrawText(author.mFont, author.mColor, (screen.GetWidth() - lines.StringWidth(i) * CleanXfac) / 2, y + h, lines.StringAt(i), DTA_CleanNoMove, true);
h += lumph;
}
return y + h;
}
return 0;
}
//====================================================================
//
// Only kept so that mods that were accessing it continue to compile
@ -261,6 +289,8 @@ class StatusScreen abstract play version("2.5")
y += disp * CleanYfac;
}
if (!ispatch) y = DrawAuthor(y, authortexts[0]);
// draw "Finished!"
int statsy = multiplayer? NG_STATSY : SP_STATSY * CleanYFac;
@ -314,7 +344,10 @@ class StatusScreen abstract play version("2.5")
y += disp * CleanYfac;
}
DrawName(y, wbs.LName1, lnametexts[1]);
y = DrawName(y, wbs.LName1, lnametexts[1]);
ispatch = wbs.LName1.isValid();
if (!ispatch) DrawAuthor(y, authortexts[1]);
}
@ -802,6 +835,7 @@ class StatusScreen abstract play version("2.5")
finished.Init(gameinfo.mStatscreenFinishedFont);
mapname.Init(gameinfo.mStatscreenMapNameFont);
content.Init(gameinfo.mStatscreenContentFont);
author.Init(gameinfo.mStatscreenAuthorFont);
Kills = TexMan.CheckForTexture("WIOSTK", TexMan.Type_MiscPatch); // "kills"
Secret = TexMan.CheckForTexture("WIOSTS", TexMan.Type_MiscPatch); // "scrt", not used
@ -815,6 +849,8 @@ class StatusScreen abstract play version("2.5")
lnametexts[0] = wbstartstruct.thisname;
lnametexts[1] = wbstartstruct.nextname;
authortexts[0] = wbstartstruct.thisauthor;
authortexts[1] = wbstartstruct.nextauthor;
bg = InterBackground.Create(wbs);
noautostartmap = bg.LoadBackground(false);

View file

@ -24,6 +24,8 @@ struct WBStartStruct native version("2.4")
native String next; // next level, [RH] actual map name
native String nextname; // next level, printable name
native String thisname; // this level, printable name
native String nextauthor; // next level, printable name
native String thisauthor; // this level, printable name
native TextureID LName0;
native TextureID LName1;