- 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:
Christoph Oelckers 2007-11-03 11:41:42 +00:00
commit 659107cacf
10 changed files with 266 additions and 176 deletions

View file

@ -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),