-Sun 16 Apr 2023 07:24:58 AM CEST
+Sun 30 Apr 2023 07:23:00 AM CEST
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-09 07:22+0200\n"
"PO-Revision-Date: 2013-09-12 16:53+0000\n"
-"Last-Translator: oblector o, 2022\n"
+"Last-Translator: oblector o, 2022-2023\n"
"Language-Team: Latin (http://app.transifex.com/team-xonotic/xonotic/language/"
"la/)\n"
"Language: la\n"
#: qcsrc/client/hud/panel/scoreboard.qc:685
msgid "Usage:"
-msgstr ""
+msgstr "Usus:"
#: qcsrc/client/hud/panel/scoreboard.qc:687
msgid "^2scoreboard_columns_set ^3field1 field2 ..."
-msgstr ""
+msgstr "^2scoreboard_columns_set ^3columna1 columna2 ..."
#: qcsrc/client/hud/panel/scoreboard.qc:688
msgid ""
"^2scoreboard_columns_set ^7without arguments reads the arguments from the "
"cvar scoreboard_columns"
msgstr ""
+"^2scoreboard_columns_set ^7si non sunt argumenta, columnas legit ex "
+"variabili scoreboard_columns"
#: qcsrc/client/hud/panel/scoreboard.qc:689
msgid ""
" ^5Note: ^7scoreboard_columns_set without arguments is executed on every "
"map start"
msgstr ""
+" ^5Nota: ^7scoreboard_columns_set si non sunt argumenta, iubetur semper cum "
+"ludus incipit"
#: qcsrc/client/hud/panel/scoreboard.qc:690
msgid ""
"^2scoreboard_columns_set ^3expand_default ^7loads default layout and expands "
"it into the cvar scoreboard_columns so you can edit it"
msgstr ""
+"^2scoreboard_columns_set ^3expand_default ^7rationarii formam ordinariam in "
+"variabili scoreboard_columns scribit ut legas et transcribas id quod vellis"
#: qcsrc/client/hud/panel/scoreboard.qc:691
msgid "You can use a ^3|^7 to start the right-aligned fields."
-msgstr ""
+msgstr "Signum ^3|^7 scribe ut ad columnae latus dextrum res scribantur."
#: qcsrc/client/hud/panel/scoreboard.qc:692
msgid "The following field names are recognized (case insensitive):"
msgstr ""
+"Noscuntur columnarum nomina quae sequuntur (litteras parvas vel magnas "
+"scribere potes):"
#: qcsrc/client/hud/panel/scoreboard.qc:698
msgid ""
"or in all but these game types. You can also specify 'all' as a\n"
"field to show all fields available for the current game mode."
msgstr ""
+"Ante columnae nomen scribere potes signum + vel -, etiam sequentes\n"
+"ludorum modorum nomina, signa commata interposita, denique lineam /,\n"
+"ut columna scribatur solum cum inter ea nomina ludi modus sit, vel\n"
+"cum inter ea non sit. Atque 'all' scribere potes ut omnes ludi modi\n"
+"columnas videas."
#: qcsrc/client/hud/panel/scoreboard.qc:704
msgid ""
"The special game type names 'teams' and 'noteams' can be used to\n"
"include/exclude ALL teams/noteams game modes."
-msgstr ""
+msgstr "Nomen 'teams' manuum modis est, et nomen 'noteams' aliis modis."
#: qcsrc/client/hud/panel/scoreboard.qc:708
msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4"
msgstr ""
+"Exemplum: scoreboard_columns_set name ping pl | +ctf/columna3 -dm/columna4"
#: qcsrc/client/hud/panel/scoreboard.qc:709
msgid ""
"will display name, ping and pl aligned to the left, and the fields\n"
"right of the vertical bar aligned to the right."
msgstr ""
+"nomen, ping et PL ad latus sinistrum scribuntur, et aliae ad latus\n"
+"dextrum scribuntur."
#: qcsrc/client/hud/panel/scoreboard.qc:711
msgid ""
"'field3' will only be shown in CTF, and 'field4' will be shown in all\n"
"other gamemodes except DM."
msgstr ""
+"'columna3' modo Vexilli Captu 'ctf' videbitur, et 'columna4' omni\n"
+"modo praeter Interfectionem 'dm' videbitur."
#: qcsrc/client/hud/panel/scoreboard.qc:990
#: qcsrc/client/hud/panel/scoreboard.qc:997
#: qcsrc/client/mapvoting.qc:558
msgid "mv_mapdownload: ^3You're not supposed to use this command on your own!"
-msgstr ""
+msgstr "mv_mapdownload: ^3Non decet temet ipsum hunc iubere!"
#: qcsrc/client/mapvoting.qc:568
msgid "^1Error:^7 Couldn't find pak index."
-msgstr ""
+msgstr "^1Defuit:^7 Index Pak inventus non est."
#: qcsrc/client/mapvoting.qc:577
msgid "Requesting preview..."
-msgstr ""
+msgstr "Pictura poscitur..."
#: qcsrc/client/view.qc:883
msgid "Nade timer"
#: qcsrc/common/command/generic.qc:156
msgid "error creating curl handle"
-msgstr ""
+msgstr "defuit in creatione curl handle"
#: qcsrc/common/gamemodes/gamemode/assault/assault.qh:8
msgid "Assault"
fr "French" "Français" 100%
ga "Irish" "Irish" 29%
it "Italian" "Italiano" 99%
-la "Latin" "Lingua Latina" 56%
+la "Latin" "Lingua Latina" 57%
hu "Hungarian" "Magyar" 43%
nl "Dutch" "Nederlands" 62%
pl "Polish" "Polski" 80%
/*
-Generated framegroups file for h_laser
+Generated framegroups file for h_ok_grenade
Used by DarkPlaces to simulate frame groups in DPM models.
*/
-1 51 50 0 // h_laser hgrenade_fire
-52 101 50 0 // h_laser hgrenade_idle
-153 101 5 1 // h_laser hgrenade_idle
-254 101 5 1 // h_laser hgrenade_idle
+1 37 50 0 // h_ok_grenade fire
+38 2 50 0 // h_ok_grenade idle
+40 2 5 1 // h_ok_grenade idle
/*
-Generated framegroups file for h_uzi
+Generated framegroups file for h_ok_hmg
Used by DarkPlaces to simulate frame groups in DPM models.
*/
-1 11 120 0 // h_uzi mgafire
-12 11 120 0 // h_uzi mgafire
-23 51 2 1 // h_uzi mgaidle
-74 11 30 0 // h_uzi mgafire
-85 11 30 0 // h_uzi mgafire
+1 11 120 0 // h_ok_hmg fire
+12 11 120 0 // h_ok_hmg fire
+23 52 2 1 // h_ok_hmg idle
+75 11 30 0 // h_ok_hmg fire
/*
-Generated framegroups file for h_uzi
+Generated framegroups file for h_ok_rl
Used by DarkPlaces to simulate frame groups in DPM models.
*/
-1 61 30 0 // h_uzi mgafire
-62 61 30 0 // h_uzi mgafire
-123 101 3 1 // h_uzi mgaidle
-224 61 30 0 // h_uzi mgafire
-285 61 30 0 // h_uzi mgafire
+1 61 30 0 // h_ok_rl fire
+62 61 30 0 // h_ok_rl fire
+123 101 3 1 // h_ok_rl idle
+224 61 30 0 // h_ok_rl fire
GameRules_scoring_vip(player, true);
// reset flag
+ flag.solid = SOLID_NOT; // before setorigin to prevent area grid linking
if(player.vehicle)
{
setattachment(flag, player.vehicle, "");
}
set_movetype(flag, MOVETYPE_NONE);
flag.takedamage = DAMAGE_NO;
- flag.solid = SOLID_NOT;
flag.angles = '0 0 0';
flag.ctf_status = FLAG_CARRY;
// reset the flag
setattachment(flag, NULL, "");
tracebox(player.origin - FLAG_DROP_OFFSET, flag.m_mins, flag.m_maxs, player.origin + FLAG_DROP_OFFSET, MOVE_NOMONSTERS, flag);
+ flag.solid = SOLID_TRIGGER; // before setorigin to ensure area grid linking
setorigin(flag, trace_endpos);
flag.owner.flagcarried = NULL;
GameRules_scoring_vip(flag.owner, false);
flag.owner = NULL;
- flag.solid = SOLID_TRIGGER;
flag.ctf_dropper = player;
flag.ctf_droptime = time;
flag.ctf_landtime = 0;
flag.owner = player;
player.flagcarried = flag;
GameRules_scoring_vip(player, true);
+ flag.solid = SOLID_NOT; // before setorigin to prevent area grid linking
if(player.vehicle)
{
setattachment(flag, player.vehicle, "");
// flag setup
set_movetype(flag, MOVETYPE_NONE);
flag.takedamage = DAMAGE_NO;
- flag.solid = SOLID_NOT;
flag.angles = '0 0 0';
flag.ctf_status = FLAG_CARRY;
// reset the flag
setattachment(flag, NULL, "");
+ flag.solid = SOLID_TRIGGER; // before setorigin to ensure area grid linking
setorigin(flag, flag.ctf_spawnorigin);
//set_movetype(flag, ((flag.noalign) ? MOVETYPE_NONE : MOVETYPE_TOSS)); // would be desired, except maps that want floating flags have it set to fall!
set_movetype(flag, MOVETYPE_NONE); // match the initial setup handling (flag doesn't move when spawned)
flag.takedamage = DAMAGE_NO;
SetResourceExplicit(flag, RES_HEALTH, flag.max_health);
- flag.solid = SOLID_TRIGGER;
flag.velocity = '0 0 0';
flag.angles = flag.mangle;
flag.flags = FL_ITEM | FL_NOTARGET;
{
entity e = new(keepawayball);
setmodel(e, MDL_KA_BALL);
+ e.solid = SOLID_TRIGGER; // before setsize to ensure area grid linking
setsize(e, '-16 -16 -20', '16 16 20'); // 20 20 20 was too big, player is only 16 16 24... gotta cheat with the Z (20) axis so that the particle isn't cut off
e.damageforcescale = autocvar_g_keepawayball_damageforcescale;
e.takedamage = DAMAGE_YES;
e.event_damage = ka_DamageEvent;
e.damagedbycontents = true;
IL_PUSH(g_damagedbycontents, e);
- e.solid = SOLID_TRIGGER;
set_movetype(e, MOVETYPE_BOUNCE);
e.glow_color = autocvar_g_keepawayball_trail_color;
e.glow_trail = true;
void kh_Key_Attach(entity key) // runs when a player picks up a key and several times when a key is assigned to a player at the start of a round
{
+ key.solid = SOLID_NOT; // before setorigin to prevent area grid linking
#ifdef KH_PLAYER_USE_ATTACHMENT
entity first = key.owner.kh_next;
if(key == first)
key.flags = 0;
if(IL_CONTAINS(g_items, key))
IL_REMOVE(g_items, key);
- key.solid = SOLID_NOT;
set_movetype(key, MOVETYPE_NONE);
key.team = key.owner.team;
key.nextthink = time;
void kh_Key_Detach(entity key) // runs every time a key is dropped or lost. Runs several times times when all the keys are captured
{
+ key.solid = SOLID_TRIGGER; // before setorigin to ensure area grid linking
#ifdef KH_PLAYER_USE_ATTACHMENT
entity first = key.owner.kh_next;
if(key == first)
key.flags = FL_ITEM;
if(!IL_CONTAINS(g_items, key))
IL_PUSH(g_items, key);
- key.solid = SOLID_TRIGGER;
set_movetype(key, MOVETYPE_TOSS);
key.pain_finished = time + autocvar_g_balance_keyhunt_delay_return;
key.damageforcescale = autocvar_g_balance_keyhunt_damageforcescale;
{
this.netname = "Control Point Icon";
+ this.solid = SOLID_NOT; // before setmodel/setsize to prevent area grid linking
setmodel(this, MDL_ONS_CP);
setsize(this, CPICON_MIN, CPICON_MAX);
if(this.icon_realmodel == NULL)
{
this.icon_realmodel = new(cpicon_model);
+ this.icon_realmodel.solid = SOLID_NOT;
setmodel(this.icon_realmodel, MDL_Null);
setorigin(this.icon_realmodel, this.origin);
setsize(this.icon_realmodel, CPICON_MIN, CPICON_MAX);
set_movetype(this.icon_realmodel, MOVETYPE_NOCLIP);
- this.icon_realmodel.solid = SOLID_NOT;
}
if(this.iscaptured) { this.icon_realmodel.solid = SOLID_BBOX; }
- set_movetype(this, MOVETYPE_NOCLIP);
- this.solid = SOLID_NOT;
set_movetype(this, MOVETYPE_NOCLIP);
this.move_time = time;
this.drawmask = MASK_NORMAL;
setorigin(this, this.origin);
setmodel(this, MDL_ONS_GEN);
+ this.solid = SOLID_BBOX; // before setsize to ensure area grid linking
setsize(this, GENERATOR_MIN, GENERATOR_MAX);
set_movetype(this, MOVETYPE_NOCLIP);
- this.solid = SOLID_BBOX;
set_movetype(this, MOVETYPE_NOCLIP);
this.move_time = time;
this.drawmask = MASK_NORMAL;
{
entity e = new(onslaught_controlpoint_icon);
+ e.solid = SOLID_NOT; // before setsize/setorigin to prevent area grid linking
setsize(e, CPICON_MIN, CPICON_MAX);
setorigin(e, cp.origin + CPICON_OFFSET);
e.owner = cp;
e.max_health = autocvar_g_onslaught_cp_health;
SetResourceExplicit(e, RES_HEALTH, autocvar_g_onslaught_cp_buildhealth);
- e.solid = SOLID_NOT;
e.takedamage = DAMAGE_AIM;
e.bot_attack = true;
IL_PUSH(g_bot_targets, e);
#include "nil.qh"
#include "static.qh"
-.vector origin;
-
+// pure entities: not linked to the area grid
+// see: sv_areagrid_link_SOLID_NOT and cl_areagrid_link_SOLID_NOT
.bool pure_data;
-#define is_pure(e) ((e).pure_data)
-/** @deprecated use new_pure or NEW(class) */
-#define make_pure(e) MACRO_BEGIN \
- (e).pure_data = true; \
-MACRO_END
-#define make_impure(e) MACRO_BEGIN \
- (e).pure_data = false; \
-MACRO_END
+
+#ifdef GAMEQC
+ /** direct use is @deprecated use new_pure or NEW(class) */
+ #define make_pure(e) \
+ (e).pure_data = true; \
+ (e).solid = SOLID_NOT;
+ #define is_pure(e) ((e).pure_data && (e).solid == SOLID_NOT)
+#else
+ #define make_pure(e) \
+ (e).pure_data = true;
+ #define is_pure(e) ((e).pure_data)
+#endif // GAMEQC
+#define make_impure(e) \
+ (e).pure_data = false;
.string classname;
/** Location entity was spawned from in source */
#define SPAWN_PURE 0
#endif
-// pure entities: need no .origin
#if SPAWN_PURE
entity spawn_pure() = #600;
#else
#define classfield(name) [[class(name)]]
#define _new(class, pure) ((class) __spawn(#class, __FILE__ ":" STR(__LINE__), pure))
#endif
-/** entities you care about seeing (.origin works) */
+/** entities you care about collisions with */
#define new(class) _new(class, false)
-/** purely logical entities (.origin doesn't work) */
+/** purely logical entities (not linked to the area grid) */
#define new_pure(class) _new(class, true)
#define spawn() __spawn("entity", __FILE__ ":" STR(__LINE__), false)
}
}
setorigin(this, this.origin);
+ this.solid = SOLID_TRIGGER; // before setsize to ensure area grid linking
if(this.scale)
setsize(this, this.mins * this.scale, this.maxs * this.scale);
else
setsize(this, this.mins, this.maxs);
set_movetype(this, MOVETYPE_NONE);
- this.solid = SOLID_TRIGGER;
this.model = "";
}
// Interpreted in post-config.cfg.
seta menu_forced_saved_cvars "" "These cvars will always be saved, despite engine/Xonotic cvar saving status"
set menu_reverted_nonsaved_cvars "" "These cvars are currently marked as saved in the flags, but have been reverted and won't stay saved. INTERNAL USE ONLY."
+
+// Avoid perf problems near '0 0 0'; `set` without a description is because only current DP has this engine cvar
+set cl_areagrid_link_SOLID_NOT 0
sv_disablenotify 1
set sv_quickmenu_file "" "filename of a custom server's quickmenu that will be selectable from the default client's quickmenu. This file must be sent in a pk3 archive and should have an unique name (e.g. quickmenu-servername.txt) to prevent overriding existing quickmenus"
+
+// Avoid perf problems near '0 0 0'; `set` without a description is because only current DP has this engine cvar
+set sv_areagrid_link_SOLID_NOT 0