diff --git a/server.c b/server.c
index ea28583e06de04a2ead618e666593f6e92e2dc22..d6cbfcc3b3c07cb1670bb914466dd414dca5136d 100644 (file)
--- a/server.c
+++ b/server.c
for(int i = 0; i < clientlimit; i++)
if(full || g_player[i].updated)
SendMessage(sock, client[id].address, sv_splr(i, g_player[i].live, g_player[i].x, g_player[i].y, g_player[i].r, g_player[i].vx, g_player[i].vy, g_player[i].vr));
+
+ for(int i = 0; i < MAX_BULLETS; i++)
+ if(full || g_bullet[i].updated)
+ SendMessage(sock, client[id].address, sv_sbul(i, g_bullet[i].owner, g_bullet[i].live, g_bullet[i].x, g_bullet[i].y, g_bullet[i].vx, g_bullet[i].vy, g_bullet[i].tick));
+}
+
+static void sv_spawn_player(int id) {
+ assert(id >= 0);
+ g_player_set(id, true, randfm(), randfm(), randfm(), 0, 0, 0);
}
static void sv_kill_player(int id, bool send, const char * msg) {
assert(id >= 0);
assert(client[id].connected);
+ if(!g_player[id].live)
+ sv_spawn_player(id);
+
g_player_does(id, m.cl.does.code);
}
SDL_Log("Player %s (%i) connected", client[i].name, i);
SendMessage(sock, address, sv_info(name, i, clientlimit));
- g_player_set(i, true, randfm(), randfm(), randfm(), 0, 0, 0);
+ sv_spawn_player(i);
sv_sync_client(i, true);
}
for(int i = 0; i < clientlimit; i++)
if(client[i].connected)
sv_sync_client(i, false);
-
+
for(int i = 0; i < clientlimit; i++)
g_player[i].updated = false;
+
+ for(int i = 0; i < MAX_BULLETS; i++)
+ g_bullet[i].updated = false;
}
void sv_start(uint16_t port) {