const int PROJECTILE_BUMBLE_BEAM = 31;
const int PROJECTILE_MAGE_SPIKE = 32;
-const int PROJECTILE_SHAMBLER_LIGHTNING = 33;
+const int PROJECTILE_GOLEM_LIGHTNING = 33;
const int PROJECTILE_ROCKETMINSTA_LASER = 34;
// FIXME/EXPLAINME: why? Mario: because
vector autocvar_sv_player_maxs = '16 16 45';
vector autocvar_sv_player_mins = '-16 -16 -24';
- vector autocvar_sv_player_viewoffset = '0 0 20';
+ vector autocvar_sv_player_viewoffset = '0 0 35';
vector autocvar_sv_player_crouch_maxs = '16 16 25';
vector autocvar_sv_player_crouch_mins = '-16 -16 -24';
vector autocvar_sv_player_crouch_viewoffset = '0 0 20';
//vector autocvar_sv_player_headsize = '24 24 12';
+
+ // temporary array used to dump weapon and turret settings
+ const int MAX_CONFIG_SETTINGS = 256;
+ string config_queue[MAX_CONFIG_SETTINGS];
+
#endif
this.takedamage = DAMAGE_NO;
this.event_damage = func_null;
this.bot_attack = false;
+ this.monster_attack = false;
}
// precache all the models
precache_sound(this.noise1);
this.team_saved = this.team;
+ IL_PUSH(g_saved_team, this);
this.dropped_origin = this.origin;
this.reset = func_breakable_reset;
this.reset(this);
+ if(this.monster_attack)
+ IL_PUSH(g_monster_targets, this);
+
IL_PUSH(g_initforplayer, this);
this.init_for_player = func_breakable_init_for_player;
if(!this.bot_attack)
IL_PUSH(g_bot_targets, this);
this.bot_attack = true;
+ if(!this.monster_attack)
+ IL_PUSH(g_monster_targets, this);
this.monster_attack = true;
navigation_dynamicgoal_init(this, false);
if(autocvar_sv_gentle)
stuffcmd(e, "cl_cmd settemp cl_gentle 1\n");
+ stuffcmd(e, sprintf("\ncl_jumpspeedcap_min \"%s\"\n", autocvar_sv_jumpspeedcap_min));
+ stuffcmd(e, sprintf("\ncl_jumpspeedcap_max \"%s\"\n", autocvar_sv_jumpspeedcap_max));
+
MUTATOR_CALLHOOK(FixClientCvars, e);
}
.float dmg;
// for railgun damage (hitting multiple enemies)
- .float railgunhit;
+ .bool railgunhit;
.float railgunhitsolidbackup;
.vector railgunhitloc;
.float team_saved;
- float some_spawn_has_been_used;
- float have_team_spawns; // 0 = no team spawns requested, -1 = team spawns requested but none found, 1 = team spawns requested and found
- float have_team_spawns_forteam[17]; // 0 = this team has no spawns, 1 = this team has spawns; team 0 is the "no-team"
+ 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"
// set when showing a kill countdown
.entity killindicator;
IntrusiveList g_damagedbycontents;
STATIC_INIT(g_damagedbycontents) { g_damagedbycontents = IL_NEW(); }
+IntrusiveList g_monster_targets;
+STATIC_INIT(g_monster_targets) { g_monster_targets = IL_NEW(); }
++
+ IntrusiveList g_railgunhit;
+ STATIC_INIT(g_railgunhit) { g_railgunhit = IL_NEW(); }
+
+ IntrusiveList g_ladders;
+ STATIC_INIT(g_ladders) { g_ladders = IL_NEW(); }
+
+ IntrusiveList g_locations;
+ STATIC_INIT(g_locations) { g_locations = IL_NEW(); }
+
+ IntrusiveList g_saved_team;
+ STATIC_INIT(g_saved_team) { g_saved_team = IL_NEW(); }