X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fcommon%2Fgamemodes%2Fgamemode%2Fonslaught%2Fsv_onslaught.qc;h=6240975d72506a11bc1e5629fbd861b3d21f6d32;hb=ce80a3d3800ee2f5ce8a8d93ccb6b835a46ec5f6;hp=170845298ff1eb1e4a8891c5073d9c7a97d092bf;hpb=bc4be8c518a62d8ae09227114c32a90133d0fde8;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qc b/qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qc index 170845298..6240975d7 100644 --- a/qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qc +++ b/qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qc @@ -2,6 +2,14 @@ #include "sv_controlpoint.qh" #include "sv_generator.qh" +#include +#include +#include +#include +#include +#include +#include + bool g_onslaught; float autocvar_g_onslaught_teleport_wait; @@ -82,14 +90,14 @@ void ons_CaptureShield_Reset(entity this) this.team = this.enemy.team; } -void ons_CaptureShield_Spawn(entity generator, bool is_generator) +void ons_CaptureShield_Spawn(entity this, Model shield_model) { entity shield = new(ons_captureshield); IL_PUSH(g_onsshields, shield); - shield.enemy = generator; - shield.team = generator.team; - shield.colormap = generator.colormap; + shield.enemy = this; + shield.team = this.team; + shield.colormap = this.colormap; shield.reset = ons_CaptureShield_Reset; settouch(shield, ons_CaptureShield_Touch); setcefc(shield, ons_CaptureShield_Customize); @@ -97,13 +105,12 @@ void ons_CaptureShield_Spawn(entity generator, bool is_generator) set_movetype(shield, MOVETYPE_NOCLIP); shield.solid = SOLID_TRIGGER; shield.avelocity = '7 0 11'; - shield.scale = 1; - shield.model = ((is_generator) ? "models/onslaught/generator_shield.md3" : "models/onslaught/controlpoint_shield.md3"); + shield.scale = this.scale; - precache_model(shield.model); - setorigin(shield, generator.origin); - _setmodel(shield, shield.model); - setsize(shield, shield.scale * shield.mins, shield.scale * shield.maxs); + float shield_extra_size = 1.20; // hitbox is 20% larger than the object itself + setorigin(shield, this.origin); + setmodel(shield, shield_model); + setsize(shield, shield_extra_size * this.mins, shield_extra_size * this.maxs); } @@ -758,7 +765,7 @@ void ons_DelayedControlPoint_Setup(entity this) onslaught_updatelinks(); // captureshield setup - ons_CaptureShield_Spawn(this, false); + ons_CaptureShield_Spawn(this, MDL_ONS_CP_SHIELD); CSQCMODEL_AUTOINIT(this); } @@ -1041,7 +1048,7 @@ void ons_DelayedGeneratorSetup(entity this) this.bot_basewaypoint = this.nearestwaypoint; // captureshield setup - ons_CaptureShield_Spawn(this, true); + ons_CaptureShield_Spawn(this, MDL_ONS_GEN_SHIELD); onslaught_updatelinks(); @@ -1069,7 +1076,6 @@ void ons_GeneratorSetup(entity gen) // called when spawning a generator entity o ons_worldgeneratorlist = gen; gen.netname = sprintf("%s generator", Team_ColoredFullName(teamnum)); - gen.classname = "onslaught_generator"; gen.solid = SOLID_BBOX; gen.team_saved = teamnum; IL_PUSH(g_saved_team, gen);