summaryrefslogtreecommitdiff
path: root/src/player_spec.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/player_spec.hpp')
-rw-r--r--src/player_spec.hpp37
1 files changed, 14 insertions, 23 deletions
diff --git a/src/player_spec.hpp b/src/player_spec.hpp
index 28b32830..574425f6 100644
--- a/src/player_spec.hpp
+++ b/src/player_spec.hpp
@@ -1,38 +1,29 @@
#pragma once
#include "h-basic.h"
-#include "skills_defs.hpp"
+#include "object_proto.hpp"
+#include "player_race_ability_type.hpp"
+#include "player_race_flag_set.hpp"
+#include "skill_modifiers.hpp"
+
+#include <array>
+#include <vector>
/**
* Player class descriptor.
*/
struct player_spec
{
- const char *title; /* Type of class spec */
- char *desc; /* Small desc of the class spec */
-
- char skill_basem[MAX_SKILLS]; /* Mod for value */
- u32b skill_base[MAX_SKILLS]; /* value */
- char skill_modm[MAX_SKILLS]; /* mod for mod */
- s16b skill_mod[MAX_SKILLS]; /* mod */
+ const char *title = nullptr; /* Type of class spec */
+ char *desc = nullptr; /* Small desc of the class spec */
- u32b skill_ideal[MAX_SKILLS]; /* Ideal skill levels at level 50 */
+ struct skill_modifiers skill_modifiers;
- s16b obj_tval[5];
- s16b obj_sval[5];
- s16b obj_pval[5];
- s16b obj_dd[5];
- s16b obj_ds[5];
- s16b obj_num;
+ std::vector<object_proto> object_protos;
- u32b gods;
+ u32b gods = 0;
- u32b flags1;
- u32b flags2; /* flags */
+ player_race_flag_set flags;
- struct
- {
- s16b ability;
- s16b level;
- } abilities[10]; /* Abilitiers to be gained by level(doesnt take prereqs in account) */
+ std::vector<player_race_ability_type> abilities; /* Abilities to be gained by level; ignores prereqs */
};