# HG changeset patch # User Matti Hamalainen # Date 1394589848 -7200 # Node ID 260644076c07d12eb705a5cc340cd023394abfd2 # Parent 12c5c2ccaaa9e419be8e3bfac869c8c26f60426b Change handling of marker type. diff -r 12c5c2ccaaa9 -r 260644076c07 markers.js --- a/markers.js Wed Mar 12 04:03:33 2014 +0200 +++ b/markers.js Wed Mar 12 04:04:08 2014 +0200 @@ -1,7 +1,31 @@ // $Id: markers.js 2284 2009-09-21 12:47:20Z jeskko $ -// + +// Marker types +var LOCF_M_SCENIC1 = (0x00001); /* '?' Scenic marker */ +var LOCF_M_SCENIC2 = (0x00002); /* '%' Shrine marker/etc */ +var LOCF_M_PCITY = (0x00004); /* 'C' Player city */ +var LOCF_M_CITY = (0x00008); /* 'c' City */ +var LOCF_M_MASK = (0x0000F); + +// Location types +var LOCF_T_SHRINE = (0x00010); /* 'S' Raceshrine */ +var LOCF_T_GUILD = (0x00020); /* 'G' Guild */ +var LOCF_T_SS = (0x00040); /* 'P' Player guild/Secret Society */ +var LOCF_T_MONSTER = (0x00080); /* 'M' Special monster */ +var LOCF_T_TRAINER = (0x00100); /* 'T' Guild trainer */ +var LOCF_T_FORT = (0x00200); /* 'F' Regions fort */ +var LOCF_T_MASK = (0x0FFF0); +var LOCF_MASK = (LOCF_M_MASK | LOCF_T_MASK); + +// Extra flags +var LOCF_INVIS = (0x10000); /* '-' Invisible marker / Don't show label */ +var LOCF_CLOSED = (0x20000); /* '!' Area is CLOSED */ +var LOCF_INVALID = (0x40000); /* Possibly invalid location */ +var LOCF_NOMARKER = (0x80000); /* Location has no marker in mapdata or explicitly defined */ +var LOCF_Q_MASK = (0xF0000); + + // List of marker types -// var pmapMarkerTypes = [ ["Guilds", "guild"], @@ -11,6 +35,7 @@ ]; +// Some global vars var pmapMMgr; var pmapAreas = []; var pmapMarkers = []; @@ -33,6 +58,30 @@ } +function pmapLocGetLocationType(flags, def) +{ + switch (flags & LOCF_M_MASK) + { + case LOCF_M_CITY: return "city"; + case LOCF_M_PCITY: return "pcity"; + + default: + switch (flags & LOCF_T_MASK) + { + case LOCF_T_SHRINE: return "shrine"; + case LOCF_T_GUILD: return "guild"; + case LOCF_T_SS: return "ss"; + case LOCF_T_MONSTER: return "monster"; + case LOCF_T_TRAINER: return "trainer"; + case LOCF_T_FORT: return "fort"; + } + break; + } + + return def ? def : "default"; +} + + function pmapCreateMarker(point,name,html,icon,type,continent,mclass) { pname = (type != "default" ? type.toUpperCase()+" " : "") + name; @@ -67,13 +116,9 @@ function pmapCreateMarkerType(m, mclass) { - var type = m["type"]; - - if (type == "") - type = "default"; - - if (name.indexOf('FERRY') == 0) - type = "ferry"; + type = pmapLocGetLocationType(m["flags"], m["type"]); + if (m["name"].indexOf('FERRY') == 0) + type = "FERRY"; var ppos = pmapMapCoordsToLatLng(new google.maps.Point(m["x"] * 2 + 1, m["y"] * 2 + 1), 7); var marker = pmapCreateMarker(ppos, m["name"], m["html"], pmapIcons[type], type, m["continent"], mclass); @@ -126,9 +171,11 @@ pmapAddMarkers(pmapAreas["default"], 7, 11); pmapAddMarkers(pmapAreas["guild"], 6, 11); pmapAddMarkers(pmapAreas["shrine"], 6, 11); + pmapAddMarkers(pmapAreas["trainer"], 6, 11); pmapAddMarkers(pmapAreas["ferry"], 4, 11); pmapAddMarkers(pmapAreas["city"], 4, 11); + pmapAddMarkers(pmapAreas["monster"], 8, 11); pmapAddMarkers(pmapAreas["pcity"], 8, 11); //pmapAddMarkers(pmapAreas["fort"], 8, 11); pmapMMgr.refresh(); diff -r 12c5c2ccaaa9 -r 260644076c07 tools/makegmaps.php --- a/tools/makegmaps.php Wed Mar 12 04:03:33 2014 +0200 +++ b/tools/makegmaps.php Wed Mar 12 04:04:08 2014 +0200 @@ -241,7 +241,8 @@ "name" => $name, "html" => $html, "continent" => "", - "type" => "tradelane" + "type" => "tradelane", + "flags" => 0, ); }