home · contact · privacy
Update SERVER_COMMANDS info on T_ID, TA_ID, TT_ID.
[plomrogue] / src / server / world.h
1 /* src/server/world.h
2  *
3  * This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3
4  * or any later version. For details on its copyright, license, and warranties,
5  * see the file NOTICE in the root directory of the PlomRogue source package.
6  *
7  * Contains the World struct holding all game data together.
8  */
9
10 #ifndef MAIN_H
11 #define MAIN_H
12
13 #include <stdint.h> /* uint8_t, uint16_t, uint32_t */
14 #include <stdio.h> /* define FILE */
15 #include "../common/map.h" /* struct Map */
16 struct ThingType;
17 struct ThingAction;
18 struct Thing;
19
20
21
22 struct World
23 {
24     FILE * file_in; /* Input stream on file at .path_in. */
25     FILE * file_out; /* Output stream on file at .path_out. */
26     struct Map map; /* Game map. */
27     struct ThingType * thing_types; /* Thing type definitions. */
28     struct ThingAction * thing_actions; /* Thing action definitions. */
29     struct Thing * things; /* All physical things of the game world. */
30     char * server_test; /* String uniquely identifying server process. */
31     char * queue; /* Stores un-processed messages read from the input file. */
32     uint32_t seed; /* Randomness seed. */
33     uint32_t seed_map; /* Map seed. */
34     uint16_t replay; /* Turn up to which to replay game. No replay if zero. */
35     uint16_t turn; /* Current game turn. */
36     uint8_t do_update; /* Update worldstate file if !0. */
37     uint8_t exists; /* If !0, remake_world() has been run successfully. */
38     uint8_t player_type; /* Thing type that player will start as. */
39     uint8_t is_verbose; /* Should server send debugging info to stdout? */
40 };
41
42 extern struct World world;
43
44
45
46 #endif