Skip to content

Instantly share code, notes, and snippets.

@petrecristi
Created August 15, 2012 14:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petrecristi/3360627 to your computer and use it in GitHub Desktop.
Save petrecristi/3360627 to your computer and use it in GitHub Desktop.
tiberium alliances romanian map
// ==UserScript==
// @name Tiberium Alliances Harta
// @description Shows you the region map
// @namespace https://prodgame*.alliances.commandandconquer.com/*/index.aspx*
// @include https://prodgame*.alliances.commandandconquer.com/*/index.aspx*
// @version 1.8ro
// @author Nolana Kane
// @require http://sizzlemctwizzle.com/updater.php?id=135955&days=1
// ==/UserScript==
(function() {
var TAMap_mainFunction = function() {
function createMapTweak() {
var TAMap = {};
qx.Class.define("TAMap.main", {
type : "singleton",
extend : qx.core.Object,
members : {
buttonMap : null,
mapBox : null,
mapWidget : null,
scroll : null,
mapCanvas : null,
settingsWnd: null,
poiSelect : null,
allianceSelect : null,
obfSectorName : null,
obfAllianceName : null,
colorFields: {},
visOptions: { colors: { cityColor: "green", // type = 1
baseColor: "navy", // type = 2
campColor: "midnightblue", // type=3,CampType=2
outpostColor: "royalblue", // type=3,CampType=3
poiColor: "orange", // type = 4, POIType != 0
tunnelColor: "forestgreen", // type = 4, POIType = 0
enemyBaseColor: "red",
allianceTerrainColor: "teal",
ownBaseColor: "lime",
highlightColor: "white"
}
},
// Types: 1 = city
// 2 = Forgotten Base{Id, Level}
// 3 = Camp, Outpost {Id, CampType: 3 = Outpost, 2 = Camp}
// 4 = POI, Tunnel Exit {Id, Level, OwnerAllianceId, OwnerAllianceName, POIType:
// 6 = Aircraft (Off Air)
// 7 = Resonator (Def), 0 = Tunnel!
// ...
//
zoomFactor : 3,
initialize : function() {
if (localStorage) {
var vo = localStorage["TAMap.visOptions"];
if (vo != null) {
this.visOptions = JSON.parse(vo);
}
}
// this.add_ViewModeChange = (new ClientLib.Vis.ViewModeChange).$ctor(this, this.onViewChange);
console.log("Adding button");
this.buttonMap = new qx.ui.form.Button("Harta");
this.buttonMap.set({
width : 80,
appearance : "button-bar-center",
toolTipText : ""
});
this.buttonMap.addListener("click", this.showMap, this);
var mainBar = qx.core.Init.getApplication().getUIItem(ClientLib.Data.Missions.PATH.BAR_MENU);
mainBar.getChildren()[1].addAt(this.buttonMap, 8, {
top : 0,
right : 0
});
console.log("Button added");
// The Harta window
this.mapBox = new qx.ui.window.Window("Harta");
this.mapBox.setPadding(10);
this.mapBox.setLayout(new qx.ui.layout.Grow());
// this.mapBox.setLayout(new qx.ui.layout.VBox());
this.mapBox.setShowMaximize(false);
this.mapBox.setShowMinimize(false);
this.mapBox.moveTo(113, 13);
this.mapBox.setHeight(500);
this.mapBox.setWidth(500);
this.mapBox.setMinWidth(10);
this.mapBox.setMinHeight(10);
this.mapWidget = new qx.html.Element("canvas", null, {
id : "map",
width : 3000,
height : 3000
});
this.mapWidget.addListener("appear", function() {
console.log("appeared:" + this.mapWidget.getDomElement());
var canvas = this.mapWidget.getDomElement();
if (this.mapCanvas == null) {
this.mapCanvas = canvas;
var _thisMap = this;
canvas.addEventListener("click", function(evt) {
console.log("coords:" + evt.clientX + ":" + evt.clientY);
console.log("offsets:" + canvas.offsetTop + "," + canvas.offsetLeft);
// get canvas position
var obj = canvas;
var top = 0;
var left = 0;
while (obj && obj.tagName != 'BODY') {
top += obj.offsetTop;
left += obj.offsetLeft;
obj = obj.offsetParent;
}
// return relative mouse position
var mouseX = evt.clientX - left + window.pageXOffset + _thisMap.scroll.getScrollX();
var mouseY = evt.clientY - top + window.pageYOffset + _thisMap.scroll.getScrollY();
console.log("M:" + mouseX + "," + mouseY);
var vm = ClientLib.Vis.VisMain.GetInstance();
vm.CenterGridPosition(mouseX / _thisMap.zoomFactor, mouseY / _thisMap.zoomFactor);
_thisMap.updateMap();
setTimeout(function() {
_thisMap.updateMap();
}, 1000);
}, false);
}
this.updateMap();
//for (var x = 0; x < 1000; x++) {
// for (var y = 0; y < 1000; y++) {
// var obj = w.GetObjectFromPosition(x,y);
// if (obj != null) {
// ctx.fillRect(x,y,1,1);
// }
// }
// }
// vm = ClientLib.Vis.VisMain.GetInstance()
// vm.CenterGridPosition(535,142)
// vm.get_Region().get_PosY()/vm.get_Region().get_GridHeight()
// vm.get_Region().get_PosX()/vm.get_Region().get_GridWidth()
}, this);
// new qx.ui.basic.Label().set({
// value: "debugOutput",
// rich : true,
// selectable: true
// });
this.scroll = new qx.ui.container.Scroll().set({
width : 500,
height : 500
});
this.scroll.setMinWidth(10);
this.scroll.setMinHeight(10);
_thisMap = this;
this.mapBox.add(this.scroll);
var p = new qx.ui.core.Widget();
p.setMinHeight(3000);
p.setMinWidth(3000);
p.setHeight(3000);
p.setWidth(3000);
this.scroll.add(p);
p.getContentElement().add(this.mapWidget);
// select box for alliances
var selectBox = new qx.ui.form.SelectBox();
selectBox.addListener("changeSelection", function(e) {
if (e != null && e.getData() && e.getData().length > 0) {
this.visOptions.alliance = e.getData()[0].getModel(); // alliance ID or -1 for all
console.log("Alliance selected"+e.getData()[0]);
this.saveOptions();
this.updateMap();
}
}, this);
this.allianceSelect = selectBox;
// this.mapBox.add(selectBox);
//
// Select box for POI Type
//
selectBox = new qx.ui.form.SelectBox();
var currentSelection = this.visOptions.poi||-1;
var makePoiItem = function(model, name) {
var item = new qx.ui.form.ListItem(name, null, model);
selectBox.add(item);
if (currentSelection == model) {
selectBox.setSelection([item]);
}
}
makePoiItem(-1, "<< None >>");
makePoiItem(ClientLib.Base.EPOIType.AirBonus,"Aircraft GNT (Off Air)");
makePoiItem(ClientLib.Base.EPOIType.CrystalBonus,"Crystal CNH");
makePoiItem(ClientLib.Base.EPOIType.DefenseBonus,"Resonator NT (Def)");
makePoiItem(ClientLib.Base.EPOIType.InfanteryBonus,"Tungsten C (Off Inf)");
makePoiItem(ClientLib.Base.EPOIType.PowerBonus,"Reactor (Power Bonus)");
makePoiItem(ClientLib.Base.EPOIType.TiberiumBonus,"Tiberium CN");
makePoiItem(ClientLib.Base.EPOIType.VehicleBonus,"Uranium C (Off Vehicles)");
selectBox.addListener("changeSelection", function(e) {
if (e != null && e.getData() && e.getData().length > 0) {
this.visOptions.poi = e.getData()[0].getModel(); // POI ID or -1 for all
console.log("POI selected "+e.getData()[0].getModel());
this.saveOptions();
this.updateMap();
}
}, this);
this.poiSelect = selectBox;
var tt = "https://eaassets-a.akamaihd.net/cncalliancesgame/cdn/data/f202553333fcac7d610cfd0395ee2941.png";
var bt = new qx.ui.form.Button("Setari",tt);
bt.set({
appearance : "button-text-small",
toolTipText : "Stabileste filtrele pentru harta"
});
bt.addListener("click", function() {this.settingsWnd.open()}, this);
this.mapBox.getChildControl("captionbar").add(bt,{row:0,column:2}); // hack hack hack
//
// Settings dialog
//
this.settingsWnd = new qx.ui.window.Window("Map Settings");
this.settingsWnd.setPadding(10);
//this.mapBox.setLayout(new qx.ui.layout.Grow());
var layout = new qx.ui.layout.Grid();
layout.setSpacing(5);
layout.setColumnAlign(1,"left", "center");
layout.setColumnAlign(0,"left", "bottom");
this.settingsWnd.setLayout(layout);
this.settingsWnd.setShowMaximize(false);
this.settingsWnd.setShowMinimize(false);
this.settingsWnd.moveTo(300, 13);
this.settingsWnd.setHeight(550);
this.settingsWnd.setWidth(300);
this.settingsWnd.setMinWidth(10);
this.settingsWnd.setMinHeight(10);
var makeLbl = function(name) {
var lbl = new qx.ui.basic.Label(name);
lbl.setTextColor("white");
return lbl;
}
var _thisMap = this;
var makeTxt = function(option) {
var value = _thisMap.visOptions.colors[option];
var txtField = new qx.ui.form.TextField(value);
txtField.setTextColor("white");
_thisMap.colorFields[option] = txtField;
return txtField;
}
this.settingsWnd.add(makeLbl("- Alege -"), {row:0, column:0});
this.settingsWnd.add(makeLbl("Alianta:"), {row:1,column:0});
this.settingsWnd.add(this.allianceSelect, {row:1, column:1});
this.settingsWnd.add(makeLbl("POI-uri:"), {row:2, column:0});
this.settingsWnd.add(this.poiSelect, {row:2, column:1});
bt = makeLbl("- Culori -");
bt.set({
value: '<a href="http://www.w3schools.com/html/html_colornames.asp" target="_blank">- Culori -</a>',
rich : true,
selectable: true
});
this.settingsWnd.add(bt, {row:10, column:0});
// bt.addListener("click", function() { window.open("http://www.w3schools.com/html/html_colornames.asp") });
var tc = "https://eaassets-a.akamaihd.net/cncalliancesgame/cdn/data/f202553333fcac7d610cfd0395ee2941.png";
this.settingsWnd.add(makeLbl("Teritoriul Aliantei:",tc), {row:11, column:0});
this.settingsWnd.add(makeTxt("allianceTerrainColor"), {row:11, column:1});
this.settingsWnd.add(makeLbl("Baze:",), {row:12, column:0});
this.settingsWnd.add(makeTxt("baseColor"), {row:12, column:1});
this.settingsWnd.add(makeLbl("Campuri:"), {row:13, column:0});
this.settingsWnd.add(makeTxt("campColor"), {row:13, column:1});
this.settingsWnd.add(makeLbl("Orase:"), {row:14, column:0});
this.settingsWnd.add(makeTxt("cityColor"), {row:14, column:1});
this.settingsWnd.add(makeLbl("Dusmani:"), {row:15, column:0});
this.settingsWnd.add(makeTxt("enemyBaseColor"), {row:15, column:1});
this.settingsWnd.add(makeLbl("Outposturi:"), {row:16, column:0});
this.settingsWnd.add(makeTxt("outpostColor"), {row:16, column:1});
this.settingsWnd.add(makeLbl("Orasul meu:"), {row:17, column:0});
this.settingsWnd.add(makeTxt("ownBaseColor"), {row:17, column:1});
this.settingsWnd.add(makeLbl("POI-uri:"), {row:18, column:0});
this.settingsWnd.add(makeTxt("poiColor"), {row:18, column:1});
this.settingsWnd.add(makeLbl("Tunele:"), {row:19, column:0});
this.settingsWnd.add(makeTxt("tunnelColor"), {row:19, column:1});
var changeColor = new qx.ui.form.Button("Salveaza");
changeColor.set({
appearance : "button-text-small",
toolTipText : "Salveaza lista culorilor"
});
this.settingsWnd.add(changeColor, {row:20, column:0});
changeColor.addListener("click", function() {
for (var option in this.visOptions.colors) {
if (this.colorFields[option]) {
this.visOptions.colors[option] = this.colorFields[option].getValue();
}
}
this.saveOptions();
this.updateMap();
}, this);
this.settingsWnd.addListener("appear", function() {
this.updateFilter();
}, this);
//scroll.add(this.mapWidget);
// scroll.setBackgroundColor("#fff");
//var ele = scroll.getContainerElement();
//console.log("container scroll:" + ele);
//ele.getChild(0).add(this.mapWidget);
//
//this.mapBox.getApplicationRoot().set({
// blockerColor: '#000000',
// blockerOpacity: 0.6
// });
// w.GetBaseOwner(x,y);
//var index=((y * this.m_WorldWidth) + x);
// return this.m_BaseOwner[index];
//
//var ruinPlayerID=this.GetWorldSectorByCoords$0(targetX, targetY).GetPlayerId$0(ruin.PlayerId);
//
// list players for (var i = 0; i < s.m_Players.c; i++) { var p = console.log(s.GetPlayer(i)); }
//
// for(i in s.m_Objects.d) { console.log(s.m_Objects.d[i].$type.m.n);}
// sample object:
// {"Type":1,"SequenceId":3694,"isAttacked":false,"isLocked":false,"isProtected":false,"isAlerted":false,"hasCooldown":false,"Level":10,"Radius":2,"PlayerId":4,"ConditionBuildings":100,"ConditionDefense":100,"Id":76726,"Name":"Sepherian 1"}
// lientLib.Data.Cities.prototype.GetWorldSectorWithMostCities$0=function()
// >> w.GetOwner(534,139);
// >> w.GetObjectFromPosition
//w.GetObjectFromPosition(534,139)
// allianceId = 943 OtherAllianceId = 2049
// md.get_Alliance().GetAllianceRelationshipsByType(webfrontend.gui.alliance.DiplomacyPage.ERelationTypeEnemy,true)
//c=w.GetObjectFromPosition(524,145)
// s.GetPlayer(c.PlayerId)
//s.GetAlliance(p.Alliance) == OtherAllianceId
},
getSectors: function(w) { // work around obfuscated variable names
if (this.obfSectorName == null) {
// auto-detect sector name
Outer:
for (i in w) {
if (w[i].d) {
var maybeSector = w[i].d;
for (j in maybeSector) {
if (maybeSector[j].ConvertToWorldX) {
this.obfSectorName = i;
console.log("Sector field:" + i);
break Outer;
}
break;
}
}
}
}
if (this.obfSectorName != null)
return w[this.obfSectorName].d;
if (w.KIH) { // old june version
return w.KIH.d;
} else if (w.RBJXOL) { // july
return w.RBJXOL.d;
} else if(w.IWEESP) {
return w.IWEESP.d; // closed beta 2 world
} else if (w.HYMYNV) { // mid july release
return w.HYMYNV.d;
} else if (w.ONQEIH) { // july 18th
return w.ONQEIH.d;
}
},
getAlliances: function(s) {// work around obfuscated variable names. s == current sector
if (this.obfAllianceName == null) {
// find alliance list dynamically
Outer:
for (i in s) {
if (s[i].d) {
var maybeAlliance = s[i].d;
for (j in maybeAlliance) {
if (maybeAlliance[j].Name
&& !('Alliance' in maybeAlliance[j])) {
this.obfAllianceName = i;
console.log("Alliance field:" + i);
break Outer;
}
break;
}
}
}
}
if (this.obfAllianceName == null) {
console.log("No alliances yet");
return null;
} else
return s[this.obfAllianceName].d;
/* if (sector.WGH) {// june
return sector.WGH.d;
} else if (sector.QEKQND) {//july
return sector.QEKQND.d;
} else if (sector.GGUPEV){ // closed beta 2 world
return sector.GGUPEV.d;
} else if(sector.UFVPYE) {
return sector.UFVPYE.d; // July 11, 2012
} else if(sector.UEQLAO) {
return sector.UEQLAO.d; // July 18th
} */
},
isEnemy : function(enemies, alliance, sector) {
if (alliance == null)
return false;
var enemy = enemies.l.filter(function(ele) {
return ele.OtherAllianceId == alliance.Id;
});
return enemy.length > 0;
},
listAllAlliances : function() {
var alliances = [];
var w = ClientLib.Data.MainData.GetInstance().get_World();
var sectors = this.getSectors(w);
for (var i in sectors) { // m_sectors
var s = sectors[i];
var all = this.getAlliances(s);
for(var j in all) { // m_alliances
var a = all[j];
alliances.push({id: a.Id, name: a.Name});
}
}
alliances.sort(function(s1,s2) {
var name1 = s1.name.toLowerCase();
var name2 = s2.name.toLowerCase();
if (name1 < name2) return -1;
if (name1 > name2) return 1;
return 0;
});
var allianceMap = {};
alliances.forEach(function(it) {
allianceMap[it.id] = it;
});
return allianceMap;
},
updateFilter : function() {
var md = ClientLib.Data.MainData.GetInstance();
//var enemies = md.get_Alliance().GetAllianceRelationshipsByType(webfrontend.gui.alliance.DiplomacyPage.ERelationTypeEnemy, true);
this.allianceSelect.removeAll();
var alliances = this.listAllAlliances(); // quite expensive operation
var selected = new qx.ui.form.ListItem("<< None >>", null, -1);
this.allianceSelect.add(selected);
for (i in alliances) {
var a = alliances[i];
//enemies.l.forEach(function(it) {
var tempItem = new qx.ui.form.ListItem(a.name, null, a.id);
if (a.id == this.visOptions.alliance) {
selected = tempItem;
}
this.allianceSelect.add(tempItem);
}
this.allianceSelect.setSelection([selected]);
},
updateMap : function() {
// this.updateFilter(); - we assume that visOptions has all the visualisation options
var canvas = this.mapCanvas;
console.log("Canvas:" + canvas);
var ctx = canvas.getContext('2d');
var sc = this.zoomFactor;
var md = ClientLib.Data.MainData.GetInstance();
var enemies = md.get_Alliance().GetAllianceRelationshipsByType(webfrontend.gui.alliance.DiplomacyPage.ERelationTypeEnemy, true);
var w = md.get_World();
var vm = ClientLib.Vis.VisMain.GetInstance();
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = "rgb(200,0,0)";
var cx = 0;
var cy = 0;
var hilitePois = [];
var sectors = this.getSectors(w);
for (var i in sectors) {// m_Sectors = RBJXOL
var s = sectors[i];
// console.log("Painting sector:" + s.m_Id);
for (var x = 0; x < 32; x++) {
for (var y = 0; y < 32; y++) {
cx = s.ConvertToWorldX(x);
cy = s.ConvertToWorldY(y);
var obj = w.GetObjectFromPosition(cx, cy);
if (obj != null) {
// ctx.fillStyle = colors[obj.Type];
switch (obj.Type) {
case 1: // player city
var player = s.GetPlayer(obj.PlayerId);
var alliance = s.GetAlliance(player.Alliance);
if (alliance != null && this.visOptions.alliance == alliance.Id) {
ctx.fillStyle = this.visOptions.colors.highlightColor;
ctx.fillRect(cx * sc, cy * sc, sc, sc);
} else if (this.isEnemy(enemies, alliance, s)) {
// console.log("Enemy found" + obj);
ctx.fillStyle = this.visOptions.colors.enemyBaseColor;
ctx.fillRect(cx * sc, cy * sc, sc, sc);
} else {
//if (w.GetTerritoryTypeByCoordinates(cx,cy) == ClientLib.Data.ETerritoryType.Own) { ctx.fillStyle = "rgb(255,255,255)"; }
// ClientLib.Data.MainData.GetInstance$9().get_BaseColors$0().GetMapAllianceColorType$0(this.get_AllianceId$1()));
if (obj.PlayerId && s.GetPlayer(obj.PlayerId).Id == md.get_Player().id) {
ctx.fillStyle = this.visOptions.colors.ownBaseColor;
} else {
ctx.fillStyle = this.visOptions.colors.cityColor;
}
ctx.fillRect(cx * sc, cy * sc, sc, sc);
}
break;
case 2: // forgotten camp
ctx.fillStyle = this.visOptions.colors.baseColor;
ctx.fillRect(cx * sc, cy * sc, sc, sc);
break;
case 3: // Camp/Outpost
ctx.fillStyle = (obj.CampType == 2) ? this.visOptions.colors.campColor : this.visOptions.colors.outpostColor;
ctx.fillRect(cx * sc, cy * sc, sc, sc);
break;
case 4: // POI or tunnel
if (obj.POIType == 0) {
ctx.fillStyle = this.visOptions.colors.tunnelColor;
} else {
ctx.fillStyle = this.visOptions.colors.poiColor;
if (this.visOptions.poi &&
this.visOptions.poi == obj.POIType + 1) { // for some reasons, the constants in ClientLib are off by 1
hilitePois.push([cx,cy]);
}
}
ctx.fillRect(cx * sc, cy * sc, sc, sc);
break;
}
} else {
var terr = w.GetTerritoryTypeByCoordinates(cx, cy);
switch (terr) {
case ClientLib.Data.ETerritoryType.Alliance: {
ctx.fillStyle = this.visOptions.colors.allianceTerrainColor;
ctx.fillRect(cx * sc, cy * sc, sc, sc);
break;
}
case ClientLib.Data.ETerritoryType.Enemy: {
if (w.GetOwner(cx, cy) != 1610612736) {
ctx.fillStyle = "rgba(80,10,10,0.5)";
ctx.fillRect(cx * sc, cy * sc, sc, sc);
}
break;
}
case ClientLib.Data.ETerritoryType.Neutral: {
//ctx.fillStyle = "rgb(210,210,210)";
//ctx.fillRect(cx,cy,1,1);
break;
}
}
}
}
}
}
// paint home bases
var ownCities = md.get_Cities().get_AllCities().d;
for (var i in ownCities) {
var city = ownCities[i];
var x = city.get_PosX() * sc;
var y = city.get_PosY() * sc;
ctx.fillStyle = null;
ctx.strokeStyle = "rgba(255,255,255,0.7)";
ctx.beginPath();
ctx.arc(x+sc/2,y+sc/2,sc,0*Math.PI,2*Math.PI);
ctx.stroke();
ctx.beginPath();
ctx.strokeStyle = "rgba(255,255,255,0.3)";
ctx.arc(x+sc/2,y+sc/2,sc*20,0*Math.PI,2*Math.PI);
ctx.stroke();
}
ctx.strokeStyle = "rgb(255,255,255)";
// paint hilited pois
hilitePois.forEach(function(poi) {
ctx.strokeRect(poi[0] * sc - 2, poi[1] * sc - 2, sc+4, sc+4);
});
// m_Region == get_Region()
var topX = Math.floor(vm.get_Region().get_PosX() / vm.get_Region().get_GridWidth());
var topY = Math.floor(vm.get_Region().get_PosY() / vm.get_Region().get_GridHeight());
var width = vm.get_Region().get_ViewWidth() / vm.get_Region().get_ZoomFactor() / vm.get_Region().get_GridWidth();
var height = vm.get_Region().get_ViewHeight() / vm.get_Region().get_ZoomFactor() / vm.get_Region().get_GridHeight();
ctx.strokeStyle = "rgb(200,200,200)";
ctx.lineWidth = 1;
console.log("Selection:" + topX + "," + topY + "w:" + width + "," + height);
ctx.strokeRect(topX * sc, topY * sc, width * sc, height * sc);
if (topX * sc < this.scroll.getScrollX() || topX * sc > this.scroll.getScrollX() + this.scroll.getWidth()) {
this.scroll.scrollToX(Math.max(0, topX * sc - 100));
}
if (topY * sc < this.scroll.getScrollY() || topY * sc > this.scroll.getScrollY() + this.scroll.getHeight()) {
this.scroll.scrollToY(Math.max(0, topY * sc - 100));
}
},
getMousePos : function(canvas, evt) {
// get canvas position
var obj = canvas;
var top = 0;
var left = 0;
while (obj && obj.tagName != 'BODY') {
top += obj.offsetTop;
left += obj.offsetLeft;
obj = obj.offsetParent;
}
// return relative mouse position
var mouseX = evt.clientX - left + window.pageXOffset;
var mouseY = evt.clientY - top + window.pageYOffset;
return {
x : mouseX,
y : mouseY
};
},
saveOptions : function() {
if (localStorage) {
localStorage["TAMap.visOptions"] = JSON.stringify(this.visOptions);
}
},
showMap : function() {
console.log("Show map");
this.mapBox.open();
var debugOutput = "";
var mainData = ClientLib.Data.MainData.GetInstance();
var player_cities = mainData.get_Cities();
var current_city = player_cities.get_CurrentOwnCity();
//var sector = mainData.get_World().GetWorldSectorByCoords(current_city.get_PosX(), current_city.get_PosY());
//for (i in sector.m_Objects.d) {
// debugOutput += JSON.stringify(sector.m_Objects.d[i]) + "<br>";
//}
//console.log(debugOutput);
// this.mapWidget.setValue(debugOutput);
//var canvas = this.mapWidget.getDomElement();
//console.log("Canvas:" + canvas);
//var ctx = canvas.getContext('2d');
//console.log(ctx);
//ctx.fillStyle = "rgb(200,0,0)";
//ctx.fillRect (10, 10, 55, 50);
}
}
});
}
function TAMap_checkIfLoaded() {
try {
if ( typeof qx != 'undefined') {
var a = qx.core.Init.getApplication();
// application
var mb = qx.core.Init.getApplication().getMenuBar();
if (a && mb) {
createMapTweak();
window.TAMap.main.getInstance().initialize();
} else
window.setTimeout(TAMap_checkIfLoaded, 1000);
} else {
window.setTimeout(TAMap_checkIfLoaded, 1000);
}
} catch (e) {
if ( typeof console != 'undefined')
console.log(e);
else if (window.opera)
opera.postError(e);
else
GM_log(e);
}
}
if (/commandandconquer\.com/i.test(document.domain)) {
window.setTimeout(TAMap_checkIfLoaded, 1000);
}
}
// injecting, because there seem to be problems when creating game interface with unsafeWindow
var TAMapScript = document.createElement("script");
var txt = TAMap_mainFunction.toString();
TAMapScript.innerHTML = "(" + txt + ")();";
TAMapScript.type = "text/javascript";
if (/commandandconquer\.com/i.test(document.domain)) {
document.getElementsByTagName("head")[0].appendChild(TAMapScript);
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment