2 CLASS(VoretWeaponsList) EXTENDS(VoretListBox)
\r
3 METHOD(VoretWeaponsList, configureVoretWeaponsList, void(entity))
\r
4 METHOD(VoretWeaponsList, toString, string(entity))
\r
5 ATTRIB(VoretWeaponsList, rowsPerItem, float, 1)
\r
6 METHOD(VoretWeaponsList, draw, void(entity))
\r
7 METHOD(VoretWeaponsList, drawListBoxItem, void(entity, float, vector, float))
\r
8 METHOD(VoretWeaponsList, resizeNotify, void(entity, vector, vector, vector, vector))
\r
9 METHOD(VoretWeaponsList, keyDown, float(entity, float, float, float))
\r
10 ATTRIB(VoretWeaponsList, realFontSize, vector, '0 0 0')
\r
11 ATTRIB(VoretWeaponsList, realUpperMargin, float, 0)
\r
12 METHOD(VoretWeaponsList, mouseDrag, float(entity, vector))
\r
13 ATTRIB(VoretWeaponsList, scrollbarWidth, float, 0)
\r
14 ENDCLASS(VoretWeaponsList)
\r
15 entity makeVoretWeaponsList();
\r
16 void WeaponsList_MoveUp_Click(entity btn, entity me);
\r
17 void WeaponsList_MoveDown_Click(entity box, entity me);
\r
20 #ifdef IMPLEMENTATION
\r
21 entity makeVoretWeaponsList()
\r
24 me = spawnVoretWeaponsList();
\r
25 me.configureVoretWeaponsList(me);
\r
28 void configureVoretWeaponsListVoretWeaponsList(entity me)
\r
30 me.configureVoretListBox(me);
\r
32 void drawVoretWeaponsList(entity me)
\r
36 s = W_NumberWeaponOrder(cvar_string("cl_weaponpriority"));
\r
37 t = W_FixWeaponOrder(s, 1);
\r
40 print("AUTOFIXED\n");
\r
41 cvar_set("cl_weaponpriority", W_NameWeaponOrder(t));
\r
43 me.nItems = tokenize_console(t);
\r
46 void WeaponsList_MoveUp_Click(entity box, entity me)
\r
48 if(me.selectedItem > 0)
\r
50 cvar_set("cl_weaponpriority", swapInPriorityList(cvar_string("cl_weaponpriority"), me.selectedItem - 1, me.selectedItem));
\r
51 me.selectedItem -= 1;
\r
54 void WeaponsList_MoveDown_Click(entity box, entity me)
\r
56 if(me.selectedItem < me.nItems - 1)
\r
58 cvar_set("cl_weaponpriority", swapInPriorityList(cvar_string("cl_weaponpriority"), me.selectedItem, me.selectedItem + 1));
\r
59 me.selectedItem += 1;
\r
62 void resizeNotifyVoretWeaponsList(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
\r
64 resizeNotifyVoretListBox(me, relOrigin, relSize, absOrigin, absSize);
\r
66 me.realFontSize_y = me.fontSize / (absSize_y * me.itemHeight);
\r
67 me.realFontSize_x = me.fontSize / (absSize_x * (1 - me.controlWidth));
\r
68 me.realUpperMargin = 0.5 * (1 - me.realFontSize_y);
\r
70 float mouseDragVoretWeaponsList(entity me, vector pos)
\r
73 i = me.selectedItem;
\r
74 f = mouseDragListBox(me, pos);
\r
75 if(me.selectedItem != i)
\r
76 cvar_set("cl_weaponpriority", swapInPriorityList(cvar_string("cl_weaponpriority"), me.selectedItem, i));
\r
79 string toStringVoretWeaponsList(entity me)
\r
84 n = tokenize_console(W_NumberWeaponOrder(cvar_string("cl_weaponpriority")));
\r
86 for(i = 0; i < n; ++i)
\r
88 e = get_weaponinfo(stof(argv(i)));
\r
89 s = strcat(s, e.message, ", ");
\r
91 return substring(s, 0, strlen(s) - 2);
\r
93 void drawListBoxItemVoretWeaponsList(entity me, float i, vector absSize, float isSelected)
\r
97 draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
\r
98 e = get_weaponinfo(stof(argv(i)));
\r
99 draw_Text(me.realUpperMargin * eY, e.message, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
\r
102 float keyDownVoretWeaponsList(entity me, float scan, float ascii, float shift)
\r
104 if(ascii == 43) // +
\r
106 WeaponsList_MoveUp_Click(NULL, me);
\r
109 else if(scan == 45) // -
\r
111 WeaponsList_MoveDown_Click(NULL, me);
\r
114 else if(keyDownListBox(me, scan, ascii, shift))
\r