File: newgame_def.h

package info (click to toggle)
crawl 2%3A0.7.1-3
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 30,420 kB
  • ctags: 23,018
  • sloc: cpp: 244,317; ansic: 16,144; perl: 2,214; makefile: 984; python: 488; objc: 250; ruby: 200; sh: 140
file content (62 lines) | stat: -rw-r--r-- 1,270 bytes parent folder | download
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