mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-28 06:53:40 +00:00
- Added text color options to menu code so that the skill definitions can set
the color of the menu's text. - Externalized skill settings to ZDoom.pk3 SVN r559 (trunk)
This commit is contained in:
parent
52e5f8b8e1
commit
659107cacf
10 changed files with 266 additions and 176 deletions
|
@ -1,3 +1,8 @@
|
|||
November 3, 2007 (Changes by Graf Zahl)
|
||||
- Added text color options to menu code so that the skill definitions can set
|
||||
the color of the menu's text.
|
||||
- Externalized skill settings to ZDoom.pk3
|
||||
|
||||
November 2, 2007 (Changes by Graf Zahl)
|
||||
- Added skill definitions to MAPINFO.
|
||||
|
||||
|
|
127
src/g_level.cpp
127
src/g_level.cpp
|
@ -103,7 +103,6 @@ static void ClearLevelInfoStrings (level_info_t *linfo);
|
|||
static void ClearClusterInfoStrings (cluster_info_t *cinfo);
|
||||
static void ParseSkill ();
|
||||
static void G_VerifySkill();
|
||||
static void InitializeDefaultSkills();
|
||||
|
||||
static FRandom pr_classchoice ("RandomPlayerClassChoice");
|
||||
|
||||
|
@ -524,12 +523,12 @@ void G_ParseMapInfo ()
|
|||
int lump, lastlump = 0;
|
||||
|
||||
atterm (G_UnloadMapInfo);
|
||||
InitializeDefaultSkills();
|
||||
|
||||
// Parse the default MAPINFO for the current game.
|
||||
switch (gameinfo.gametype)
|
||||
{
|
||||
case GAME_Doom:
|
||||
G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/doomcommon.txt"));
|
||||
switch (gamemission)
|
||||
{
|
||||
case doom:
|
||||
|
@ -576,7 +575,7 @@ void G_ParseMapInfo ()
|
|||
}
|
||||
if (AllSkills.Size()==0)
|
||||
{
|
||||
InitializeDefaultSkills();
|
||||
I_FatalError ("You cannot use clearskills in a MAPINFO if you do not define any new skills after it.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -590,7 +589,7 @@ static void G_DoParseMapInfo (int lump)
|
|||
QWORD levelflags;
|
||||
|
||||
SetLevelDefaults (&defaultinfo);
|
||||
SC_OpenLumpNum (lump, "MAPINFO");
|
||||
SC_OpenLumpNum (lump, Wads.GetLumpFullName(lump));
|
||||
HexenHack = false;
|
||||
|
||||
while (SC_GetString ())
|
||||
|
@ -3050,6 +3049,7 @@ static void ParseSkill ()
|
|||
skill.MenuNameIsLump = false;
|
||||
skill.MustConfirm = false;
|
||||
skill.shortcut=0;
|
||||
skill.textcolor = CR_UNTRANSLATED;
|
||||
|
||||
SC_MustGetString();
|
||||
skill.name = sc_String;
|
||||
|
@ -3111,6 +3111,13 @@ static void ParseSkill ()
|
|||
skill.MenuName = sc_String;
|
||||
skill.MenuNameIsLump = false;
|
||||
}
|
||||
else if (SC_Compare("PlayerClassName"))
|
||||
{
|
||||
SC_MustGetString ();
|
||||
FName pc = sc_String;
|
||||
SC_MustGetString ();
|
||||
skill.MenuNamesForPlayerClass[pc]=sc_String;
|
||||
}
|
||||
else if (SC_Compare("MenuLump"))
|
||||
{
|
||||
SC_MustGetString ();
|
||||
|
@ -3121,6 +3128,24 @@ static void ParseSkill ()
|
|||
{
|
||||
skill.MustConfirm = true;
|
||||
}
|
||||
else if (SC_Compare("Shortcut"))
|
||||
{
|
||||
SC_MustGetString();
|
||||
skill.shortcut = tolower(sc_String[0]);
|
||||
}
|
||||
else if (SC_Compare("TextColor"))
|
||||
{
|
||||
SC_MustGetString();
|
||||
FString c;
|
||||
c.Format("[%s]", sc_String);
|
||||
const BYTE * cp = (BYTE*)c.GetChars();
|
||||
skill.textcolor = V_ParseFontColor(cp, 0, 0);
|
||||
if (skill.textcolor == CR_UNDEFINED)
|
||||
{
|
||||
Printf("Undefined color '%s' in definition of skill %s\n", sc_String, skill.name.GetChars());
|
||||
skill.textcolor = CR_UNTRANSLATED;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SC_UnGet ();
|
||||
|
@ -3180,100 +3205,6 @@ int G_SkillProperty(ESkillProperty prop)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void InitializeDefaultSkills()
|
||||
{
|
||||
FSkillInfo skill;
|
||||
EGameType g = gameinfo.gametype;
|
||||
|
||||
skill.shortcut=0;
|
||||
|
||||
// sk_baby
|
||||
skill.name = "baby";
|
||||
skill.AmmoFactor = (g & GAME_DoomStrife) ? FRACUNIT*2 : FRACUNIT*3/2;
|
||||
skill.DamageFactor = FRACUNIT/2;
|
||||
skill.FastMonsters = false;
|
||||
skill.DisableCheats = false;
|
||||
skill.EasyBossBrain = true;
|
||||
skill.AutoUseHealth = true;
|
||||
skill.RespawnCounter = 0;
|
||||
skill.Aggressiveness = FRACUNIT;
|
||||
skill.SpawnFilter = MTF_EASY;
|
||||
skill.ACSReturn = 0;
|
||||
skill.MenuName = g&GAME_DoomStrife ? "M_JKILL" : "MNU_WETNURSE";
|
||||
skill.MenuNameIsLump = !!(g&GAME_DoomStrife);
|
||||
skill.MustConfirm = false;
|
||||
if (g & GAME_Hexen)
|
||||
{
|
||||
skill.MenuNamesForPlayerClass["fighter"] = "MNU_SQUIRE";
|
||||
skill.MenuNamesForPlayerClass["cleric"] = "MNU_ALTARBOY";
|
||||
skill.MenuNamesForPlayerClass["mage"] = "MNU_APPRENTICE";
|
||||
}
|
||||
AllSkills.Push(skill);
|
||||
|
||||
// sk_easy
|
||||
skill.name = "easy";
|
||||
skill.AmmoFactor = FRACUNIT;
|
||||
skill.DamageFactor = FRACUNIT;
|
||||
skill.EasyBossBrain = false;
|
||||
skill.AutoUseHealth = false;
|
||||
skill.RespawnCounter = 0;
|
||||
skill.Aggressiveness = FRACUNIT;
|
||||
skill.SpawnFilter = MTF_EASY;
|
||||
skill.ACSReturn = 1;
|
||||
skill.MenuName = g&GAME_DoomStrife ? "M_ROUGH" : "MNU_YELLOWBELLIES";
|
||||
if (g & GAME_Hexen)
|
||||
{
|
||||
skill.MenuNamesForPlayerClass["fighter"] = "MNU_KNIGHT";
|
||||
skill.MenuNamesForPlayerClass["cleric"] = "MNU_ACOLYTE";
|
||||
skill.MenuNamesForPlayerClass["mage"] = "MNU_ENCHANTER";
|
||||
}
|
||||
AllSkills.Push(skill);
|
||||
|
||||
// sk_normal
|
||||
skill.name = "normal";
|
||||
skill.SpawnFilter = MTF_NORMAL;
|
||||
skill.ACSReturn = 2;
|
||||
skill.MenuName = g&GAME_DoomStrife ? "M_HURT" : "MNU_BRINGEST";
|
||||
if (g & GAME_Hexen)
|
||||
{
|
||||
skill.MenuNamesForPlayerClass["fighter"] = "MNU_WARRIOR";
|
||||
skill.MenuNamesForPlayerClass["cleric"] = "MNU_PRIEST";
|
||||
skill.MenuNamesForPlayerClass["mage"] = "MNU_SORCERER";
|
||||
}
|
||||
AllSkills.Push(skill);
|
||||
|
||||
// sk_hard
|
||||
skill.name = "hard";
|
||||
skill.SpawnFilter = MTF_HARD;
|
||||
skill.ACSReturn = 3;
|
||||
skill.MenuName = g&GAME_DoomStrife ? "M_ULTRA" : "MNU_SMITE";
|
||||
if (g & GAME_Hexen)
|
||||
{
|
||||
skill.MenuNamesForPlayerClass["fighter"] = "MNU_BERSERKER";
|
||||
skill.MenuNamesForPlayerClass["cleric"] = "MNU_CARDINAL";
|
||||
skill.MenuNamesForPlayerClass["mage"] = "MNU_WARLOCK";
|
||||
}
|
||||
AllSkills.Push(skill);
|
||||
|
||||
// sk_nightmare
|
||||
skill.name = "nightmare";
|
||||
skill.AmmoFactor = (g & GAME_DoomStrife) ? FRACUNIT*2 : FRACUNIT*3/2;
|
||||
skill.DamageFactor = FRACUNIT;
|
||||
skill.FastMonsters = true;
|
||||
skill.DisableCheats = true;
|
||||
skill.RespawnCounter = (g & GAME_Raven)? 0 : TICRATE * (g != GAME_Strife ? 12 : 16);
|
||||
skill.Aggressiveness = FRACUNIT;
|
||||
skill.ACSReturn = 4;
|
||||
skill.MenuName = g&GAME_DoomStrife ? "M_NMARE" : "MNU_BLACKPLAGUE";
|
||||
skill.MustConfirm = true;
|
||||
if (g & GAME_Hexen)
|
||||
{
|
||||
skill.MenuNamesForPlayerClass["fighter"] = "MNU_TITAN";
|
||||
skill.MenuNamesForPlayerClass["cleric"] = "MNU_POPE";
|
||||
skill.MenuNamesForPlayerClass["mage"] = "MNU_ARCHMAGE";
|
||||
}
|
||||
AllSkills.Push(skill);
|
||||
}
|
||||
|
||||
void G_VerifySkill()
|
||||
{
|
||||
|
|
|
@ -390,6 +390,7 @@ struct FSkillInfo
|
|||
bool MenuNameIsLump;
|
||||
bool MustConfirm;
|
||||
char shortcut;
|
||||
int textcolor;
|
||||
|
||||
FSkillInfo() {}
|
||||
FSkillInfo(const FSkillInfo &other)
|
||||
|
@ -414,6 +415,7 @@ struct FSkillInfo
|
|||
MenuNameIsLump = other.MenuNameIsLump;
|
||||
MustConfirm = other.MustConfirm;
|
||||
shortcut = other.shortcut;
|
||||
textcolor = other.textcolor;
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
|
166
src/m_menu.cpp
166
src/m_menu.cpp
|
@ -248,12 +248,12 @@ static int epi; // Selected episode
|
|||
//
|
||||
static oldmenuitem_t MainMenu[]=
|
||||
{
|
||||
{1,0,'n',"M_NGAME",M_NewGame},
|
||||
{1,0,'l',"M_LOADG",M_LoadGame},
|
||||
{1,0,'s',"M_SAVEG",M_SaveGame},
|
||||
{1,0,'o',"M_OPTION",M_Options}, // [RH] Moved
|
||||
{1,0,'r',"M_RDTHIS",M_ReadThis}, // Another hickup with Special edition.
|
||||
{1,0,'q',"M_QUITG",M_QuitDOOM}
|
||||
{1,0,'n',"M_NGAME",M_NewGame, CR_UNTRANSLATED},
|
||||
{1,0,'l',"M_LOADG",M_LoadGame, CR_UNTRANSLATED},
|
||||
{1,0,'s',"M_SAVEG",M_SaveGame, CR_UNTRANSLATED},
|
||||
{1,0,'o',"M_OPTION",M_Options, CR_UNTRANSLATED}, // [RH] Moved
|
||||
{1,0,'r',"M_RDTHIS",M_ReadThis, CR_UNTRANSLATED}, // Another hickup with Special edition.
|
||||
{1,0,'q',"M_QUITG",M_QuitDOOM, CR_UNTRANSLATED}
|
||||
};
|
||||
|
||||
static oldmenu_t MainDef =
|
||||
|
@ -270,11 +270,11 @@ static oldmenu_t MainDef =
|
|||
//
|
||||
static oldmenuitem_t HereticMainMenu[] =
|
||||
{
|
||||
{1,1,'n',"MNU_NEWGAME",M_NewGame},
|
||||
{1,1,'o',"MNU_OPTIONS",M_Options},
|
||||
{1,1,'f',"MNU_GAMEFILES",M_GameFiles},
|
||||
{1,1,'i',"MNU_INFO",M_ReadThis},
|
||||
{1,1,'q',"MNU_QUITGAME",M_QuitDOOM}
|
||||
{1,1,'n',"MNU_NEWGAME",M_NewGame, CR_UNTRANSLATED},
|
||||
{1,1,'o',"MNU_OPTIONS",M_Options, CR_UNTRANSLATED},
|
||||
{1,1,'f',"MNU_GAMEFILES",M_GameFiles, CR_UNTRANSLATED},
|
||||
{1,1,'i',"MNU_INFO",M_ReadThis, CR_UNTRANSLATED},
|
||||
{1,1,'q',"MNU_QUITGAME",M_QuitDOOM, CR_UNTRANSLATED}
|
||||
};
|
||||
|
||||
static oldmenu_t HereticMainDef =
|
||||
|
@ -291,10 +291,10 @@ static oldmenu_t HereticMainDef =
|
|||
//
|
||||
static oldmenuitem_t ClassItems[] =
|
||||
{
|
||||
{ 1,1, 'f', "MNU_FIGHTER", SCClass },
|
||||
{ 1,1, 'c', "MNU_CLERIC", SCClass },
|
||||
{ 1,1, 'm', "MNU_MAGE", SCClass },
|
||||
{ 1,1, 'r', "MNU_RANDOM", SCClass } // [RH]
|
||||
{ 1,1, 'f', "MNU_FIGHTER", SCClass, CR_UNTRANSLATED },
|
||||
{ 1,1, 'c', "MNU_CLERIC", SCClass, CR_UNTRANSLATED },
|
||||
{ 1,1, 'm', "MNU_MAGE", SCClass, CR_UNTRANSLATED },
|
||||
{ 1,1, 'r', "MNU_RANDOM", SCClass, CR_UNTRANSLATED } // [RH]
|
||||
};
|
||||
|
||||
static oldmenu_t ClassMenu =
|
||||
|
@ -310,14 +310,14 @@ static oldmenu_t ClassMenu =
|
|||
//
|
||||
oldmenuitem_t ClassMenuItems[8] =
|
||||
{
|
||||
{1,1,0, NULL, M_ChooseClass },
|
||||
{1,1,0, NULL, M_ChooseClass },
|
||||
{1,1,0, NULL, M_ChooseClass },
|
||||
{1,1,0, NULL, M_ChooseClass },
|
||||
{1,1,0, NULL, M_ChooseClass },
|
||||
{1,1,0, NULL, M_ChooseClass },
|
||||
{1,1,0, NULL, M_ChooseClass },
|
||||
{1,1,0, NULL, M_ChooseClass },
|
||||
{1,1,0, NULL, M_ChooseClass, CR_UNTRANSLATED },
|
||||
{1,1,0, NULL, M_ChooseClass, CR_UNTRANSLATED },
|
||||
{1,1,0, NULL, M_ChooseClass, CR_UNTRANSLATED },
|
||||
{1,1,0, NULL, M_ChooseClass, CR_UNTRANSLATED },
|
||||
{1,1,0, NULL, M_ChooseClass, CR_UNTRANSLATED },
|
||||
{1,1,0, NULL, M_ChooseClass, CR_UNTRANSLATED },
|
||||
{1,1,0, NULL, M_ChooseClass, CR_UNTRANSLATED },
|
||||
{1,1,0, NULL, M_ChooseClass, CR_UNTRANSLATED },
|
||||
};
|
||||
|
||||
oldmenu_t ClassMenuDef =
|
||||
|
@ -334,14 +334,14 @@ oldmenu_t ClassMenuDef =
|
|||
//
|
||||
oldmenuitem_t EpisodeMenu[MAX_EPISODES] =
|
||||
{
|
||||
{1,0,0, NULL, M_Episode},
|
||||
{1,0,0, NULL, M_Episode},
|
||||
{1,0,0, NULL, M_Episode},
|
||||
{1,0,0, NULL, M_Episode},
|
||||
{1,0,0, NULL, M_Episode},
|
||||
{1,0,0, NULL, M_Episode},
|
||||
{1,0,0, NULL, M_Episode},
|
||||
{1,0,0, NULL, M_Episode},
|
||||
{1,0,0, NULL, M_Episode, CR_UNTRANSLATED},
|
||||
{1,0,0, NULL, M_Episode, CR_UNTRANSLATED},
|
||||
{1,0,0, NULL, M_Episode, CR_UNTRANSLATED},
|
||||
{1,0,0, NULL, M_Episode, CR_UNTRANSLATED},
|
||||
{1,0,0, NULL, M_Episode, CR_UNTRANSLATED},
|
||||
{1,0,0, NULL, M_Episode, CR_UNTRANSLATED},
|
||||
{1,0,0, NULL, M_Episode, CR_UNTRANSLATED},
|
||||
{1,0,0, NULL, M_Episode, CR_UNTRANSLATED},
|
||||
};
|
||||
|
||||
char EpisodeMaps[MAX_EPISODES][8];
|
||||
|
@ -361,8 +361,8 @@ oldmenu_t EpiDef =
|
|||
//
|
||||
static oldmenuitem_t FilesItems[] =
|
||||
{
|
||||
{1,1,'l',"MNU_LOADGAME",M_LoadGame},
|
||||
{1,1,'s',"MNU_SAVEGAME",M_SaveGame}
|
||||
{1,1,'l',"MNU_LOADGAME",M_LoadGame, CR_UNTRANSLATED},
|
||||
{1,1,'s',"MNU_SAVEGAME",M_SaveGame, CR_UNTRANSLATED}
|
||||
};
|
||||
|
||||
static oldmenu_t FilesMenu =
|
||||
|
@ -378,14 +378,14 @@ static oldmenu_t FilesMenu =
|
|||
// DOOM SKILL SELECT
|
||||
//
|
||||
static oldmenuitem_t SkillSelectMenu[]={
|
||||
{ 1, 0, 0, "", M_ChooseSkill},
|
||||
{ 1, 0, 0, "", M_ChooseSkill},
|
||||
{ 1, 0, 0, "", M_ChooseSkill},
|
||||
{ 1, 0, 0, "", M_ChooseSkill},
|
||||
{ 1, 0, 0, "", M_ChooseSkill},
|
||||
{ 1, 0, 0, "", M_ChooseSkill},
|
||||
{ 1, 0, 0, "", M_ChooseSkill},
|
||||
{ 1, 0, 0, "", M_ChooseSkill},
|
||||
{ 1, 0, 0, "", M_ChooseSkill, CR_UNTRANSLATED},
|
||||
{ 1, 0, 0, "", M_ChooseSkill, CR_UNTRANSLATED},
|
||||
{ 1, 0, 0, "", M_ChooseSkill, CR_UNTRANSLATED},
|
||||
{ 1, 0, 0, "", M_ChooseSkill, CR_UNTRANSLATED},
|
||||
{ 1, 0, 0, "", M_ChooseSkill, CR_UNTRANSLATED},
|
||||
{ 1, 0, 0, "", M_ChooseSkill, CR_UNTRANSLATED},
|
||||
{ 1, 0, 0, "", M_ChooseSkill, CR_UNTRANSLATED},
|
||||
{ 1, 0, 0, "", M_ChooseSkill, CR_UNTRANSLATED},
|
||||
};
|
||||
|
||||
static oldmenu_t SkillDef =
|
||||
|
@ -413,6 +413,17 @@ void M_StartupSkillMenu(const char *playerclass)
|
|||
{
|
||||
SkillDef.x = 38;
|
||||
SkillDef.y = 30;
|
||||
|
||||
if (gameinfo.gametype == GAME_Hexen)
|
||||
{
|
||||
HexenSkillMenu.x = 38;
|
||||
if (playerclass != NULL)
|
||||
{
|
||||
if (!stricmp(playerclass, "fighter")) HexenSkillMenu.x = 120;
|
||||
else if (!stricmp(playerclass, "cleric")) HexenSkillMenu.x = 116;
|
||||
else if (!stricmp(playerclass, "mage")) HexenSkillMenu.x = 112;
|
||||
}
|
||||
}
|
||||
}
|
||||
SkillDef.numitems = HexenSkillMenu.numitems = 0;
|
||||
for(int i=0;i<AllSkills.Size() && i<8;i++)
|
||||
|
@ -422,15 +433,18 @@ void M_StartupSkillMenu(const char *playerclass)
|
|||
SkillSelectMenu[i].name = skill.MenuName;
|
||||
SkillSelectMenu[i].fulltext = !skill.MenuNameIsLump;
|
||||
SkillSelectMenu[i].alphaKey = skill.MenuNameIsLump? skill.shortcut : tolower(SkillSelectMenu[i].name[0]);
|
||||
SkillSelectMenu[i].textcolor = skill.textcolor;
|
||||
SkillSelectMenu[i].alphaKey = skill.shortcut;
|
||||
|
||||
if (playerclass != NULL)
|
||||
{
|
||||
FString * pmnm = skill.MenuNamesForPlayerClass.CheckKey(playerclass);
|
||||
if (pmnm != NULL)
|
||||
{
|
||||
SkillSelectMenu[i].name = *pmnm;
|
||||
SkillSelectMenu[i].name = GStrings(*pmnm);
|
||||
SkillSelectMenu[i].fulltext = true;
|
||||
SkillSelectMenu[i].alphaKey = tolower(pmnm->GetChars()[0]);
|
||||
if (skill.shortcut==0)
|
||||
SkillSelectMenu[i].alphaKey = tolower(SkillSelectMenu[i].name[0]);
|
||||
}
|
||||
}
|
||||
SkillDef.numitems++;
|
||||
|
@ -439,11 +453,6 @@ void M_StartupSkillMenu(const char *playerclass)
|
|||
// Hexen needs some manual coordinate adjustments based on player class
|
||||
if (gameinfo.gametype == GAME_Hexen)
|
||||
{
|
||||
if (!stricmp(playerclass, "fighter")) HexenSkillMenu.x = 120;
|
||||
else if (!stricmp(playerclass, "cleric")) HexenSkillMenu.x = 116;
|
||||
else if (!stricmp(playerclass, "mage")) HexenSkillMenu.x = 112;
|
||||
else HexenSkillMenu.x = 38;
|
||||
|
||||
M_SetupNextMenu(&HexenSkillMenu);
|
||||
}
|
||||
else
|
||||
|
@ -456,15 +465,15 @@ void M_StartupSkillMenu(const char *playerclass)
|
|||
//
|
||||
static oldmenuitem_t PlayerSetupMenu[] =
|
||||
{
|
||||
{ 1,0,'n',NULL,M_EditPlayerName},
|
||||
{ 2,0,'t',NULL,M_ChangePlayerTeam},
|
||||
{ 2,0,'r',NULL,M_SlidePlayerRed},
|
||||
{ 2,0,'g',NULL,M_SlidePlayerGreen},
|
||||
{ 2,0,'b',NULL,M_SlidePlayerBlue},
|
||||
{ 2,0,'c',NULL,M_ChangeClass},
|
||||
{ 2,0,'s',NULL,M_ChangeSkin},
|
||||
{ 2,0,'e',NULL,M_ChangeGender},
|
||||
{ 2,0,'a',NULL,M_ChangeAutoAim}
|
||||
{ 1,0,'n',NULL,M_EditPlayerName, CR_UNTRANSLATED},
|
||||
{ 2,0,'t',NULL,M_ChangePlayerTeam, CR_UNTRANSLATED},
|
||||
{ 2,0,'r',NULL,M_SlidePlayerRed, CR_UNTRANSLATED},
|
||||
{ 2,0,'g',NULL,M_SlidePlayerGreen, CR_UNTRANSLATED},
|
||||
{ 2,0,'b',NULL,M_SlidePlayerBlue, CR_UNTRANSLATED},
|
||||
{ 2,0,'c',NULL,M_ChangeClass, CR_UNTRANSLATED},
|
||||
{ 2,0,'s',NULL,M_ChangeSkin, CR_UNTRANSLATED},
|
||||
{ 2,0,'e',NULL,M_ChangeGender, CR_UNTRANSLATED},
|
||||
{ 2,0,'a',NULL,M_ChangeAutoAim, CR_UNTRANSLATED}
|
||||
};
|
||||
|
||||
static oldmenu_t PSetupDef =
|
||||
|
@ -498,14 +507,14 @@ static oldmenu_t ReadDef =
|
|||
//
|
||||
static oldmenuitem_t LoadMenu[]=
|
||||
{
|
||||
{1,0,'1',NULL, NULL},
|
||||
{1,0,'2',NULL, NULL},
|
||||
{1,0,'3',NULL, NULL},
|
||||
{1,0,'4',NULL, NULL},
|
||||
{1,0,'5',NULL, NULL},
|
||||
{1,0,'6',NULL, NULL},
|
||||
{1,0,'7',NULL, NULL},
|
||||
{1,0,'8',NULL, NULL},
|
||||
{1,0,'1',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'2',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'3',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'4',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'5',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'6',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'7',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'8',NULL, NULL, CR_UNTRANSLATED},
|
||||
};
|
||||
|
||||
static oldmenu_t LoadDef =
|
||||
|
@ -522,14 +531,14 @@ static oldmenu_t LoadDef =
|
|||
//
|
||||
static oldmenuitem_t SaveMenu[] =
|
||||
{
|
||||
{1,0,'1',NULL, NULL},
|
||||
{1,0,'2',NULL, NULL},
|
||||
{1,0,'3',NULL, NULL},
|
||||
{1,0,'4',NULL, NULL},
|
||||
{1,0,'5',NULL, NULL},
|
||||
{1,0,'6',NULL, NULL},
|
||||
{1,0,'7',NULL, NULL},
|
||||
{1,0,'8',NULL, NULL},
|
||||
{1,0,'1',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'2',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'3',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'4',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'5',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'6',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'7',NULL, NULL, CR_UNTRANSLATED},
|
||||
{1,0,'8',NULL, NULL, CR_UNTRANSLATED},
|
||||
};
|
||||
|
||||
static oldmenu_t SaveDef =
|
||||
|
@ -3129,11 +3138,14 @@ void M_Drawer ()
|
|||
{
|
||||
if (currentMenu->menuitems[i].fulltext)
|
||||
{
|
||||
int color = CR_UNTRANSLATED;
|
||||
if ((currentMenu == &EpiDef || currentMenu == &ClassMenuDef) &&
|
||||
gameinfo.gametype == GAME_Doom)
|
||||
int color = currentMenu->menuitems[i].textcolor;
|
||||
if (color == CR_UNTRANSLATED)
|
||||
{
|
||||
color = CR_RED;
|
||||
// The default DBIGFONT is white but Doom's default should be red.
|
||||
if (gameinfo.gametype == GAME_Doom)
|
||||
{
|
||||
color = CR_RED;
|
||||
}
|
||||
}
|
||||
screen->DrawText (color, x, y,
|
||||
GStrings(currentMenu->menuitems[i].name),
|
||||
|
|
|
@ -189,6 +189,7 @@ typedef struct
|
|||
// if status = 2,
|
||||
// choice=0:leftarrow,1:rightarrow
|
||||
void (*routine)(int choice);
|
||||
int textcolor;
|
||||
} oldmenuitem_t;
|
||||
|
||||
typedef struct oldmenu_s
|
||||
|
|
32
wadsrc/mapinfo/doomcommon.txt
Normal file
32
wadsrc/mapinfo/doomcommon.txt
Normal file
|
@ -0,0 +1,32 @@
|
|||
skill baby
|
||||
AmmoFactor 2
|
||||
DamageFactor 0.5
|
||||
EasyBossBrain
|
||||
SpawnFilter "Easy"
|
||||
MenuLump "M_JKILL"
|
||||
Shortcut i
|
||||
|
||||
skill easy
|
||||
SpawnFilter "Easy"
|
||||
MenuLump "M_ROUGH"
|
||||
Shortcut h
|
||||
|
||||
skill normal
|
||||
SpawnFilter "Normal"
|
||||
MenuLump "M_HURT"
|
||||
Shortcut h
|
||||
|
||||
skill hard
|
||||
SpawnFilter "Normal"
|
||||
MenuLump "M_ULTRA"
|
||||
Shortcut u
|
||||
|
||||
skill nightmare
|
||||
AmmoFactor 2
|
||||
FastMonsters
|
||||
DisableCheats
|
||||
RespawnTime 12
|
||||
SpawnFilter "Hard"
|
||||
MenuLump "M_NMARE"
|
||||
MustConfirm
|
||||
Shortcut n
|
|
@ -1,5 +1,34 @@
|
|||
// MAPINFO for Heretic (Shareware and Retail)
|
||||
|
||||
skill baby
|
||||
AmmoFactor 1.5
|
||||
DamageFactor 0.5
|
||||
EasyBossBrain
|
||||
SpawnFilter "Easy"
|
||||
MenuName "MNU_WETNURSE"
|
||||
|
||||
skill easy
|
||||
SpawnFilter "Easy"
|
||||
MenuName "MNU_YELLOWBELLIES"
|
||||
|
||||
skill normal
|
||||
SpawnFilter "Normal"
|
||||
MenuName "MNU_BRINGEST"
|
||||
|
||||
skill hard
|
||||
SpawnFilter "Normal"
|
||||
MenuName "MNU_SMITE"
|
||||
|
||||
skill nightmare
|
||||
AmmoFactor 1.5
|
||||
FastMonsters
|
||||
DisableCheats
|
||||
SpawnFilter "Hard"
|
||||
MenuName "MNU_BLACKPLAGUE"
|
||||
MustConfirm
|
||||
|
||||
|
||||
|
||||
// Episode 1
|
||||
|
||||
map E1M1 lookup HHUSTR_E1M1
|
||||
|
|
|
@ -1,6 +1,50 @@
|
|||
// A bare-bones MAPINFO for Hexen.
|
||||
// Most of the MAPINFO is still in hexen.wad.
|
||||
|
||||
skill baby
|
||||
AmmoFactor 1.5
|
||||
DamageFactor 0.5
|
||||
EasyBossBrain
|
||||
SpawnFilter "Easy"
|
||||
MenuName "MNU_WETNURSE"
|
||||
PlayerClassName "fighter" "MNU_SQUIRE"
|
||||
PlayerClassName "cleric" "MNU_ALTARBOY"
|
||||
PlayerClassName "mage" "MNU_APPRENTICE"
|
||||
|
||||
|
||||
skill easy
|
||||
SpawnFilter "Easy"
|
||||
MenuName "MNU_YELLOWBELLIES"
|
||||
PlayerClassName "fighter" "MNU_KNIGHT"
|
||||
PlayerClassName "cleric" "MNU_ACOLYTE"
|
||||
PlayerClassName "mage" "MNU_ENCHANTER"
|
||||
|
||||
skill normal
|
||||
SpawnFilter "Normal"
|
||||
MenuName "MNU_BRINGEST"
|
||||
PlayerClassName "fighter" "MNU_WARRIOR"
|
||||
PlayerClassName "cleric" "MNU_PRIEST"
|
||||
PlayerClassName "mage" "MNU_SORCERER"
|
||||
|
||||
skill hard
|
||||
SpawnFilter "Normal"
|
||||
MenuName "MNU_SMITE"
|
||||
PlayerClassName "fighter" "MNU_BERSERKER"
|
||||
PlayerClassName "cleric" "MNU_CARDINAL"
|
||||
PlayerClassName "mage" "MNU_WARLOCK"
|
||||
|
||||
skill nightmare
|
||||
AmmoFactor 1.5
|
||||
FastMonsters
|
||||
DisableCheats
|
||||
SpawnFilter "Hard"
|
||||
MenuName "MNU_BLACKPLAGUE"
|
||||
PlayerClassName "fighter" "MNU_TITAN"
|
||||
PlayerClassName "cleric" "MNU_POPE"
|
||||
PlayerClassName "mage" "MNU_ARCHMAGE"
|
||||
MustConfirm
|
||||
|
||||
|
||||
clusterdef 1
|
||||
hub
|
||||
exittext clus1msg
|
||||
|
|
|
@ -1,5 +1,38 @@
|
|||
// MAPINFO for Strife (full version and teaser)
|
||||
|
||||
skill baby
|
||||
AmmoFactor 2
|
||||
DamageFactor 0.5
|
||||
EasyBossBrain
|
||||
SpawnFilter "Easy"
|
||||
MenuLump "M_JKILL"
|
||||
Shortcut t
|
||||
|
||||
skill easy
|
||||
SpawnFilter "Easy"
|
||||
MenuLump "M_ROUGH"
|
||||
Shortcut r
|
||||
|
||||
skill normal
|
||||
SpawnFilter "Normal"
|
||||
MenuLump "M_HURT"
|
||||
Shortcut v
|
||||
|
||||
skill hard
|
||||
SpawnFilter "Normal"
|
||||
MenuLump "M_ULTRA"
|
||||
Shortcut e
|
||||
|
||||
skill nightmare
|
||||
AmmoFactor 2
|
||||
FastMonsters
|
||||
DisableCheats
|
||||
RespawnTime 16
|
||||
SpawnFilter "Hard"
|
||||
MenuLump "M_NMARE"
|
||||
MustConfirm
|
||||
Shortcut b
|
||||
|
||||
defaultmap
|
||||
forcenoskystretch
|
||||
strifefallingdamage
|
||||
|
|
|
@ -221,9 +221,10 @@ sounds/railgf1.flac railgunfire.flac
|
|||
========
|
||||
# Mapinfos
|
||||
|
||||
mapinfo/doomcommon.txt mapinfo/doomcommon.txt
|
||||
mapinfo/doom1.txt mapinfo/doom1.txt
|
||||
mapinfo/doom2.txt mapinfo/doom2.txt
|
||||
mapinfo/plutonia.txt mapinfo/plutonia.txt
|
||||
mapinfo/plutonia.txt mapinfo/plutonia.txt
|
||||
mapinfo/tnt.txt mapinfo/tnt.txt
|
||||
mapinfo/heretic.txt mapinfo/heretic.txt
|
||||
mapinfo/hexen.txt mapinfo/hexen.txt
|
||||
|
|
Loading…
Reference in a new issue