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;
CALL_ACCUMULATED_FUNCTION(RegisterNotifications);
CALL_ACCUMULATED_FUNCTION(RegisterDeathtypes);
CALL_ACCUMULATED_FUNCTION(RegisterHUD_Panels);
+ CALL_ACCUMULATED_FUNCTION(RegisterBuffs);
WaypointSprite_Load();
// 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_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();
}
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();
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();
return text;
}
else if (autocvar_hud_showbinds > 1)
- return sprintf(_("%s (%s)"), text, keys);
+ return sprintf("%s (%s)", text, keys);
else
return keys;
}