attempt to re-create missing links from the portal data
may not work, as this code was work-in-progress when niantic broke the json protocol
This commit is contained in:
parent
b8514ef3d0
commit
4a9fa8baea
@ -88,19 +88,23 @@ window.Render.prototype.processDeletedGameEntityGuids = function(deleted) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
window.Render.prototype.processGameEntities = function(entities) {
|
window.Render.prototype.processGameEntities = function(entities) {
|
||||||
|
var portalGuids = [];
|
||||||
|
|
||||||
for (var i in entities) {
|
for (var i in entities) {
|
||||||
var ent = entities[i];
|
var ent = entities[i];
|
||||||
|
|
||||||
// don't create entities in the 'deleted' list
|
// don't create entities in the 'deleted' list
|
||||||
if (!(ent[0] in this.deletedGuid)) {
|
if (!(ent[0] in this.deletedGuid)) {
|
||||||
this.createEntity(ent);
|
this.createEntity(ent);
|
||||||
|
if ('portalV2' in ent[2]) portalGuids.push(ent[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// now reconstruct links 'optimised' out of the data from the portal link data
|
// now reconstruct links 'optimised' out of the data from the portal link data
|
||||||
|
this.createLinksFromPortalData(portalGuids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// end a render pass. does any cleaning up required, postponed processing of data, etc. called when the render
|
// end a render pass. does any cleaning up required, postponed processing of data, etc. called when the render
|
||||||
// is considered complete
|
// is considered complete
|
||||||
window.Render.prototype.endRenderPass = function() {
|
window.Render.prototype.endRenderPass = function() {
|
||||||
@ -355,3 +359,58 @@ window.Render.prototype.createLinkEntity = function(ent) {
|
|||||||
// TODO? postpone adding to the layer??
|
// TODO? postpone adding to the layer??
|
||||||
linksLayer.addLayer(poly);
|
linksLayer.addLayer(poly);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
window.Render.prototype.createLinksFromPortalData = function(portalGuids) {
|
||||||
|
|
||||||
|
for (var portalGuidIndex in portalGuids) {
|
||||||
|
var portalGuid = portalGuids[portalGuidIndex];
|
||||||
|
var sourcePortal = portals[portalGuid];
|
||||||
|
|
||||||
|
for (var sourceLinkIndex in sourcePortal.options.details.portalV2.linkedEdges||[]) {
|
||||||
|
var sourcePortalLinkInfo = sourcePortal.options.details.portalV2.linkedEdges[sourceLinkIndex];
|
||||||
|
|
||||||
|
// portals often contain details for edges that don't exist. so only consider faking an edge if this
|
||||||
|
// is the origin portal, the link doesn't already exist...
|
||||||
|
if (sourcePortalLinkInfo.isOrigin && !(sourcePortalLinkInfo.edgeGuid in links)) {
|
||||||
|
|
||||||
|
// ... and the other porta has matching link information.
|
||||||
|
if (portalGuids.indexOf(sourcePortalLinkInfo.otherPortalGuid) != -1 &&
|
||||||
|
sourcePortalLinkInfo.otherPortalGuid in portals) {
|
||||||
|
|
||||||
|
var targetPortal = portals[sourcePortalLinkInfo.otherPortalGuid];
|
||||||
|
|
||||||
|
for (var targetLinkIndex in targetPortal.options.details.portalV2.linkedEdges||[]) {
|
||||||
|
var targetPortalLinkInfo = targetPortal.options.details.portalV2.linkedEdges[targetLinkIndex];
|
||||||
|
|
||||||
|
if (targetPortalLinkInfo.edgeGuid == sourcePortalLinkInfo.edgeGuid) {
|
||||||
|
// yes - edge in both portals. create it
|
||||||
|
|
||||||
|
var fakeEnt = [
|
||||||
|
sourcePortalLinkInfo.edgeGuid,
|
||||||
|
0, // mtime for entity data - unknown when faking it, so zero will be the oldest possible
|
||||||
|
{
|
||||||
|
controllingTeam: sourcePortal.options.details.controllingTeam,
|
||||||
|
edge: {
|
||||||
|
originPortalGuid: portalGuid,
|
||||||
|
originPortalLocation: sourcePortal.options.details.locationE6,
|
||||||
|
destinationPortalGuid: sourcePortalLinkInfo.otherPortalGuid,
|
||||||
|
destinationPortalLocation: targetPortal.options.details.locationE6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
this.createLinkEntity(fakeEnt);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user