#define MAIN_H
#include <stdint.h> /* uint8_t, uint16_t, uint32_t */
+#include <stdio.h> /* define FILE */
#include "../common/map.h" /* struct Map */
-struct MapObjDef;
-struct MapObjAct;
-struct MapObj;
+struct ThingType;
+struct ThingAction;
+struct Thing;
struct World
{
- struct Map map;
- struct MapObjDef * map_obj_defs; /* Map object definitions. */
- struct MapObjAct * map_obj_acts; /* Map object action definitions. */
- struct MapObj * map_objs; /* Map objects. */
+ FILE * file_in; /* Input stream on file at .path_in. */
+ FILE * file_out; /* Output stream on file at .path_out. */
+ struct Map map; /* Game map. */
+ struct ThingType * thing_types; /* Thing type definitions. */
+ struct ThingAction * thing_actions; /* Thing action definitions. */
+ struct Thing * things; /* All physical things of the game world. */
char * log; /* Logs the game events from the player's view. */
- char * path_in; /* Fifo to receive command messages. */
- char * path_out; /* File to write the game state as visible to clients.*/
- char * path_record; /* Record file from which to read the game history. */
- char * path_map_obj_defs; /* path for map object definitions config file */
- char * path_map_obj_acts; /* path for map object actions config file */
- char * tmp_suffix; /* Appended to paths of files for their tmp versions. */
- char * queue; /* Stores un-processed messages received via input fifo. */
+ char * server_test; /* String uniquely identifying server process. */
+ char * queue; /* Stores un-processed messages read from the input file. */
uint32_t queue_size;/* Length of .queue sequence of \0-terminated strings.*/
uint32_t seed; /* Randomness seed. */
+ uint32_t seed_map; /* Map seed. */
uint16_t replay; /* Turn up to which to replay game. No replay if zero. */
uint16_t turn; /* Current game turn. */
- uint16_t last_update_turn; /* Last turn the .path_out file was updated. */
- uint16_t score; /* Player's score. */
+ uint8_t do_update; /* Update worldstate file if !0. */
+ uint8_t exists; /* If !0, remake_world() has been run successfully. */
+ uint8_t player_type; /* Thing type that player will start as. */
uint8_t is_verbose; /* Should server send debugging info to stdout? */
- uint8_t map_obj_count; /* Counts map objects generated so far. */
};
extern struct World world;