// tweak these if the game runs out
cl.max_csqcrenderentities = 0;
- cl.max_entities = MAX_ENITIES_INITIAL;
+ cl.max_entities = MAX_ENTITIES_INITIAL;
cl.max_static_entities = MAX_STATICENTITIES;
cl.max_effects = MAX_EFFECTS;
cl.max_beams = MAX_BEAMS;
}
}
+static void CL_ToggleMenu_Hook(void)
+{
+#ifdef CONFIG_MENU
+ // remove menu
+ if (key_dest == key_menu || key_dest == key_menu_grabbed)
+ MR_ToggleMenu(0);
+#endif
+ key_dest = key_game;
+}
+
extern cvar_t rcon_secure;
/*
This is sent just before a server changes levels
==================
*/
-void CL_Reconnect_f(cmd_state_t *cmd)
+static void CL_Reconnect_f(cmd_state_t *cmd)
{
char temp[128];
// if not connected, reconnect to the most recent server
M_Update_Return_Reason("");
#endif
- // Disconnect from the current server, or stop a running demo.
- CL_Disconnect();
-
// make sure the client ports are open before attempting to connect
NetConn_UpdateSockets();
CL_EstablishConnection("local:1", -2);
}
+static qbool CL_Intermission(void)
+{
+ return cl.intermission;
+}
+
/*
==============
CL_PrintEntities_f
static void CL_ModelIndexList_f(cmd_state_t *cmd)
{
int i;
- dp_model_t *model;
+ model_t *model;
// Print Header
Con_Printf("%3s: %-30s %-8s %-8s\n", "ID", "Name", "Type", "Triangles");
{
vec3_t org;
vec_t scale;
- dp_model_t *model = ent->model;
+ model_t *model = ent->model;
// update the inverse matrix for the renderer
Matrix4x4_Invert_Simple(&ent->inversematrix, &ent->matrix);
// update the animation blend state
return render;
}
-void CL_Effect(vec3_t org, dp_model_t *model, int startframe, int framecount, float framerate)
+void CL_Effect(vec3_t org, model_t *model, int startframe, int framecount, float framerate)
{
int i;
cl_effect_t *e;
}
entity_t cl_meshentities[NUM_MESHENTITIES];
-dp_model_t cl_meshentitymodels[NUM_MESHENTITIES];
+model_t cl_meshentitymodels[NUM_MESHENTITIES];
const char *cl_meshentitynames[NUM_MESHENTITIES] =
{
"MESH_SCENE",
CL_UpdateEntityShading_Entity(r_refdef.scene.entities[i]);
}
+qbool vid_opened = false;
+void CL_StartVideo(void)
+{
+ if (!vid_opened && cls.state != ca_dedicated)
+ {
+ vid_opened = true;
+#ifdef WIN32
+ // make sure we open sockets before opening video because the Windows Firewall "unblock?" dialog can screw up the graphics context on some graphics drivers
+ NetConn_UpdateSockets();
+#endif
+ VID_Start();
+ CDAudio_Startup();
+ }
+}
+
extern cvar_t host_framerate;
extern cvar_t host_speeds;
{
Con_Printf("Initializing client\n");
+ Cvar_SetValueQuick(&host_isclient, 1);
+
R_Modules_Init();
Palette_Init();
#ifdef CONFIG_MENU
CL_Video_Init();
host.hook.ConnectLocal = CL_EstablishConnection_Local;
+ host.hook.Disconnect = CL_Disconnect;
+ host.hook.CL_Intermission = CL_Intermission;
+ host.hook.ToggleMenu = CL_ToggleMenu_Hook;
}
}