summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/edit/misc.txt3
-rw-r--r--lib/edit/p_info.txt68
-rw-r--r--lib/mods/theme/edit/misc.txt3
-rw-r--r--lib/mods/theme/edit/p_info.txt70
-rw-r--r--src/birth.cc58
-rw-r--r--src/init1.cc140
-rw-r--r--src/init2.cc2
-rw-r--r--src/meta_class_type.hpp11
-rw-r--r--src/meta_class_type_fwd.hpp3
-rw-r--r--src/player_class.hpp2
-rw-r--r--src/variable.cc2
-rw-r--r--src/variable.hpp3
12 files changed, 69 insertions, 296 deletions
diff --git a/lib/edit/misc.txt b/lib/edit/misc.txt
index 0a9f4fdc..d83cbe48 100644
--- a/lib/edit/misc.txt
+++ b/lib/edit/misc.txt
@@ -63,9 +63,6 @@ M:P:S:10
# Maximum number of class types in p_info.txt
M:P:C:32
-# Maximum number of meta class types in p_info.txt
-M:P:M:1
-
# Maximum number of histories types in p_info.txt
M:P:H:266
diff --git a/lib/edit/p_info.txt b/lib/edit/p_info.txt
index 8fd03864..a6ab0984 100644
--- a/lib/edit/p_info.txt
+++ b/lib/edit/p_info.txt
@@ -51,7 +51,7 @@ G:k:+1000:+1000:Magic-Device
# C:a:b:level:ability
# C:a:O:tval:sval:xdy
-C:N:0:Warrior
+C:N:0:0:Warrior
C:D:0:Simple fighters, they hack away with their trusty weapon.
C:D:1:Rookie
C:D:1:Soldier
@@ -180,7 +180,7 @@ C:a:g:Manwe Sulimo
C:a:g:Tulkas
C:a:g:Melkor Bauglir
-C:N:1:Mage
+C:N:1:3:Mage
C:D:0:The basic spellcaster with lots of different skills
C:D:1:Apprentice
C:D:1:Trickster
@@ -333,7 +333,7 @@ C:a:k:+0:-150:Magic-Device
C:a:O:23:4:1d1
C:a:O:111:50:1d1
-C:N:2:Archer
+C:N:2:1:Archer
C:D:0:'Kill them before they see you' could be the motto of the archer class.
C:D:0:As deadly with a bow as a warrior is with a sword.
C:D:1:Rock Thrower
@@ -399,7 +399,7 @@ C:a:g:Manwe Sulimo
C:a:g:Tulkas
C:a:g:Yavanna Kementari
-C:N:3:Rogue
+C:N:3:2:Rogue
C:D:0:Rogues are masters of tricks. They can steal from shops and monsters,
C:D:0:and lure monsters into deadly monster traps.
C:D:1:Cutpurse
@@ -492,7 +492,7 @@ C:a:k:+0:+1000:Backstab
C:a:k:+0:-1800:Stealing
C:a:k:+0:-800:Magic-Device
-C:N:4:Loremaster
+C:N:4:5:Loremaster
C:D:0:Loremasters are skilled in most combat and monster skills.
C:D:1:Apprentice
C:D:1:Apprentice
@@ -652,7 +652,7 @@ C:a:k:+0:-100:Symbiosis
C:a:k:+0:-100:Mimicry
C:a:k:+1000:+500:Music
-C:N:5:Priest
+C:N:5:4:Priest
C:D:0:A priest serves a god (Vala, Maia or Eru himself) to bring down
C:D:0:the empire of fear and shadows of Morgoth.
C:D:1:Believer
@@ -751,44 +751,6 @@ C:a:k:+1000:+300:Mindcraft
C:a:k:+0:+200:Sneakiness
C:a:k:+0:+100:Magic-Device
-###############################TEST###############################
-C:N:30:Test
-C:D:0:Simple testers.
-C:D:1:Rookie
-C:D:1:Soldier
-C:D:1:Mercenary
-C:D:1:Veteran
-C:D:1:Swordsman
-C:D:1:Champion
-C:D:1:Hero
-C:D:1:Baron
-C:D:1:Duke
-C:D:1:Lord
-C:S:5:-2:-2:2:2:-1:0:3
-C:B:6:30:5
-C:P:9:0
-C:R:30:0
-C:F:RES_FEAR
-C:E:0:0:0:0:0:0
-C:O:45:38:1d1
-C:O:37:4:1d1
-C:k:+1000:+800:Combat
-C:k:+1000:+850:Weaponmastery
-C:k:+0:+200:Sword-mastery
-C:k:+0:+200:Axe-mastery
-C:k:+0:+200:Hafted-mastery
-C:k:+0:+200:Polearm-mastery
-C:k:+1000:+600:Archery
-C:k:+1000:+900:Sneakiness
-C:k:+1000:+900:Disarming
-C:k:+1000:+300:Magic
-C:k:+0:+550:Antimagic
-
-C:a:N:Shinny test
-C:a:D:Simple testers, they test all with their shiny hacks !
-C:a:O:23:16:1d1
-###############################TEST###############################
-
@@ -2062,21 +2024,3 @@ H:263:90:103:104:65:hundreds of
H:264:100:103:104:70:uncounted multitudes of
H:265:100:104:0:50:foul offspring.
-
-
-##############################################################################
-##############################################################################
-##############################################################################
-##############################################################################
-# M:N:idx:color:Meta class name
-# M:C:class name
-
-I:
-
-M:N:0:U:Classes -- The Classes of Middle-earth
-M:C:Warrior
-M:C:Archer
-M:C:Rogue
-M:C:Mage
-M:C:Priest
-M:C:Loremaster
diff --git a/lib/mods/theme/edit/misc.txt b/lib/mods/theme/edit/misc.txt
index 4fa03332..2bd5a9bc 100644
--- a/lib/mods/theme/edit/misc.txt
+++ b/lib/mods/theme/edit/misc.txt
@@ -63,9 +63,6 @@ M:P:S:26
# Maximum number of class types in p_info.txt
M:P:C:50
-# Maximum number of meta class types in p_info.txt
-M:P:M:1
-
# Maximum number of histories types in p_info.txt
M:P:H:294
diff --git a/lib/mods/theme/edit/p_info.txt b/lib/mods/theme/edit/p_info.txt
index 3137b7f1..daec798d 100644
--- a/lib/mods/theme/edit/p_info.txt
+++ b/lib/mods/theme/edit/p_info.txt
@@ -51,7 +51,7 @@ G:k:+1000:+1000:Magic-Device
# C:a:b:level:ability
# C:a:O:tval:sval:xdy
-C:N:0:Warrior
+C:N:0:0:Warrior
C:D:0:Simple fighters, they hack away with their trusty weapon.
C:D:1:Rookie
C:D:1:Soldier
@@ -205,7 +205,7 @@ C:a:k:+0:+500:Spirituality
C:a:k:+1000:+200:Prayer
C:a:k:=0:=0:Antimagic
-C:N:1:Mage
+C:N:1:3:Mage
C:D:0:The basic spellcaster with lots of different skills
C:D:1:Apprentice
C:D:1:Trickster
@@ -396,7 +396,7 @@ C:a:k:+1000:+700:Mindcraft
C:a:O:111:50:1d1
C:a:O:21:3:1d1
-C:N:2:Archer
+C:N:2:1:Archer
C:D:0:'Kill them before they see you' could be the motto of the archer class.
C:D:0:As deadly with a bow as a warrior is with a sword.
C:D:1:Rock Thrower
@@ -483,7 +483,7 @@ C:a:O:19:12:1d1
C:a:O:17:1:10d3
C:a:g:All Gods
-C:N:3:Rogue
+C:N:3:2:Rogue
C:D:0:Rogues are masters of tricks. They can steal from shops and monsters,
C:D:0:and lure monsters into deadly monster traps.
C:D:1:Cutpurse
@@ -589,7 +589,7 @@ C:a:b:15:Extra Max Blow(2)
C:a:O:23:7:1d1
C:a:O:35:1:1d1
-C:N:4:Loremaster
+C:N:4:5:Loremaster
C:D:0:Loremasters are skilled in most combat and monster skills.
C:D:1:Apprentice
C:D:1:Apprentice
@@ -785,7 +785,7 @@ C:a:b:5:Extra Max Blow(2)
C:a:O:71:37:1d1
C:a:g:Nobody
-C:N:5:Pacifist
+C:N:5:6:Pacifist
C:D:0:Pacifists do not believe in violence and do not want to kill
C:D:0:everything in sight.
C:D:1:Novice
@@ -842,7 +842,7 @@ C:a:k:+0:+700:Divination
C:a:k:+0:+700:Temporal
C:a:k:+1000:+600:Symbiosis
-C:N:6:Priest
+C:N:6:4:Priest
C:D:0:A priest serves a god (Vala, Maia or Eru himself) to bring down
C:D:0:the empire of fear and shadows of Morgoth.
C:D:1:Believer
@@ -986,44 +986,6 @@ C:a:k:+0:+300:Prayer
C:a:k:+0:-600:Necromancy
C:a:k:+0:+100:Spell-power
-###############################TEST###############################
-C:N:30:Test
-C:D:0:Simple testers.
-C:D:1:Rookie
-C:D:1:Soldier
-C:D:1:Mercenary
-C:D:1:Veteran
-C:D:1:Swordsman
-C:D:1:Champion
-C:D:1:Hero
-C:D:1:Baron
-C:D:1:Duke
-C:D:1:Lord
-C:S:5:-2:-2:2:2:-1:0:3
-C:B:6:30:5
-C:P:9:0
-C:R:30:0
-C:F:RES_FEAR
-C:E:0:0:0:0:0:0
-C:O:45:38:1d1
-C:O:37:4:1d1
-C:k:+1000:+800:Combat
-C:k:+1000:+850:Weaponmastery
-C:k:+0:+200:Sword-mastery
-C:k:+0:+200:Axe-mastery
-C:k:+0:+200:Hafted-mastery
-C:k:+0:+200:Polearm-mastery
-C:k:+1000:+600:Archery
-C:k:+1000:+900:Sneakiness
-C:k:+1000:+900:Disarming
-C:k:+1000:+300:Magic
-C:k:+0:+550:Antimagic
-
-C:a:N:Shinny test
-C:a:D:Simple testers, they test all with their shiny hacks !
-C:a:O:23:16:1d1
-###############################TEST###############################
-
@@ -3068,21 +3030,3 @@ H:290:100:111:112:80:Your glowing red eyes
H:291:40:112:0:60:radiate miserable servility.
H:292:60:112:0:70:radiate contempt.
H:293:100:112:0:80:radiate pure evil.
-
-##############################################################################
-##############################################################################
-##############################################################################
-##############################################################################
-# M:N:idx:color:Meta class name
-# M:C:class name
-
-I:
-
-M:N:0:U:Classes -- The Classes of Middle-earth
-M:C:Warrior
-M:C:Archer
-M:C:Rogue
-M:C:Mage
-M:C:Priest
-M:C:Loremaster
-M:C:Pacifist
diff --git a/src/birth.cc b/src/birth.cc
index bb2f0816..67817673 100644
--- a/src/birth.cc
+++ b/src/birth.cc
@@ -24,7 +24,6 @@
#include "init2.hpp"
#include "mimic.hpp"
#include "messages.hpp"
-#include "meta_class_type.hpp"
#include "modules.hpp"
#include "monster2.hpp"
#include "monster_race.hpp"
@@ -1478,7 +1477,7 @@ static bool_ do_quick_start = FALSE;
static bool_ player_birth_aux_ask()
{
- int i, k, n, v, sel;
+ int k, n, v, sel;
int racem[100], max_racem = 0;
@@ -1787,52 +1786,29 @@ static bool_ player_birth_aux_ask()
}
else
{
- int z;
-
- for (z = 0; z < 2; z++)
+ for (int z = 0; z < 2; z++)
+ {
restrictions[z] = (rp_ptr->choice[z] | rmp_ptr->pclass[z]) & (~rmp_ptr->mclass[z]);
+ }
- if (max_mc_idx > 1)
+ // Get list of all the classes.
+ std::vector<u16b> class_types;
+ for (std::size_t i = 0; i < max_c_idx; i++)
{
- /* Extra info */
- Term_putstr(5, 13, -1, TERM_WHITE,
- "Your 'class' determines various intrinsic abilities and bonuses.");
-
- /* Get a class type */
- for (i = 0; i < max_mc_idx; i++)
- c_put_str(meta_class_info[i].color, format("%c) %s", I2A(i), meta_class_info[i].name), 16 + i, 2);
- while (1)
+ if (class_info[i].title)
{
- strnfmt(buf, 200, "Choose a class type (a-%c), * for random, = for options: ", I2A(max_mc_idx - 1));
- put_str(buf, 15, 2);
- c = inkey();
- if (c == 'Q') quit(NULL);
- if (c == 'S') return (FALSE);
- if (c == '*')
- {
- k = rand_int(max_mc_idx);
- break;
- }
- k = (islower(c) ? A2I(c) : (D2I(c) + 26));
- if ((k >= 0) && (k < max_mc_idx)) break;
- if (c == '?') do_cmd_help();
- else if (c == '=')
- {
- screen_save();
- do_cmd_options_aux(6, "Startup Options", FALSE);
- screen_load();
- }
- else bell();
+ class_types.push_back(i);
}
}
- else
- {
- k = 0;
- }
- clear_from(15);
-
- auto const &class_types = meta_class_info[k].classes;
+ // Sort into display order
+ std::stable_sort(
+ class_types.begin(),
+ class_types.end(),
+ [](auto i, auto j) {
+ return class_info[i].display_order_idx < class_info[j].display_order_idx;
+ }
+ );
/* Count classes */
n = class_types.size();
diff --git a/src/init1.cc b/src/init1.cc
index 086314a2..5867ef5a 100644
--- a/src/init1.cc
+++ b/src/init1.cc
@@ -15,7 +15,6 @@
#include "gods.hpp"
#include "hist_type.hpp"
#include "init2.hpp"
-#include "meta_class_type.hpp"
#include "monster2.hpp"
#include "monster_ego.hpp"
#include "monster_race.hpp"
@@ -55,6 +54,8 @@
#include "z-rand.hpp"
#include <boost/algorithm/string/predicate.hpp>
+#include <boost/algorithm/string/classification.hpp>
+#include <boost/algorithm/string/split.hpp>
#include <stdlib.h>
using boost::algorithm::iequals;
@@ -925,18 +926,15 @@ static int read_ability(std::vector<player_race_ability_type> *abilities, char *
*/
errr init_player_info_txt(FILE *fp)
{
- int i = 0;
int lev = 1;
int tit_idx = 0;
char buf[1024];
- char *s, *t;
/* Current entry */
player_race *rp_ptr = NULL;
player_race_mod *rmp_ptr = NULL;
player_class *c_ptr = NULL;
player_spec *s_ptr = NULL;
- meta_class_type *mc_ptr = NULL;
/* Just before the first record */
@@ -1003,7 +1001,7 @@ errr init_player_info_txt(FILE *fp)
if ((buf[0] == 'R') && (buf[2] == 'N'))
{
/* Find the colon before the name */
- s = strchr(buf + 4, ':');
+ char *s = strchr(buf + 4, ':');
/* Verify that colon */
if (!s) return (1);
@@ -1015,7 +1013,7 @@ errr init_player_info_txt(FILE *fp)
if (!*s) return (1);
/* Get the index */
- i = atoi(buf + 4);
+ int i = atoi(buf + 4);
/* Verify information */
if (i < error_idx) return (4);
@@ -1044,7 +1042,7 @@ errr init_player_info_txt(FILE *fp)
if ((buf[0] == 'R') && (buf[2] == 'D'))
{
/* Acquire the text */
- s = buf + 4;
+ char const *s = buf + 4;
if (!rp_ptr->desc)
{
@@ -1113,12 +1111,11 @@ errr init_player_info_txt(FILE *fp)
/* Process 'Z' for "powers" */
if ((buf[0] == 'R') && (buf[2] == 'Z'))
{
- int i;
-
/* Acquire the text */
- s = buf + 4;
+ char const *s = buf + 4;
/* Find it in the list */
+ int i;
for (i = 0; i < POWER_MAX; i++)
{
if (iequals(s, powers_type[i].name)) break;
@@ -1226,7 +1223,7 @@ errr init_player_info_txt(FILE *fp)
if ((buf[0] == 'S') && (buf[2] == 'N'))
{
/* Find the colon before the name */
- s = strchr(buf + 4, ':');
+ char *s = strchr(buf + 4, ':');
/* Verify that colon */
if (!s) return (1);
@@ -1238,7 +1235,7 @@ errr init_player_info_txt(FILE *fp)
if (!*s) return (1);
/* Get the index */
- i = atoi(buf + 4);
+ int i = atoi(buf + 4);
/* Verify information */
if (i < error_idx) return (4);
@@ -1266,7 +1263,7 @@ errr init_player_info_txt(FILE *fp)
if ((buf[0] == 'S') && (buf[2] == 'D'))
{
/* Acquire the text */
- s = buf + 6;
+ char const *s = buf + 6;
/* Place */
if (buf[4] == 'A')
@@ -1344,12 +1341,11 @@ errr init_player_info_txt(FILE *fp)
/* Process 'Z' for "powers" */
if ((buf[0] == 'S') && (buf[2] == 'Z'))
{
- int i;
-
/* Acquire the text */
- s = buf + 4;
+ char const *s = buf + 4;
/* Find it in the list */
+ int i;
for (i = 0; i < POWER_MAX; i++)
{
if (iequals(s, powers_type[i].name)) break;
@@ -1481,25 +1477,26 @@ errr init_player_info_txt(FILE *fp)
/* Process 'N' for "New/Number/Name" */
if ((buf[0] == 'C') && (buf[2] == 'N'))
{
- /* Find the colon before the name */
- s = strchr(buf + 4, ':');
+ /* Advance beyond prefix */
+ char *s = strchr(buf + 4, ':');
/* Verify that colon */
if (!s) return (1);
- /* Nuke the colon, advance to the name */
- *s++ = '\0';
+ /* Extract the suffix */
+ std::string suffix(s + 1);
+ if (suffix.empty()) return (1);
- /* Paranoia -- require a name */
- if (!*s) return (1);
+ /* Split suffix into fields */
+ std::vector<std::string> fields;
+ boost::algorithm::split(fields, suffix, boost::is_any_of(":"));
- /* Get the index */
- i = atoi(buf + 4);
+ /* Make sure we have two fields */
+ if (fields.size() < 2) return (1);
- /* Verify information */
+ /* Get the entry index */
+ int i = atoi(buf + 4);
if (i < error_idx) return (4);
-
- /* Verify information */
if (i >= max_c_idx) return (2);
/* Save the index */
@@ -1510,7 +1507,8 @@ errr init_player_info_txt(FILE *fp)
/* Copy name */
assert(!c_ptr->title);
- c_ptr->title = my_strdup(s);
+ c_ptr->display_order_idx = std::stoi(fields[0]);
+ c_ptr->title = my_strdup(fields[1].c_str());
/* Initialize */
lev = 1;
@@ -1524,7 +1522,7 @@ errr init_player_info_txt(FILE *fp)
if ((buf[0] == 'C') && (buf[2] == 'D'))
{
/* Acquire the text */
- s = buf + 6;
+ char const *s = buf + 6;
switch (buf[4])
{
@@ -1667,12 +1665,11 @@ errr init_player_info_txt(FILE *fp)
/* Process 'Z' for "powers" */
if ((buf[0] == 'C') && (buf[2] == 'Z'))
{
- int i;
-
/* Acquire the text */
- s = buf + 4;
+ char const *s = buf + 4;
/* Find it in the list */
+ int i;
for (i = 0; i < POWER_MAX; i++)
{
if (iequals(s, powers_type[i].name)) break;
@@ -1735,8 +1732,10 @@ errr init_player_info_txt(FILE *fp)
if ((buf[0] == 'C') && (buf[2] == 'F'))
{
/* Parse every entry */
- for (s = buf + 4; *s; )
+ for (char *s = buf + 4; *s; )
{
+ char *t;
+
/* Find the end of this entry */
for (t = s; *t && (*t != ' ') && (*t != '|'); ++t) /* loop */;
@@ -1768,7 +1767,7 @@ errr init_player_info_txt(FILE *fp)
if (buf[4] == 'N')
{
/* Find the colon before the name */
- s = buf + 6;
+ char const *s = buf + 6;
/* Paranoia -- require a name */
if (!*s) return (1);
@@ -1788,7 +1787,7 @@ errr init_player_info_txt(FILE *fp)
if (buf[4] == 'D')
{
/* Acquire the text */
- s = buf + 6;
+ char const *s = buf + 6;
if (!s_ptr->desc)
{
@@ -1860,8 +1859,10 @@ errr init_player_info_txt(FILE *fp)
if (buf[4] == 'G')
{
/* Parse every entry */
- for (s = buf + 6; *s; )
+ for (char *s = buf + 6; *s; )
{
+ char *t;
+
/* Find the end of this entry */
for (t = s; *t && (*t != ' ') && (*t != '|'); ++t) /* loop */;
@@ -1887,69 +1888,6 @@ errr init_player_info_txt(FILE *fp)
}
}
- /* Process 'N' for "New/Number/Name" */
- if ((buf[0] == 'M') && (buf[2] == 'N'))
- {
- /* Find the colon before the name */
- s = strchr(buf + 4, ':');
-
- /* Verify that colon */
- if (!s) return (1);
-
- /* Nuke the colon, advance to the name */
- *s++ = '\0';
-
- /* Paranoia -- require a name */
- if (!*s) return (1);
-
- /* Get the index */
- i = atoi(buf + 4);
-
- /* Verify information */
- if (i < error_idx) return (4);
-
- /* Verify information */
- if (i >= max_mc_idx) return (2);
-
- /* Save the index */
- error_idx = i;
-
- /* Point at the "info" */
- mc_ptr = &meta_class_info[i];
-
- /* Append chars to the name */
- strcpy(mc_ptr->name, s + 2);
- mc_ptr->color = color_char_to_attr(s[0]);
-
- /* Next... */
- continue;
- }
-
- /* Process 'C' for "Classes" */
- if ((buf[0] == 'M') && (buf[2] == 'C'))
- {
- int i;
-
- /* Acquire the text */
- s = buf + 4;
-
- /* Find it in the list */
- for (i = 0; i < max_c_idx; i++)
- {
- if (class_info[i].title && iequals(s, class_info[i].title))
- {
- break;
- }
- }
-
- if (i == max_c_idx) return (6);
-
- mc_ptr->classes.push_back(i);
-
- /* Next... */
- continue;
- }
-
/* Oops */
return (6);
}
@@ -7031,10 +6969,6 @@ static errr process_dungeon_file_aux(char *buf, int *yval, int *xval, int xvalst
{
max_c_idx = atoi(zz[2]);
}
- else if (zz[1][0] == 'M')
- {
- max_mc_idx = atoi(zz[2]);
- }
else if (zz[1][0] == 'H')
{
max_bg_idx = atoi(zz[2]);
diff --git a/src/init2.cc b/src/init2.cc
index 160dbeef..327556e3 100644
--- a/src/init2.cc
+++ b/src/init2.cc
@@ -20,7 +20,6 @@
#include "init1.hpp"
#include "lua_bind.hpp"
#include "messages.hpp"
-#include "meta_class_type.hpp"
#include "modules.hpp"
#include "monster_ego.hpp"
#include "monster_race.hpp"
@@ -556,7 +555,6 @@ namespace {
race_mod_info = new player_race_mod[max_rmp_idx];
class_info = new player_class[max_c_idx];
bg = make_array<hist_type>(max_bg_idx);
- meta_class_info = new meta_class_type[max_mc_idx];
gen_skill = new skill_modifiers;
}
diff --git a/src/meta_class_type.hpp b/src/meta_class_type.hpp
deleted file mode 100644
index bd47f998..00000000
--- a/src/meta_class_type.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-#include "h-basic.h"
-#include <vector>
-
-struct meta_class_type
-{
- char name[80] = ""; /* Name */
- byte color = 0;
- std::vector<u16b> classes; /* List of classes */
-};
diff --git a/src/meta_class_type_fwd.hpp b/src/meta_class_type_fwd.hpp
deleted file mode 100644
index 2d0e482a..00000000
--- a/src/meta_class_type_fwd.hpp
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-struct meta_class_type;
diff --git a/src/player_class.hpp b/src/player_class.hpp
index 61d35b5b..0e6f5839 100644
--- a/src/player_class.hpp
+++ b/src/player_class.hpp
@@ -20,6 +20,8 @@ struct player_class
char *desc = nullptr; /* Small desc of the class */
const char *titles[PY_MAX_LEVEL / 5] { }; /* Titles */
+ int display_order_idx; /* Display order index; lowest first */
+
player_shared ps;
player_race_flag_set flags;
diff --git a/src/variable.cc b/src/variable.cc
index 1eb5aaab..0f51c49e 100644
--- a/src/variable.cc
+++ b/src/variable.cc
@@ -503,7 +503,6 @@ player_race_mod *race_mod_info;
* Player class arrays
*/
player_class *class_info;
-meta_class_type *meta_class_info;
/*
* The wilderness features arrays
@@ -693,7 +692,6 @@ u16b max_set_idx = 1;
u16b max_rp_idx;
u16b max_rmp_idx;
u16b max_c_idx;
-u16b max_mc_idx;
/*
* Maximum number of objects in the level
diff --git a/src/variable.hpp b/src/variable.hpp
index a42d246c..d8e5cb17 100644
--- a/src/variable.hpp
+++ b/src/variable.hpp
@@ -14,7 +14,6 @@
#include "fate.hpp"
#include "feature_type_fwd.hpp"
#include "hist_type_fwd.hpp"
-#include "meta_class_type_fwd.hpp"
#include "monster_ego_fwd.hpp"
#include "monster_race_fwd.hpp"
#include "monster_type_fwd.hpp"
@@ -174,7 +173,6 @@ extern monster_race *r_info;
extern monster_ego *re_info;
extern dungeon_info_type *d_info;
extern player_class *class_info;
-extern meta_class_type *meta_class_info;
extern player_race *race_info;
extern player_race_mod *race_mod_info;
extern trap_type *t_info;
@@ -206,7 +204,6 @@ extern u16b max_m_idx;
extern u16b max_t_idx;
extern u16b max_rp_idx;
extern u16b max_c_idx;
-extern u16b max_mc_idx;
extern u16b max_rmp_idx;
extern u16b max_st_idx;
extern u16b max_wf_idx;