- wget -O data/maps/stormkeep.waypoints https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.waypoints
- wget -O data/maps/stormkeep.waypoints.cache https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.waypoints.cache
- make
- - EXPECT=339f4bfdb1d6e302024e1a260336557a
+ - EXPECT=040aeef53953a85c5891c0c39cf9860f
- HASH=$(${ENGINE} -noconfig -nohome +exec serverbench.cfg
| tee /dev/stderr
| grep '^:'
#include "sv_assault.qh"
+#include <server/command/vote.qh>
#include <common/mapobjects/func/breakable.qh>
#include <server/g_damage.qh>
#include <server/spawnpoints.qh>
#include <common/effects/all.qh>
#include <common/mapobjects/teleporters.qh>
#include <common/vehicles/all.qh>
+#include <server/command/vote.qh>
#include <server/gamelog.qh>
#include <server/g_damage.qh>
#include <server/g_world.qh>
+#include <server/items/items.qh>
#include <server/race.qh>
#include <server/teamplay.qh>
#include "sv_domination.qh"
+#include <server/command/vote.qh>
#include <server/gamelog.qh>
#include <server/teamplay.qh>
+#include <common/mapobjects/platforms.qh>
bool g_domination;
#include "sv_keyhunt.qh"
+#include <server/command/vote.qh>
#include <server/gamelog.qh>
#include <server/g_damage.qh>
#include <common/mutators/mutator/instagib/items.qh>
#include <server/campaign.qh>
#include <server/command/_mod.qh>
+#include <server/items/items.qh>
int autocvar_g_lms_extra_lives;
bool autocvar_g_lms_join_anytime;
#include "sv_nexball.qh"
+#include <server/command/vote.qh>
#include <server/gamelog.qh>
#include <common/ent_cs.qh>
.float nb_droptime;
.float teamtime;
+
+float g_nexball_meter_period;
#include "sv_controlpoint.qh"
#include "sv_generator.qh"
+#include <server/command/vote.qh>
#include <server/g_damage.qh>
+#include <server/items/items.qh>
#include <common/mapobjects/defs.qh>
bool g_onslaught;
#include "sv_rules.qh"
+#include <server/spawnpoints.qh>
#include <server/teamplay.qh>
void GameRules_teams(bool value)
Brush model that spins in place on one axis (default Z).
speed : speed to rotate (in degrees per second)
noise : path/name of looping .wav file to play.
-dmg : Do this mutch dmg every .dmgtime intervall when blocked
+dmg : Do this much damage every .dmgtime interval when blocked
dmgtime : See above.
*/
const int TRAIN_CURVE = BIT(0);
const int TRAIN_TURN = BIT(1);
const int TRAIN_NEEDACTIVATION = BIT(2);
-
-#ifdef CSQC
-.float dmgtime;
-#endif
const int PLAT_LOW_TRIGGER = BIT(0);
+.float dmg;
+.float dmgtime;
.float dmgtime2;
+.float phase;
+
void plat_center_touch(entity this, entity toucher);
void plat_outside_touch(entity this, entity toucher);
void plat_trigger_use(entity this, entity actor, entity trigger);
void plat_go_up(entity this);
void plat_go_down(entity this);
void plat_crush(entity this, entity blocker);
-
-.float dmg;
// used elsewhere (will fix)
#ifdef SVQC
+.string message2;
+
void trigger_common_write(entity this, bool withtarget);
string trigger_magicear_processmessage_forallears(entity source, float teamsay, entity privatesay, string msgin);
#include "../turrets/util.qh"
#include "../vehicles/all.qh"
#include <server/campaign.qh>
+#include <server/cheats.qh>
#include <server/command/_mod.qh>
#include <common/mapobjects/teleporters.qh>
#include "../mapobjects/triggers.qh"
#ifdef SVQC
float W_WeaponRateFactor(entity this);
float game_stopped;
-float game_starttime;
-float round_starttime;
+float game_starttime; //point in time when the countdown to game start is over
+float round_starttime; //point in time when the countdown to round start is over
bool autocvar_g_allow_oldvortexbeam;
int autocvar_leadlimit;
#endif
#ifdef SVQC
#include <server/autocvars.qh>
#include <server/g_damage.qh>
+#include <server/weapons/common.qh>
#include <server/weapons/weaponsystem.qh>
#include <common/mapobjects/defs.qh>
#include "sv_vehicles.qh"
#include <server/g_damage.qh>
+#include <server/items/items.qh>
#include <common/mapobjects/defs.qh>
#include <common/mapobjects/teleporters.qh>
#include <server/sv_main.qh>
.float dmg_time;
+.float pain_frame;
+
.float play_time;
.int volly_counter;
SPAWNFUNC_WEAPON(weapon_nex, WEP_VORTEX)
#ifdef SVQC
+.float vortex_charge_rottime;
+
.float vortex_lasthit;
void W_Vortex_Charge(entity actor, .entity weaponentity, float dt);
#include "roles.qh"
+#include <server/client.qh>
#include <server/defs.qh>
+#include <server/g_damage.qh>
#include <server/miscfunctions.qh>
#include <server/weapons/selection.qh>
#include <server/weapons/weaponsystem.qh>
#include <server/defs.qh>
#include <server/miscfunctions.qh>
+#include <server/items/items.qh>
#include <server/items/spawning.qh>
#include <server/resources.qh>
#include "havocbot.qh"
// speedrun: when 1, player auto teleports back when capture timeout happens
.bool speedrunning;
+.entity personal;
+
+.int grab; // 0 = can't grab, 1 = owner can grab, 2 = owner and team mates can grab, 3 = anyone can grab
+
bool drag_undraggable(entity draggee, entity dragger);
.bool(entity this, entity dragger) draggable;
#include "../common/vehicles/all.qh"
#include "weapons/hitplot.qh"
+#include "weapons/selection.qh"
#include "weapons/weaponsystem.qh"
#include "../common/net_notice.qh"
#include "../common/items/_mod.qh"
+#include <common/gamemodes/gamemode/nexball/sv_nexball.qh>
+
#include "../common/mutators/mutator/waypoints/all.qh"
#include "../common/mutators/mutator/instagib/sv_instagib.qh"
#include <common/gamemodes/_mod.qh>
#include <common/mutators/mutator/overkill/oknex.qh>
+#include <common/weapons/weapon/vortex.qh>
+
STATIC_METHOD(Client, Add, void(Client this, int _team))
{
ClientConnect(this);
this.alpha = 0;
this.scale = 0;
this.fade_time = 0;
- this.pain_frame = 0;
this.pain_finished = 0;
STAT(STRENGTH_FINISHED, this) = 0;
STAT(INVINCIBLE_FINISHED, this) = 0;
bool q3dfcompat = autocvar_sv_q3defragcompat && autocvar_sv_q3defragcompat_changehitbox;
this.scale = ((q3dfcompat) ? 0.9 : autocvar_sv_player_scale);
this.fade_time = 0;
- this.pain_frame = 0;
this.pain_finished = 0;
this.pushltime = 0;
setthink(this, func_null); // players have no think function
.float alivetime; // time of being alive
.float motd_actived_time; // used for both motd and campaign_message
+.bool wasplayer;
+
+.int spectatee_status;
+.bool zoomstate;
+
+.bool just_joined;
+
+.int pressedkeys;
+
void ClientState_attach(entity this);
IntrusiveList g_players;
return false;
}
+int autocvar__independent_players;
+bool independent_players;
+#define INDEPENDENT_PLAYERS (autocvar__independent_players ? (autocvar__independent_players > 0) : independent_players)
+#define IS_INDEPENDENT_PLAYER(e) ((e).solid == SOLID_TRIGGER)
+#define MAKE_INDEPENDENT_PLAYER(e) (((e).solid = SOLID_TRIGGER), ((e).frags = FRAGS_PLAYER_OUT_OF_GAME))
+
+.int killcount;
+
//flood fields
.float nickspamtime; // time of last nick change
.float nickspamcount;
#include <server/client.qh>
#include <server/defs.qh>
+#include <server/g_world.qh>
#include <server/miscfunctions.qh>
#include <common/command/_mod.qh>
#include "vote.qh"
+#include <server/client.qh>
#include <server/defs.qh>
#include <server/gamelog.qh>
#include <server/miscfunctions.qh>
float readyrestart_happened; // keeps track of whether a restart has already happened
float restart_mapalreadyrestarted; // bool, indicates whether reset_map() was already executed
.float ready; // flag for if a player is ready
+.int team_saved; // team number to restore upon map reset
+.void(entity this) reset; // if set, an entity is reset using this
+.void(entity this) reset2; // if set, an entity is reset using this (after calling ALL the reset functions for other entities)
void reset_map(float dorespawn);
void ReadyCount();
void ReadyRestart_force();
#include "quake3.qh"
+#include <server/client.qh>
#include <server/defs.qh>
#include <server/miscfunctions.qh>
#include <server/items/items.qh>
#include <common/weapons/_all.qh>
#include <common/stats.qh>
-// Globals
-
-float g_footsteps, g_grappling_hook;
-float g_warmup_allguns;
-float g_warmup_allow_timeout;
-float warmup_stage;
-float g_jetpack;
-
-bool sv_ready_restart;
-bool sv_ready_restart_after_countdown;
-bool sv_ready_restart_repeatable;
-
-float sv_clones;
-float sv_foginterval;
-
// Fields
-//.string wad;
-//.string map;
-
-//.float worldtype;
-
.float pain_finished; //Added by Supajoe
-.float pain_frame; //"
.float cnt; // used in too many places
.float count;
-//.float cnt2;
.float fade_time;
.float fade_rate;
.float species;
-.float scheduledrespawntime;
-.float respawntime;
-.float respawntimejitter;
-.float respawntimestart;
-//.float chasecam;
-
-//.float gravity;
-
-.float dmg;
-
-// for railgun damage (hitting multiple enemies)
-.bool railgunhit;
-.float railgunhitsolidbackup;
-.vector railgunhitloc;
-
-.float dmgtime;
-
-.float killcount;
-.float damage_dealt, typehitsound, killsound;
-
// string overrides entity
.string item_pickupsound;
.entity item_pickupsound_ent;
.float winning;
-.float spawnshieldtime;
-
.int playerid;
-.float noalign; // if set to 1, the item or spawnpoint won't be dropped to the floor
-
-.vector death_origin;
float default_player_alpha;
float default_weapon_alpha;
-.int team_saved;
-
-bool some_spawn_has_been_used;
-int have_team_spawns; // 0 = no team spawns requested, -1 = team spawns requested but none found, 1 = team spawns requested and found
-int have_team_spawns_forteams; // if Xth bit is 1 then team X has spawns else it has no spawns; team 0 is the "no-team"
-
-.bool canteamdamage;
-
-int autocvar__independent_players;
-bool independent_players;
-#define INDEPENDENT_PLAYERS (autocvar__independent_players ? (autocvar__independent_players > 0) : independent_players)
-#define IS_INDEPENDENT_PLAYER(e) ((e).solid == SOLID_TRIGGER)
-#define MAKE_INDEPENDENT_PLAYER(e) (((e).solid = SOLID_TRIGGER), ((e).frags = FRAGS_PLAYER_OUT_OF_GAME))
-
-string clientstuff;
-.float phase;
-.int pressedkeys;
-
-.string fog;
-
-string cvar_changes;
-string cvar_purechanges;
-float cvar_purechanges_count;
-
-//float game_starttime; //point in time when the countdown to game start is over
-//float round_starttime; //point in time when the countdown to round start is over
-
-.int projectiledeathtype;
-
-.string message2;
-
-// reset to 0 on weapon switch
-// may be useful to all weapons
-.float bulletcounter;
-
-// Nexball
-float g_nexball_meter_period;
-
-.void(entity this) reset; // if set, an entity is reset using this
-.void(entity this) reset2; // if set, an entity is reset using this (after calling ALL the reset functions for other entities)
-
-.bool wasplayer;
-
-string matchid;
-
-.int minelayer_mines;
-.float vortex_charge;
-.float vortex_charge_rottime;
-.float vortex_chargepool_ammo;
-.float oknex_charge;
-.float oknex_charge_rottime;
-.float oknex_chargepool_ammo;
-.int hagar_load;
-
-.int grab; // 0 = can't grab, 1 = owner can grab, 2 = owner and team mates can grab, 3 = anyone can grab
-
-.int spectatee_status;
-.bool zoomstate;
-
-.entity personal;
-
-.bool just_joined;
-
.entity realowner;
-//float serverflags;
-
.bool player_blocked;
////
-.WepSet dual_weapons;
-
IntrusiveList g_monsters;
IntrusiveList g_waypoints;
IntrusiveList g_vehicles;
#include <common/effects/all.qh>
#include "bot/api.qh"
#include "g_hook.qh"
+#include <server/client.qh>
#include <server/gamelog.qh>
#include <server/items/items.qh>
#include <server/mutators/_mod.qh>
.bool istypefrag;
.float taunt_soundtime;
+.float spawnshieldtime;
+
.int totalfrags;
+.bool canteamdamage;
+
+.vector death_origin;
+
+.float damage_dealt, typehitsound, killsound;
+
// used for custom deathtype
string deathmessage;
#include "weapons/tracing.qh"
#include "player.qh"
#include "command/common.qh"
+#include "command/vote.qh"
#include "round_handler.qh"
#include "../common/state.qh"
#include "../common/physics/player.qh"
#include "command/vote.qh"
#include "g_hook.qh"
#include <server/gamelog.qh>
+#include <server/g_damage.qh>
#include "ipban.qh"
#include "mapvoting.qh"
#include <server/mutators/_mod.qh>
#include "race.qh"
#include "scores.qh"
#include "scores_rules.qh"
+#include "spawnpoints.qh"
#include "teamplay.qh"
#include "weapons/weaponstats.qh"
#include "../common/constants.qh"
// flag set on worldspawn so that the code knows if it is dedicated or not
bool server_is_dedicated;
+string cvar_changes;
+string cvar_purechanges;
+float cvar_purechanges_count;
+
string modname;
string gamemode_name;
+string clientstuff;
+
+string matchid;
+
+.string fog;
+
float intermission_running;
float intermission_exittime;
float alreadychangedlevel;
#include "cheats.qh"
#include "client.qh"
#include "clientkill.qh"
+#include "g_damage.qh"
#include "weapons/selection.qh"
#include "weapons/tracing.qh"
#include "weapons/weaponsystem.qh"
#include <server/bot/api.qh>
+#include <server/command/vote.qh>
+
#include <server/g_damage.qh>
#include <server/mutators/_mod.qh>
.float max_armorvalue;
.float pickup_anyway;
+.float scheduledrespawntime;
+.float respawntime;
+.float respawntimejitter;
+.float respawntimestart;
+
.float item_respawncounter;
+.float noalign; // if set to 1, the item or spawnpoint won't be dropped to the floor
+
.float superweapons_finished; // NOTE: this field is used only by map entities, it does not directly apply the superweapons stat
// delay before this item can be picked up
/// creation of game items.
/// \copyright GNU GPLv2 or any later version.
+#include <server/items/items.qh>
#include <server/mutators/_mod.qh>
#include <server/weapons/spawning.qh>
#include <common/weapons/all.qh>
#include "command/common.qh"
#include "client.qh"
#include "constants.qh"
+#include "g_damage.qh"
#include "g_hook.qh"
#include "g_world.qh"
#include <server/gamelog.qh>
float sv_autotaunt;
float sv_taunt;
+float g_footsteps, g_grappling_hook;
+float g_warmup_allguns;
+float g_warmup_allow_timeout;
+float warmup_stage;
+float g_jetpack;
+
+bool sv_ready_restart;
+bool sv_ready_restart_after_countdown;
+bool sv_ready_restart_repeatable;
+
+float sv_clones;
+float sv_foginterval;
+
void readlevelcvars()
{
if(cvar("sv_allow_fullbright"))
#include <server/sv_main.qh>
#include "weapons/throwing.qh"
#include "command/common.qh"
+#include "command/vote.qh"
#include "../common/state.qh"
#include "../common/anim.qh"
#include "../common/animdecide.qh"
#include <common/effects/all.qh>
#include "g_hook.qh"
#include "mutators/_mod.qh"
+#include <server/client.qh>
#include "../common/constants.qh"
#include "../common/deathtypes/all.qh"
#include "../common/notifications/all.qh"
#include <server/g_world.qh>
#include <server/miscfunctions.qh>
#include "client.qh"
+#include "cheats.qh"
#include "portals.qh"
#include "scores.qh"
#include "spawnpoints.qh"
#include "../lib/warpzone/common.qh"
#include "../lib/warpzone/util_server.qh"
#include <server/utils.qh>
+#include <server/command/vote.qh>
bool SpawnPoint_Send(entity this, entity to, int sf)
{
const int SPAWN_PRIO_RACE_PREVIOUS_SPAWN = 50;
const int SPAWN_PRIO_GOOD_DISTANCE = 10;
+bool some_spawn_has_been_used;
+int have_team_spawns; // 0 = no team spawns requested, -1 = team spawns requested but none found, 1 = team spawns requested and found
+int have_team_spawns_forteams; // if Xth bit is 1 then team X has spawns else it has no spawns; team 0 is the "no-team"
+
.vector spawnpoint_score;
float spawnpoint_nag;
bool SpawnEvent_Send(entity this, entity to, int sf);
#include "g_hook.qh"
#include "g_damage.qh"
#include "g_world.qh"
+#include "spawnpoints.qh"
#include <server/gamelog.qh>
#include "bot/api.qh"
void CreatureFrame_hotliquids(entity this)
{
- if (this.dmgtime >= time)
+ if (this.contents_damagetime >= time)
{
return;
}
- this.dmgtime = time + autocvar_g_balance_contents_damagerate;
+ this.contents_damagetime = time + autocvar_g_balance_contents_damagerate;
if (this.flags & FL_PROJECTILE)
{
if (!(this.flags & FL_INWATER))
{
this.flags |= FL_INWATER;
- this.dmgtime = 0;
+ this.contents_damagetime = 0;
}
CreatureFrame_hotliquids(this);
{
// play leave water sound
this.flags &= ~FL_INWATER;
- this.dmgtime = 0;
+ this.contents_damagetime = 0;
}
}
}
.bool iscreature;
+.float contents_damagetime;
+
/*
==================
main
#include "accuracy.qh"
+#include <server/client.qh>
#include <server/mutators/_mod.qh>
#include <server/g_damage.qh>
#include <common/constants.qh>
.float misc_bulletcounter;
+.int projectiledeathtype;
+
#define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_CORPSE; (e).dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE
// when doing this, hagar can go through clones
// #define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_BBOX
#include "hitplot.qh"
#include <server/defs.qh>
+#include <server/g_world.qh>
#include <server/miscfunctions.qh>
#include "../antilag.qh"
#include <common/weapons/_all.qh>
.int selectweapon; // last selected weapon of the player
+.WepSet dual_weapons;
+
// switch between weapons
void Send_WeaponComplain(entity e, float wpn, float type);
.float ballistics_density;
+// for railgun damage (hitting multiple enemies)
+.bool railgunhit;
+.float railgunhitsolidbackup;
+.vector railgunhitloc;
+
.float railgundistance;
.vector railgunforce;
void FireRailgunBullet (entity this, .entity weaponentity, vector start, vector end, float bdamage, bool headshot_notify, float bforce, float mindist, float maxdist, float halflifedist, float forcehalflifedist, int deathtype);
#include "selection.qh"
#include "../command/common.qh"
+#include <server/g_damage.qh>
#include <server/items/items.qh>
#include <server/mutators/_mod.qh>
#include "../round_handler.qh"
#include <common/animdecide.qh>
#include <common/constants.qh>
#include <common/net_linked.qh>
+#include <common/mapobjects/platforms.qh>
#include <common/monsters/_mod.qh>
#include <common/notifications/all.qh>
#include <common/util.qh>
float internalteam;
entity weapon_dropevent_item;
+// reset to 0 on weapon switch
+// may be useful to all weapons
+.float bulletcounter;
+
..entity weaponentity_fld;
.float weapon_load[REGISTRY_MAX(Weapons)];