diff options
Diffstat (limited to 'src/include/game/game.h')
-rw-r--r-- | src/include/game/game.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/src/include/game/game.h b/src/include/game/game.h new file mode 100644 index 0000000..0dbd539 --- /dev/null +++ b/src/include/game/game.h @@ -0,0 +1,117 @@ +#ifndef GAME_H +#define GAME_H + +#include "game_data.h" +#include "engine.h" +#include "event.h" + +#include "Nebu_base.h" + +/* use enums, not magic */ +enum { + TURN_LEFT = 3, + TURN_RIGHT = 1 +}; + +enum { + AI_HUMAN = 0, + AI_COMPUTER = 1, + AI_NONE = 2 +}; + +enum { + RETURN_GAME_LAUNCH = 0, + RETURN_GAME_END, + RETURN_GAME_PAUSE, + RETURN_GAME_UNPAUSE, + RETURN_GAME_CREDITS, + RETURN_GAME_ESCAPE, + RETURN_GUI_PROMPT, + RETURN_TIMEDEMO, + RETURN_TIMEDEMO_ABORT, + RETURN_CREDITS, + RETURN_QUIT, + RETURN_GUI_ESCAPE, + RETURN_PROMPT_ESCAPE, + RETURN_PAUSE_ESCAPE +}; + +/* physics recomputed every 10ms */ +#define PHYSICS_RATE 20 + + +#define PLAYERS 4 +#define MAX_PLAYERS 4 +#define MAX_TRAIL 1000 + + +/* these must be < 0 */ +#define SPEED_CRASHED -1 +#define SPEED_GONE -2 + +#define TRAIL_HEIGHT 3.5f + +/* game options */ +#define SPEED_OZ_FREQ 1200 +#define SPEED_OZ_FACTOR 0.09f + +#define TURN_LENGTH 200 + +#define FAST_FINISH 40 + +enum { + PAUSE_NO_GAME = 0, + PAUSE_GAME_RUNNING, + PAUSE_GAME_FINISHED, + PAUSE_GAME_SUSPENDED, + PAUSE_DEMO_NEW, + PAUSE_DEMO_RUNNING, +}; + +extern Game main_game; +extern Game *game; +extern Game2 main_game2; +extern Game2 *game2; + +extern SettingsCache gSettingsCache; + +extern segment2 walls[]; + +extern int dirsX[]; +extern int dirsY[]; + +extern float default_speeds[]; +extern int default_arena_sizes[]; + +/* ai -> computer.c */ + +extern void initGameAI(int level); +extern void doComputer(int player, int target); + +extern void resetScores(void); + +extern void doTurn(GameEvent* e, int direction); + +extern List* doMovement(int mode, int dt); +extern void writePosition(int player); + +extern void initGameStructures(void); +extern void initClientData(void); + +extern void Game_Idle(void); +extern void enterGame(void); +extern void exitGame(void); + +extern void gameMouseMotion(int x, int y); +extern void gameMouse(int buttons, int state, int x, int y); +extern void resetVideoData(void); +extern void resetPlayerData(void); + +extern void doCameraMovement(void); +extern void initCamera(Camera *cam, Data *data, int type); + +extern void initWalls(void); + +extern void getPositionFromIndex(float *x, float *y, int player); +extern void getPositionFromData(float *x, float *y, Data *data); +#endif |