void() menu_show_error =
{
- drawstring('0 200 0', "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!", '8 8 0', '1 0 0', 1, 0);
+ drawstring('0 200 0', _("ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"), '8 8 0', '1 0 0', 1, 0);
};
// CSQC_Init : Called every time the CSQC code is initialized (essentially at map load)
void WaypointSprite_Load();
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");
+ 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
- print("^4CSQC Build information: ", WATERMARK(), "\n");
+ print(sprintf(_("^4CSQC Build information: %s\n"), WATERMARK()));
#endif
float i;
- CSQC_CheckEngine();
binddb = db_create();
tempdb = db_create();
ClientProgsDB = db_load("client.db");
compressShortVector_init();
- drawfont = 0;
+ drawfont = FONT_USER+1;
menu_visible = FALSE;
menu_show = menu_show_error;
menu_action = menu_sub_null;
WaypointSprite_Load();
// precaches
+ precache_sound("misc/hit.wav");
+ precache_sound("misc/typehit.wav");
Projectile_Precache();
Hook_Precache();
GibSplash_Precache();
}
Tuba_Precache();
+ if(autocvar_cl_reticle_item_normal) precache_pic("gfx/reticle_normal");
+ if(autocvar_cl_reticle_item_nex) precache_pic("gfx/reticle_nex");
+
get_mi_min_max_texcoords(1); // try the CLEVER way first
minimapname = strcat("gfx/", mi_shortname, "_radar.tga");
shortmapname = mi_shortname;
default:
if(GetTeam(Team, false) == NULL)
{
- print("trying to switch to unsupported team ", ftos(Team), "\n");
+ print(sprintf(_("trying to switch to unsupported team %d\n"), Team));
Team = COLOR_SPECTATOR;
}
break;
default:
if(GetTeam(Team, false) == NULL)
{
- print("trying to switch to unsupported team ", ftos(Team), "\n");
+ print(sprintf(_("trying to switch to unsupported team %d\n"), Team));
Team = COLOR_SPECTATOR;
}
break;
{
if(o.has_team)
{
- //print("(DISCONNECT) leave team ", ftos(o.team), "\n");
tm = GetTeam(o.team, false);
tm.team_size -= 1;
o.has_team = 0;
{
if not(o.has_team)
{
- //print("(CONNECT) enter team ", ftos(o.team), "\n");
o.team = Team;
tm = GetTeam(Team, true);
tm.team_size += 1;
}
else if(Team != o.team)
{
- //print("(CHANGE) leave team ", ftos(o.team), "\n");
tm = GetTeam(o.team, false);
tm.team_size -= 1;
o.team = Team;
- //print("(CHANGE) enter team ", ftos(o.team), "\n");
tm = GetTeam(Team, true);
tm.team_size += 1;
return TRUE;
{
if(e.sort_prev)
{
- //print("playerchecker: KILL KILL KILL\n");
// player disconnected
SetTeam(e, -1);
RemovePlayer(e);
{
if not(e.sort_prev)
{
- //print("playerchecker: SPAWN SPAWN SPAWN\n");
// player connected
if not(e)
playerslots[i] = e = spawn();
void TrueAim_Init();
void PostInit(void)
{
- print(strcat("PostInit\n maxclients = ", ftos(maxclients), "\n"));
localcmd(strcat("\nscoreboard_columns_set ", autocvar_scoreboard_columns, ";\n"));
entity playerchecker;
return true;
} else if(strCmd == "hud_save") { // save hud config
if(argv(1) == "" || argv(2)) {
- print("Usage:\n");
- print("hud_save configname (saves to hud_skinname_configname.cfg)\n");
+ print(_("Usage:\n"));
+ print(_("hud_save configname (saves to hud_skinname_configname.cfg)\n"));
}
else
HUD_Panel_ExportCfg(argv(1));
if(argv(0) == "help" || argc == 0)
{
- print("Usage: cl_cmd COMMAND..., where possible commands are:\n");
- print(" settemp cvar value\n");
- print(" scoreboard_columns_set ...\n");
- print(" scoreboard_columns_help\n");
+ print(_("Usage: cl_cmd COMMAND..., where possible commands are:\n"));
+ print(_(" settemp cvar value\n"));
+ print(_(" scoreboard_columns_set ...\n"));
+ print(_(" scoreboard_columns_help\n"));
GameCommand_Generic("help");
return;
}
#ifdef DP_CSQC_ENTITY_REMOVE_IS_B0RKED
if(!isNew && n != self.sv_entnum)
{
- print("A CSQC entity changed its owner!\n");
+ print(_("A CSQC entity changed its owner!\n"));
isNew = true;
Ent_Remove();
self.enttype = ENT_CLIENT_SCORES;
if(self.enttype)
if(t != self.enttype)
{
- print("A CSQC entity changed its type!\n");
+ print(_("A CSQC entity changed its type!\n"));
Ent_Remove();
bIsNewEntity = 1;
}
case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break;
case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break;
default:
- error(strcat("unknown entity type in CSQC_Ent_Update: ", ftos(self.enttype), "\n"));
+ error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype));
break;
}
g_balance_electro_secondary_bouncestop = ReadCoord();
nex_scope = !ReadByte();
- campingrifle_scope = !ReadByte();
+ sniperrifle_scope = !ReadByte();
serverflags = ReadByte();
+ minelayer_maxmines = ReadByte();
+
+ g_trueaim_minrange = ReadCoord();
+
if(!postinit)
PostInit();
}
weapontime = time; // ping the weapon panel
}
+void Net_ShowNames()
+{
+ if(shownames_netname)
+ strunzone(shownames_netname);
+ shownames_netname = strzone(ReadString());
+ shownames_health = ReadByte();
+ shownames_armor = ReadByte();
+ shownames_time = time + 0.25;
+}
+
// CSQC_Parse_TempEntity : Handles all temporary entity network data in the CSQC layer.
// You must ALWAYS first acquire the temporary ID, which is sent as a byte.
// Return value should be 1 if CSQC handled the temporary entity, otherwise return 0 to have the engine process the event.
Net_WeaponComplain();
bHandled = true;
break;
- case TE_CSQC_CR_MAXBULLETS:
- cr_maxbullets = ReadByte();
- bHandled = true;
- break;
+ case TE_CSQC_SHOWNAMES:
+ Net_ShowNames();
+ bHandled = true;
+ break;
default:
// No special logic for this temporary entity; return 0 so the engine can handle it
bHandled = false;
if ("" == keys) {
if (hud_showbinds > 1)
- return strcat(text, " (not bound)");
+ return sprintf(_("%s (not bound)"), text);
else
return text;
}
else if (hud_showbinds > 1)
- return strcat(text, " (", keys, ")");
+ return sprintf(_("%s (%s)"), text, keys);
else
return keys;
}