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

View file

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

View file

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

View file

@ -323,6 +323,7 @@ struct level_info_t
FString Music; FString Music;
FString LevelName; FString LevelName;
FString AuthorName;
int8_t WallVertLight, WallHorizLight; int8_t WallVertLight, WallHorizLight;
int musicorder; int musicorder;
FCompressedBuffer Snapshot; 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, mStatscreenMapNameFont)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mStatscreenEnteringFont) DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mStatscreenEnteringFont)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, mStatscreenFinishedFont) 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, gibfactor)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, intermissioncounter) DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, intermissioncounter)
DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, statusscreen_single) DEFINE_FIELD_X(GameInfoStruct, gameinfo_t, statusscreen_single)
@ -425,6 +427,8 @@ void FMapInfoParser::ParseGameInfo()
GAMEINFOKEY_FONT(mStatscreenMapNameFont, "statscreen_mapnamefont") GAMEINFOKEY_FONT(mStatscreenMapNameFont, "statscreen_mapnamefont")
GAMEINFOKEY_FONT(mStatscreenFinishedFont, "statscreen_finishedfont") GAMEINFOKEY_FONT(mStatscreenFinishedFont, "statscreen_finishedfont")
GAMEINFOKEY_FONT(mStatscreenEnteringFont, "statscreen_enteringfont") GAMEINFOKEY_FONT(mStatscreenEnteringFont, "statscreen_enteringfont")
GAMEINFOKEY_FONT(mStatscreenContentFont, "statscreen_contentfont")
GAMEINFOKEY_FONT(mStatscreenAuthorFont, "statscreen_authorfont")
GAMEINFOKEY_BOOL(norandomplayerclass, "norandomplayerclass") GAMEINFOKEY_BOOL(norandomplayerclass, "norandomplayerclass")
GAMEINFOKEY_BOOL(forcekillscripts, "forcekillscripts") // [JM] Force kill scripts on thing death. (MF7_NOKILLSCRIPTS overrides.) GAMEINFOKEY_BOOL(forcekillscripts, "forcekillscripts") // [JM] Force kill scripts on thing death. (MF7_NOKILLSCRIPTS overrides.)
GAMEINFOKEY_STRING(Dialogue, "dialogue") GAMEINFOKEY_STRING(Dialogue, "dialogue")

View file

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

View file

@ -3116,6 +3116,7 @@ DEFINE_FIELD(FLevelLocals, MapName)
DEFINE_FIELD(FLevelLocals, NextMap) DEFINE_FIELD(FLevelLocals, NextMap)
DEFINE_FIELD(FLevelLocals, NextSecretMap) DEFINE_FIELD(FLevelLocals, NextSecretMap)
DEFINE_FIELD(FLevelLocals, F1Pic) DEFINE_FIELD(FLevelLocals, F1Pic)
DEFINE_FIELD(FLevelLocals, AuthorName)
DEFINE_FIELD(FLevelLocals, maptype) DEFINE_FIELD(FLevelLocals, maptype)
DEFINE_FIELD(FLevelLocals, Music) DEFINE_FIELD(FLevelLocals, Music)
DEFINE_FIELD(FLevelLocals, musicorder) 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, next);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, nextname); DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, nextname);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, thisname); 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, LName0);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, LName1); DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, LName1);
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, maxkills); 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 next; // next level, [RH] actual map name
FString nextname; // printable name for next level. FString nextname; // printable name for next level.
FString thisname; // 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 LName0;
FTextureID LName1; FTextureID LName1;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -193,6 +193,14 @@ enum DrawTextureTags
DTA_Monospace, // Strings only: Use a fixed distance between characters. 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 class Shape2D : Object native
{ {
enum EClearWhich enum EClearWhich
@ -202,6 +210,8 @@ class Shape2D : Object native
C_Indices = 4, C_Indices = 4,
}; };
native void SetTransform(Shape2DTransform transform);
native void Clear( int which = C_Verts|C_Coords|C_Indices ); native void Clear( int which = C_Verts|C_Coords|C_Indices );
native void PushVertex( Vector2 v ); native void PushVertex( Vector2 v );
native void PushCoord( Vector2 c ); native void PushCoord( Vector2 c );
@ -313,6 +323,7 @@ struct Font native
native int GetMaxAscender(String code); native int GetMaxAscender(String code);
native bool CanPrint(String code); native bool CanPrint(String code);
native int GetHeight(); native int GetHeight();
native int GetDisplacement();
native String GetCursor(); native String GetCursor();
native static int FindFontColor(Name color); native static int FindFontColor(Name color);
@ -392,6 +403,8 @@ struct GameInfoStruct native
native GIFont mStatscreenMapNameFont; native GIFont mStatscreenMapNameFont;
native GIFont mStatscreenEnteringFont; native GIFont mStatscreenEnteringFont;
native GIFont mStatscreenFinishedFont; native GIFont mStatscreenFinishedFont;
native GIFont mStatscreenContentFont;
native GIFont mStatscreenAuthorFont;
native double gibfactor; native double gibfactor;
native bool intermissioncounter; native bool intermissioncounter;
native Name mSliderColor; native Name mSliderColor;
@ -605,7 +618,7 @@ struct TraceResults native
native bool unlinked; // passed through a portal without static offset. native bool unlinked; // passed through a portal without static offset.
native ETraceResult HitType; native ETraceResult HitType;
native F3DFloor ffloor; // F3DFloor *ffloor;
native Sector CrossedWater; // For Boom-style, Transfer_Heights-based deep water 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 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 String NextSecretMap;
native readonly String F1Pic; native readonly String F1Pic;
native readonly int maptype; native readonly int maptype;
native readonly String AuthorName;
native readonly String Music; native readonly String Music;
native readonly int musicorder; native readonly int musicorder;
native readonly TextureID skytexture1; 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 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 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 struct StringTable native
@ -819,6 +835,10 @@ struct State native
native bool InStateSequence(State base); native bool InStateSequence(State base);
} }
struct F3DFloor native
{
}
struct Wads struct Wads
{ {
enum WadNamespace enum WadNamespace

View file

@ -107,6 +107,7 @@ class StatusScreen abstract play version("2.5")
PatchInfo finished; PatchInfo finished;
PatchInfo entering; PatchInfo entering;
PatchInfo content; PatchInfo content;
PatchInfo author;
TextureID p_secret; TextureID p_secret;
TextureID kills; TextureID kills;
@ -120,6 +121,7 @@ class StatusScreen abstract play version("2.5")
// [RH] Info to dynamically generate the level name graphics // [RH] Info to dynamically generate the level name graphics
String lnametexts[2]; String lnametexts[2];
String authortexts[2];
bool snl_pointeron; bool snl_pointeron;
@ -181,6 +183,32 @@ class StatusScreen abstract play version("2.5")
return 0; 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 // 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; y += disp * CleanYfac;
} }
if (!ispatch) y = DrawAuthor(y, authortexts[0]);
// draw "Finished!" // draw "Finished!"
int statsy = multiplayer? NG_STATSY : SP_STATSY * CleanYFac; int statsy = multiplayer? NG_STATSY : SP_STATSY * CleanYFac;
@ -314,7 +344,10 @@ class StatusScreen abstract play version("2.5")
y += disp * CleanYfac; 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); finished.Init(gameinfo.mStatscreenFinishedFont);
mapname.Init(gameinfo.mStatscreenMapNameFont); mapname.Init(gameinfo.mStatscreenMapNameFont);
content.Init(gameinfo.mStatscreenContentFont); content.Init(gameinfo.mStatscreenContentFont);
author.Init(gameinfo.mStatscreenAuthorFont);
Kills = TexMan.CheckForTexture("WIOSTK", TexMan.Type_MiscPatch); // "kills" Kills = TexMan.CheckForTexture("WIOSTK", TexMan.Type_MiscPatch); // "kills"
Secret = TexMan.CheckForTexture("WIOSTS", TexMan.Type_MiscPatch); // "scrt", not used 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[0] = wbstartstruct.thisname;
lnametexts[1] = wbstartstruct.nextname; lnametexts[1] = wbstartstruct.nextname;
authortexts[0] = wbstartstruct.thisauthor;
authortexts[1] = wbstartstruct.nextauthor;
bg = InterBackground.Create(wbs); bg = InterBackground.Create(wbs);
noautostartmap = bg.LoadBackground(false); 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 next; // next level, [RH] actual map name
native String nextname; // next level, printable name native String nextname; // next level, printable name
native String thisname; // this 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 LName0;
native TextureID LName1; native TextureID LName1;