foxygit / doom Log in
commit d87bf91d31c58aaea1a0f3e43f6f9cdda5f6488f
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Sun May 10 19:10:06 2009 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Sun May 10 19:10:06 2009 +0000

    Set appropriate skill strings for Heretic/Hexen.

    Subversion-branch: /branches/raven-branch
    Subversion-revision: 1517
---
 src/setup/multiplayer.c | 43 ++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 40 insertions(+), 3 deletions(-)

diff --git a/src/setup/multiplayer.c b/src/setup/multiplayer.c
index fe7ffd39..2157b43c 100644
--- a/src/setup/multiplayer.c
+++ b/src/setup/multiplayer.c
@@ -61,7 +61,7 @@ static int found_iwad_selected;

 static char *iwadfile;

-static char *skills[] =
+static char *doom_skills[] =
 {
     "I'm too young to die!",
     "Hey, not too rough.",
@@ -79,6 +79,35 @@ static char *chex_skills[] =
     "SUPER SLIMEY!"
 };

+static char *heretic_skills[] =
+{
+    "Thou needeth a wet-nurse",
+    "Yellowbellies-R-us",
+    "Bringest them oneth",
+    "Thou art a smite-meister",
+    "Black plague possesses thee"
+};
+
+static char *hexen_skills[] =
+{
+    "Squire/Altar boy/Apprentice",
+    "Knight/Acolyte/Enchanter",
+    "Warrior/Priest/Sorceror",
+    "Berserker/Cardinal/Warlock",
+    "Titan/Pope/Archimage"
+};
+
+static struct
+{
+    GameMission_t mission;
+    char **strings;
+} skills[] =
+{
+    { doom,    doom_skills },
+    { heretic, heretic_skills },
+    { hexen,   hexen_skills }
+};
+
 static char *gamemodes[] =
 {
     "Co-operative",
@@ -250,6 +279,7 @@ static void UpdateWarpButton(void)
 static void UpdateSkillButton(void)
 {
     iwad_t *iwad = GetCurrentIWAD();
+    int i;

     if (IsChexQuest(iwad))
     {
@@ -257,7 +287,14 @@ static void UpdateSkillButton(void)
     }
     else
     {
-        skillbutton->values = skills;
+        for (i=0; i<arrlen(skills); ++i)
+        {
+            if (gamemission == skills[i].mission)
+            {
+                skillbutton->values = skills[i].strings;
+                break;
+            }
+        }
     }
 }

@@ -562,7 +599,7 @@ void StartMultiGame(void)
            TXT_NewLabel("Game"),
            iwad_selector = IWADSelector(),
            TXT_NewLabel("Skill"),
-           skillbutton = TXT_NewDropdownList(&skill, skills, 5),
+           skillbutton = TXT_NewDropdownList(&skill, doom_skills, 5),
            TXT_NewLabel("Game type"),
            TXT_NewDropdownList(&deathmatch, gamemodes, 3),
            TXT_NewLabel("Level warp"),