Mercurial > hg > batmud > maputils
changeset 2100:9141edfb5647
Clean up the mapsearch front-end Javascript code a bit.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 10 Sep 2019 16:23:55 +0300 |
parents | f17a1b4bc259 |
children | a2c893c39771 |
files | www/search.js |
diffstat | 1 files changed, 105 insertions(+), 111 deletions(-) [+] |
line wrap: on
line diff
--- a/www/search.js Tue Sep 10 16:22:53 2019 +0300 +++ b/www/search.js Tue Sep 10 16:23:55 2019 +0300 @@ -141,6 +141,105 @@ } +function mapUpdateMapCount() +{ + var elem = document.getElementById("mapInfo"); + var l = mapGetSelectedMaps(); + elem.innerHTML = (l.length == 0) ? + "No maps selected!" : + "<b>"+ l.length +"</b> map"+ (l.length > 1 ? "s" : "") +" selected."; +} + + +function mapGetData() +{ + var tmpWS = new WebSocket(mapServer); + if (!tmpWS) + { + mapLog("Could not create WebSocket connection?"); + return; + } + + tmpWS.onopen = function() + { + tmpWS.send("GETMAPS"); + }; + + tmpWS.onmessage = function(evt) + { + if (evt.data.substr(0, 6) == "ERROR:") + { + mapResult("ERROR! "+ mapCleanData(evt.data.substr(6))); + } + else + if (evt.data.substr(0, 5) == "MAPS:" && evt.data.length > 8) + { + var results = mapValidateJSON(evt.data.substr(5), 3, 3); + if (Array.isArray(results) && results.length > 0) + { + mapList = results; + var str = ""; + + // Format results, if any + for (var i = 0; i < results.length; i++) + { + var res = results[i]; + var id = "map_"+ res[0]; + str += + "<input class=\"map\" id=\""+ id + + "\" type=\"checkbox\" checked=\"checked\">"+ + "<label for=\""+ id +"\">"+ mapCapitalize(res[0]) +"</label>"; + } + + var elem = document.getElementById("mapList"); + elem.innerHTML = str; + + for (var i = 0; i < results.length; i++) + { + var res = results[i]; + mapAddEvent("map_" + res[0], "change", mapUpdateMapCount); + } + + mapUpdateMapCount(); + } + else + mapResult("ERROR: "+ results); + } + + tmpWS.close(); + }; + + tmpWS.onerror = function() + { + mapResult("WebSocket error occured."); + }; +} + + +function mapGetLocType(flags) +{ + switch (flags & 0xfffc) + { + case 0x0004: return "PCITY"; + case 0x0008: return "CITY"; + case 0x0010: return "SHRINE"; + case 0x0020: return "GUILD"; + case 0x0040: return "SS"; + case 0x0080: return "MONSTER"; + case 0x0100: return "TRAINER"; + case 0x0200: return "FORT"; + default: return null; + } +} + + +function mapGetLocPrefix(flags) +{ + var str = mapGetLocType(flags); + return str != null ? "["+ str + "] " : ""; +} + + function mapDoMapSearch() { // Check the search pattern for some sanity before @@ -246,111 +345,6 @@ } -function mapUpdateMapCount() -{ - var elem = document.getElementById("mapInfo"); - var l = mapGetSelectedMaps(); - elem.innerHTML = (l.length == 0) ? - "No maps selected!" : - "<b>"+ l.length +"</b> map"+ (l.length > 1 ? "s" : "") +" selected."; -} - - -function mapGetData() -{ - var tmpWS = new WebSocket(mapServer); - if (!tmpWS) - { - mapLog("Could not create WebSocket connection?"); - return; - } - - tmpWS.onopen = function() - { - tmpWS.send("GETMAPS"); - }; - - tmpWS.onmessage = function(evt) - { - if (evt.data.substr(0, 6) == "ERROR:") - { - mapResult("ERROR! "+ mapCleanData(evt.data.substr(6))); - } - else - if (evt.data.substr(0, 5) == "MAPS:" && evt.data.length > 8) - { - var results = mapValidateJSON(evt.data.substr(5), 3, 3); - if (Array.isArray(results) && results.length > 0) - { - mapList = results; - var str = ""; - - // Format results, if any - for (var i = 0; i < results.length; i++) - { - var res = results[i]; - var id = "map_"+ res[0]; - str += - "<input class=\"map\" id=\""+ id + - "\" type=\"checkbox\" checked=\"checked\">"+ - "<label for=\""+ id +"\">"+ mapCapitalize(res[0]) +"</label>"; - } - - var elem = document.getElementById("mapList"); - elem.innerHTML = str; - - for (var i = 0; i < results.length; i++) - { - var res = results[i]; - mapAddEvent("map_" + res[0], "change", mapUpdateMapCount); - } - - mapUpdateMapCount(); - } - else - mapResult("ERROR: "+ results); - } - - tmpWS.close(); - }; - - tmpWS.onerror = function() - { - mapResult("WebSocket error occured."); - }; -} - - -function locResult(msg) -{ - mapResult(msg); -} - - -function mapGetLocType(flags) -{ - switch (flags & 0xfffc) - { - case 0x0004: return "PCITY"; - case 0x0008: return "CITY"; - case 0x0010: return "SHRINE"; - case 0x0020: return "GUILD"; - case 0x0040: return "SS"; - case 0x0080: return "MONSTER"; - case 0x0100: return "TRAINER"; - case 0x0200: return "FORT"; - default: return null; - } -} - - -function mapGetLocPrefix(flags) -{ - var str = mapGetLocType(flags); - return str != null ? "["+ str + "] " : ""; -} - - function mapDoLocSearch() { locPID = -1; @@ -360,13 +354,13 @@ var tmp = fieldLocPattern.value.trim(); if (tmp == "") { - locResult("Nothing to search for."); + mapResult("Nothing to search for."); return; } if (tmp.length > 25) { - locResult("Search pattern too large!"); + mapResult("Search pattern too large!"); return; } @@ -378,7 +372,7 @@ locWS = new WebSocket(mapServer); if (!locWS) { - locResult("Could not create WebSocket connection?"); + mapResult("Could not create WebSocket connection?"); return; } @@ -393,7 +387,7 @@ { if (evt.data.substr(0, 6) == "ERROR:") { - locResult("ERROR! "+ mapCleanData(evt.data.substr(6))); + mapResult("ERROR! "+ mapCleanData(evt.data.substr(6))); } else if (evt.data.substr(0, 7) == "RESULT:" && evt.data.length >= 9) @@ -435,7 +429,7 @@ else str = "ERROR: "+ results; - locResult(str); + mapResult(str); } locWS.close(); @@ -448,7 +442,7 @@ locWS.onerror = function() { - locResult("WebSocket error occured."); + mapResult("WebSocket error occured."); }; }