From: bones_was_here Date: Sat, 6 Mar 2021 10:15:39 +0000 (+1000) Subject: Merge branch 'master' into bones_was_here/q3compat X-Git-Tag: xonotic-v0.8.5~352^2~13 X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=3e6e644488b54b638078fb88b88c643e103ac8e1 Merge branch 'master' into bones_was_here/q3compat --- 3e6e644488b54b638078fb88b88c643e103ac8e1 diff --cc qcsrc/common/stats.qh index ffc0cfacfb,e5621c29ec..c709da51a7 --- a/qcsrc/common/stats.qh +++ b/qcsrc/common/stats.qh @@@ -1,10 -1,16 +1,17 @@@ #pragma once + // you're next + #ifdef SVQC - #include #include +#include + #include + #include + #include #include + #include + #include + #include #endif // Full list of all stat constants, included in a single location for easy reference diff --cc qcsrc/server/compat/quake3.qh index 029485ab03,a9b90abadc..d2c547b6f6 --- a/qcsrc/server/compat/quake3.qh +++ b/qcsrc/server/compat/quake3.qh @@@ -1,38 -1,8 +1,40 @@@ #pragma once -bool autocvar_sv_q3acompat_machineshotgunswap; -bool autocvar_sv_q3defragcompat_changehitbox = false; +int q3compat = 0; +#define Q3COMPAT_ARENA BIT(0) +#define Q3COMPAT_DEFI BIT(1) + ++bool autocvar_sv_q3compat_changehitbox; + bool DoesQ3ARemoveThisEntity(entity this); +int GetAmmoConsumptionQ3(string netname); .int fragsfilter_cnt; + +/* We tell the ammo spawnfunc which weapon will use the ammo so it can + * calculate the amount required for the number of shots in the count field, + * and so the type can be looked up rather than specified in quake3.qc + */ +// Ammo only, unconditional +#define SPAWNFUNC_Q3AMMO(ammo_classname, xonwep) \ + spawnfunc(ammo_classname) \ + { \ + if(this.count && xonwep.ammo_type) \ + SetResource(this, xonwep.ammo_type, this.count * GetAmmoConsumptionQ3(xonwep.netname)); \ + SPAWNFUNC_BODY(GetAmmoItem(xonwep.ammo_type)) \ + } + +// Ammo only, conditional +#define SPAWNFUNC_Q3AMMO_COND(ammo_classname, cond, xonwep1, xonwep0) \ + SPAWNFUNC_Q3AMMO(ammo_classname, (cond ? xonwep1 : xonwep0)) + +// Weapon & ammo, unconditional +#define SPAWNFUNC_Q3(weapon_classname, ammo_classname, xonwep) \ + SPAWNFUNC_WEAPON(weapon_classname, xonwep) \ + SPAWNFUNC_Q3AMMO(ammo_classname, xonwep) + +// Weapon & ammo, conditional +#define SPAWNFUNC_Q3_COND(weapon_classname, ammo_classname, cond, xonwep1, xonwep0) \ + SPAWNFUNC_WEAPON_COND(weapon_classname, cond, xonwep1, xonwep0) \ + SPAWNFUNC_Q3AMMO_COND(ammo_classname, cond, xonwep1, xonwep0) + diff --cc qcsrc/server/teamplay.qh index 9faaaa5213,279df06fc3..a8c48be15d --- a/qcsrc/server/teamplay.qh +++ b/qcsrc/server/teamplay.qh @@@ -8,10 -8,10 +8,12 @@@ bool autocvar_teamplay_lockonrestart bool autocvar_g_balance_teams; bool autocvar_g_balance_teams_prevent_imbalance; + string autocvar_g_forced_team_otherwise; + bool lockteams; +.int team_forced; // can be a team number to force a team, or 0 for default action, or -1 for forced spectator + // ========================== Global teams API ================================ /// \brief Returns the global team entity at the given index.