clearentity_ent = spawn();
clearentity_ent.classname = "clearentity";
}
- float n = e.entnum;
+ int n = e.entnum;
copyentity(clearentity_ent, e);
e.entnum = n;
}
{
}
-#ifdef USE_FTE
-float __engine_check;
-#endif
-
string forcefog;
void WaypointSprite_Load();
void ConsoleCommand_macro_init();
void CSQC_Init(void)
{
prvm_language = cvar_string("prvm_language");
-#ifdef USE_FTE
-#pragma target ID
- __engine_check = checkextension("DP_SV_WRITEPICTURE");
- if(!__engine_check)
- {
- print(_("^3Your engine build is outdated\n^3This Server uses a newer QC VM. Please update!\n"));
- localcmd("\ndisconnect\n");
- return;
- }
-#pragma target FTE
-#endif
-
- check_unacceptable_compiler_bugs();
#ifdef WATERMARK
- printf(_("^4CSQC Build information: ^1%s\n"), WATERMARK);
+ dprintf("^4CSQC Build information: ^1%s\n", WATERMARK);
#endif
- float i;
-
-#ifdef COMPAT_XON050_ENGINE
- // old engine lacks implementation of player_localnum
- player_localnum = player_localentnum - 1;
-#endif
+ int i;
binddb = db_create();
tempdb = db_create();
compressShortVector_init();
draw_endBoldFont();
- menu_visible = FALSE;
+ menu_visible = false;
menu_show = menu_show_error;
menu_action = func_null;
registercvar("hud_usecsqc", "1");
registercvar("scoreboard_columns", "default");
+ registercvar("cl_nade_type", "3");
+ registercvar("cl_pokenade_type", "zombie");
+
gametype = 0;
// hud_fields uses strunzone on the titles!
for(i = 0; i < MAX_HUD_FIELDS; ++i)
hud_title[i] = strzone("(null)");
+ Cmd_HUD_SetFields(0);
+
postinit = false;
calledhooks = 0;
Hook_Precache();
GibSplash_Precache();
Casings_Precache();
- DamageInfo_Precache();
Vehicles_Precache();
turrets_precache();
Tuba_Precache();
if(autocvar_cl_reticle)
{
- if(autocvar_cl_reticle_item_normal) { precache_pic("gfx/reticle_normal"); }
- if(autocvar_cl_reticle_item_nex) { precache_pic("gfx/reticle_nex"); }
+ precache_pic("gfx/reticle_normal");
+ // weapon reticles are precached in weapon files
}
get_mi_min_max_texcoords(1); // try the CLEVER way first
// CSQC_Shutdown : Called every time the CSQC code is shutdown (changing maps, quitting, etc)
void Shutdown(void)
{
-#ifdef USE_FTE
-#pragma TARGET id
- if(!__engine_check)
- return 0;
-#pragma TARGET fte
-#endif
-
WarpZone_Shutdown();
remove(teams);
}
.float has_team;
-float SetTeam(entity o, float Team)
+float SetTeam(entity o, int Team)
{
entity tm;
if(teamplay)
tm = GetTeam(o.team, false);
tm.team_size -= 1;
o.has_team = 0;
- return TRUE;
+ return true;
}
}
else
tm = GetTeam(Team, true);
tm.team_size += 1;
o.has_team = 1;
- return TRUE;
+ return true;
}
else if(Team != o.team)
{
o.team = Team;
tm = GetTeam(Team, true);
tm.team_size += 1;
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
void Playerchecker_Think()
{
- float i;
+ int i;
entity e;
for(i = 0; i < maxclients; ++i)
{
void TrueAim_Init();
void PostInit(void)
{
- localcmd(strcat("\nscoreboard_columns_set ", autocvar_scoreboard_columns, ";\n"));
-
entity playerchecker;
playerchecker = spawn();
playerchecker.think = Playerchecker_Think;
postinit = true;
}
-float button_zoom;
-
// CSQC_InputEvent : Used to perform actions based on any key pressed, key released and mouse on the client.
// Return value should be 1 if CSQC handled the input, otherwise return 0 to have the input passed to the engine.
// All keys are in ascii.
if(menu_visible && menu_action)
if(menu_action(bInputType, nPrimary, nSecondary))
- return TRUE;
+ return true;
return bSkipKey;
}
}
void Ent_ReadEntCS()
{
- float sf;
+ int sf;
InterpolateOrigin_Undo();
self.classname = "entcs_receiver";
void Ent_ReadPlayerScore()
{
- float i, n;
- float isNew;
+ int i, n;
+ bool isNew;
entity o;
// damnit -.- don't want to go change every single .sv_entnum in hud.qc AGAIN
// RegisterPlayer(o);
//playerchecker will do this for us later, if it has not already done so
- float sf, lf;
+ int sf, lf;
#if MAX_SCORE <= 8
sf = ReadByte();
lf = ReadByte();
sf = ReadShort();
lf = ReadShort();
#endif
- float p;
+ int p;
for(i = 0, p = 1; i < MAX_SCORE; ++i, p *= 2)
if(sf & p)
{
void Ent_ReadTeamScore()
{
- float i;
+ int i;
entity o;
self.team = ReadByte();
o = self.owner = GetTeam(self.team, true); // these team numbers can always be trusted
- float sf, lf;
+ int sf, lf;
#if MAX_TEAMSCORE <= 8
sf = ReadByte();
lf = ReadByte();
sf = ReadShort();
lf = ReadShort();
#endif
- float p;
+ int p;
for(i = 0, p = 1; i < MAX_TEAMSCORE; ++i, p *= 2)
if(sf & p)
{
void Ent_ClientData()
{
- float f;
float newspectatee_status;
- f = ReadByte();
+ int f = ReadByte();
scoreboard_showscores_force = (f & 1);
}
spectatee_status = newspectatee_status;
- // non-COMPAT_XON050_ENGINE: we could get rid of spectatee_status, and derive it from player_localentnum and player_localnum
+ // we could get rid of spectatee_status, and derive it from player_localentnum and player_localnum
}
void Ent_Nagger()
{
- float nags, i, j, b, f;
+ int i, j, b, f;
- nags = ReadByte(); // NAGS NAGS NAGS NAGS NAGS NAGS NADZ NAGS NAGS NAGS
+ int nags = ReadByte(); // NAGS NAGS NAGS NAGS NAGS NAGS NADZ NAGS NAGS NAGS
if(!(nags & 4))
{
warmup_stage = (nags & 16);
}
+void Ent_EliminatedPlayers()
+{
+ int i, j, b, f;
+
+ int sf = ReadByte();
+ if(sf & 1)
+ {
+ for(j = 0; j < maxclients; ++j)
+ if(playerslots[j])
+ playerslots[j].eliminated = 1;
+ for(i = 1; i <= maxclients; i += 8)
+ {
+ f = ReadByte();
+ for(j = i-1, b = 1; b < 256; b *= 2, ++j)
+ if (!(f & b))
+ if(playerslots[j])
+ playerslots[j].eliminated = 0;
+ }
+ }
+}
+
void Ent_RandomSeed()
{
float s;
void Ent_ReadAccuracy(void)
{
- float sf, f, w, b;
- sf = ReadInt24_t();
+ int f, w;
+ int sf = ReadInt24_t();
if(sf == 0)
{
for(w = 0; w <= WEP_LAST - WEP_FIRST; ++w)
{
if(sf & f)
{
- b = ReadByte();
+ int b = ReadByte();
if(b == 0)
weapon_accuracy[w] = -1;
else if(b == 255)
if(autocvar_cl_unpress_zoom_on_spawn)
{
localcmd("-zoom\n");
- button_zoom = FALSE;
+ button_zoom = false;
}
}
case ENT_CLIENT_RAINSNOW: Ent_RainOrSnow(); break;
case ENT_CLIENT_LASER: Ent_Laser(); break;
case ENT_CLIENT_NAGGER: Ent_Nagger(); break;
+ case ENT_CLIENT_ELIMINATEDPLAYERS: Ent_EliminatedPlayers(); break;
case ENT_CLIENT_WAYPOINT: Ent_WaypointSprite(); break;
case ENT_CLIENT_RADARLINK: Ent_RadarLink(); break;
case ENT_CLIENT_PROJECTILE: Ent_Projectile(); break;
case ENT_CLIENT_WARPZONE_TELEPORTED: WarpZone_Teleported_Read(bIsNewEntity); break;
case ENT_CLIENT_TRIGGER_MUSIC: Ent_ReadTriggerMusic(); break;
case ENT_CLIENT_HOOK: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_HOOK); break;
- case ENT_CLIENT_LGBEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LGBEAM); break;
- case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break;
+ case ENT_CLIENT_ARC_BEAM: Ent_ReadArcBeam(bIsNewEntity); break;
case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break;
case ENT_CLIENT_AUXILIARYXHAIR: Net_AuXair2(bIsNewEntity); break;
case ENT_CLIENT_TURRET: ent_turret(); break;
case ENT_CLIENT_SPAWNPOINT: Ent_ReadSpawnPoint(bIsNewEntity); break;
case ENT_CLIENT_SPAWNEVENT: Ent_ReadSpawnEvent(bIsNewEntity); break;
case ENT_CLIENT_NOTIFICATION: Read_Notification(bIsNewEntity); break;
+ case ENT_CLIENT_HEALING_ORB: ent_healer(); break;
default:
//error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype));
- error(sprintf(_("Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n"), self.enttype, num_for_edict(self), self.classname));
+ error(sprintf("Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n", self.enttype, num_for_edict(self), self.classname));
break;
}
void Gamemode_Init();
void Ent_ScoresInfo()
{
- float i;
+ int i;
self.classname = "ent_client_scores_info";
gametype = ReadInt24_t();
HUD_ModIcons_SetFunc();
for(i = 0; i < MAX_SCORE; ++i)
{
+ if(scores_label[i])
+ strunzone(scores_label[i]);
scores_label[i] = strzone(ReadString());
scores_flags[i] = ReadByte();
}
for(i = 0; i < MAX_TEAMSCORE; ++i)
{
+ if(teamscores_label[i])
+ strunzone(teamscores_label[i]);
teamscores_label[i] = strzone(ReadString());
teamscores_flags[i] = ReadByte();
}
hook_shotorigin[1] = decompressShotOrigin(ReadInt24_t());
hook_shotorigin[2] = decompressShotOrigin(ReadInt24_t());
hook_shotorigin[3] = decompressShotOrigin(ReadInt24_t());
- electro_shotorigin[0] = decompressShotOrigin(ReadInt24_t());
- electro_shotorigin[1] = decompressShotOrigin(ReadInt24_t());
- electro_shotorigin[2] = decompressShotOrigin(ReadInt24_t());
- electro_shotorigin[3] = decompressShotOrigin(ReadInt24_t());
- gauntlet_shotorigin[0] = decompressShotOrigin(ReadInt24_t());
- gauntlet_shotorigin[1] = decompressShotOrigin(ReadInt24_t());
- gauntlet_shotorigin[2] = decompressShotOrigin(ReadInt24_t());
- gauntlet_shotorigin[3] = decompressShotOrigin(ReadInt24_t());
+ arc_shotorigin[0] = decompressShotOrigin(ReadInt24_t());
+ arc_shotorigin[1] = decompressShotOrigin(ReadInt24_t());
+ arc_shotorigin[2] = decompressShotOrigin(ReadInt24_t());
+ arc_shotorigin[3] = decompressShotOrigin(ReadInt24_t());
if(forcefog)
strunzone(forcefog);
armorblockpercent = ReadByte() / 255.0;
- g_balance_grenadelauncher_bouncefactor = ReadCoord();
- g_balance_grenadelauncher_bouncestop = ReadCoord();
+ g_balance_mortar_bouncefactor = ReadCoord();
+ g_balance_mortar_bouncestop = ReadCoord();
g_balance_electro_secondary_bouncefactor = ReadCoord();
g_balance_electro_secondary_bouncestop = ReadCoord();
- nex_scope = !ReadByte();
+ vortex_scope = !ReadByte();
rifle_scope = !ReadByte();
serverflags = ReadByte();
race_speedaward_alltimebest_holder = strzone(ReadString());
break;
case RACE_NET_SERVER_RANKINGS:
- float pos, prevpos, del;
- pos = ReadShort();
+ float prevpos, del;
+ int pos = ReadShort();
prevpos = ReadShort();
del = ReadShort();
// move other rankings out of the way
- float i;
+ int i;
if (prevpos) {
for (i=prevpos-1;i>pos-1;--i) {
grecordtime[i] = grecordtime[i-1];
void Net_ReadPingPLReport()
{
- float e, pi, pl, ml;
+ int e, pi, pl, ml;
e = ReadByte();
pi = ReadShort();
pl = ReadByte();
if(complain_weapon_name)
strunzone(complain_weapon_name);
- complain_weapon_name = strzone(ReadString());
+ complain_weapon_name = strzone(WEP_NAME(complain_weapon));
complain_weapon_type = ReadByte();
Net_ReadRace();
bHandled = true;
break;
- case TE_CSQC_NEXGUNBEAMPARTICLE:
- Net_ReadNexgunBeamParticle();
+ case TE_CSQC_VORTEXBEAMPARTICLE:
+ Net_ReadVortexBeamParticle();
bHandled = true;
break;
case TE_CSQC_TEAMNAGGER:
Net_TeamNagger();
bHandled = true;
break;
- case TE_CSQC_LIGHTNINGARC:
- Net_ReadLightningarc();
+ case TE_CSQC_ARC:
+ Net_ReadArc();
bHandled = true;
break;
case TE_CSQC_PINGPLREPORT:
cl_notice_read();
bHandled = true;
break;
+ case TE_CSQC_SHOCKWAVEPARTICLE:
+ Net_ReadShockwaveParticle();
+ bHandled = true;
+ break;
default:
// No special logic for this temporary entity; return 0 so the engine can handle it
bHandled = false;
return text;
}
else if (autocvar_hud_showbinds > 1)
- return sprintf(_("%s (%s)"), text, keys);
+ return sprintf("%s (%s)", text, keys);
else
return keys;
}