1 #ifndef GAME_H 2 #define GAME_H 3 4 #include "game_data.h" 5 #include "engine.h" 6 #include "event.h" 7 8 #include "Nebu_base.h" 9 10 /* use enums, not magic */ 11 enum { 12 TURN_LEFT = 3, 13 TURN_RIGHT = 1 14 }; 15 16 enum { 17 AI_HUMAN = 0, 18 AI_COMPUTER = 1, 19 AI_NONE = 2 20 }; 21 22 enum { 23 RETURN_GAME_LAUNCH = 0, 24 RETURN_GAME_END, 25 RETURN_GAME_PAUSE, 26 RETURN_GAME_UNPAUSE, 27 RETURN_GAME_CREDITS, 28 RETURN_GAME_ESCAPE, 29 RETURN_GUI_PROMPT, 30 RETURN_TIMEDEMO, 31 RETURN_TIMEDEMO_ABORT, 32 RETURN_CREDITS, 33 RETURN_QUIT, 34 RETURN_GUI_ESCAPE, 35 RETURN_PROMPT_ESCAPE, 36 RETURN_PAUSE_ESCAPE 37 }; 38 39 /* physics recomputed every 10ms */ 40 #define PHYSICS_RATE 20 41 42 43 #define PLAYERS 4 44 #define MAX_PLAYERS 4 45 #define MAX_TRAIL 1000 46 47 48 /* these must be < 0 */ 49 #define SPEED_CRASHED -1 50 #define SPEED_GONE -2 51 52 #define TRAIL_HEIGHT 3.5f 53 54 /* game options */ 55 #define SPEED_OZ_FREQ 1200 56 #define SPEED_OZ_FACTOR 0.09f 57 58 #define TURN_LENGTH 200 59 60 #define FAST_FINISH 40 61 62 enum { 63 PAUSE_NO_GAME = 0, 64 PAUSE_GAME_RUNNING, 65 PAUSE_GAME_FINISHED, 66 PAUSE_GAME_SUSPENDED, 67 PAUSE_DEMO_NEW, 68 PAUSE_DEMO_RUNNING, 69 }; 70 71 extern Game main_game; 72 extern Game *game; 73 extern Game2 main_game2; 74 extern Game2 *game2; 75 76 extern SettingsCache gSettingsCache; 77 78 extern segment2 walls[]; 79 80 extern int dirsX[]; 81 extern int dirsY[]; 82 83 extern float default_speeds[]; 84 extern int default_arena_sizes[]; 85 86 /* ai -> computer.c */ 87 88 extern void initGameAI(int level); 89 extern void doComputer(int player, int target); 90 91 extern void resetScores(void); 92 93 extern void doTurn(GameEvent* e, int direction); 94 95 extern List* doMovement(int mode, int dt); 96 extern void writePosition(int player); 97 98 extern void initGameStructures(void); 99 extern void initClientData(void); 100 101 extern void Game_Idle(void); 102 extern void enterGame(void); 103 extern void exitGame(void); 104 105 extern void gameMouseMotion(int x, int y); 106 extern void gameMouse(int buttons, int state, int x, int y); 107 extern void resetVideoData(void); 108 extern void resetPlayerData(void); 109 110 extern void doCameraMovement(void); 111 extern void initCamera(Camera *cam, Data *data, int type); 112 113 extern void initWalls(void); 114 115 extern void getPositionFromIndex(float *x, float *y, int player); 116 extern void getPositionFromData(float *x, float *y, Data *data); 117 #endif 118