diff --git a/code/map_data.js b/code/map_data.js
index 118172fa..3edfbe82 100644
--- a/code/map_data.js
+++ b/code/map_data.js
@@ -149,12 +149,14 @@ window.handlePortalsRender = function(portals) {
// Preserve selectedPortal because it will get lost on re-rendering
// the portal
var oldSelectedPortal = selectedPortal;
-
runHooks('portalDataLoaded', {portals : portals});
$.each(portals, function(ind, portal) {
//~ if(selectedPortal === portal[0]) portalUpdateAvailable = true;
if(urlPortal && portal[0] === urlPortal) portalInUrlAvailable = true;
- renderPortal(portal);
+ if(window.portals[portal[0]]) {
+ highlightPortal(window.portals[portal[0]]);
+ }
+ renderPortal(portal);
});
// restore selected portal if still available
@@ -256,7 +258,7 @@ window.renderPortal = function(ent) {
// do nothing if portal did not change
var layerGroup = portalsLayers[parseInt(portalLevel)];
var old = findEntityInLeaflet(layerGroup, window.portals, ent[0]);
- if(old) {
+ if(!changing_highlighters && old) {
var oo = old.options;
// Default checks to see if a portal needs to be re-rendered
@@ -304,6 +306,7 @@ window.renderPortal = function(ent) {
clickable: true,
level: portalLevel,
team: team,
+ ent: ent,
details: ent[2],
guid: ent[0]});
@@ -341,7 +344,7 @@ window.renderPortal = function(ent) {
});
window.renderResonators(ent, null);
-
+ highlightPortal(p);
window.runHooks('portalAdded', {portal: p});
p.addTo(layerGroup);
}
diff --git a/code/portal_highlighter.js b/code/portal_highlighter.js
new file mode 100644
index 00000000..c7a94753
--- /dev/null
+++ b/code/portal_highlighter.js
@@ -0,0 +1,55 @@
+// Portal Highlighter //////////////////////////////////////////////////////////
+// these functions handle portal highlighters
+
+
+window._highlighters = null;
+window._current_highlighter = localStorage.portal_highlighter;
+window.changing_highlighters = false;
+
+window.addPortalHighlighter = function(name, callback) {
+ console.log("Regisering Portal Highlighter: " + name);
+ if(_highlighters === null) {
+ _highlighters = {};
+ }
+ _highlighters[name] = callback;
+ portalHighlighterControl();
+}
+
+window.portalHighlighterControl = function() {
+ if(_highlighters !== null) {
+ if($('#portal_highlight_select').length === 0) {
+ $("body").append("");
+ }
+ $("#portal_highlight_select").html('');
+ $("#portal_highlight_select").append($("