ClientProgsDB = db_load("client.db");\r
compressShortVector_init();\r
\r
- drawfont = 0;\r
+ drawfont = FONT_USER+1;\r
menu_visible = FALSE;\r
menu_show = menu_show_error;\r
menu_action = menu_sub_null;\r
#endif\r
\r
get_mi_min_max_texcoords(1); // try the CLEVER way first\r
- minimapname = strcat("gfx/", mi_shortname, "_radar.tga");\r
+ minimapname = strcat("gfx/radar/", mi_shortname, "_radar.tga");\r
shortmapname = mi_shortname;\r
\r
if(precache_pic(minimapname) == "")\r
{\r
// but maybe we have a non-clever minimap\r
- minimapname = strcat("gfx/", mi_shortname, "_mini.tga");\r
+ minimapname = strcat("gfx/radar/", mi_shortname, "_mini.tga");\r
if(precache_pic(minimapname) == "")\r
minimapname = ""; // FAIL\r
else\r
get_mi_min_max_texcoords(0); // load new texcoords\r
}\r
+ precache_pic("gfx/hud/bg_radar.tga");\r
+ precache_pic("gfx/hud/fg_radar.tga");\r
+ precache_pic("gfx/hud/fg_radar_team.tga");\r
\r
mi_center = (mi_min + mi_max) * 0.5;\r
mi_scale = mi_max - mi_min;\r
minimapname = strzone(minimapname);\r
\r
WarpZone_Init();\r
+\r
+ draw_currentSkin = strzone(strcat("gfx/menu/", cvar_string("menu_skin")));\r
}\r
\r
// CSQC_Shutdown : Called every time the CSQC code is shutdown (changing maps, quitting, etc)\r
if(camera_active)\r
cvar_set("chase_active",ftos(chase_active_backup));\r
\r
+ // unset the event chasecam's chase_active\r
+ if(cvar("chase_active") < 0)\r
+ cvar_set("chase_active", "0");\r
+\r
if not(isdemo())\r
{\r
if not(calledhooks & HOOK_START)\r
cvar_clientsettemp(argv(1), argv(2));\r
}\r
else if(cmd == "radar") {\r
- ons_showmap = !ons_showmap;\r
+ showmap = !showmap;\r
}\r
else if(cmd == "sbar_columns_set") {\r
Cmd_Sbar_SetFields(argc);\r
\r
// --------------------------------------------------------------------------\r
// BEGIN OPTIONAL CSQC FUNCTIONS\r
+void Ent_RemoveEntCS()\r
+{\r
+ entcs_receiver[self.sv_entnum] = world;\r
+}\r
void Ent_ReadEntCS()\r
{\r
+ float sf;\r
InterpolateOrigin_Undo();\r
\r
self.classname = "entcs_receiver";\r
- self.sv_entnum = ReadByte() - 1;\r
- self.origin_x = ReadShort();\r
- self.origin_y = ReadShort();\r
- self.origin_z = ReadShort();\r
- self.angles_y = ReadByte() * 360.0 / 256;\r
- self.origin_z = self.angles_x = self.angles_z = 0;\r
+ sf = ReadByte();\r
+\r
+ if(sf & 1)\r
+ self.sv_entnum = ReadByte();\r
+ if(sf & 2)\r
+ {\r
+ self.origin_x = ReadShort();\r
+ self.origin_y = ReadShort();\r
+ self.origin_z = ReadShort();\r
+ }\r
+ if(sf & 4)\r
+ {\r
+ self.angles_y = ReadByte() * 360.0 / 256;\r
+ self.angles_x = self.angles_z = 0;\r
+ }\r
+ if(sf & 8)\r
+ self.healthvalue = ReadShort();\r
+ if(sf & 16)\r
+ self.armorvalue = ReadShort();\r
+ if(sf & 32)\r
+ self.eaten = ReadByte();\r
+\r
+ entcs_receiver[self.sv_entnum] = self;\r
+ self.entremove = Ent_RemoveEntCS;\r
\r
InterpolateOrigin_Note();\r
}\r
float isNew;\r
entity o;\r
\r
- // damnit -.- don't want to go change every single .sv_entnum in sbar.qc AGAIN\r
+ // damnit -.- don't want to go change every single .sv_entnum in hud.qc AGAIN\r
// (no I've never heard of M-x replace-string, sed, or anything like that)\r
isNew = !self.owner; // workaround for DP bug\r
n = ReadByte()-1;\r
case ENT_CLIENT_WARPZONE: WarpZone_Read(bIsNewEntity); break;\r
case ENT_CLIENT_WARPZONE_CAMERA: WarpZone_Camera_Read(bIsNewEntity); break;\r
case ENT_CLIENT_TRIGGER_MUSIC: Ent_ReadTriggerMusic(); break;\r
+ case ENT_CLIENT_PORTRAIT: Ent_ReadPortrait(); break;\r
default:\r
error(strcat("unknown entity type in CSQC_Ent_Update: ", ftos(self.enttype), "\n"));\r
break;\r
strunzone(forcefog);\r
forcefog = strzone(ReadString());\r
\r
- g_campaign = ReadCoord();\r
+ g_campaign = ReadShort();\r
\r
armorblockpercent = ReadByte() / 255.0;\r
\r
g_weaponswitchdelay = ReadByte() / 255.0;\r
\r
- g_vore = ReadCoord();\r
- g_balance_vore_swallow_limit = ReadCoord();\r
+ g_vore = ReadShort();\r
+ g_healthsize_center = ReadShort();\r
+ g_healthsize_min = ReadShort();\r
+ g_healthsize_max = ReadShort();\r
+\r
+ armor_max = ReadCoord();\r
+ teamheal_max = ReadCoord();\r
+\r
+ g_power = ReadShort();\r
+ g_power_reboot = ReadShort();\r
+ g_power_reboot_spawn = ReadByte();\r
\r
if(!postinit)\r
PostInit();\r
{\r
float e, ph, pn;\r
e = ReadByte();\r
- ph = ReadByte();\r
+ ph = ReadShort(); // not ReadByte because we show minus health too\r
pn = ReadByte();\r
if not(playerslots[e])\r
return;\r