X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Fgametypelist.qc;h=3703393789eaa1125b6777b170d470612f2bea75;hb=d7ecf0b99095f97132ddb1252268ff7d7fb8597b;hp=5522e13c7f75f4fd81302e3af353c5f94e370a44;hpb=3b8f792333c5c245e54bdf0612d2a442bcfe61dc;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/gametypelist.qc b/qcsrc/menu/xonotic/gametypelist.qc index 5522e13c7..370339378 100644 --- a/qcsrc/menu/xonotic/gametypelist.qc +++ b/qcsrc/menu/xonotic/gametypelist.qc @@ -1,31 +1,9 @@ -#ifndef GAMETYPELIST_H -#define GAMETYPELIST_H -#include "listbox.qc" -CLASS(XonoticGametypeList, XonoticListBox) - METHOD(XonoticGametypeList, configureXonoticGametypeList, void(entity)); - ATTRIB(XonoticGametypeList, rowsPerItem, float, 2) - METHOD(XonoticGametypeList, drawListBoxItem, void(entity, int, vector, bool, bool)); - METHOD(XonoticGametypeList, resizeNotify, void(entity, vector, vector, vector, vector)); - METHOD(XonoticGametypeList, setSelected, void(entity, float)); - METHOD(XonoticGametypeList, loadCvars, void(entity)); - METHOD(XonoticGametypeList, saveCvars, void(entity)); - METHOD(XonoticGametypeList, keyDown, float(entity, float, float, float)); - METHOD(XonoticGametypeList, clickListBoxItem, void(entity, float, vector)); - METHOD(XonoticGametypeList, focusedItemChangeNotify, void(entity)); +#include "gametypelist.qh" - ATTRIB(XonoticGametypeList, realFontSize, vector, '0 0 0') - ATTRIB(XonoticGametypeList, realUpperMargin, float, 0) - ATTRIB(XonoticGametypeList, columnIconOrigin, float, 0) - ATTRIB(XonoticGametypeList, columnIconSize, float, 0) - ATTRIB(XonoticGametypeList, columnNameOrigin, float, 0) - ATTRIB(XonoticGametypeList, columnNameSize, float, 0) -ENDCLASS(XonoticGametypeList) -entity makeXonoticGametypeList(); -#endif +#include "dialog_multiplayer_create.qh" +#include -#ifdef IMPLEMENTATION - -entity makeXonoticGametypeList(void) +entity makeXonoticGametypeList() { entity me; me = NEW(XonoticGametypeList); @@ -39,7 +17,7 @@ void XonoticGametypeList_configureXonoticGametypeList(entity me) if(SKINBOOL_GAMETYPELIST_ICON_BLUR) { - for(int i = 0; i < GameType_GetCount(); ++i) + for(int i = 0; i < GameType_GetTotalCount(); ++i) draw_PreloadPictureWithFlags(GameType_GetIcon(i), PRECACHE_PIC_MIPMAP); } @@ -52,8 +30,7 @@ void XonoticGametypeList_setSelected(entity me, float i) } void XonoticGametypeList_loadCvars(entity me) { - float t; - t = MapInfo_CurrentGametype(); + Gametype t = MapInfo_CurrentGametype(); float i; for(i = 0; i < GameType_GetCount(); ++i) if(t == GameType_GetID(i)) @@ -71,7 +48,7 @@ void XonoticGametypeList_loadCvars(entity me) } void XonoticGametypeList_saveCvars(entity me) { - int t = GameType_GetID(me.selectedItem); + Gametype t = GameType_GetID(me.selectedItem); if (t == MapInfo_CurrentGametype()) { return; } @@ -81,6 +58,15 @@ void XonoticGametypeList_saveCvars(entity me) owner.gameTypeChangeNotify(owner); } } +void XonoticGametypeList_draw(entity me) +{ + if(me.nItems != GameType_GetCount()) + { + me.nItems = GameType_GetCount(); + me.setSelected(me, 0); + } + SUPER(XonoticGametypeList).draw(me); +} void XonoticGametypeList_drawListBoxItem(entity me, int i, vector absSize, bool isSelected, bool isFocused) { string s1, s2; @@ -113,10 +99,12 @@ void XonoticGametypeList_drawListBoxItem(entity me, int i, vector absSize, bool void XonoticGametypeList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize) { me.itemAbsSize = '0 0 0'; - SUPER(XonoticServerList).resizeNotify(me, relOrigin, relSize, absOrigin, absSize); + SUPER(XonoticGametypeList).resizeNotify(me, relOrigin, relSize, absOrigin, absSize); - me.realFontSize_y = me.fontSize / (me.itemAbsSize_y = (absSize.y * me.itemHeight)); - me.realFontSize_x = me.fontSize / (me.itemAbsSize_x = (absSize.x * (1 - me.controlWidth))); + me.itemAbsSize.y = absSize.y * me.itemHeight; + me.itemAbsSize.x = absSize.x * (1 - me.controlWidth); + me.realFontSize.y = me.fontSize / me.itemAbsSize.y; + me.realFontSize.x = me.fontSize / me.itemAbsSize.x; me.realUpperMargin = 0.5 * (1 - me.realFontSize.y); me.columnIconOrigin = 0; me.columnIconSize = me.itemAbsSize.y / me.itemAbsSize.x; @@ -145,4 +133,3 @@ void XonoticGametypeList_focusedItemChangeNotify(entity me) else clearTooltip(me); } -#endif