]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix a few more floats, add the long awaited stob macro
authorMario <zacjardine@y7mail.com>
Fri, 24 Apr 2015 12:02:12 +0000 (22:02 +1000)
committerMario <zacjardine@y7mail.com>
Fri, 24 Apr 2015 12:02:12 +0000 (22:02 +1000)
qcsrc/common/util-pre.qh
qcsrc/menu/item/textslider.qc
qcsrc/menu/xonotic/serverlist.qc

index ed4ebcf0615d26dfa52ea907ea96a190b5f6a6f5..022f687215bfd4ec42af08b3942d466408ee0ecf 100644 (file)
@@ -21,6 +21,7 @@
     #define int float
 
     #define stoi(s) stof(s)
+    #define stob(s) stof(s)
     #define itos(s) ftos(s)
 #endif
 
index 59d8c10db59f6053009f51b90bd39a7c2561c645..6e9d65efaf612d06d0e4d9a1053645feda08ec10 100644 (file)
@@ -17,7 +17,7 @@ ENDCLASS(TextSlider)
 #endif
 
 #ifdef IMPLEMENTATION
-string TextSlider_valueToIdentifier(entity me, float val)
+string TextSlider_valueToIdentifier(entity me, int val)
 {
        if(val >= me.nValues)
                return "custom";
@@ -25,7 +25,7 @@ string TextSlider_valueToIdentifier(entity me, float val)
                return "custom";
        return me.(valueIdentifiers[val]);
 }
-string TextSlider_valueToText(entity me, float val)
+string TextSlider_valueToText(entity me, int val)
 {
        if(val >= me.nValues)
                return _("Custom");
@@ -35,7 +35,7 @@ string TextSlider_valueToText(entity me, float val)
 }
 void TextSlider_setValueFromIdentifier(entity me, string id)
 {
-       float i;
+       int i;
        for(i = 0; i < me.nValues; ++i)
                if(me.valueToIdentifier(me, i) == id)
                {
@@ -58,9 +58,9 @@ void TextSlider_addValue(entity me, string theString, string theIdentifier)
        me.(valueIdentifiers[me.nValues]) = theIdentifier;
        me.nValues += 1;
 }
-void TextSlider_insertValue(entity me, float pos, string theString, string theIdentifier)
+void TextSlider_insertValue(entity me, int pos, string theString, string theIdentifier)
 {
-       float i;
+       int i;
        for (i = me.nValues; i > pos; --i)
        {
                me.(valueStrings[i]) = me.(valueStrings[i-1]);
index c6c53cc8e01f4afa88df9f5ac838840b7ed1120c..db7ac84814b8f5fe765b654282ac0771eb05f4df 100644 (file)
@@ -155,7 +155,7 @@ float category_draw_count;
 
 #define SLIST_CATEGORY_AUTOCVAR(name) autocvar_menu_slist_categories_##name##_override
 #define SLIST_CATEGORY(name,enoverride,dioverride,str) \
-       float name; \
+       int name; \
        string SLIST_CATEGORY_AUTOCVAR(name) = enoverride;
 SLIST_CATEGORIES
 #undef SLIST_CATEGORY
@@ -180,7 +180,7 @@ void RegisterSLCategories()
        SLIST_CATEGORIES
        #undef SLIST_CATEGORY
 
-       float i, x, catnum;
+       int i, x, catnum;
        string s;
 
        #define PROCESS_OVERRIDE(override_string,override_field) \
@@ -219,7 +219,7 @@ void RegisterSLCategories()
 }
 
 // Supporting Functions
-entity RetrieveCategoryEnt(float catnum)
+entity RetrieveCategoryEnt(int catnum)
 {
        if((catnum > 0) && (catnum <= category_ent_count))
        {
@@ -232,10 +232,10 @@ entity RetrieveCategoryEnt(float catnum)
        }
 }
 
-float IsServerInList(string list, string srv)
+bool IsServerInList(string list, string srv)
 {
        string p;
-       float i, n;
+       int i, n;
        if(srv == "")
                return false;
        srv = netaddress_resolve(srv, 26000);
@@ -260,12 +260,12 @@ float IsServerInList(string list, string srv)
        return false;
 }
 
-float CheckCategoryOverride(float cat)
+int CheckCategoryOverride(int cat)
 {
        entity catent = RetrieveCategoryEnt(cat);
        if(catent)
        {
-               float override = (autocvar_menu_slist_categories ? catent.cat_enoverride : catent.cat_dioverride);
+               int override = (autocvar_menu_slist_categories ? catent.cat_enoverride : catent.cat_dioverride);
                if(override) { return override; }
                else { return cat; }
        }
@@ -276,10 +276,10 @@ float CheckCategoryOverride(float cat)
        }
 }
 
-float CheckCategoryForEntry(float entry)
+int CheckCategoryForEntry(int entry)
 {
        string s, k, v, modtype = "";
-       float j, m, impure = 0, freeslots = 0, sflags = 0;
+       int j, m, impure = 0, freeslots = 0, sflags = 0;
        s = gethostcachestring(SLIST_FIELD_QCSTATUS, entry);
        m = tokenizebyseparator(s, ":");
 
@@ -381,12 +381,12 @@ float CheckCategoryForEntry(float entry)
 void XonoticServerList_toggleFavorite(entity me, string srv)
 {
        string s, s0, s1, s2, srv_resolved, p;
-       float i, n, f;
+       int i, n;
+       bool f = false;
        srv_resolved = netaddress_resolve(srv, 26000);
        p = crypto_getidfp(srv_resolved);
        s = cvar_string("net_slist_favorites");
        n = tokenize_console(s);
-       f = 0;
        for(i = 0; i < n; ++i)
        {
                if(substring(argv(i), 0, 1) != "[" && strlen(argv(i)) == 44 && strstrofs(argv(i), ".", 0) < 0)
@@ -410,7 +410,7 @@ void XonoticServerList_toggleFavorite(entity me, string srv)
                cvar_set("net_slist_favorites", strcat(s0, s1, s2));
                s = cvar_string("net_slist_favorites");
                n = tokenize_console(s);
-               f = 1;
+               f = true;
                --i;
        }
 
@@ -456,10 +456,9 @@ void XonoticServerList_configureXonoticServerList(entity me)
        // clear list
        me.nItems = 0;
 }
-void XonoticServerList_setSelected(entity me, float i)
+void XonoticServerList_setSelected(entity me, int i)
 {
-       float save;
-       save = me.selectedItem;
+       //int save = me.selectedItem;
        SUPER(XonoticServerList).setSelected(me, i);
        /*
        if(me.selectedItem == save)
@@ -478,14 +477,15 @@ void XonoticServerList_setSelected(entity me, float i)
        me.ipAddressBox.cursorPos = strlen(me.selectedServer);
        me.ipAddressBoxFocused = -1;
 }
-void XonoticServerList_refreshServerList(entity me, float mode)
+void XonoticServerList_refreshServerList(entity me, int mode)
 {
        //print("refresh of type ", ftos(mode), "\n");
 
        if(mode >= REFRESHSERVERLIST_REFILTER)
        {
-               float m, i, n;
-               float listflags = 0;
+               float m;
+               int i, n;
+               int listflags = 0;
                string s, typestr, modstr;
 
                s = me.filterString;
@@ -573,7 +573,8 @@ void XonoticServerList_focusEnter(entity me)
 
 void XonoticServerList_draw(entity me)
 {
-       float i, found, owned;
+       int i;
+       bool found = false, owned;
 
        if(_Nex_ExtResponseSystem_BannedServersNeedsRefresh)
        {
@@ -714,7 +715,6 @@ void XonoticServerList_draw(entity me)
        me.infoButton.disabled = ((me.nItems == 0) || !owned);
        me.favoriteButton.disabled = ((me.nItems == 0) && (me.ipAddressBox.text == ""));
 
-       found = 0;
        if(me.selectedServer)
        {
                for(i = 0; i < me.nItems; ++i)
@@ -722,7 +722,7 @@ void XonoticServerList_draw(entity me)
                        if(gethostcachestring(SLIST_FIELD_CNAME, i) == me.selectedServer)
                        {
                                me.selectedItem = i;
-                               found = 1;
+                               found = true;
                                break;
                        }
                }
@@ -861,7 +861,7 @@ void ServerList_ShowFull_Click(entity box, entity me)
        me.ipAddressBox.cursorPos = 0;
        me.ipAddressBoxFocused = -1;
 }
-void XonoticServerList_setSortOrder(entity me, float fld, float direction)
+void XonoticServerList_setSortOrder(entity me, int fld, int direction)
 {
        if(me.currentSortField == fld)
                direction = -me.currentSortOrder;
@@ -922,8 +922,7 @@ void XonoticServerList_resizeNotify(entity me, vector relOrigin, vector relSize,
        me.positionSortButton(me, me.sortButton4, me.columnTypeOrigin, me.columnTypeSize, _("Type"), ServerList_TypeSort_Click);
        me.positionSortButton(me, me.sortButton5, me.columnPlayersOrigin, me.columnPlayersSize, _("Players"), ServerList_PlayerSort_Click);
 
-       float f;
-       f = me.currentSortField;
+       int f = me.currentSortField;
        if(f >= 0)
        {
                me.currentSortField = -1;
@@ -958,18 +957,20 @@ void ServerList_Info_Click(entity btn, entity me)
        vector sz = boxToGlobalSize(eY * me.itemHeight + eX * (1 - me.controlWidth), me.size);
        DialogOpenButton_Click_withCoords(me, main.serverInfoDialog, org, sz);
 }
-void XonoticServerList_doubleClickListBoxItem(entity me, float i, vector where)
+void XonoticServerList_doubleClickListBoxItem(entity me, int i, vector where)
 {
        ServerList_Connect_Click(NULL, me);
 }
-void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float isSelected)
+void XonoticServerList_drawListBoxItem(entity me, int i, vector absSize, bool isSelected)
 {
        // layout: Ping, Server name, Map name, NP, TP, MP
-       float p, q;
-       float isv4, isv6;
+       float p;
+       int q;
+       bool isv4, isv6;
        vector theColor;
        float theAlpha;
-       float m, pure, freeslots, j, sflags;
+       bool pure = false;
+       int freeslots = -1, sflags = -1, j, m;
        string s, typestr, versionstr, k, v, modname;
 
        //printf("time: %f, i: %d, item: %d, nitems: %d\n", time, i, item, me.nItems);
@@ -1026,9 +1027,7 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
                versionstr = argv(1);
        }
        freeslots = -1;
-       sflags = -1;
        modname = "";
-       pure = 0;
        for(j = 2; j < m; ++j)
        {
                if(argv(j) == "")
@@ -1036,11 +1035,11 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
                k = substring(argv(j), 0, 1);
                v = substring(argv(j), 1, -1);
                if(k == "P")
-                       pure = stof(v);
+                       pure = stob(v);
                else if(k == "S")
                        freeslots = stof(v);
                else if(k == "F")
-                       sflags = stof(v);
+                       sflags = stoi(v);
                else if(k == "M")
                        modname = v;
        }
@@ -1064,7 +1063,7 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
        if(modname != "CTS")
        if(modname != "NIX")
        if(modname != "NewToys")
-               pure = 0;
+               pure = false;
 
        if(gethostcachenumber(SLIST_FIELD_FREESLOTS, i) <= 0)
                theAlpha = SKINALPHA_SERVERLIST_FULL;
@@ -1076,9 +1075,9 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
                theAlpha = 1;
 
        p = gethostcachenumber(SLIST_FIELD_PING, i);
-       const float PING_LOW = 75;
-       const float PING_MED = 200;
-       const float PING_HIGH = 500;
+       const int PING_LOW = 75;
+       const int PING_MED = 200;
+       const int PING_HIGH = 500;
        if(p < PING_LOW)
                theColor = SKINCOLOR_SERVERLIST_LOWPING + (SKINCOLOR_SERVERLIST_MEDPING - SKINCOLOR_SERVERLIST_LOWPING) * (p / PING_LOW);
        else if(p < PING_MED)
@@ -1102,15 +1101,15 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
 
        s = gethostcachestring(SLIST_FIELD_CNAME, i);
 
-       isv4 = isv6 = 0;
+       isv4 = isv6 = false;
        if(substring(s, 0, 1) == "[")
        {
-               isv6 = 1;
+               isv6 = true;
                me.seenIPv6 += 1;
        }
        else if(strstrofs("0123456789", substring(s, 0, 1), 0) >= 0)
        {
-               isv4 = 1;
+               isv4 = true;
                me.seenIPv4 += 1;
        }
 
@@ -1231,7 +1230,7 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
        draw_Text(me.realUpperMargin * eY + (me.columnPlayersOrigin + (me.columnPlayersSize - draw_TextWidth(s, 0, me.realFontSize)) * 0.5) * eX, s, me.realFontSize, theColor, theAlpha, 0);
 }
 
-float XonoticServerList_keyDown(entity me, float scan, float ascii, float shift)
+bool XonoticServerList_keyDown(entity me, int scan, bool ascii, bool shift)
 {
        vector org, sz;
 
@@ -1241,7 +1240,7 @@ float XonoticServerList_keyDown(entity me, float scan, float ascii, float shift)
        if(scan == K_ENTER || scan == K_KP_ENTER)
        {
                ServerList_Connect_Click(NULL, me);
-               return 1;
+               return true;
        }
        else if(scan == K_MOUSE2 || scan == K_SPACE)
        {
@@ -1250,9 +1249,9 @@ float XonoticServerList_keyDown(entity me, float scan, float ascii, float shift)
                        m_play_click_sound(MENU_SOUND_OPEN);
                        main.serverInfoDialog.loadServerInfo(main.serverInfoDialog, me.selectedItem);
                        DialogOpenButton_Click_withCoords(me, main.serverInfoDialog, org, sz);
-                       return 1;
+                       return true;
                }
-               return 0;
+               return false;
        }
        else if(scan == K_INS || scan == K_MOUSE3 || scan == K_KP_INS)
        {
@@ -1260,28 +1259,30 @@ float XonoticServerList_keyDown(entity me, float scan, float ascii, float shift)
                {
                        me.toggleFavorite(me, me.selectedServer);
                        me.ipAddressBoxFocused = -1;
-                       return 1;
+                       return true;
                }
-               return 0;
+               return false;
        }
        else if(SUPER(XonoticServerList).keyDown(me, scan, ascii, shift))
-               return 1;
+               return true;
        else if(!me.controlledTextbox)
-               return 0;
+               return false;
        else
                return me.controlledTextbox.keyDown(me.controlledTextbox, scan, ascii, shift);
 }
 
-float XonoticServerList_getTotalHeight(entity me) {
+float XonoticServerList_getTotalHeight(entity me)
+{
        float num_normal_rows = me.nItems;
-       float num_headers = category_draw_count;
+       int num_headers = category_draw_count;
        return me.itemHeight * (num_normal_rows + me.categoriesHeight * num_headers);
 }
-float XonoticServerList_getItemAtPos(entity me, float pos) {
+int XonoticServerList_getItemAtPos(entity me, float pos)
+{
        pos = pos / me.itemHeight;
-       float i;
+       int i;
        for (i = category_draw_count - 1; i >= 0; --i) {
-               float itemidx = category_item[i];
+               int itemidx = category_item[i];
                float itempos = i * me.categoriesHeight + category_item[i];
                if (pos >= itempos + me.categoriesHeight + 1)
                        return itemidx + 1 + floor(pos - (itempos + me.categoriesHeight + 1));
@@ -1291,10 +1292,11 @@ float XonoticServerList_getItemAtPos(entity me, float pos) {
        // No category matches? Note that category 0 is... 0. Therefore no headings exist at all.
        return floor(pos);
 }
-float XonoticServerList_getItemStart(entity me, float item) {
-       float i;
+float XonoticServerList_getItemStart(entity me, int item)
+{
+       int i;
        for (i = category_draw_count - 1; i >= 0; --i) {
-               float itemidx = category_item[i];
+               int itemidx = category_item[i];
                float itempos = i * me.categoriesHeight + category_item[i];
                if (item >= itemidx + 1)
                        return (itempos + me.categoriesHeight + 1 + item - (itemidx + 1)) * me.itemHeight;
@@ -1304,8 +1306,9 @@ float XonoticServerList_getItemStart(entity me, float item) {
        // No category matches? Note that category 0 is... 0. Therefore no headings exist at all.
        return item * me.itemHeight;
 }
-float XonoticServerList_getItemHeight(entity me, float item) {
-       float i;
+float XonoticServerList_getItemHeight(entity me, int item)
+{
+       int i;
        for (i = 0; i < category_draw_count; ++i) {
                // Matches exactly the headings with increased height.
                if (item == category_item[i])