X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fall.qc;h=6139d41b494274d9c2fbefd6f5f51eacc9194813;hb=4d01c64254bd9726c345afe727b70749879c04f6;hp=cf55aa65214b7a84673da155f3ffb0eece56eb36;hpb=268f9c69576b6bb929f66d19f0d077d19ba47edd;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/all.qc b/qcsrc/common/weapons/all.qc index cf55aa652..6139d41b4 100644 --- a/qcsrc/common/weapons/all.qc +++ b/qcsrc/common/weapons/all.qc @@ -391,7 +391,9 @@ void CL_WeaponEntity_SetModel(entity this, string name, bool _anim) { if (name == "") { - this.model = ""; + vector oldmin = this.mins, oldmax = this.maxs; + setmodel(this, MDL_Null); + setsize(this, oldmin, oldmax); if (this.weaponchild) delete(this.weaponchild); this.weaponchild = NULL; this.movedir = '0 0 0'; @@ -523,7 +525,9 @@ void CL_WeaponEntity_SetModel(entity this, string name, bool _anim) if (this.movedir.x >= 0) { - int algn = STAT(GUNALIGN, this.owner); + //int algn = STAT(GUNALIGN, this.owner); + int algn = W_GunAlign(this, STAT(GUNALIGN, this.owner)); + this.m_gunalign = algn; vector v = this.movedir; this.movedir = shotorg_adjust(v, false, false, algn); this.view_ofs = shotorg_adjust(v, false, true, algn) - v; @@ -557,21 +561,22 @@ NET_HANDLE(wframe, bool isNew) a.x = ReadCoord(); a.y = ReadCoord(); a.z = ReadCoord(); + int slot = ReadByte(); bool restartanim = ReadByte(); - anim_set(viewmodel, a, !restartanim, restartanim, restartanim); - viewmodel.state = ReadByte(); - viewmodel.weapon_nextthink = ReadFloat(); - viewmodel.alpha = ReadByte() / 255; - switch (viewmodel.state) + entity wepent = viewmodels[slot]; + anim_set(wepent, a, !restartanim, restartanim, restartanim); + wepent.state = ReadByte(); + wepent.weapon_nextthink = ReadFloat(); + switch (wepent.state) { case WS_RAISE: - viewmodel.weapon_switchdelay = activeweapon.switchdelay_raise; + wepent.weapon_switchdelay = wepent.activeweapon.switchdelay_raise; break; case WS_DROP: - viewmodel.weapon_switchdelay = activeweapon.switchdelay_drop; + wepent.weapon_switchdelay = wepent.activeweapon.switchdelay_drop; break; default: - viewmodel.weapon_switchdelay = 0; + wepent.weapon_switchdelay = 0; break; } return true; @@ -588,10 +593,10 @@ void wframe_send(entity actor, entity weaponentity, vector a, bool restartanim) WriteCoord(channel, a.x); WriteCoord(channel, a.y); WriteCoord(channel, a.z); + WriteByte(channel, weaponslot(weaponentity.weaponentity_fld)); WriteByte(channel, restartanim); WriteByte(channel, weaponentity.state); WriteFloat(channel, weaponentity.weapon_nextthink); - WriteByte(channel, weaponentity.m_alpha * 255); } #endif