changeset 192:260644076c07 gmap2

Change handling of marker type.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 12 Mar 2014 04:04:08 +0200
parents 12c5c2ccaaa9
children b98f05d27502
files markers.js tools/makegmaps.php
diffstat 2 files changed, 58 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- 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();
--- 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,
   );
 }