summaryrefslogtreecommitdiff
path: root/src/player_spec.hpp
blob: 5105df3165122d6217205d3d4575e2cb04ef423f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once

#include "h-basic.h"
#include "player_race_ability_type.hpp"
#include "skills_defs.hpp"

#include <array>

/**
 * Player class descriptor.
 */
struct player_spec
{
	const char *title = nullptr;                            /* Type of class spec */
	char *desc = nullptr;                                   /* 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 */

	u32b skill_ideal[MAX_SKILLS] { };                       /* Ideal skill levels at level 50 */

	s16b obj_tval[5] { };
	s16b obj_sval[5] { };
	s16b obj_pval[5] { };
	s16b obj_dd[5] { };
	s16b obj_ds[5] { };
	s16b obj_num = 0;

	u32b gods = 0;

	u32b flags1 = 0;
	u32b flags2 = 0;

	std::array<player_race_ability_type, 10> abilities;     /* Abilities to be gained by level(doesnt take prereqs in account) */
};