DEADSOFTWARE

Изменены физические константы
[netwar.git] / game.h
diff --git a/game.h b/game.h
index 17c2b68dfafec9a26463c9db8624a2fd732069c9..35536b6cf006568a65e512e0a7380cc43503b352 100644 (file)
--- a/game.h
+++ b/game.h
@@ -2,22 +2,44 @@
 
 #include "protocol.h"
 
 
 #include "protocol.h"
 
-#define MAX_PLAYERS 64
-#define TICK_DELAY  (1000 / 60)
-#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;
 
 typedef struct Player {
        /* public */
        bool  live;
        float x, y, r;
        float vx, vy, vr;
+       int   shoot;
 
        /* internal */
        bool  updated;
 } Player;
 
 
        /* internal */
        bool  updated;
 } Player;
 
+typedef struct Bullet {
+       /* public */
+       bool  live;
+       int   owner;
+       float x, y;
+       float vx, vy;
+       int   tick;
+
+       /* internal */
+       bool updated;
+} Bullet;
+
 extern Player g_player[MAX_PLAYERS];
 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_does(unsigned int id, DoesCode code);
+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, DoesBits code);
 void g_update();
 void g_update();
+void g_init(bool server_mode);