missile.damageforcescale = WEP_CVAR(arc, bolt_damageforcescale);
missile.event_damage = W_Arc_Bolt_Damage;
missile.damagedbycontents = true;
+ IL_PUSH(g_damagedbycontents, missile);
settouch(missile, W_Arc_Bolt_Touch);
missile.use = W_Arc_Bolt_Explode_use;
||
forbidWeaponUse(this.owner)
||
+ this.owner.(weaponentity).m_switchweapon != WEP_ARC
+ ||
(!PHYS_INPUT_BUTTON_ATCK(this.owner) && !burst )
||
this.owner.vehicle
}
}
-METHOD(Arc, wr_aim, void(entity thiswep, entity actor))
+METHOD(Arc, wr_aim, void(entity thiswep, entity actor, .entity weaponentity))
{
if(WEP_CVAR(arc, beam_botaimspeed))
{
PHYS_INPUT_BUTTON_ATCK(actor) = bot_aim(
actor,
+ weaponentity,
WEP_CVAR(arc, beam_botaimspeed),
0,
WEP_CVAR(arc, beam_botaimlifetime),
{
PHYS_INPUT_BUTTON_ATCK(actor) = bot_aim(
actor,
+ weaponentity,
1000000,
0,
0.001,
if(isnew)
{
- int gunalign = W_GunAlign(NULL, STAT(GUNALIGN));
+ int gunalign = W_GunAlign(viewmodels[slot], STAT(GUNALIGN)) - 1;
- this.beam_shotorigin = arc_shotorigin[gunalign]; // quick
- for(int j = 1; j < 5; ++j)
- {
- if(gunaligns[j] == viewmodels[slot])
- {
- this.beam_shotorigin = arc_shotorigin[j - 1]; // accurate
- break;
- }
- }
+ this.beam_shotorigin = arc_shotorigin[gunalign];
// set other main attributes of the beam
this.draw = Draw_ArcBeam;