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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
#ifndef NEWGAME_DEF_H
#define NEWGAME_DEF_H
#include "itemprop-enum.h"
enum startup_book_type
{
SBT_FIRE,
SBT_COLD,
SBT_SUMM,
SBT_NONE,
SBT_RANDOM,
SBT_VIABLE,
};
enum startup_wand_type
{
SWT_ENSLAVEMENT,
SWT_CONFUSION,
SWT_MAGIC_DARTS,
SWT_FROST,
SWT_FLAME,
SWT_STRIKING, // actually a rod
NUM_STARTUP_WANDS,
SWT_NO_SELECTION = NUM_STARTUP_WANDS,
SWT_RANDOM,
};
// Either a character definition, with real species, job, and
// weapon book, religion, wand as appropriate.
// Or a character choice, with possibly random/viable entries.
struct newgame_def
{
std::string name;
game_type type;
// map name for sprint (or others in the future)
// XXX: "random" means a random eligible map
std::string map;
std::string arena_teams;
species_type species;
job_type job;
weapon_type weapon;
startup_book_type book;
god_type religion;
startup_wand_type wand;
// Only relevant for character choice, where the entire
// character was randomly picked in one step.
// If this is true, the species field encodes whether
// the choice was for a viable character or not.
bool fully_random;
newgame_def();
void clear_character();
};
#endif
|