/* src/client/world.h
+ *
+ * This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3
+ * or any later version. For details on its copyright, license, and warranties,
+ * see the file NOTICE in the root directory of the PlomRogue source package.
*
* Contains the World struct holding all quasi-global game data together.
*/
#define WORLD_H
#include <stdint.h> /* uint8_t, uint16_t */
+#include <stdio.h> /* FILE */
#include <sys/types.h> /* time_t */
#include "../common/map.h" /* struct Map */
-#include "../common/yx_uint16.h" /* struct yx_uint16 */
+#include "../common/yx_uint8.h" /* struct yx_uint8 */
#include "keybindings.h" /* stuct KeyBindingDB */
#include "command_db.h" /* struct CommandDB */
#include "windows.h" /* WinDB */
struct World
{
+ FILE * file_server_in; /* server input file to write commands to */
+ FILE * file_server_out; /* server output file to read messages from */
struct WinDB winDB; /* data for window management and individual windows */
struct CommandDB commandDB; /* data on commands from commands config file */
struct KeyBindingDB kb_global; /* globally availabe keybindings */
struct KeyBindingDB kb_wingeom; /* Win geometry config view keybindings */
struct KeyBindingDB kb_winkeys; /* Win keybindings config view keybindings*/
- struct Map map; /* game map geometry and content */
- time_t last_update; /* used for comparison with server outfile' mtime */
- struct yx_uint16 player_pos; /* coordinates of player on map */
+ struct Map map; /* game map geometry and content of player's map view */
+ time_t last_update; /* used for comparison with worldstate file's mtime */
char * log; /* log of player's activities */
- char * path_server_in; /* path of server's input fifo */
- char * path_interface_conf; /* path of interface configuration file */
+ char * things_here; /* list of things below the player */
+ char * path_interface; /* path of interface configuration file */
+ char * path_commands; /* path of commands config file */
char * player_inventory; /* one-item-per-line string list of owned items */
+ char * mem_map; /* map cells of player's map memory */
+ char * queue; /* stores un-processed messages read from the input file */
+ struct yx_uint8 player_pos; /* coordinates of player on map */
+ struct yx_uint8 look_pos; /* coordinates of look cursor */
uint16_t turn; /* world/game turn */
- uint16_t player_score; /* player's score*/
- uint8_t halfdelay; /* how long to wait for getch() input in io_loop() */
+ int16_t player_satiation; /* player's belly fullness */
uint8_t player_inventory_select; /* index of selected item in inventory */
uint8_t player_lifepoints; /* how alive the player is */
uint8_t winch; /* if set, SIGWINCH was registered; trigger reset_windows()*/
+ uint8_t look; /* if set, move look cursor over map intead of player */
};