X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fview.qc;h=54fefa68e28e16fd251a18c1d8fe0232324c3267;hp=c7144372a304b45bdee0cbbcc4036b5681015523;hb=1245fb3e998e9ace1b301dbe4bfb84b55f25bdf4;hpb=948c08402a7b9b7af36059104937650e343ecefe diff --git a/qcsrc/client/view.qc b/qcsrc/client/view.qc index c7144372a..54fefa68e 100644 --- a/qcsrc/client/view.qc +++ b/qcsrc/client/view.qc @@ -10,6 +10,7 @@ #include "mutators/events.qh" +#include "../common/anim.qh" #include "../common/constants.qh" #include "../common/mapinfo.qh" #include "../common/gamemodes/all.qh" @@ -29,6 +30,24 @@ #include "../lib/warpzone/client.qh" #include "../lib/warpzone/common.qh" +void viewmodel_draw(entity this) +{ + int c = stof(getplayerkeyvalue(player_localnum, "colors")); + vector g = colormapPaletteColor(c & 0x0F, true) * 2; + for (entity e = this; e; e = e.weaponchild) + { + e.colormap = c; + e.glowmod = g; + } +} + +entity viewmodel; +STATIC_INIT(viewmodel) { + viewmodel = new(viewmodel); + viewmodel.drawmask = MASK_NORMAL; + viewmodel.draw = viewmodel_draw; +} + entity porto; vector polyline[16]; void Porto_Draw(entity this) @@ -1234,6 +1253,17 @@ void CSQC_UpdateView(float w, float h) WarpZone_FixView(); //WarpZone_FixPMove(); + { + static string name_last; + string name = get_weaponinfo(switchingweapon).mdl; + if (name != name_last) + { + CL_WeaponEntity_SetModel(viewmodel, name_last = name); + updateanim(viewmodel); + if (!viewmodel.animstate_override) + setanim(viewmodel, viewmodel.anim_idle, true, false, false); + } + } vector ov_org = '0 0 0'; vector ov_mid = '0 0 0';