Cvar_SetValueQuick(&deathmatch, 1);
svs.maxclients = numplayers;
- sv_clients_mempool = Mem_AllocPool("server clients");
+ sv_clients_mempool = Mem_AllocPool("server clients", 0, NULL);
svs.clients = Mem_Alloc(sv_clients_mempool, sizeof(client_t) * svs.maxclients);
}
NetConn_Heartbeat(1);
// free the client now
+ if (host_client->entitydatabase)
+ EntityFrame_FreeDatabase(host_client->entitydatabase);
if (host_client->entitydatabase4)
EntityFrame4_FreeDatabase(host_client->entitydatabase4);
+ if (host_client->entitydatabase5)
+ EntityFrame5_FreeDatabase(host_client->entitydatabase5);
// clear the client struct (this sets active to false)
memset(host_client, 0, sizeof(*host_client));
}
if (cls.signon == SIGNONS && cl.viewentity >= 0 && cl.viewentity < MAX_EDICTS && cl_entities[cl.viewentity].state_current.active)
{
// LordHavoc: this used to use renderer variables (eww)
- vec3_t forward, left, up, origin;
- Matrix4x4_ToVectors(&cl_entities[cl.viewentity].render.matrix, forward, left, up, origin);
- S_Update(origin, forward, left, up);
+ S_Update(&cl_entities[cl.viewentity].render.matrix);
}
else
- S_Update(vec3_origin, vec3_origin, vec3_origin, vec3_origin);
+ S_Update(&identitymatrix);
CDAudio_Update();
Cbuf_InsertText(va("timedemo %s\n", com_argv[i + 1]));
Cbuf_Execute();
+
+ // We must wait for the log_file cvar to be initialized to start the log
+ Log_Start ();
}
R_Modules_Shutdown();
VID_Shutdown();
}
+
+ Sys_Shutdown();
+ Log_Close ();
}