From: Samual Date: Sun, 15 Jan 2012 16:54:55 +0000 (-0500) Subject: Re-write weapon settings dialog X-Git-Tag: xonotic-v0.6.0~163 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=131b479720c6442ac5f1f318bd5c5811073cb946;p=xonotic%2Fxonotic-data.pk3dir.git Re-write weapon settings dialog --- diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c b/qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c index d80fa0c10..b55527cf0 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c @@ -5,9 +5,9 @@ CLASS(XonoticWeaponsDialog) EXTENDS(XonoticDialog) METHOD(XonoticWeaponsDialog, showNotify, void(entity)) ATTRIB(XonoticWeaponsDialog, title, string, _("Weapon settings")) ATTRIB(XonoticWeaponsDialog, color, vector, SKINCOLOR_DIALOG_WEAPONS) - ATTRIB(XonoticWeaponsDialog, intendedWidth, float, 0.4) - ATTRIB(XonoticWeaponsDialog, rows, float, 18) - ATTRIB(XonoticWeaponsDialog, columns, float, 3) + ATTRIB(XonoticWeaponsDialog, intendedWidth, float, 0.7) + ATTRIB(XonoticWeaponsDialog, rows, float, 12) + ATTRIB(XonoticWeaponsDialog, columns, float, 5.2) ATTRIB(XonoticWeaponsDialog, weaponsList, entity, NULL) ENDCLASS(XonoticWeaponsDialog) #endif @@ -26,21 +26,22 @@ void XonoticWeaponsDialog_fill(entity me) entity e; me.TR(me); - me.TD(me, 1, 3, makeXonoticTextLabel(0, _("Weapon priority list:"))); + me.TD(me, 1, 2, makeXonoticTextLabel(0, _("Weapon priority list:"))); me.TR(me); - me.TD(me, 10, 3, e = me.weaponsList = makeXonoticWeaponsList()); - me.gotoRC(me, 11, 0); - me.TDempty(me, 0.5); + me.TD(me, 8, 2, e = me.weaponsList = makeXonoticWeaponsList()); + me.gotoRC(me, 9, 0); me.TD(me, 1, 1, e = makeXonoticButton(_("Up"), '0 0 0')); e.onClick = WeaponsList_MoveUp_Click; e.onClickEntity = me.weaponsList; me.TD(me, 1, 1, e = makeXonoticButton(_("Down"), '0 0 0')); e.onClick = WeaponsList_MoveDown_Click; e.onClickEntity = me.weaponsList; - me.TR(me); + + me.gotoRC(me, 0, 2.2); me.setFirstColumn(me, me.currentColumn); me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_weaponpriority_useforcycling", _("Use priority list for weapon cycling"))); me.TR(me); me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_autoswitch", _("Auto switch weapons on pickup"))); + me.TR(me); me.TR(me); me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "r_drawviewmodel", _("Draw 1st person weapon model"))); me.TR(me); @@ -52,6 +53,24 @@ void XonoticWeaponsDialog_fill(entity me) me.TD(me, 1, 1.0, e = makeXonoticRadioButton(1, "cl_gunalign", "3", _("Right align"))); setDependent(e, "r_drawviewmodel", 1, 1); me.TR(me); + me.TR(me); + me.TDempty(me, 0.2); + me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_followmodel", _("Gun model swaying"))); + makeMulti(e, "cl_leanmodel"); + setDependent(e, "r_drawviewmodel", 1, 1); + me.TR(me); + me.TDempty(me, 0.2); + me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_bobmodel", _("Gun model bobbing"))); + setDependent(e, "r_drawviewmodel", 1, 1); + me.TR(me); + me.TR(me); + me.TDempty(me, 0.2); + me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Scale"))); + setDependent(e, "r_drawviewmodel", 1, 1); + me.TD(me, 1, 2, e = makeXonoticSlider(-1, 1, 0.2, "cl_viewmodel_scale")); + setDependent(e, "r_drawviewmodel", 1, 1); + + me.gotoRC(me, me.rows - 1, 0); me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0')); e.onClick = Dialog_Close; e.onClickEntity = me; diff --git a/qcsrc/menu/xonotic/weaponslist.c b/qcsrc/menu/xonotic/weaponslist.c index aa47110be..e64cc72d0 100644 --- a/qcsrc/menu/xonotic/weaponslist.c +++ b/qcsrc/menu/xonotic/weaponslist.c @@ -10,7 +10,6 @@ CLASS(XonoticWeaponsList) EXTENDS(XonoticListBox) ATTRIB(XonoticWeaponsList, realFontSize, vector, '0 0 0') ATTRIB(XonoticWeaponsList, realUpperMargin, float, 0) METHOD(XonoticWeaponsList, mouseDrag, float(entity, vector)) - ATTRIB(XonoticWeaponsList, scrollbarWidth, float, 0) ENDCLASS(XonoticWeaponsList) entity makeXonoticWeaponsList(); void WeaponsList_MoveUp_Click(entity btn, entity me); @@ -66,11 +65,22 @@ void XonoticWeaponsList_resizeNotify(entity me, vector relOrigin, vector relSize } float XonoticWeaponsList_mouseDrag(entity me, vector pos) { - float f, i; + float f, i, scrollbar; i = me.selectedItem; f = SUPER(XonoticWeaponsList).mouseDrag(me, pos); - if(me.selectedItem != i) - cvar_set("cl_weaponpriority", swapInPriorityList(cvar_string("cl_weaponpriority"), me.selectedItem, i)); + + scrollbar = 1; + if(pos_x < 1 - me.controlWidth - me.tolerance_y * me.controlWidth) scrollbar = 0; + if(pos_y < 0 - me.tolerance_x) scrollbar = 0; + if(pos_x >= 1 + me.tolerance_y * me.controlWidth) scrollbar = 0; + if(pos_y >= 1 + me.tolerance_x) scrollbar = 0; + + if not(scrollbar) // don't change priority if the person is just scrolling + { + if(me.selectedItem != i) + cvar_set("cl_weaponpriority", swapInPriorityList(cvar_string("cl_weaponpriority"), me.selectedItem, i)); + } + return f; } string XonoticWeaponsList_toString(entity me)