index 7bf9d1e5621aa8838cb760bb39e4e0df0e54820e..35536b6cf006568a65e512e0a7380cc43503b352 100644 (file)
--- a/game.h
+++ b/game.h
#include "protocol.h"
-#define MAX_PLAYERS 32
-#define MAX_BULLETS (MAX_PLAYERS * 8)
-#define TICK_DELAY (1000 / 30)
-#define BULLET_TIME (TICK_DELAY * 6)
-#define PLAYER_SIZE 0.01785
+#define MAX_PLAYERS 8
+#define MAX_BULLETS (MAX_PLAYERS * 5)
+#define TICK 24 // Количество обновлений мира в секунду
+#define TICK_DELAY (1000 / TICK) // Задержка между тиками
+#define BULLET_TIME (TICK * 6) // Время жизни игрока
+#define PLAYER_SHOOT ((int)(TICK * 0.8)) // Задержка между выстрелами
+
+#define PLAYER_SIZE 0.03 // Радиус игрока
+#define STAR_SIZE 0.15 // Радиус звезды
typedef struct Player {
/* public */
bool live;
float x, y, r;
float vx, vy, vr;
+ int shoot;
/* internal */
bool updated;
extern Player g_player[MAX_PLAYERS];
extern Bullet g_bullet[MAX_BULLETS];
-void g_player_set(unsigned int id, bool live, float x, float y, float r, float vx, float vy, float vr);
+void g_player_set(unsigned int id, bool live, float x, float y, float r, float vx, float vy, float vr, int shoot);
void g_bullet_set(unsigned int id, unsigned int owner, bool live, float x, float y, float vx, float vy, int tick);
-void g_player_does(unsigned int id, DoesCode code);
+void g_player_does(unsigned int id, DoesBits code);
void g_update();
+void g_init(bool server_mode);