From: Mario Date: Sun, 20 Nov 2016 18:09:38 +0000 (+1000) Subject: Merge branch 'master' into Mario/wepent_experimental X-Git-Tag: xonotic-v0.8.2~326^2~31 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=cbca1a79315fe08c4796273a490a4d12b7d3291d;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'master' into Mario/wepent_experimental # Conflicts: # qcsrc/client/view.qc --- cbca1a79315fe08c4796273a490a4d12b7d3291d diff --cc qcsrc/client/view.qc index 9c19493dc,c85d075a6..b98e5df0f --- a/qcsrc/client/view.qc +++ b/qcsrc/client/view.qc @@@ -314,17 -312,15 +314,14 @@@ void viewmodel_draw(entity this CSQCModel_Effects_Apply(e); } { - static string name_last; string name = wep.mdl; - if(wep == WEP_TUBA) - { - name = (this.tuba_instrument == 0) ? "tuba" : - (this.tuba_instrument == 1) ? "akordeon" : - "kleinbottle"; - } + string newname = wep.wr_viewmodel(wep, this); + if(newname) + name = newname; - bool swap = name != name_last; + bool swap = name != this.name_last; // if (swap) { - name_last = name; + this.name_last = name; CL_WeaponEntity_SetModel(this, name, swap); this.viewmodel_origin = this.origin; this.viewmodel_angles = this.angles; diff --cc qcsrc/common/weapons/weapon.qh index 782f3c5ce,b287b148f..c873f4463 --- a/qcsrc/common/weapons/weapon.qh +++ b/qcsrc/common/weapons/weapon.qh @@@ -119,12 -117,14 +119,14 @@@ CLASS(Weapon, Object // no weapon specific image for this weapon return false; } + /** (CLIENT) weapon specific view model */ + METHOD(Weapon, wr_viewmodel, string(Weapon this, entity wep)) { return string_null; } /** (CLIENT) weapon specific glow */ - METHOD(Weapon, wr_glow, vector(Weapon this, entity actor)) { return '0 0 0'; } + METHOD(Weapon, wr_glow, vector(Weapon this, entity actor, entity wepent)) { return '0 0 0'; } /** (SERVER) the weapon is dropped */ - METHOD(Weapon, wr_drop, void(Weapon this, entity actor)) {} + METHOD(Weapon, wr_drop, void(Weapon this, entity actor, .entity weaponentity)) {} /** (SERVER) a weapon is picked up */ - METHOD(Weapon, wr_pickup, void(Weapon this, entity actor)) {} + METHOD(Weapon, wr_pickup, void(Weapon this, entity actor, .entity weaponentity)) {} /** (SERVER) update cvar based properties */ METHOD(Weapon, wr_update, void(Weapon this)) {} METHOD(Weapon, display, void(entity this, void(string name, string icon) returns)) {