diff --git a/Changelog.txt b/Changelog.txt index bf3f268..e9215b3 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,4 +1,16 @@ Changelog: +Refactored v2.5.4 + +Update with bugfixes to work with recent versions. + +Changes: +- Mod now comes with its own copy of libcampaign, this should reduce the chances of future updates breaking scripts. +- Updated nexus.js and victory.js to match their modern base counterparts. +- Implemented the improved "Under Attack!" message system from Fractured Kingdom. +- Made propulsions use the new single-model system. +- Updated Super Cyborgs and Cyborg Mechanics to use their modern models. + + Refactored v2.5.3 Update with some minor tweaks. diff --git a/components/weapons/cy_rep.pie b/components/weapons/cy_rep.pie index 29e489a..1d68399 100644 --- a/components/weapons/cy_rep.pie +++ b/components/weapons/cy_rep.pie @@ -3,17 +3,15 @@ TYPE 200 TEXTURE 0 page-17-droid-weapons.png 0 0 LEVELS 1 LEVEL 1 -POINTS 29 - 0 7 -4 - -3 0 -9 - -3 8 -19 - 0 12 -15 - 3 0 -9 - 3 8 -19 - 0 1 -32 - 0 12 -24 +POINTS 27 + 0 13 -15 -3 8 -20 + -3 0 -8 + 0 7 -4 3 8 -20 + 3 0 -8 + 0 12 -24 + 0 1 -32 -3 13 -15 -3 18 -19 -3 13 -25 @@ -33,46 +31,47 @@ POINTS 29 4 -7 -4 4 7 -4 4 7 4 -POLYGONS 40 - 200 3 0 1 2 0.140625 0.730469 0.121094 0.730469 0.121094 0.707031 - 200 3 0 2 3 0.140625 0.730469 0.121094 0.707031 0.140625 0.707031 - 200 3 3 2 1 0.140625 0.707031 0.121094 0.707031 0.121094 0.730469 - 200 3 3 1 0 0.140625 0.707031 0.121094 0.730469 0.140625 0.730469 - 200 3 4 0 3 0.121094 0.730469 0.140625 0.730469 0.140625 0.707031 - 200 3 4 3 5 0.121094 0.730469 0.140625 0.707031 0.121094 0.707031 - 200 3 5 3 0 0.121094 0.707031 0.140625 0.707031 0.140625 0.730469 - 200 3 5 0 4 0.121094 0.707031 0.140625 0.730469 0.121094 0.730469 - 200 3 6 7 8 0.132812 0.707031 0.140625 0.730469 0.121094 0.730469 - 200 3 8 7 6 0.121094 0.730469 0.140625 0.730469 0.132812 0.707031 - 200 3 6 9 7 0.132812 0.707031 0.121094 0.730469 0.140625 0.730469 - 200 3 7 9 6 0.140625 0.730469 0.121094 0.730469 0.132812 0.707031 - 200 3 8 10 11 0.789062 0.914062 0.789062 0.875 0.75 0.875 - 200 3 8 11 12 0.789062 0.914062 0.75 0.875 0.75 0.914062 - 200 3 13 14 15 0.75 0.875 0.789062 0.875 0.789062 0.914062 - 200 3 13 15 16 0.75 0.875 0.789062 0.914062 0.75 0.914062 - 200 3 16 15 8 0.0078125 0.691406 0 0.691406 0 0.746094 - 200 3 16 8 12 0.0078125 0.691406 0 0.746094 0.0078125 0.746094 - 200 3 15 14 10 0 0.691406 0.015625 0.691406 0.015625 0.746094 - 200 3 15 10 8 0 0.691406 0.015625 0.746094 0 0.746094 - 200 3 14 13 11 0.015625 0.691406 0.0234375 0.691406 0.0234375 0.746094 - 200 3 14 11 10 0.015625 0.691406 0.0234375 0.746094 0.015625 0.746094 - 200 3 13 16 12 0.0234375 0.691406 0.0078125 0.691406 0.0078125 0.746094 - 200 3 13 12 11 0.0234375 0.691406 0.0078125 0.746094 0.0234375 0.746094 - 200 3 17 18 19 0.789062 0.894531 0.75 0.894531 0.761719 0.914062 - 200 3 17 19 20 0.789062 0.894531 0.761719 0.914062 0.777344 0.914062 - 200 3 17 21 22 0.789062 0.894531 0.777344 0.875 0.761719 0.875 - 200 3 17 22 18 0.789062 0.894531 0.761719 0.875 0.75 0.894531 - 200 3 23 24 25 0.75 0.894531 0.789062 0.894531 0.777344 0.914062 - 200 3 23 25 26 0.75 0.894531 0.777344 0.914062 0.761719 0.914062 - 200 3 24 23 27 0.789062 0.894531 0.75 0.894531 0.761719 0.875 - 200 3 24 27 28 0.789062 0.894531 0.761719 0.875 0.777344 0.875 - 200 3 24 28 21 0.0117188 0.691406 0.0234375 0.691406 0.0234375 0.746094 - 200 3 24 21 17 0.0117188 0.691406 0.0234375 0.746094 0.0117188 0.746094 - 200 3 27 23 18 0.0234375 0.691406 0.0117188 0.691406 0.0117188 0.746094 - 200 3 27 18 22 0.0234375 0.691406 0.0117188 0.746094 0.0234375 0.746094 - 200 3 23 26 19 0.0117188 0.691406 0 0.691406 0 0.746094 - 200 3 23 19 18 0.0117188 0.691406 0 0.746094 0.0117188 0.746094 - 200 3 25 24 17 0 0.691406 0.0117188 0.691406 0.0117188 0.746094 - 200 3 25 17 20 0 0.691406 0.0117188 0.746094 0 0.746094 +POLYGONS 41 + 200 3 0 1 2 0.140625 0.707031 0.121094 0.707031 0.121094 0.730469 + 200 3 0 2 3 0.140625 0.707031 0.121094 0.730469 0.140625 0.730469 + 200 3 4 0 3 0.121094 0.707031 0.140625 0.707031 0.140625 0.730469 + 200 3 4 3 5 0.121094 0.707031 0.140625 0.730469 0.121094 0.730469 + 200 3 1 6 7 0.121094 0.730469 0.140625 0.730469 0.132812 0.707031 + 200 3 6 4 7 0.140625 0.730469 0.121094 0.730469 0.132812 0.707031 + 200 3 1 8 9 0.787207 0.912207 0.787207 0.876855 0.751855 0.876855 + 200 3 1 9 10 0.787207 0.912207 0.751855 0.876855 0.751855 0.912207 + 200 3 11 12 13 0.751855 0.876855 0.787207 0.876855 0.787207 0.912207 + 200 3 11 13 14 0.751855 0.876855 0.787207 0.912207 0.751855 0.912207 + 200 3 14 13 1 0.00843039 0.691406 0.00185143 0.691406 0.00185143 0.746094 + 200 3 14 1 10 0.00843039 0.691406 0.00185143 0.746094 0.00843039 0.746094 + 200 3 13 12 8 0.00185143 0.691406 0.0150094 0.691406 0.0150094 0.746094 + 200 3 13 8 1 0.00185143 0.691406 0.0150094 0.746094 0.00185143 0.746094 + 200 3 12 11 9 0.0150094 0.691406 0.0215883 0.691406 0.0215883 0.746094 + 200 3 12 9 8 0.0150094 0.691406 0.0215883 0.746094 0.0150094 0.746094 + 200 3 11 14 10 0.0215883 0.691406 0.00843039 0.691406 0.00843039 0.746094 + 200 3 11 10 9 0.0215883 0.691406 0.00843039 0.746094 0.0215883 0.746094 + 200 3 15 16 17 0.787207 0.894531 0.751855 0.894531 0.762461 0.912207 + 200 3 15 17 18 0.787207 0.894531 0.762461 0.912207 0.776602 0.912207 + 200 3 15 19 20 0.787207 0.894531 0.776602 0.876855 0.762461 0.876855 + 200 3 15 20 16 0.787207 0.894531 0.762461 0.876855 0.751855 0.894531 + 200 3 21 22 23 0.751855 0.894531 0.787207 0.894531 0.776602 0.912207 + 200 3 21 23 24 0.751855 0.894531 0.776602 0.912207 0.762461 0.912207 + 200 3 22 21 25 0.787207 0.894531 0.751855 0.894531 0.762461 0.876855 + 200 3 22 25 26 0.787207 0.894531 0.762461 0.876855 0.776602 0.876855 + 200 3 22 26 19 0.0117199 0.691406 0.0215883 0.691406 0.0215883 0.746094 + 200 3 22 19 15 0.0117199 0.691406 0.0215883 0.746094 0.0117199 0.746094 + 200 3 25 21 16 0.0215883 0.691406 0.0117199 0.691406 0.0117199 0.746094 + 200 3 25 16 20 0.0215883 0.691406 0.0117199 0.746094 0.0215883 0.746094 + 200 3 21 24 17 0.0117199 0.691406 0.00185143 0.691406 0.00185143 0.746094 + 200 3 21 17 16 0.0117199 0.691406 0.00185143 0.746094 0.0117199 0.746094 + 200 3 23 22 15 0.00185143 0.691406 0.0117199 0.691406 0.0117199 0.746094 + 200 3 23 15 18 0.00185143 0.691406 0.0117199 0.746094 0.00185143 0.746094 + 200 3 26 20 19 0.0136755 0.691409 0.0216003 0.746076 0.0136755 0.746076 + 200 3 20 26 25 0.0216003 0.746076 0.0136755 0.691409 0.0216003 0.691409 + 200 3 24 18 17 0.00185012 0.691381 0.00964297 0.746082 0.00185012 0.746082 + 200 3 18 24 23 0.00964297 0.746082 0.00185012 0.691381 0.00964297 0.691381 + 200 3 4 2 1 0.172925 0.730518 0.153341 0.707211 0.153341 0.730518 + 200 3 2 4 5 0.153341 0.707211 0.172925 0.730518 0.172925 0.707211 + 200 3 1 7 4 0.121094 0.730469 0.132812 0.707031 0.121094 0.730469 CONNECTORS 1 0 -32 1 diff --git a/components/weapons/scbody.pie b/components/weapons/scbody.pie index 14a0561..f6882a1 100644 --- a/components/weapons/scbody.pie +++ b/components/weapons/scbody.pie @@ -1,41 +1,69 @@ -PIE 2 +PIE 3 TYPE 10200 -TEXTURE 0 page-14-droid-hubs.png 256 256 +TEXTURE 0 page-14-droid-hubs.png 0 0 LEVELS 1 LEVEL 1 -POINTS 14 - -16 24 -6 - -16 8 -14 +POINTS 22 + -3.7375 24 -9.6 + 3.7375 16.8 -14 + -3.7375 16.8 -14 + 3.7375 24 -9.6 + 8 -8 -14 + 3.7375 8 -14 16 8 -14 - 16 24 -6 + -3.7375 8 -14 + -16 8 -14 -8 -8 -14 - 8 -8 -14 - -16 24 10 + -16 24 -6 -16 8 10 + -16 24 10 -8 -8 2 - 16 24 10 16 8 10 + 16 24 10 8 -8 2 - -16 24 -14 - 16 24 -14 -POLYGONS 18 - 200 3 3 2 1 66 167 74 167 74 185 - 200 3 3 1 0 66 167 74 185 66 185 - 200 3 5 4 1 82 172 82 180 74 185 - 200 3 5 1 2 82 172 74 185 74 167 - 200 3 0 1 7 66 163 74 167 74 155 - 200 3 0 7 6 66 163 74 155 66 155 - 200 3 4 8 7 82 167 82 159 74 155 - 200 3 4 7 1 82 167 74 155 74 167 - 200 3 6 7 10 29 155 37 155 37 137 - 200 3 6 10 9 29 155 37 137 29 137 - 200 3 11 10 7 45 142 37 137 37 155 - 200 3 11 7 8 45 142 37 155 45 150 - 200 3 9 13 12 169 155 157 155 157 137 - 200 3 9 12 6 169 155 157 137 169 137 - 200 3 9 10 2 66 155 74 155 74 167 - 200 3 9 2 3 66 155 74 167 66 163 - 200 3 11 5 2 82 159 82 167 74 167 - 200 3 11 2 10 82 159 74 167 74 155 + 16 24 -6 + 7.5 24 -6 + -7.5 16.8 -9.6 + -7.5 24 -6 + 7.5 16.8 -9.6 +POLYGONS 38 + 200 3 0 1 2 0.260853 0.697759 0.274036 0.681651 0.274036 0.697759 + 200 3 1 0 3 0.274036 0.681651 0.260853 0.697759 0.260853 0.681651 + 200 3 4 5 6 0.319486 0.672466 0.292999 0.681651 0.292999 0.655001 + 200 3 4 7 5 0.319486 0.672466 0.292999 0.697759 0.292999 0.681651 + 200 3 4 8 7 0.319486 0.672466 0.292999 0.721657 0.292999 0.697759 + 200 3 4 9 8 0.319486 0.672466 0.319486 0.706944 0.292999 0.721657 + 200 3 10 11 12 0.260934 0.641361 0.292999 0.608524 0.260934 0.608524 + 200 3 11 10 8 0.292999 0.608524 0.260934 0.641361 0.292999 0.655001 + 200 3 9 11 8 0.319718 0.657411 0.292999 0.608524 0.292999 0.655001 + 200 3 11 9 13 0.292999 0.608524 0.319718 0.657411 0.319718 0.623655 + 200 3 12 14 15 0.116457 0.540332 0.147754 0.602638 0.116457 0.602638 + 200 3 14 12 11 0.147754 0.602638 0.116457 0.540332 0.147754 0.540332 + 200 3 16 11 13 0.179044 0.588024 0.147754 0.540332 0.179044 0.554407 + 200 3 11 16 14 0.147754 0.540332 0.179044 0.588024 0.147754 0.602638 + 200 3 15 17 18 0.661162 0.604587 0.629854 0.604587 0.629854 0.587237 + 200 3 15 6 17 0.260934 0.608524 0.292999 0.655001 0.260934 0.641361 + 200 3 6 15 14 0.292999 0.655001 0.260934 0.608524 0.292999 0.608524 + 200 3 16 6 14 0.319718 0.623655 0.292999 0.655001 0.292999 0.608524 + 200 3 6 16 4 0.292999 0.655001 0.319718 0.623655 0.319718 0.657411 + 200 3 10 19 8 0.260853 0.721657 0.274036 0.705866 0.292999 0.721657 + 200 3 19 10 20 0.274036 0.705866 0.260853 0.721657 0.260853 0.705866 + 200 3 6 18 17 0.292999 0.655001 0.260853 0.673543 0.260853 0.655001 + 200 3 18 6 21 0.260853 0.673543 0.292999 0.655001 0.274036 0.673543 + 200 3 20 2 19 0.260853 0.705866 0.274036 0.697759 0.274036 0.705866 + 200 3 2 20 0 0.274036 0.697759 0.260853 0.705866 0.260853 0.697759 + 200 3 5 1 21 0.292999 0.681651 0.274036 0.681651 0.274036 0.673543 + 200 3 7 1 5 0.292999 0.697759 0.274036 0.681651 0.292999 0.681651 + 200 3 1 7 2 0.274036 0.681651 0.292999 0.697759 0.274036 0.697759 + 200 3 19 2 7 0.274036 0.705866 0.274036 0.697759 0.292999 0.697759 + 200 3 18 1 3 0.260853 0.673543 0.274036 0.681651 0.260853 0.681651 + 200 3 1 18 21 0.274036 0.681651 0.260853 0.673543 0.274036 0.673543 + 200 3 5 21 6 0.292999 0.681651 0.274036 0.673543 0.292999 0.655001 + 200 3 19 7 8 0.274036 0.705866 0.292999 0.697759 0.292999 0.721657 + 200 3 0 18 3 0.616169 0.563804 0.629854 0.587237 0.616169 0.578775 + 200 3 18 0 20 0.629854 0.587237 0.616169 0.563804 0.629854 0.555622 + 200 3 12 20 10 0.661162 0.538057 0.629854 0.555622 0.629854 0.538057 + 200 3 15 20 12 0.661162 0.604587 0.629854 0.555622 0.661162 0.538057 + 200 3 20 15 18 0.629854 0.555622 0.661162 0.604587 0.629854 0.587237 CONNECTORS 1 - -18 -4 16 + -18 -2 14 diff --git a/script/campaign/libcampaign_includes/artifact.js b/script/campaign/libcampaign_includes/artifact.js new file mode 100644 index 0000000..e8519d7 --- /dev/null +++ b/script/campaign/libcampaign_includes/artifact.js @@ -0,0 +1,213 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Artifacts management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSetArtifacts(artifacts) +//;; +//;; Tell `libcampaign.js` to manage a certain set of artifacts. +//;; The argument is a JavaScript map from object labels to artifact description. +//;; If the label points to a game object, artifact will be placed when this object +//;; is destroyed; if the label is a position, the artifact will be placed instantly. +//;; Artifact description is a JavaScript object with the following fields: +//;; * `tech` The technology to grant when the artifact is recovered. +//;; Note that this can be made into an array to make artifacts give out +//;; more than one technology, if desired. +//;; On `let me win` cheat, all technologies stored in the artifacts +//;; managed by this function are automatically granted. +//;; Additionally, this function would call special event callbacks if they are defined +//;; in your script, which should be named as follows, where LABEL is the artifact label: +//;; * `camArtifactPickup_LABEL` Called when the player picks up the artifact. +//;; +//;; @param {Object} artifacts +//;; @returns {void} +//;; +function camSetArtifacts(artifacts) +{ + __camArtifacts = artifacts; + for (const alabel in __camArtifacts) + { + var ai = __camArtifacts[alabel]; + var pos = camMakePos(alabel); + if (camDef(pos.id)) + { + // will place when object with this id is destroyed + ai.id = "" + pos.id; + ai.placed = false; + } + else + { + // received position or area, place immediately + var acrate = addFeature("Crate", pos.x, pos.y); + addLabel(acrate, __camGetArtifactLabel(alabel)); + ai.placed = true; + } + } +} + +//;; ## camAllArtifactsPickedUp() +//;; +//;; Returns `true` if all artifacts managed by `libcampaign.js` were picked up. +//;; +//;; @returns {boolean} +//;; +function camAllArtifactsPickedUp() +{ + // FIXME: O(n) lookup here + return __camNumArtifacts === Object.keys(__camArtifacts).length; +} + +//;; ## camGetArtifacts() +//;; +//;; Returns the labels of all existing artifacts. +//;; +//;; @returns {Object[]} +//;; +function camGetArtifacts() +{ + var camArti = []; + for (const alabel in __camArtifacts) + { + var artifact = __camArtifacts[alabel]; + var libLabel = __camGetArtifactLabel(alabel); + //libcampaign managed artifact that was placed on the map. + if (artifact.placed && getObject(libLabel) !== null) + { + camArti.push(libLabel); + } + //Label for artifacts that will drop after an object gets destroyed. Or is manually managed. + //NOTE: Must check for ID since "alabel" could be a AREA/POSITION label. + var obj = getObject(alabel); + if (obj !== null && camDef(obj.id)) + { + camArti.push(alabel); + } + } + return camArti; +} + +//////////// privates + +function __camGetArtifactLabel(alabel) +{ + return alabel + "_artifact_label"; +} + +function __camGetArtifactKey(objlabel) +{ + return objlabel.replace("_artifact_label", ""); +} + +// called from eventDestroyed +function __camCheckPlaceArtifact(obj) +{ + // FIXME: O(n) lookup here + var alabel = getLabel(obj); + if (!camDef(alabel) || !alabel) + { + return; + } + var ai = __camArtifacts[alabel]; + if (!camDef(ai)) + { + return; + } + if (ai.placed) + { + camDebug("Object to which artifact", alabel, "is bound, has died twice"); + return; + } + if (ai.tech instanceof Array) + { + camTrace("Placing multi-tech granting artifact"); + for (let i = 0; i < ai.tech.length; ++i) + { + var techString = ai.tech[i]; + camTrace(i, ":", techString); + } + } + else + { + camTrace("Placing", ai.tech); + } + var acrate = addFeature("Crate", obj.x, obj.y); + addLabel(acrate, __camGetArtifactLabel(alabel)); + ai.placed = true; +} + +function __camPickupArtifact(artifact) +{ + if (artifact.stattype !== ARTIFACT) + { + camDebug("Not an artifact"); + return; + } + // FIXME: O(n) lookup here + var alabel = __camGetArtifactKey(getLabel(artifact)); + var ai = __camArtifacts[alabel]; + if (!camDef(alabel) || !alabel || !camDef(ai)) + { + camTrace("Artifact", artifact.id, "is not managed"); + return; + } + + camTrace("Picked up", ai.tech); + playSound("pcv352.ogg", artifact.x, artifact.y, artifact.z); + // artifacts are not self-removing... + camSafeRemoveObject(artifact); + if (ai.tech instanceof Array) + { + for (let i = 0; i < ai.tech.length; ++i) + { + var techString = ai.tech[i]; + enableResearch(techString); + } + } + else + { + enableResearch(ai.tech); + } + // bump counter before the callback, so that it was + // actual during the callback + ++__camNumArtifacts; + var callback = __camGlobalContext()["camArtifactPickup_" + alabel]; + if (camDef(callback)) + { + callback(); + } + + __camSetupConsoleForVictoryConditions(); +} + +function __camLetMeWinArtifacts() +{ + for (const alabel in __camArtifacts) + { + var ai = __camArtifacts[alabel]; + if (ai.placed) + { + var label = __camGetArtifactLabel(alabel); + var artifact = getObject(label); + if (!camDef(artifact) || !artifact) + { + continue; + } + __camPickupArtifact(artifact); + } + else + { + if (ai.tech instanceof Array) + { + for (let i = 0; i < ai.tech.length; ++i) + { + var techString = ai.tech[i]; + enableResearch(techString); + } + } + else + { + enableResearch(ai.tech); + } + } + } +} diff --git a/script/campaign/libcampaign_includes/base.js b/script/campaign/libcampaign_includes/base.js new file mode 100644 index 0000000..2a59a51 --- /dev/null +++ b/script/campaign/libcampaign_includes/base.js @@ -0,0 +1,347 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Enemy base management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSetEnemyBases([bases]) +//;; +//;; Tell `libcampaign.js` to manage a certain set of enemy bases. +//;; Management assumes auto-cleanup of leftovers on destruction, and also +//;; counting how many bases have been successfully destroyed by the player. +//;; The argument is a JavaScript map from group labels to base descriptions. +//;; Each label points to a group of vital base structures. If no group label +//;; with this name is defined, a group is created automatically +//;; based on `cleanup` area and labeled. Base description +//;; is a JavaScript object with the following optional fields: +//;; * `cleanup` An area label to clean up features in once base is destroyed. +//;; If base id is not a group label, this field is required in order to auto-create +//;; the group of stuff in the area which doesn't qualify as a valid leftover. +//;; * `detectMsg` A `PROX_MSG` message id to play when the base is detected. +//;; * `detectSnd` A sound file to play when the base is detected. +//;; * `eliminateSnd` A sound file to play when the base is eliminated. +//;; The sound is played in the center of the cleanup area, which needs to be defined. +//;; * `player` If base is detected by cleanup area, only objects matching +//;; this player filter would be added to the base group or cleaned up. +//;; Note that this most likely disables feature cleanup. +//;; Additionally, this function would call special event callbacks if they are defined in your script, +//;; which should be named as follows, where LABEL is the label of the base group: +//;; * `camEnemyBaseDetected_LABEL` Called when the player sees an object from the enemy base group for the first time. +//;; * `camEnemyBaseEliminated_LABEL` Called when the base is eliminated, right after leftovers were cleaned up. +//;; +//;; @param {Object} [bases] +//;; @returns {void} +//;; +function camSetEnemyBases(bases) +{ + var reload = !camDef(bases); + if (!reload) + { + __camEnemyBases = bases; + __camNumEnemyBases = 0; + } + // convert label strings to groups and store + for (const baseLabel in __camEnemyBases) + { + var bi = __camEnemyBases[baseLabel]; + var obj = getObject(baseLabel); + if (camDef(obj) && obj) // group already defined + { + if (!camDef(bi.group)) + { + bi.group = obj.id; + } + else + { + var structures = enumGroup(bi.group); + addLabel({ type: GROUP, id: bi.group }, baseLabel); + for (let idx = 0, len = structures.length; idx < len; ++idx) + { + var s = structures[idx]; + if (s.type !== STRUCTURE || __camIsValidLeftover(s)) + { + continue; + } + if (!camDef(bi.player) || camPlayerMatchesFilter(s.player, bi.player)) + { + //camTrace("Auto-adding", s.id, "to base", baseLabel); + groupAdd(bi.group, s); + } + } + } + if (!camDef(bi.cleanup)) // auto-detect cleanup area + { + var objs = enumGroup(bi.group); + if (objs.length > 0) + { + const OFFSET = 2; // increases size of the auto-detected base area a bit + var a = { + type: AREA, + x: mapWidth, y: mapHeight, + x2: 0, y2: 0 + }; + // smallest rectangle to contain all objects + for (let idx = 0, len = objs.length; idx < len; ++idx) + { + var o = objs[idx]; + if (o.x < a.x) a.x = o.x; + if (o.y < a.y) a.y = o.y; + if (o.x > a.x2) a.x2 = o.x; + if (o.y > a.y2) a.y2 = o.y; + } + a.x -= OFFSET; a.y -= OFFSET; a.x2 += OFFSET; a.y2 += OFFSET; + camTrace("Auto-detected cleanup area for", baseLabel, ":", a.x, a.y, a.x2, a.y2); + bi.cleanup = "__cam_enemy_base_cleanup__" + baseLabel; + addLabel(a, bi.cleanup); + } + } + } + else // define a group automatically + { + if (!camDef(bi.cleanup)) + { + camDebug("Neither group nor cleanup area found for", baseLabel); + continue; + } + bi.group = camNewGroup(); + addLabel({ type: GROUP, id: bi.group }, baseLabel); + var structs = enumArea(bi.cleanup, ENEMIES, false); + for (let idx = 0, len = structs.length; idx < len; ++idx) + { + var s = structs[idx]; + if (s.type !== STRUCTURE || __camIsValidLeftover(s)) + { + continue; + } + if (!camDef(bi.player) || camPlayerMatchesFilter(s.player, bi.player)) + { + //camTrace("Auto-adding", s.id, "to base", baseLabel); + groupAdd(bi.group, s); + } + } + } + if (groupSize(bi.group) === 0) + { + //camDebug("Base", baseLabel, "defined as empty group"); + } + if (!reload) + { + bi.detected = false; + bi.eliminated = false; + } + //camTrace("Resetting label", baseLabel); + resetLabel(baseLabel, CAM_HUMAN_PLAYER); // subscribe for eventGroupSeen + } +} + +//;; ## camDetectEnemyBase(baseLabel) +//;; +//;; Plays the "enemy base detected" message and places a beacon for the enemy base +//;; defined by the label, as if the base was actually found by the player. +//;; +//;; @param {string} baseLabel +//;; @returns {void} +//;; +function camDetectEnemyBase(baseLabel) +{ + var bi = __camEnemyBases[baseLabel]; + if (bi.detected || bi.eliminated) + { + return; + } + camTrace("Enemy base", baseLabel, "detected"); + bi.detected = true; + if (camDef(bi.detectSnd)) + { + var pos = camMakePos(bi.cleanup); + if (!camDef(pos)) // auto-detect sound position by group object pos + { + var objs = enumGroup(bi.group); + if (objs.length > 0) + { + var firstObject = objs[0]; + pos = camMakePos(firstObject); + } + } + if (camDef(pos)) + { + playSound(bi.detectSnd, pos.x, pos.y, 0); + } + } + if (camDef(bi.detectMsg)) + { + hackAddMessage(bi.detectMsg, PROX_MSG, CAM_HUMAN_PLAYER, false); + } + var callback = __camGlobalContext()["camEnemyBaseDetected_" + baseLabel]; + if (camDef(callback)) + { + callback(); + } +} + +//;; ## camAllEnemyBasesEliminated() +//;; +//;; Returns `true` if all enemy bases managed by `libcampaign.js` are destroyed. +//;; +//;; @returns {boolean} +//;; +function camAllEnemyBasesEliminated() +{ + // FIXME: O(n) lookup here + return __camNumEnemyBases === Object.keys(__camEnemyBases).length; +} + +//////////// privates + +function __camCheckBaseSeen(seen) +{ + var group = seen; // group? + if (camDef(seen.group)) // object? + { + group = seen.group; + } + if (!camDef(group) || !group) + { + return; + } + // FIXME: O(n) lookup here + for (const baseLabel in __camEnemyBases) + { + var bi = __camEnemyBases[baseLabel]; + if (bi.group !== group) + { + continue; + } + camDetectEnemyBase(baseLabel); + } +} + +function __camIsValidLeftover(obj) +{ + if (camPlayerMatchesFilter(obj.player, ENEMIES)) + { + if (obj.type === STRUCTURE && obj.stattype === WALL) + { + return true; + } + } + if (obj.type === FEATURE) + { + if (obj.stattype === BUILDING) + { + return true; + } + } + return false; +} + +function __camShouldDestroyLeftover(objInfo, basePlayer) +{ + var object = getObject(objInfo.type, objInfo.player, objInfo.id); + if (object === null) + { + return false; + } + return (objInfo.type === STRUCTURE && + object.status === BUILT && + __camIsValidLeftover(object) && + (!camDef(basePlayer) || + (camDef(basePlayer) && camPlayerMatchesFilter(objInfo.player, basePlayer)))); +} + +function __camCheckBaseEliminated(group) +{ + // FIXME: O(n) lookup here + for (const baseLabel in __camEnemyBases) + { + var bi = __camEnemyBases[baseLabel]; + var leftovers = []; + if (bi.eliminated || (bi.group !== group)) + { + continue; + } + if (enumGroup(bi.group).length > 0) + { + return; //still has something in the base group + } + if (camDef(bi.cleanup)) + { + var objects = enumArea(bi.cleanup, ENEMIES, false); + for (let i = 0, len = objects.length; i < len; ++i) + { + var object = objects[i]; + var objInfo = { + type: object.type, + player: object.player, + id: object.id + }; + if (__camShouldDestroyLeftover(objInfo, bi.player)) + { + leftovers.push(object); + } + } + for (let i = 0, len = leftovers.length; i < len; ++i) + { + // remove with special effect + var leftover = leftovers[i]; + camSafeRemoveObject(leftover, true); + } + if (camDef(bi.eliminateSnd)) + { + // play sound + var pos = camMakePos(bi.cleanup); + playSound(bi.eliminateSnd, pos.x, pos.y, 0); + } + } + else + { + camDebug("All bases must have a cleanup area : " + baseLabel); + continue; + } + if (camDef(bi.detectMsg) && bi.detected) // remove the beacon + { + hackRemoveMessage(bi.detectMsg, PROX_MSG, CAM_HUMAN_PLAYER); + } + camTrace("Enemy base", baseLabel, "eliminated"); + bi.eliminated = true; + // bump counter before the callback, so that it was + // actual during the callback + ++__camNumEnemyBases; + var callback = __camGlobalContext()["camEnemyBaseEliminated_" + baseLabel]; + if (camDef(callback)) + { + callback(); + } + + __camSetupConsoleForVictoryConditions(); + } +} + +function __camBasesTick() +{ + for (const baseLabel in __camEnemyBases) + { + var bi = __camEnemyBases[baseLabel]; + if (bi.eliminated || !camDef(bi.reinforce_kind)) + { + continue; + } + if (gameTime - bi.reinforce_last < bi.reinforce_interval) + { + continue; + } + if (!camDef(bi.player)) + { + camDebug("Enemy base player needs to be set for", baseLabel); + return; + } + if (!camDef(bi.cleanup)) + { + camDebug("Enemy base cleanup area needs to be set for", baseLabel); + return; + } + bi.reinforce_last = gameTime; + var list = profile(bi.reinforce_callback); + var pos = camMakePos(bi.cleanup); + camSendReinforcement(bi.player, pos, list, bi.reinforce_kind, bi.reinforce_data); + } +} diff --git a/script/campaign/libcampaign_includes/debug.js b/script/campaign/libcampaign_includes/debug.js new file mode 100644 index 0000000..9ffd4ec --- /dev/null +++ b/script/campaign/libcampaign_includes/debug.js @@ -0,0 +1,185 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Debugging helpers. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camMarkTiles(label|labels) +//;; +//;; Mark area on the map by label(s), but only if debug mode is enabled. +//;; Otherwise, remember what to mark in case it is going to be. +//;; +//;; @param {string|string[]} label +//;; @returns {void} +//;; +function camMarkTiles(label) +{ + if (camIsString(label)) + { + __camMarkedTiles[label] = true; + } + else + { + for (let i = 0, l = label.length; i < l; ++i) + { + __camMarkedTiles[label[i]] = true; + } + } + // apply instantly + __camUpdateMarkedTiles(); +} + +//;; ## camUnmarkTiles(label|labels) +//;; +//;; No longer mark area(s) with given label(s) in debug mode. +//;; +//;; @param {string|string[]} label +//;; @returns {void} +//;; +function camUnmarkTiles(label) +{ + if (camIsString(label)) + { + delete __camMarkedTiles[label]; + } + else + { + for (let i = 0, l = label.length; i < l; ++i) + { + delete __camMarkedTiles[label[i]]; + } + } + // apply instantly + __camUpdateMarkedTiles(); +} + +//;; ## camDebug(...args) +//;; +//;; Pretty debug prints - a wrapper around `debug()`. +//;; Prints a function call stack and the argument message, prefixed with `DEBUG`. +//;; Only use this function to indicate actual bugs in the scenario script, +//;; because game shouldn't print things when nothing is broken. +//;; If you want to keep some prints around to make debugging easier +//;; without distracting the user, use `camTrace()`. +//;; +//;; @param {...string} args +//;; @returns {void} +//;; +function camDebug(...args) +{ + __camGenericDebug("DEBUG", debugGetCallerFuncName(), args, true, __camBacktrace()); +} + +//;; ## camDebugOnce(...args) +//;; +//;; Same as `camDebug()`, but prints each message only once during script lifetime. +//;; +//;; @param {...string} args +//;; @returns {void} +//;; +function camDebugOnce(...args) +{ + var str = debugGetCallerFuncName() + ": " + args.join(" "); + if (camDef(__camDebuggedOnce[str])) + { + return; + } + __camDebuggedOnce[str] = true; + __camGenericDebug("DEBUG", debugGetCallerFuncName(), args, true, __camBacktrace()); +} + +//;; ## camTrace(...args) +//;; +//;; Same as `camDebug()`, but only warns in cheat mode. +//;; Prefixed with `TRACE`. It's safe and natural to keep `camTrace()` calls in your code for easier debugging. +//;; +//;; @param {...string} args +//;; @returns {void} +//;; +function camTrace(...args) +{ + if (!camIsCheating()) + { + return; + } + __camGenericDebug("TRACE", debugGetCallerFuncName(), args); +} + +//;; ## camTraceOnce(...args) +//;; +//;; Same as `camTrace()`, but prints each message only once during script lifetime. +//;; +//;; @param {...string} args +//;; @returns {void} +//;; +function camTraceOnce(...args) +{ + if (!camIsCheating()) + { + return; + } + var str = debugGetCallerFuncName() + ": " + args.join(" "); + if (camDef(__camTracedOnce[str])) + { + return; + } + __camTracedOnce[str] = true; + __camGenericDebug("TRACE", debugGetCallerFuncName(), args); +} + +//;; ## camIsCheating() +//;; +//;; Check if the player is in cheat mode. +//;; +//;; @returns {boolean} +//;; +function camIsCheating() +{ + return __camCheatMode; +} + +//////////// privates + +function __camUpdateMarkedTiles() +{ + hackMarkTiles(); + if (camIsCheating() && camDef(__camMarkedTiles)) + { + for (const label in __camMarkedTiles) + { + hackMarkTiles(label); + } + } +} + +function __camLetMeWin() +{ + __camLetMeWinArtifacts(); + hackMarkTiles(); // clear marked tiles, as they may actually remain + __camGameWon(); +} + +function __camGenericDebug(flag, functionName, args, err, backtrace) +{ + if (camDef(backtrace) && backtrace) + { + for (let i = backtrace.length - 1; i >= 0; --i) + { + debug("STACK: from", [backtrace[i]]); + } + } + if (!functionName) + { + functionName = ""; + } + var str = flag + ": " + functionName + ": " + Array.prototype.join.call(args, " "); + debug(str); + if (camDef(err) && err) + { + dump(str); + } +} + +function __camBacktrace() +{ + return debugGetBacktrace(); +} diff --git a/script/campaign/libcampaign_includes/events.js b/script/campaign/libcampaign_includes/events.js new file mode 100644 index 0000000..8729a5a --- /dev/null +++ b/script/campaign/libcampaign_includes/events.js @@ -0,0 +1,385 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Campaign library events. +//////////////////////////////////////////////////////////////////////////////// + +function cam_eventPickup(feature, droid) +{ + if (feature.stattype === ARTIFACT) + { + __camPickupArtifact(feature); + } +} + +function cam_eventGroupLoss(obj, group, newsize) +{ + if (__camSaveLoading === true) + { + return; + } + if (newsize === 0) + { + __camCheckBaseEliminated(group); + } + if (camDef(__camGroupInfo[group])) + { + profile("__camCheckGroupMorale", group); + } +} + +function cam_eventCheatMode(entered) +{ + if (entered) + { + __camCheatMode = true; + camTrace("Cheats enabled!"); + } + else + { + camTrace("Cheats disabled!"); + __camCheatMode = false; + } + __camUpdateMarkedTiles(); +} + +function cam_eventChat(from, to, message) +{ + if (message === "win info") + { + __camShowVictoryConditions(); + } + if (!camIsCheating()) + { + return; + } + camTrace(from, to, message); + if (message === "let me win" && __camNextLevel !== "SUB_1_1") + { + __camLetMeWin(); + } + if (message === "make cc") + { + setMiniMap(true); + setDesign(true); + } + if (message.lastIndexOf("ascend ", 0) === 0) + { + __camNextLevel = message.substring(7).toUpperCase().replace(/-/g, "_"); + __camLetMeWin(); + } + if (message === "deity") + { + for (const baseLabel in __camEnemyBases) + { + camDetectEnemyBase(baseLabel); + } + } + if (message === "research available") + { + while (true) // eslint-disable-line no-constant-condition + { + var research = enumResearch(); + if (research.length === 0) + { + break; + } + for (let i = 0, len = research.length; i < len; ++i) + { + var researchName = research[i].name; + completeResearch(researchName, CAM_HUMAN_PLAYER); + } + } + } +} + +function cam_eventStartLevel() +{ + receiveAllEvents(true); + // Variables initialized here are the ones that should not be + // re-initialized on save-load. Otherwise, they are initialized + // on the global scope (or wherever necessary). + __camGroupInfo = {}; + __camFactoryInfo = {}; + __camFactoryQueue = {}; + __camTruckInfo = {}; + __camNeedBonusTime = false; + __camDefeatOnTimeout = false; + __camRTLZTicker = 0; + __camLZCompromisedTicker = 0; + __camLastAttackTriggered = false; + __camLevelEnded = false; + __camPlayerTransports = {}; + __camIncomingTransports = {}; + __camTransporterQueue = []; + __camNumArtifacts = 0; + __camArtifacts = {}; + __camNumEnemyBases = 0; + __camEnemyBases = {}; + __camVtolDataSystem = []; + __camLastNexusAttack = 0; + __camNexusActivated = false; + __camNewGroupCounter = 0; + __camVideoSequences = []; + __camSaveLoading = false; + __camNeverGroupDroids = []; + __camNumTransporterExits = 0; + __camAllowVictoryMsgClear = true; + camSetPropulsionTypeLimit(); //disable the propulsion changer by default + __camAiPowerReset(); //grant power to the AI + setTimer("__camSpawnVtols", camSecondsToMilliseconds(0.5)); + setTimer("__camRetreatVtols", camSecondsToMilliseconds(0.9)); + setTimer("__checkVtolSpawnObject", camSecondsToMilliseconds(5)); + setTimer("__checkEnemyFactoryProductionTick", camSecondsToMilliseconds(0.8)); + setTimer("__camTick", camSecondsToMilliseconds(1)); // campaign pollers + setTimer("__camTruckTick", camSecondsToMilliseconds(10) + camSecondsToMilliseconds(0.1)); // some slower campaign pollers + setTimer("__camAiPowerReset", camMinutesToMilliseconds(3)); //reset AI power every so often + setTimer("__camShowVictoryConditions", camMinutesToMilliseconds(5)); + setTimer("__camTacticsTick", camSecondsToMilliseconds(0.1)); + queue("__camShowBetaHintEarly", camSecondsToMilliseconds(4)); + queue("__camGrantSpecialResearch", camSecondsToMilliseconds(6)); +} + +function cam_eventDroidBuilt(droid, structure) +{ + if (!camDef(structure)) // "clone wars" cheat + { + return; + } + if (!camPlayerMatchesFilter(structure.player, ENEMIES)) + { + return; + } + if (!camPlayerMatchesFilter(droid.player, ENEMIES)) + { + return; + } + if (!camDef(__camFactoryInfo)) + { + return; + } + __camAddDroidToFactoryGroup(droid, structure); +} + +function cam_eventDestroyed(obj) +{ + __camCheckPlaceArtifact(obj); + if (obj.type === DROID) + { + if (obj.droidType === DROID_CONSTRUCT) + { + __camCheckDeadTruck(obj); + } + else if (camIsTransporter(obj)) + { + __camRemoveIncomingTransporter(obj.player); + if (obj.player === CAM_HUMAN_PLAYER) + { + // Player will lose if their transporter gets destroyed + __camGameLost(); + return; + } + if (camDef(__camPlayerTransports[obj.player])) + { + delete __camPlayerTransports[obj.player]; + } + } + } +} + +function cam_eventObjectSeen(viewer, seen) +{ + __camCheckBaseSeen(seen); +} + +function cam_eventGroupSeen(viewer, group) +{ + __camCheckBaseSeen(group); +} + +function cam_eventTransporterExit(transport) +{ + camTrace("Transporter for player", transport.player + " has exited"); + + if (transport.player === CAM_HUMAN_PLAYER) + { + __camNumTransporterExits += 1; + + //Audio cue to let the player know they can bring in reinforcements. This + //assumes the player can bring in reinforcements immediately after the first + //transporter leaves the map. Mission scripts can handle special situations. + if (__camNumTransporterExits === 1 && + ((__camWinLossCallback === CAM_VICTORY_OFFWORLD && + __camVictoryData.reinforcements > -1) || + __camWinLossCallback === CAM_VICTORY_STANDARD)) + { + const REINFORCEMENTS_AVAILABLE_SOUND = "pcv440.ogg"; + playSound(REINFORCEMENTS_AVAILABLE_SOUND); + } + } + + if (transport.player !== CAM_HUMAN_PLAYER || + (__camWinLossCallback === CAM_VICTORY_STANDARD && + transport.player === CAM_HUMAN_PLAYER)) + { + __camRemoveIncomingTransporter(transport.player); + } + else if (__camWinLossCallback === CAM_VICTORY_PRE_OFFWORLD) + { + camTrace("Transporter is away."); + __camGameWon(); + } +} + +function cam_eventTransporterLanded(transport) +{ + if (transport.player !== CAM_HUMAN_PLAYER) + { + __camLandTransporter(transport.player, camMakePos(transport)); + } +} + +function cam_eventMissionTimeout() +{ + if (__camDefeatOnTimeout) + { + camTrace("0 minutes remaining."); + __camGameLost(); + } + else + { + var won = camCheckExtraObjective(); + if (!won) + { + __camGameLost(); + return; + } + __camGameWon(); + } +} + +function cam_eventAttacked(victim, attacker) +{ + if (camDef(victim) && victim && victim.type === DROID) + { + if (victim.player !== CAM_HUMAN_PLAYER && !allianceExistsBetween(CAM_HUMAN_PLAYER, victim.player)) + { + //Try dynamically creating a group of nearby droids not part + //of a group. Only supports those who can hit ground units. + if (victim.group === null) + { + const DEFAULT_RADIUS = 6; + var loc = {x: victim.x, y: victim.y}; + var droids = enumRange(loc.x, loc.y, DEFAULT_RADIUS, victim.player, false).filter((obj) => ( + obj.type === DROID && + obj.group === null && + (obj.canHitGround || obj.isSensor) && + obj.droidType !== DROID_CONSTRUCT && + !camIsTransporter(obj) && + !camInNeverGroup(obj) + )); + if (droids.length === 0) + { + return; + } + camManageGroup(camMakeGroup(droids), CAM_ORDER_ATTACK, { + count: -1, + regroup: false, + repair: 70 + }); + } + + if (camDef(__camGroupInfo[victim.group])) + { + __camGroupInfo[victim.group].lastHit = gameTime; + + //Increased Nexus intelligence if struck on cam3-4 + if (__camNextLevel === CAM_GAMMA_OUT) + { + if (__camGroupInfo[victim.group].order === CAM_ORDER_PATROL) + { + __camGroupInfo[victim.group].order = CAM_ORDER_ATTACK; + } + } + } + } + } +} + +//Work around some things that break on save-load. +function cam_eventGameLoaded() +{ + receiveAllEvents(true); + __camSaveLoading = true; + const SCAV_KEVLAR_MISSIONS = [ + "CAM_1CA", "SUB_1_4AS", "SUB_1_4A", "SUB_1_5S", "SUB_1_5", + "CAM_1A-C", "SUB_1_7S", "SUB_1_7", "SUB_1_DS", "CAM_1END", "SUB_2_5S" + ]; + + //Need to set the scavenger kevlar vests when loading a save from later Alpha + //missions or else it reverts to the original texture. + for (let i = 0, l = SCAV_KEVLAR_MISSIONS.length; i < l; ++i) + { + var mission = SCAV_KEVLAR_MISSIONS[i]; + if (__camNextLevel === mission) + { + if (tilesetType === "ARIZONA") + { + replaceTexture("page-7-barbarians-arizona.png", + "page-7-barbarians-kevlar.png"); + } + else if (tilesetType === "URBAN") + { + replaceTexture("page-7-barbarians-arizona.png", + "page-7-barbarians-urban.png"); + } + break; + } + } + + //Subscribe to eventGroupSeen again. + camSetEnemyBases(); + + //Reset any vars + __camCheatMode = false; + + __camSaveLoading = false; +} + +//Plays Nexus sounds if nexusActivated is true. +function cam_eventObjectTransfer(obj, from) +{ + if (from === CAM_HUMAN_PLAYER && obj.player === NEXUS && __camNexusActivated === true) + { + var snd; + if (obj.type === STRUCTURE) + { + if (obj.stattype === DEFENSE) + { + snd = DEFENSE_ABSORBED; + } + else if (obj.stattype === RESEARCH_LAB) + { + snd = RES_ABSORBED; + } + else + { + snd = STRUCTURE_ABSORBED; + } + } + else if (obj.type === DROID) + { + snd = UNIT_ABSORBED; + } + + if (camDef(snd)) + { + playSound(snd); + } + queue("camNexusLaugh", camSecondsToMilliseconds(1.5)); + } +} + +function cam_eventVideoDone() +{ + __camEnqueueVideos(); //Play any remaining videos automatically. +} diff --git a/script/campaign/libcampaign_includes/group.js b/script/campaign/libcampaign_includes/group.js new file mode 100644 index 0000000..b4c9367 --- /dev/null +++ b/script/campaign/libcampaign_includes/group.js @@ -0,0 +1,117 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Group functionality +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camNewGroup() +//;; +//;; A saveload safe version of `newGroup()` so as not to create group ID clashes. +//;; +//;; @returns {number} +//;; +function camNewGroup() +{ + if (!camDef(__camNewGroupCounter)) + { + __camNewGroupCounter = 0; + } + ++__camNewGroupCounter; + return __camNewGroupCounter; +} + +//;; ## camInNeverGroup(droid) +//;; +//;; Check if this droid is forced to never group. +//;; +//;; @param {Object} droid +//;; @returns {boolean} +//;; +function camInNeverGroup(droid) +{ + if (droid.type !== DROID) + { + camDebug("Non-droid in camInNeverGroup."); + return false; + } + for (let i = 0, l = __camNeverGroupDroids.length; i < l; ++i) + { + var neverDroidID = __camNeverGroupDroids[i]; + if (droid.id === neverDroidID) + { + return true; + } + } + + return false; +} + +//;; ## camNeverGroupDroid(what[, playerFilter]) +//;; +//;; A means to not auto group some droids. +//;; +//;; @param {string|Object|Object[]} what +//;; @param {number} [playerFilter] +//;; @returns {void} +//;; +function camNeverGroupDroid(what, playerFilter) +{ + if (!camDef(playerFilter)) + { + playerFilter = ENEMIES; + } + var array; + var obj; + if (camIsString(what)) // label + { + obj = getObject(what); + } + else if (camDef(what.length)) // array + { + array = what; + } + else if (camDef(what.type)) // object + { + obj = what; + } + if (camDef(obj)) + { + switch (obj.type) { + case POSITION: + obj = getObject(obj.x, obj.y); + // fall-through + case DROID: + case STRUCTURE: + case FEATURE: + array = [ obj ]; + break; + case AREA: + array = enumArea(obj.x, obj.y, obj.x2, obj.y2, ALL_PLAYERS, false); + break; + case RADIUS: + array = enumRange(obj.x, obj.y, obj.radius, ALL_PLAYERS, false); + break; + case GROUP: + array = enumGroup(obj.id); + break; + default: + camDebug("Unknown object type", obj.type); + } + } + if (camDef(array)) + { + for (let i = 0, l = array.length; i < l; ++i) + { + var o = array[i]; + if (!camDef(o) || !o) + { + continue; + } + if (o.type === DROID && camPlayerMatchesFilter(o.player, playerFilter)) + { + __camNeverGroupDroids.push(o.id); + } + } + return; + } + camDebug("Cannot parse", what); +} diff --git a/script/campaign/libcampaign_includes/hook.js b/script/campaign/libcampaign_includes/hook.js new file mode 100644 index 0000000..595be36 --- /dev/null +++ b/script/campaign/libcampaign_includes/hook.js @@ -0,0 +1,61 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Event hooks magic. This makes all the library catch all the necessary events +// without distracting the script authors from handling them on their own. +// It assumes that script authors do not implement another similar mechanism, +// or something BAD would happen. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camAreaEvent(label, callback(droid)) +//;; +//;; Implement `eventArea${label}()` in a debugging-friendly way. +//;; The function marks the area until the event is triggered, +//;; and traces entering the area in the TRACE log. +//;; +//;; @param {string} label +//;; @param {Function} callback +//;; @returns {void} +//;; +function camAreaEvent(label, callback) +{ + var eventName = "eventArea" + label; + camMarkTiles(label); + __camPreHookEvent(eventName, function(droid) + { + if (camDef(droid)) + { + camTrace("Player", droid.player, "enters", label); + } + camUnmarkTiles(label); + callback(droid); + }); +} + +//////////// privates + +function __camPreHookEvent(eventname, hookcode) +{ + // store the original event handler + if (camDef(__camGlobalContext()[eventname])) + { + __camOriginalEvents[eventname] = __camGlobalContext()[eventname]; + } + + __camGlobalContext()[eventname] = function() + { + // Don't trigger hooks after level end. + // No, this should't say "if (__camLevelEnded) return;". + // Because we are not hooking all possible events, + // and we are not documenting which exactly events are hooked. + // We should not intervene with level events in unobvious ways. + if (!__camLevelEnded) + { + hookcode.apply(__camGlobalContext(), arguments); + } + // otherwise, call the original event if any + if (camDef(__camOriginalEvents[eventname])) + { + __camOriginalEvents[eventname].apply(__camGlobalContext(), arguments); + } + }; +} diff --git a/script/campaign/libcampaign_includes/misc.js b/script/campaign/libcampaign_includes/misc.js new file mode 100644 index 0000000..6650a2a --- /dev/null +++ b/script/campaign/libcampaign_includes/misc.js @@ -0,0 +1,616 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Misc useful stuff. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camDef(something) +//;; +//;; Returns `false` if something is JavaScript-undefined, `true` otherwise. +//;; +//;; @param {*} something +//;; @returns {boolean} +//;; +function camDef(something) +{ + return typeof something !== "undefined"; +} + +//;; ## camIsString(something) +//;; +//;; Returns `true` if something is a string, `false` otherwise. +//;; +//;; @param {*} something +//;; @returns {boolean} +//;; +function camIsString(something) +{ + return typeof something === "string"; +} + +//;; ## camRand(max) +//;; +//;; A non-synchronous random integer in range [0, max - 1]. +//;; +//;; @param {number} max +//;; @returns {number} +//;; +function camRand(max) +{ + if (max > 0) + { + return Math.floor(Math.random() * max); + } + camDebug("Max should be positive"); +} + +//;; ## camCallOnce(functionName) +//;; +//;; Call a function by name, but only if it has not been called yet. +//;; +//;; @param {string} functionName +//;; @returns {void} +//;; +function camCallOnce(functionName) +{ + if (camDef(__camCalledOnce[functionName]) && __camCalledOnce[functionName]) + { + return; + } + __camCalledOnce[functionName] = true; + __camGlobalContext()[functionName](); +} + +//;; ## camSafeRemoveObject(obj[, specialEffects]) +//;; +//;; Remove a game object (by value or label) if it exists, do nothing otherwise. +//;; +//;; @param {string|Object} obj +//;; @param {boolean} [specialEffects] +//;; @returns {void} +//;; +function camSafeRemoveObject(obj, specialEffects) +{ + if (__camLevelEnded) + { + return; + } + if (camIsString(obj)) + { + obj = getObject(obj); + } + if (camDef(obj) && obj) + { + removeObject(obj, specialEffects); + } +} + +//;; ## camMakePos(label|object|x[, y]) +//;; +//;; Make a `POSITION`-like object, unless already done. +//;; Often useful for making functions that would accept positions in both `x,y` and `{x: x, y: y}` forms. +//;; Also accepts labels. If label of `AREA` is given, returns the center of the area. +//;; If an existing object or label of such is given, returns a safe JavaScript object containing its `x`, `y` and `id`. +//;; +//;; @param {number|string|Object|undefined} x +//;; @param {number} [y] +//;; @returns {Object|undefined} +//;; +function camMakePos(x, y) +{ + if (camDef(y)) + { + return { x: x, y: y }; + } + if (!camDef(x)) + { + return undefined; + } + var obj = x; + if (camIsString(x)) + { + obj = getObject(x); + } + if (!camDef(obj) || !obj) + { + camDebug("Failed at", x); + return undefined; + } + switch (obj.type) + { + case DROID: + case STRUCTURE: + case FEATURE: + // store ID for those as well. + return { x: obj.x, y: obj.y, id: obj.id }; + case POSITION: + case RADIUS: + return obj; + case AREA: + return { + x: Math.floor((obj.x + obj.x2) / 2), + y: Math.floor((obj.y + obj.y2) / 2) + }; + case GROUP: + default: + // already a pos-like object? + if (camDef(obj.x) && camDef(obj.y)) + { + return { x: obj.x, y: obj.y }; + } + camDebug("Not implemented:", obj.type); + return undefined; + } +} + +//;; ## camDist(x1, y1, x2, y2 | pos1, x2, y2 | x1, y1, pos2 | pos1, pos2) +//;; +//;; A wrapper for `distBetweenTwoPoints()`. +//;; +//;; @param {number|Object} x1 +//;; @param {number|Object} y1 +//;; @param {number} [x2] +//;; @param {number} [y2] +//;; @returns {number} +//;; +function camDist(x1, y1, x2, y2) +{ + if (camDef(y2)) // standard + { + return distBetweenTwoPoints(x1, y1, x2, y2); + } + if (!camDef(x2)) // pos1, pos2 + { + return distBetweenTwoPoints(x1.x, x1.y, y1.x, y1.y); + } + var pos2 = camMakePos(x2); + if (camDef(pos2.x)) // x2 is pos2 + { + return distBetweenTwoPoints(x1, y1, pos2.x, pos2.y); + } + else // pos1, x2, y2 + { + return distBetweenTwoPoints(x1.x, x1.y, y1, x2); + } +} + +//;; ## camPlayerMatchesFilter(playerId, playerFilter) +//;; +//;; A function to handle player filters in a way similar to how JS API functions (eg. `enumDroid(filter, ...)`) handle them. +//;; +//;; @param {number} playerId +//;; @param {number} playerFilter +//;; @returns {boolean} +//;; +function camPlayerMatchesFilter(playerId, playerFilter) +{ + switch (playerFilter) { + case ALL_PLAYERS: + return true; + case ALLIES: + return playerId === CAM_HUMAN_PLAYER; + case ENEMIES: + return playerId >= 0 && playerId < CAM_MAX_PLAYERS && playerId !== CAM_HUMAN_PLAYER; + default: + return playerId === playerFilter; + } +} + +//;; ## camRemoveDuplicates(items) +//;; +//;; Remove duplicate items from an array. +//;; +//;; @param {*[]} items +//;; @returns {*[]} +//;; +function camRemoveDuplicates(items) +{ + var prims = {"boolean":{}, "number":{}, "string":{}}; + var objs = []; + + return items.filter((item) => { + var type = typeof item; + if (type in prims) + { + return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true); + } + else + { + return objs.indexOf(item) >= 0 ? false : objs.push(item); + } + }); +} + +//;; ## camCountStructuresInArea(label[, playerFilter]) +//;; +//;; Mimics wzscript's `numStructsButNotWallsInArea()`. +//;; +//;; @param {string} label +//;; @param {number} [playerFilter] +//;; @returns {number} +//;; +function camCountStructuresInArea(label, playerFilter) +{ + if (!camDef(playerFilter)) + { + playerFilter = CAM_HUMAN_PLAYER; + } + var list = enumArea(label, playerFilter, false); + var ret = 0; + for (let i = 0, l = list.length; i < l; ++i) + { + var object = list[i]; + if (object.type === STRUCTURE && object.stattype !== WALL && object.status === BUILT) + { + ++ret; + } + } + return ret; +} + +//;; ## camChangeOnDiff(numericValue) +//;; +//;; Change a numeric value based on campaign difficulty. +//;; +//;; @param {number} numericValue +//;; @returns {number} +//;; +function camChangeOnDiff(numericValue) +{ + var modifier = 0; + + switch (difficulty) + { + case SUPEREASY: + modifier = 2; + break; + case EASY: + modifier = 1.5; + break; + case MEDIUM: + modifier = 1; + break; + case HARD: + modifier = 0.85; + break; + case INSANE: + modifier = 0.70; + break; + default: + modifier = 1; + break; + } + + return Math.floor(numericValue * modifier); +} + +//;; ## camIsSystemDroid(gameObject) +//;; +//;; Determine if the passed in object is a non-weapon based droid. +//;; +//;; @param {Object} gameObject +//;; @returns {boolean} +//;; +function camIsSystemDroid(gameObject) +{ + if (!camDef(gameObject) || !gameObject) + { + return false; + } + + if (gameObject.type !== DROID) + { + camTrace("Non-droid: " + gameObject.type + " pl: " + gameObject.name); + return false; + } + + return (gameObject.droidType === DROID_SENSOR || gameObject.droidType === DROID_CONSTRUCT || gameObject.droidType === DROID_REPAIR); +} + +//;; ## camMakeGroup(what[, playerFilter]) +//;; +//;; Make a new group out of array of droids, single game object, or label string, +//;; with fuzzy auto-detection of argument type. +//;; Only droids would be added to the group. `playerFilter` can be one of a +//;; player index, `ALL_PLAYERS`, `ALLIES` or `ENEMIES`; defaults to `ENEMIES`. +//;; +//;; @param {string|Object|Object[]} what +//;; @param {number} [playerFilter] +//;; @returns {number|void} +//;; +function camMakeGroup(what, playerFilter) +{ + if (!camDef(playerFilter)) + { + playerFilter = ENEMIES; + } + var array; + var obj; + if (camIsString(what)) // label + { + obj = getObject(what); + } + else if (camDef(what.length)) // array + { + array = what; + } + else if (camDef(what.type)) // object + { + obj = what; + } + if (camDef(obj)) + { + switch (obj.type) { + case POSITION: + obj = getObject(obj.x, obj.y); + // fall-through + case DROID: + case STRUCTURE: + case FEATURE: + array = [ obj ]; + break; + case AREA: + array = enumArea(obj.x, obj.y, obj.x2, obj.y2, ALL_PLAYERS, false); + break; + case RADIUS: + array = enumRange(obj.x, obj.y, obj.radius, ALL_PLAYERS, false); + break; + case GROUP: + array = enumGroup(obj.id); + break; + default: + camDebug("Unknown object type", obj.type); + } + } + if (camDef(array)) + { + var group = camNewGroup(); + for (let i = 0, l = array.length; i < l; ++i) + { + var o = array[i]; + if (!camDef(o) || !o) + { + camDebug("Trying to add", o); + continue; + } + if (o.type === DROID && o.droidType !== DROID_CONSTRUCT && camPlayerMatchesFilter(o.player, playerFilter)) + { + groupAdd(group, o); + } + } + return group; + } + camDebug("Cannot parse", what); +} + +//;; ## camBreakAlliances() +//;; +//;; Break alliances between all players. +//;; +//;; @returns {void} +//;; +function camBreakAlliances() +{ + for (let i = 0; i < CAM_MAX_PLAYERS; ++i) + { + for (let c = 0; c < CAM_MAX_PLAYERS; ++c) + { + if (i !== c && allianceExistsBetween(i, c) === true) + { + setAlliance(i, c, false); + } + } + } +} + +//;; ## camGenerateRandomMapEdgeCoordinate(reachPosition) +//;; +//;; Returns a random coordinate anywhere on the edge of the map that reachs a position. +//;; +//;; @param {Object} reachPosition +//;; @returns {Object} +//;; +function camGenerateRandomMapEdgeCoordinate(reachPosition) +{ + let limits = getScrollLimits(); + let loc; + + do + { + let location = {x: 0, y: 0}; + let xWasRandom = false; + + if (camRand(100) < 50) + { + location.x = camRand(limits.x2 + 1); + if (location.x < (limits.x + 2)) + { + location.x = limits.x + 2; + } + else if (location.x > (limits.x2 - 2)) + { + location.x = limits.x2 - 2; + } + xWasRandom = true; + } + else + { + location.x = (camRand(100) < 50) ? (limits.x2 - 2) : (limits.x + 2); + } + + if (!xWasRandom && (camRand(100) < 50)) + { + location.y = camRand(limits.y2 + 1); + if (location.y < (limits.y + 2)) + { + location.y = limits.y + 2; + } + else if (location.y > (limits.y2 - 2)) + { + location.y = limits.y2 - 2; + } + } + else + { + location.y = (camRand(100) < 50) ? (limits.y2 - 2) : (limits.y + 2); + } + + loc = location; + } while (camDef(reachPosition) && reachPosition && !propulsionCanReach("wheeled01", reachPosition.x, reachPosition.y, loc.x, loc.y)); + + return loc; +} + +//;; ## camGenerateRandomMapCoordinate(reachPosition) +//;; +//;; Returns a random coordinate anywhere on the map +//;; +//;; @param {Object} reachPosition +//;; @returns {Object} +//;; +function camGenerateRandomMapCoordinate(reachPosition, distFromReach, scanObjectRadius) +{ + if (!camDef(distFromReach)) + { + distFromReach = 10; + } + if (!camDef(scanObjectRadius)) + { + scanObjectRadius = 2; + } + + let limits = getScrollLimits(); + let pos; + + do + { + let randomPos = {x: camRand(limits.x2), y: camRand(limits.y2)}; + + if (randomPos.x < (limits.x + 2)) + { + randomPos.x = limits.x + 2; + } + else if (randomPos.x > (limits.x2 - 2)) + { + randomPos.x = limits.x2 - 2; + } + + if (randomPos.y < (limits.y + 2)) + { + randomPos.y = limits.y; + } + else if (randomPos.y > (limits.y2 - 2)) + { + randomPos.y = limits.y2 - 2; + } + + pos = randomPos; + } while (camDef(reachPosition) && + reachPosition && + !propulsionCanReach("wheeled01", reachPosition.x, reachPosition.y, pos.x, pos.y) && + (camDist(pos, reachPosition) < distFromReach) && + (enumRange(pos.x, pos.y, scanObjectRadius, ALL_PLAYERS, false).length > 0)); + + return pos; +} + +//;; ## camDiscoverCampaign() +//;; +//;; Figures out what campaign we are in without reliance on the source at all. +//;; +//;; @returns {number} +//;; +function camDiscoverCampaign() +{ + for (let i = 0, len = ALPHA_LEVELS.length; i < len; ++i) + { + if (__camNextLevel === ALPHA_LEVELS[i] || __camNextLevel === BETA_LEVELS[0]) + { + return ALPHA_CAMPAIGN_NUMBER; + } + } + for (let i = 0, len = BETA_LEVELS.length; i < len; ++i) + { + if (__camNextLevel === BETA_LEVELS[i] || __camNextLevel === GAMMA_LEVELS[0]) + { + return BETA_CAMPAIGN_NUMBER; + } + } + for (let i = 0, len = GAMMA_LEVELS.length; i < len; ++i) + { + if (__camNextLevel === GAMMA_LEVELS[i] || __camNextLevel === CAM_GAMMA_OUT) + { + return GAMMA_CAMPAIGN_NUMBER; + } + } + + return UNKNOWN_CAMPAIGN_NUMBER; +} + +//////////// privates + +function __camGlobalContext() +{ + return Function('return this')(); // eslint-disable-line no-new-func +} + +function __camFindClusters(list, size) +{ + // The good old cluster analysis algorithm taken from NullBot AI. + var ret = { clusters: [], xav: [], yav: [], maxIdx: 0, maxCount: 0 }; + for (let i = list.length - 1; i >= 0; --i) + { + var x = list[i].x; + var y = list[i].y; + var found = false; + var n = 0; + for (let j = 0; j < ret.clusters.length; ++j) + { + if (camDist(ret.xav[j], ret.yav[j], x, y) < size) + { + n = ret.clusters[j].length; + ret.clusters[j][n] = list[i]; + ret.xav[j] = Math.floor((n * ret.xav[j] + x) / (n + 1)); + ret.yav[j] = Math.floor((n * ret.yav[j] + y) / (n + 1)); + if (ret.clusters[j].length > ret.maxCount) + { + ret.maxIdx = j; + ret.maxCount = ret.clusters[j].length; + } + found = true; + break; + } + } + if (!found) + { + n = ret.clusters.length; + ret.clusters[n] = [list[i]]; + ret.xav[n] = x; + ret.yav[n] = y; + if (1 > ret.maxCount) + { + ret.maxIdx = n; + ret.maxCount = 1; + } + } + } + return ret; +} + +/* Called every second after eventStartLevel(). */ +function __camTick() +{ + if (camDef(__camWinLossCallback)) + { + __camGlobalContext()[__camWinLossCallback](); + } + __camBasesTick(); +} + +//Reset AI power back to highest storage possible. +function __camAiPowerReset() +{ + for (let i = 1; i < CAM_MAX_PLAYERS; ++i) + { + setPower(AI_POWER, i); + } +} diff --git a/script/campaign/libcampaign_includes/nexus.js b/script/campaign/libcampaign_includes/nexus.js index 92821ac..b4770e0 100644 --- a/script/campaign/libcampaign_includes/nexus.js +++ b/script/campaign/libcampaign_includes/nexus.js @@ -3,7 +3,12 @@ // Nexus related functionality. //////////////////////////////////////////////////////////////////////////////// -//Play a random laugh. +//;; ## camNexusLaugh() +//;; +//;; Play a random NEXUS laugh. +//;; +//;; @returns {void} +//;; function camNexusLaugh() { const LAUGH_CHANCE = 45; @@ -14,6 +19,15 @@ function camNexusLaugh() } } +//;; ## camAbsorbPlayer([who[, to]]) +//;; +//;; Completely give all of player `who` droids and structures to player `to`. +//;; Will default to `CAM_HUMAN_PLAYER` and `NEXUS` respectively. +//;; +//;; @param {number} [who] +//;; @param {number} [to] +//;; @returns {void} +//;; function camAbsorbPlayer(who, to) { if (!camDef(who)) @@ -27,7 +41,7 @@ function camAbsorbPlayer(who, to) var units = enumDroid(who); - for (var i = 0, len = units.length; i < len; i++) + for (let i = 0, len = units.length; i < len; ++i) { var droid = units[i]; if (!donateObject(droid, to)) @@ -37,7 +51,7 @@ function camAbsorbPlayer(who, to) } var structs = enumStruct(who); - for (var i = 0, len = structs.length; i < len; i++) + for (let i = 0, len = structs.length; i < len; ++i) { var structure = structs[i]; if (!donateObject(structure, to)) @@ -50,7 +64,15 @@ function camAbsorbPlayer(who, to) changePlayerColour(who, to); } -//Steal a droid or structure from a player. +//;; ## camHackIntoPlayer([player[, to]]) +//;; +//;; Steal a droid or structure from a player if the NEXUS hack state is active. +//;; Will default to `CAM_HUMAN_PLAYER` and `NEXUS` respectively. +//;; +//;; @param {number} [player] +//;; @param {number} [to] +//;; @returns {void} +//;; function camHackIntoPlayer(player, to) { if (__camNexusActivated === false) @@ -127,11 +149,24 @@ function camHackIntoPlayer(player, to) } } +//;; ## camSetNexusState(flag) +//;; +//;; Turn on/off the NEXUS hacking state feature. +//;; +//;; @param {boolean} flag +//;; @returns {void} +//;; function camSetNexusState(flag) { __camNexusActivated = flag; } +//;; ## camGetNexusState() +//;; +//;; Returns the activation state of the NEXUS hacking feature. +//;; +//;; @returns {boolean} +//;; function camGetNexusState() { return __camNexusActivated; @@ -158,9 +193,7 @@ function __camChooseNexusTarget(player) if (camRand(100) < TARGET_UNIT_CHANCE) { - objects = enumDroid(player).filter(function(d) { - return !camIsTransporter(d); - }); + objects = enumDroid(player).filter((d) => (!camIsTransporter(d))); const EXP = { rookie: 0, @@ -176,7 +209,7 @@ function __camChooseNexusTarget(player) //As the player researches more resistance upgrades their higher exp units will become more safe //Trucks get a little more safe with each upgrade also. - objects = objects.filter(function(d) { + objects = objects.filter((d) => { if (__camNextLevel === CAM_GAMMA_OUT) //Final mission has a static fail chance to hack everything (except for hero units). { if (d.droidType === DROID_CONSTRUCT) @@ -229,30 +262,23 @@ function __camChooseNexusTarget(player) //Has explicit chances to target factories or research labs. switch (camRand(8)) { - case 0: objects = enumStruct(player, FACTORY).filter(function(s) { return (s.status === BUILT); }); break; - case 1: objects = enumStruct(player, CYBORG_FACTORY).filter(function(s) { return (s.status === BUILT); }); break; - case 2: objects = enumStruct(player, VTOL_FACTORY).filter(function(s) { return (s.status === BUILT); }); break; - case 3: objects = enumStruct(player, RESEARCH_LAB).filter(function(r) { return (r.status === BUILT); }); break; + case 0: objects = enumStruct(player, FACTORY).filter((s) => (s.status === BUILT)); break; + case 1: objects = enumStruct(player, CYBORG_FACTORY).filter((s) => (s.status === BUILT)); break; + case 2: objects = enumStruct(player, VTOL_FACTORY).filter((s) => (s.status === BUILT)); break; + case 3: objects = enumStruct(player, RESEARCH_LAB).filter((r) => (r.status === BUILT)); break; default: //do nothing } if (objects.length === 0) { - objects = enumStruct(player).filter(function(s) { return (s.status === BUILT); }); + objects = enumStruct(player).filter((s) => (s.status === BUILT)); } - objects = objects.filter(function(s) { + objects = objects.filter((s) => ( //cam3-ab is way too annoying if Nexus can still take factories after the second resistance upgrade. - if (getResearch("R-Sys-Resistance-Upgrade02").done && - (s.stattype === FACTORY || - s.stattype === CYBORG_FACTORY || - s.stattype === VTOL_FACTORY)) - { - return false; - } - - return true; - }); + !(getResearch("R-Sys-Resistance-Upgrade02").done && + (s.stattype === FACTORY || s.stattype === CYBORG_FACTORY || s.stattype === VTOL_FACTORY)) + )); } return objects; diff --git a/script/campaign/libcampaign_includes/production.js b/script/campaign/libcampaign_includes/production.js new file mode 100644 index 0000000..4ac53f6 --- /dev/null +++ b/script/campaign/libcampaign_includes/production.js @@ -0,0 +1,447 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Factory production management. +//////////////////////////////////////////////////////////////////////////////// + +// To use this feature, call camSetFactories() with a list of factories. +// This assumes tactical management of groups of units produced from them. +// Factories won't start production immediately; call camEnableFactory() +// to turn them on. + +//;; ## camSetFactories(factories) +//;; +//;; Tell `libcampaign.js` to manage a certain set of enemy factories. +//;; Management assumes producing droids, packing them into groups and +//;; executing orders once the group becomes large-enough. +//;; The argument is a JavaScript map from group labels to factory descriptions. +//;; Each label points to a factory object. +//;; Factory description is a JavaScript object with the following fields: +//;; * `assembly` A rally point position label, where the group would gather. +//;; * `order` An order to execute for every group produced in the factory. Same as the order parameter for `camManageGroup()`. +//;; * `data` Order data. Same as the data parameter for `camManageGroup()`. +//;; * `groupSize` Number of droids to produce before executing the order. +//;; Also, if order is `CAM_ORDER_ATTACK`, data.count defaults to this value. +//;; * `maxSize` Halt production when reaching that many droids in the factory group. +//;; Resume when some droids die. Unlimited if unspecified. +//;; * `throttle` If defined, produce droids only every that many milliseconds, and keep the factory idle between ticks. +//;; * `group` If defined, make the factory manage this group, otherwise create a new empty group to manage. +//;; Droids produced in the factory would automatically be added to the group, +//;; and order and data parameters would be applied to this group. +//;; * `templates` List of droid templates to produce in the factory. +//;; Each template is a JavaScript object with the following fields: +//;; * `body` Body stat name. +//;; * `prop` Propulsion stat name. +//;; * `weap` Weapon stat name. Only single-turret droids are currently supported. +//;; Note that all template components are automatically made available to the factory owner. +//;; Factories won't start production immediately; call `camEnableFactory()` to turn them on when necessary. +//;; +//;; @param {Object} factories +//;; @returns {void} +//;; +function camSetFactories(factories) +{ + for (const factoryLabel in factories) + { + camSetFactoryData(factoryLabel, factories[factoryLabel]); + } +} + +//;; ## camSetFactoryData(factoryLabel, factoryData) +//;; +//;; Similar to `camSetFactories()`, but one factory at a time. +//;; If the factory was already managing a group of droids, it keeps managing it. +//;; If a new group is specified in the description, the old group is merged into it. +//;; NOTE: This function disables the factory. You would need to call `camEnableFactory()` again. +//;; +//;; @param {string} factoryLabel +//;; @param {Object} factoryData +//;; @returns {void} +//;; +function camSetFactoryData(factoryLabel, factoryData) +{ + var structure = getObject(factoryLabel); + if (!camDef(structure) || !structure) + { + // Not an error! It's ok if the factory is already destroyed + // when its data was updated. + camTrace("Factory", factoryLabel, "not found"); + return; + } + // remember the old factory group, if any + var droids = []; + if (camDef(__camFactoryInfo[factoryLabel])) + { + droids = enumGroup(__camFactoryInfo[factoryLabel].group); + } + __camFactoryInfo[factoryLabel] = factoryData; + var fi = __camFactoryInfo[factoryLabel]; + if (!camDef(fi.data)) + { + fi.data = {}; + } + fi.enabled = false; + fi.state = 0; + if (!camDef(fi.group)) + { + fi.group = camNewGroup(); + } + for (let i = 0, l = droids.length; i < l; ++i) + { + var droid = droids[i]; + groupAdd(fi.group, droid); + } + if (!camDef(fi.data.count)) + { + fi.data.count = fi.groupSize; + } +} + +//;; ## camEnableFactory(factoryLabel) +//;; +//;; Enable a managed factory by the given label. +//;; Once the factory is enabled, it starts producing units and executing orders as given. +//;; +//;; @param {string} factoryLabel +//;; @returns {void} +//;; +function camEnableFactory(factoryLabel) +{ + var fi = __camFactoryInfo[factoryLabel]; + if (!camDef(fi) || !fi) + { + camDebug("Factory not managed", factoryLabel); + return; + } + if (fi.enabled) + { + // safe, no error + camTrace("Factory", factoryLabel, "enabled again"); + return; + } + camTrace("Enabling", factoryLabel); + fi.enabled = true; + var obj = getObject(factoryLabel); + if (!camDef(obj) || !obj) + { + camTrace("Factory", factoryLabel, "not found, probably already dead"); + return; + } + __camContinueProduction(factoryLabel); + __camFactoryUpdateTactics(factoryLabel); +} + +//;; ## camQueueDroidProduction(playerId, template) +//;; +//;; Queues up an extra droid template for production. +//;; It would be produced in the first factory that is capable of producing it, +//;; at the end of its production loop, first queued first served. +//;; +//;; @param {number} playerId +//;; @param {Object} template +//;; @returns {void} +//;; +function camQueueDroidProduction(playerId, template) +{ + if (!camDef(__camFactoryQueue[playerId])) + { + __camFactoryQueue[playerId] = []; + } + __camFactoryQueue[playerId][__camFactoryQueue[playerId].length] = template; +} + +//;; ## camSetPropulsionTypeLimit([limit]) +//;; +//;; On hard and insane the propulsion type can be limited with this. +//;; For type II pass in `2`, and for type III pass in `3`. Hard defaults to type II and insane defaults to type III. +//;; If nothing is passed in then the type limit will match what is in templates.json. +//;; +//;; @param {number} [limit] +//;; @returns {void} +//;; +function camSetPropulsionTypeLimit(limit) +{ + if (!camDef(limit)) + { + __camPropulsionTypeLimit = "NO_USE"; + } + else if (limit === 2) + { + __camPropulsionTypeLimit = "02"; + } + else if (limit === 3) + { + __camPropulsionTypeLimit = "03"; + } +} + +//;; ## camUpgradeOnMapTemplates(template1, template2, playerId[, excluded]) +//;; +//;; Search for `template1`, save its coordinates, remove it, and then replace with it with `template2`. +//;; Template objects are expected to follow the component properties as used in `templates.js`. +//;; A fourth parameter can be specified to ignore specific object IDs. +//;; Useful if a droid is assigned to an object label. It can be either an array or a single ID number. +//;; +//;; @param {Object} template1 +//;; @param {Object} template2 +//;; @param {number} playerId +//;; @param {number|number[]} [excluded] +//;; @returns {void} +//;; +function camUpgradeOnMapTemplates(template1, template2, playerId, excluded) +{ + if (!camDef(template1) || !camDef(template2) || !camDef(playerId)) + { + camDebug("Not enough parameters specified for upgrading on map templates"); + return; + } + + var droidsOnMap = enumDroid(playerId); + + for (let i = 0, l = droidsOnMap.length; i < l; ++i) + { + var dr = droidsOnMap[i]; + if (!camDef(dr.weapons[0])) + { + continue; //don't handle systems + } + var body = dr.body; + var prop = dr.propulsion; + var weap = dr.weapons[0].name; + var skip = false; + if (body === template1.body && prop === template1.prop && weap === template1.weap) + { + //Check if this object should be excluded from the upgrades + if (camDef(excluded)) + { + if (excluded instanceof Array) + { + for (let j = 0, c = excluded.length; j < c; ++j) + { + if (dr.id === excluded[j]) + { + skip = true; + break; + } + } + if (skip === true) + { + continue; + } + } + else if (dr.id === excluded) + { + continue; + } + } + + //Replace it + let droidInfo = {x: dr.x, y: dr.y, name: dr.name}; + camSafeRemoveObject(dr, false); + addDroid(playerId, droidInfo.x, droidInfo.y, droidInfo.name, template2.body, + __camChangePropulsionOnDiff(template2.prop), "", "", template2.weap); + } + } +} + +//////////// privates + +function __camFactoryUpdateTactics(flabel) +{ + var fi = __camFactoryInfo[flabel]; + if (!fi.enabled) + { + camDebug("Factory", flabel, "was not enabled"); + return; + } + var droids = enumGroup(fi.group); + if (droids.length >= fi.groupSize) + { + camManageGroup(fi.group, fi.order, fi.data); + fi.group = camNewGroup(); + } + else + { + var pos = camMakePos(fi.assembly); + if (!camDef(pos)) + { + pos = camMakePos(flabel); + } + camManageGroup(fi.group, CAM_ORDER_DEFEND, { pos: pos }); + } +} + +function __camAddDroidToFactoryGroup(droid, structure) +{ + // don't manage trucks in this function + if (droid.droidType === DROID_CONSTRUCT) + { + return; + } + // FIXME: O(n) lookup here + var flabel = getLabel(structure); + if (!camDef(flabel) || !flabel) + { + return; + } + var fi = __camFactoryInfo[flabel]; + groupAdd(fi.group, droid); + if (camDef(fi.assembly)) + { + // this is necessary in case droid is regrouped manually + // in the scenario code, and thus DORDER_DEFEND for assembly + // will not be applied in __camFactoryUpdateTactics() + var pos = camMakePos(fi.assembly); + orderDroidLoc(droid, DORDER_MOVE, pos.x, pos.y); + } + __camFactoryUpdateTactics(flabel); +} + +function __camChangePropulsionOnDiff(propulsion) +{ + if (difficulty <= MEDIUM) + { + return propulsion; + } + if (camDef(__camPropulsionTypeLimit) && __camPropulsionTypeLimit === "NO_USE") + { + return propulsion; //this mission don't want this feature then + } + + var name = propulsion; + var typeModifier = difficulty === HARD ? "02" : "03"; + const VALID_PROPS = [ + "CyborgLegs", "HalfTrack", "V-Tol", "hover", "tracked", "wheeled", + ]; + + var lastTwo = name.substring(name.length - 2); + if (lastTwo === "01" || lastTwo === "02" || lastTwo === "03") + { + name = name.substring(0, name.length - 2); + } + + for (let i = 0, l = VALID_PROPS.length; i < l; ++i) + { + var currentProp = VALID_PROPS[i]; + if (name === currentProp) + { + //if hard difficulty and a future template has a type III then this will + //ensure it stays type III. + if (difficulty === HARD && lastTwo === "02") + { + typeModifier = "03"; + } + //maybe a mission wants to set a limit on the highest propulsion type + if (camDef(__camPropulsionTypeLimit)) + { + typeModifier = __camPropulsionTypeLimit; + } + //return a stronger propulsion based on difficulty + return currentProp.concat(typeModifier); + } + } + + //If all else fails then return the propulsion that came with the template + return propulsion; +} + +function __camBuildDroid(template, structure) +{ + if (!camDef(structure)) + { + return false; + } + //if not a normal factory and the template is a constructor then keep it in the + //queue until a factory can deal with it. + if (template.weap === "Spade1Mk1" && structure.stattype !== FACTORY) + { + return false; + } + var prop = __camChangePropulsionOnDiff(template.prop); + makeComponentAvailable(template.body, structure.player); + makeComponentAvailable(prop, structure.player); + makeComponentAvailable(template.weap, structure.player); + var n = [ structure.name, structure.id, template.body, prop, template.weap ].join(" "); + // multi-turret templates are not supported yet + return buildDroid(structure, n, template.body, prop, "", "", template.weap); +} + +//Check if an enabled factory can begin manufacturing something. Doing this +//by timer has the perk of not breaking production if something went wrong in +//cam_eventDroidBuilt (or the mere act of reloading saves). +function __checkEnemyFactoryProductionTick() +{ + for (const flabel in __camFactoryInfo) + { + if (getObject(flabel) !== null && __camFactoryInfo[flabel].enabled === true) + { + __camContinueProduction(flabel); + } + } +} + +function __camContinueProduction(structure) +{ + var flabel; + var struct; + if (camIsString(structure)) + { + flabel = structure; + struct = getObject(flabel); + if (!camDef(struct) || !struct) + { + camTrace("Factory not found"); + return; + } + } + else + { + // FIXME: O(n) lookup here + flabel = getLabel(structure); + struct = structure; + } + if (!camDef(flabel) || !flabel) + { + return; + } + if (!structureIdle(struct)) + { + return; + } + var fi = __camFactoryInfo[flabel]; + if (camDef(fi.maxSize) && groupSize(fi.group) >= fi.maxSize) + { + // retry later + return; + } + if (camDef(fi.throttle) && camDef(fi.lastprod)) + { + var throttle = gameTime - fi.lastprod; + if (throttle < fi.throttle) + { + // do throttle + return; + } + } + // check factory queue after every loop + if (fi.state === -1) + { + fi.state = 0; + var p = struct.player; + if (camDef(__camFactoryQueue[p]) && __camFactoryQueue[p].length > 0) + { + if (__camBuildDroid(__camFactoryQueue[p][0], struct)) + { + __camFactoryQueue[p].shift(); + return; + } + } + } + __camBuildDroid(fi.templates[fi.state], struct); + // loop through templates + ++fi.state; + if (fi.state >= fi.templates.length) + { + fi.state = -1; + } + fi.lastprod = gameTime; +} diff --git a/script/campaign/libcampaign_includes/reinforcements.js b/script/campaign/libcampaign_includes/reinforcements.js new file mode 100644 index 0000000..1a16ab3 --- /dev/null +++ b/script/campaign/libcampaign_includes/reinforcements.js @@ -0,0 +1,97 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Reinforcement related stuff. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSendReinforcement(playerId, position, templates, kind[, data]) +//;; +//;; Give a single bunch of droids (template list) for a player at a position label. Kind can be one of: +//;; * `CAM_REINFORCE_GROUND` Reinforcements magically appear on the ground. +//;; * `CAM_REINFORCE_TRANSPORT` Reinforcements are unloaded from a transporter. +//;; **NOTE:** the game engine doesn't seem to support two simultaneous incoming transporters for the same player. +//;; Avoid this at all costs! +//;; The following data fields are required: +//;; * `entry` Transporter entry position. +//;; * `exit` Transporter exit position. +//;; * `message` `PROX_MSG` to display when transport is landing. +//;; * `order` Order to give to newly landed droids +//;; * `data` Order data. +//;; **NOTE:** the game engine doesn't seem to support two simultaneous incoming transporters for the same player. +//;; If a transporter is already on map, it will be correctly queued up and sent later. +//;; +//;; @param {number} playerId +//;; @param {string|Object|undefined} position +//;; @param {Object[]} templates +//;; @param {number} kind +//;; @param {Object} [data] +//;; @returns {void} +//;; +function camSendReinforcement(playerId, position, templates, kind, data) +{ + var pos = camMakePos(position); + var order = CAM_ORDER_ATTACK; + var order_data = { regroup: false, count: -1 }; + if (camDef(data) && camDef(data.order)) + { + order = data.order; + if (camDef(data.data)) + { + order_data = data.data; + } + } + switch (kind) + { + case CAM_REINFORCE_GROUND: + var droids = []; + for (let i = 0, l = templates.length; i < l; ++i) + { + var template = templates[i]; + var prop = __camChangePropulsionOnDiff(template.prop); + droids.push(addDroid(playerId, pos.x, pos.y, "Reinforcement", template.body, prop, "", "", template.weap)); + } + camManageGroup(camMakeGroup(droids), order, order_data); + break; + case CAM_REINFORCE_TRANSPORT: + __camTransporterQueue.push({ + player: playerId, + position: position, + list: templates, + data: data, + order: order, + order_data: order_data + }); + __camDispatchTransporterSafe(); + break; + default: + camTrace("Unknown reinforcement type"); + break; + } +} + +//;; ## camSetBaseReinforcements(baseLabel, interval, callbackName, kind, data) +//;; +//;; Periodically brings reinforcements to an enemy base, until the base is eliminated. +//;; Interval is the pause, in milliseconds, between reinforcements. +//;; Callback is name of a function that returns a list of droid templates to spawn, +//;; which may be different every time. Kind and data work similarly to `camSendReinforcement()`. +//;; Use `CAM_REINFORCE_NONE` as kind to disable previously set reinforcements. +//;; +//;; @param {string} baseLabel +//;; @param {number} interval +//;; @param {string} callbackName +//;; @param {number} kind +//;; @param {Object} data +//;; @returns {void} +//;; +function camSetBaseReinforcements(baseLabel, interval, callbackName, kind, data) +{ + if (!camIsString(callbackName)) + { + camDebug("Callback name must be a string (received", callbackName, ")"); + } + var bi = __camEnemyBases[baseLabel]; + bi.reinforce_kind = kind; + bi.reinforce_interval = interval; + bi.reinforce_callback = callbackName; + bi.reinforce_data = data; +} diff --git a/script/campaign/libcampaign_includes/research.js b/script/campaign/libcampaign_includes/research.js new file mode 100644 index 0000000..205a0c9 --- /dev/null +++ b/script/campaign/libcampaign_includes/research.js @@ -0,0 +1,76 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Research related functions. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camEnableRes(researchIds, playerId) +//;; +//;; Grants research from the given list to player +//;; +//;; @param {string[]} researchIds +//;; @param {number} playerId +//;; @returns {void} +//;; +function camEnableRes(researchIds, playerId) +{ + for (let i = 0, l = researchIds.length; i < l; ++i) + { + var researchId = researchIds[i]; + enableResearch(researchId, playerId); + completeResearch(researchId, playerId); + } +} + +//;; ## camCompleteRequiredResearch(researchIds, playerId) +//;; +//;; Grants research from the given list to player and also researches the required research for that item. +//;; +//;; @param {string[]} researchIds +//;; @param {number} playerId +//;; @returns {void} +//;; +function camCompleteRequiredResearch(researchIds, playerId) +{ + dump("\n*Player " + playerId + " requesting accelerated research."); + + for (let i = 0, l = researchIds.length; i < l; ++i) + { + var researchId = researchIds[i]; + dump("Searching for required research of item: " + researchId); + var reqRes = findResearch(researchId, playerId).reverse(); + + if (reqRes.length === 0) + { + //HACK: autorepair like upgrades don't work after mission transition. + if (researchId === "R-Sys-NEXUSrepair") + { + completeResearch(researchId, playerId, true); + } + continue; + } + + reqRes = camRemoveDuplicates(reqRes); + for (let s = 0, r = reqRes.length; s < r; ++s) + { + var researchReq = reqRes[s].name; + dump(" Found: " + researchReq); + enableResearch(researchReq, playerId); + completeResearch(researchReq, playerId); + } + } +} + +//////////// privates + +//granted shortly after mission start to give enemy players instant droid production. +function __camGrantSpecialResearch() +{ + for (let i = 1; i < CAM_MAX_PLAYERS; ++i) + { + if (!allianceExistsBetween(CAM_HUMAN_PLAYER, i) && (countDroid(DROID_ANY, i) > 0 || enumStruct(i).length > 0)) + { + //Boost AI production to produce all droids within a factory throttle + completeResearch("R-Struc-Factory-Upgrade-AI", i); + } + } +} diff --git a/script/campaign/libcampaign_includes/tactics.js b/script/campaign/libcampaign_includes/tactics.js new file mode 100644 index 0000000..0002b28 --- /dev/null +++ b/script/campaign/libcampaign_includes/tactics.js @@ -0,0 +1,697 @@ + +//////////////////////////////////////////////////////////////////////////////// +// AI droid movement automation. +//////////////////////////////////////////////////////////////////////////////// +//;; ## camManageGroup(group, order, data) +//;; +//;; Tell `libcampaign.js` to manage a certain group. The group would +//;; be permanently managed depending on the high-level orders given. +//;; For each order, data parameter is a JavaScript object that controls +//;; different aspects of behavior. The order parameter is one of: +//;; * `CAM_ORDER_ATTACK` Pursue human player, preferably around the given position. +//;; The following optional data object fields are available, none of which is required: +//;; * `pos` Position or list of positions to attack. If pos is a list, first positions in the list will be attacked first. +//;; * `radius` Circle radius around `pos` to scan for targets. +//;; * `fallback` Position to retreat. +//;; * `morale` An integer from `1` to `100`. If that high percentage of the original group dies, +//;; fall back to the fallback position. If new droids are added to the group, it can recover and attack again. +//;; * `count` Override size of the original group. If unspecified, number of droids in the group at call time. +//;; Retreat on low morale and regroup is calculated against this value. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; * `regroup` If set to `true`, the group will not move forward unless it has at least `count` droids in its biggest cluster. +//;; If `count` is set to `-1`, at least â…” of group's droids should be in the biggest cluster. +//;; * `CAM_ORDER_DEFEND` Protect the given position. If too far, retreat back there ignoring fire. +//;; The following data object fields are available: +//;; * `pos` Position to defend. +//;; * `radius` Circle radius around `pos` to scan for targets. +//;; * `count` Override size of the original group. If unspecified, number of droids in the group at call time. +//;; Regroup is calculated against this value. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; * `regroup` If set to `true`, the group will not move forward unless it has at least `count` droids in its biggest cluster. +//;; If `count` is set to `-1`, at least â…” of group's droids should be in the biggest cluster. +//;; * `CAM_ORDER_PATROL` Move droids randomly between a given list of positions. The following data object fields are available: +//;; * `pos` An array of positions to patrol between. +//;; * `interval` Change positions every this many milliseconds. +//;; * `count` Override size of the original group. If unspecified, number of droids in the group at call time. +//;; Regroup is calculated against this value. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; * `regroup` If set to `true`, the group will not move forward unless it has at least `count` droids in its biggest cluster. +//;; If `count` is set to `-1`, at least â…” of group's droids should be in the biggest cluster. +//;; * `CAM_ORDER_COMPROMISE` Same as `CAM_ORDER_ATTACK`, just stay near the last (or only) +//;; attack position instead of looking for the player around the whole map. Useful for offworld missions, +//;; with player's LZ as the final position. The following data object fields are available: +//;; * `pos` Position or list of positions to compromise. +//;; If pos is a list, first positions in the list will be compromised first. +//;; * `radius` Circle radius around `pos` to scan for targets. +//;; * `count` Override size of the original group. If unspecified, number of droids in the group at call time. +//;; Regroup is calculated against this value. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; * `regroup` If set to `true`, the group will not move forward unless it has at least `count` droids in its biggest cluster. +//;; If `count` is set to `-1`, at least â…” of group's droids should be in the biggest cluster. +//;; * `CAM_ORDER_FOLLOW` Assign the group to commander. The sub-order is defined to be given to the commander. +//;; When commander dies, the group continues to execute the sub-order. The following data object fields are available: +//;; * `droid` Commander droid label. +//;; * `order` The order to give to the commander. +//;; * `data` Data of the commander's order. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; +//;; @param {string} group +//;; @param {number} order +//;; @param {Object} data +//;; @returns {void} +//;; +function camManageGroup(group, order, data) +{ + var saneData = data; + if (!camDef(saneData)) + { + saneData = {}; + } + if (camDef(saneData.pos)) // sanitize pos now to make ticks faster + { + if (camIsString(saneData.pos)) // single label? + { + saneData.pos = [ saneData.pos ]; + } + else if (!camDef(saneData.pos.length)) // single position object? + { + saneData.pos = [ saneData.pos ]; + } + for (let i = 0, l = saneData.pos.length; i < l; ++i) // array of labels? + { + saneData.pos[i] = camMakePos(saneData.pos[i]); + } + } + if (camDef(__camGroupInfo[group]) && order !== __camGroupInfo[group].order) + { + camTrace("Group", group, "receives a new order:", camOrderToString(order)); + } + __camGroupInfo[group] = { + target: undefined, + order: order, + data: saneData, + count: camDef(saneData.count) ? saneData.count : groupSize(group) + }; + if (order === CAM_ORDER_FOLLOW) + { + var commanderGroup = camMakeGroup([getObject(data.droid)]); + camManageGroup(commanderGroup, data.order, data.data); + } + // apply orders instantly + queue("__camTacticsTickForGroup", CAM_TICKS_PER_FRAME, group); +} + +//;; ## camStopManagingGroup(group) +//;; +//;; Tell `libcampaign.js` to stop managing a certain group. +//;; +//;; @param {string} group +//;; @returns {void} +//;; +function camStopManagingGroup(group) +{ + if (!camDef(__camGroupInfo[group])) + { + camTrace("Not managing", group, "anyway"); + return; + } + camTrace("Cease managing", group); + delete __camGroupInfo[group]; +} + +//;; ## camOrderToString(order) +//;; +//;; Print campaign order as string, useful for debugging. +//;; +//;; @param {number} order +//;; @returns {string} +//;; +function camOrderToString(order) +{ + var orderString; + switch (order) + { + case CAM_ORDER_ATTACK: + orderString = "ATTACK"; + break; + case CAM_ORDER_DEFEND: + orderString = "DEFEND"; + break; + case CAM_ORDER_PATROL: + orderString = "PATROL"; + break; + case CAM_ORDER_COMPROMISE: + orderString = "COMPROMISE"; + break; + case CAM_ORDER_FOLLOW: + orderString = "FOLLOW"; + break; + default: + orderString = "UNKNOWN"; + } + return orderString; +} + +//////////// privates +function __camFindGroupAvgCoordinate(groupID) +{ + var droids = enumGroup(groupID); + var len = droids.length; + var avgCoord = {x: 0, y: 0}; + + if (droids.length === 0) + { + return null; + } + + for (let i = 0; i < len; ++i) + { + var droid = droids[i]; + avgCoord.x += droid.x; + avgCoord.y += droid.y; + } + + // This global is constantly changing for the tactics code per group + __camGroupAvgCoord.x = Math.floor(avgCoord.x / len); + __camGroupAvgCoord.y = Math.floor(avgCoord.y / len); +} + +function __camDistToGroupAverage(obj1, obj2) +{ + var dist1 = distBetweenTwoPoints(__camGroupAvgCoord.x, __camGroupAvgCoord.y, obj1.x, obj1.y); + var dist2 = distBetweenTwoPoints(__camGroupAvgCoord.x, __camGroupAvgCoord.y, obj2.x, obj2.y); + return (dist1 - dist2); +} + +function __camPickTarget(group) +{ + var targets = []; + var gi = __camGroupInfo[group]; + var droids = enumGroup(group); + __camFindGroupAvgCoordinate(group); + switch (gi.order) + { + case CAM_ORDER_ATTACK: + if (camDef(gi.target)) + { + targets = enumRange(gi.target.x, gi.target.y,__CAM_TARGET_TRACKING_RADIUS, CAM_HUMAN_PLAYER, false).filter((obj) => ( + obj.type === STRUCTURE || (obj.type === DROID && !isVTOL(obj)) + )); + } + // fall-through! we just don't track targets on COMPROMISE + case CAM_ORDER_COMPROMISE: + if (camDef(gi.data.pos)) + { + for (let i = 0; i < gi.data.pos.length; ++i) + { + var compromisePos = gi.data.pos[i]; + if (targets.length > 0) + { + break; + } + var radius = gi.data.radius; + if (!camDef(radius)) + { + radius = __CAM_PLAYER_BASE_RADIUS; + } + targets = enumRange(compromisePos.x, compromisePos.y, radius, CAM_HUMAN_PLAYER, false); + } + } + if (gi.order === CAM_ORDER_COMPROMISE && targets.length === 0) + { + if (!camDef(gi.data.pos)) + { + camDebug("'pos' is required for COMPROMISE order"); + return undefined; + } + else + { + targets = [ gi.data.pos[gi.data.pos.length - 1] ]; + } + } + var dr = droids[0]; + targets = targets.filter((obj) => ( + propulsionCanReach(dr.propulsion, dr.x, dr.y, obj.x, obj.y) + )); + if (targets.length === 0) + { + targets = enumStruct(CAM_HUMAN_PLAYER).filter((obj) => ( + propulsionCanReach(dr.propulsion, dr.x, dr.y, obj.x, obj.y) + )); + if (targets.length === 0) + { + targets = enumDroid(CAM_HUMAN_PLAYER).filter((obj) => ( + propulsionCanReach(dr.propulsion, dr.x, dr.y, obj.x, obj.y) && + (obj.type === STRUCTURE || (obj.type === DROID && !isVTOL(obj))) + )); + if (targets.length === 0) + { + targets = enumDroid(CAM_HUMAN_PLAYER).filter((obj) => ( + propulsionCanReach(dr.propulsion, dr.x, dr.y, obj.x, obj.y) + )); + } + } + } + break; + case CAM_ORDER_DEFEND: + if (!camDef(gi.data.pos)) + { + camDebug("'pos' is required for DEFEND order"); + return undefined; + } + var defendPos = gi.data.pos[0]; + var radius = gi.data.radius; + if (!camDef(radius)) + { + radius = __CAM_DEFENSE_RADIUS; + } + if (camDef(gi.target) && camDist(gi.target, defendPos) < radius) + { + targets = enumRange(gi.target.x, gi.target.y, + __CAM_TARGET_TRACKING_RADIUS, + CAM_HUMAN_PLAYER, false); + } + if (targets.length === 0) + { + targets = enumRange(defendPos.x, defendPos.y, radius, CAM_HUMAN_PLAYER, false); + } + if (targets.length === 0) + { + targets = [ defendPos ]; + } + break; + default: + camDebug("Unsupported group order", gi.order, camOrderToString(gi.order)); + break; + } + if (targets.length === 0) + { + return undefined; + } + targets.sort(__camDistToGroupAverage); + var target = targets[0]; + if (camDef(target) && camDef(target.type) && target.type === DROID && camIsTransporter(target)) + { + return undefined; + } + __camGroupInfo[group].target = { x: target.x, y: target.y }; + return __camGroupInfo[group].target; +} + +function __camTacticsTick() +{ + var dt = CAM_TICKS_PER_FRAME; + for (const group in __camGroupInfo) + { + //Remove groups with no droids. + if (groupSize(group) === 0) + { + var remove = true; + var removable = __camGroupInfo[group].data.removable; + //Useful if the group has manual management (seen in cam1-3 script). + if (camDef(removable) && !removable) + { + remove = false; + } + if (remove) + { + camStopManagingGroup(group); + break; + } + } + queue("__camTacticsTickForGroup", dt, group); + dt += CAM_TICKS_PER_FRAME; + } + //Emulate a queue... + removeTimer("__camTacticsTick"); + setTimer("__camTacticsTick", dt); +} + +//Return the range (in tiles) a droid will scout for stuff to attack around it. +function __camScanRange(order, drType) +{ + var rng = __CAM_TARGET_TRACKING_RADIUS; //default + switch (order) + { + case CAM_ORDER_ATTACK: + case CAM_ORDER_DEFEND: + case CAM_ORDER_FOLLOW: + rng = __CAM_TARGET_TRACKING_RADIUS; + break; + case CAM_ORDER_PATROL: + rng = 5; + break; + case CAM_ORDER_COMPROMISE: + rng = 2; //very small so they don't track stuff too far + break; + default: + camDebug("Unsupported group order", order, camOrderToString(order)); + } + + if (drType === DROID_SENSOR) + { + rng = Math.floor(rng * 1.5); + } + + return rng; +} + +function __camTacticsTickForGroup(group) +{ + var gi = __camGroupInfo[group]; + if (!camDef(gi)) + { + return; + } + var rawDroids = enumGroup(group); + if (rawDroids.length === 0) + { + return; + } + + const CLOSE_Z = 1; + var healthyDroids = []; + var repair = { + hasFacility: enumStruct(rawDroids[0].player, REPAIR_FACILITY).length > 0, + pos: camDef(gi.data.repairPos) ? gi.data.repairPos : undefined, + percent: camDef(gi.data.repair) ? gi.data.repair : 66, + }; + + //repair + if (repair.hasFacility || camDef(repair.pos)) + { + for (let i = 0, len = rawDroids.length; i < len; ++i) + { + var droid = rawDroids[i]; + var repairLikeAction = false; + + if (droid.order === DORDER_RTR) + { + continue; + } + + //has a repair facility so use it + if (repair.hasFacility && camDef(gi.data.repair)) + { + if (droid.health < repair.percent) + { + orderDroid(droid, DORDER_RTR); + repairLikeAction = true; + } + } + //Or they have auto-repair and run to some position for a while + else if (!repair.hasFacility && repair.pos) + { + if (droid.health < repair.percent) + { + var loc = camMakePos(repair.pos); + orderDroidLoc(droid, DORDER_MOVE, loc.x, loc.y); + repairLikeAction = true; + } + } + + if (!repairLikeAction) + { + healthyDroids.push(droid); + } + } + } + else + { + healthyDroids = rawDroids; + } + + if (camDef(gi.data.regroup) && gi.data.regroup && healthyDroids.length > 0) + { + var ret = __camFindClusters(healthyDroids, __CAM_CLUSTER_SIZE); + var groupX = ret.xav[ret.maxIdx]; + var groupY = ret.yav[ret.maxIdx]; + var droids = ret.clusters[ret.maxIdx]; + + for (let i = 0, len = ret.clusters.length; i < len; ++i) + { + if (i !== ret.maxIdx) // move other droids towards main cluster + { + for (let j = 0, len2 = ret.clusters[i].length; j < len2; ++j) + { + var droid = ret.clusters[i][j]; + if (droid.order !== DORDER_RTR) + { + orderDroidLoc(droid, DORDER_MOVE, groupX, groupY); + } + } + } + } + + var hitRecently = (gameTime - gi.lastHit < __CAM_FALLBACK_TIME_ON_REGROUP); + // not enough droids grouped? + if (gi.count < 0 ? (ret.maxCount < groupSize(group) * 0.66) : (ret.maxCount < gi.count)) + { + for (let i = 0, len = droids.length; i < len; ++i) + { + var droid = droids[i]; + if (droid.order === DORDER_RTR) + { + continue; + } + + if (hitRecently && enumStruct(droid.player, HQ).length > 0) + { + if (droid.order !== DORDER_RTB) + { + orderDroid(droid, DORDER_RTB); + } + } + else if (droid.order !== DORDER_HOLD) + { + orderDroid(droid, DORDER_HOLD); + } + } + return; + } + } + + //Target choosing + var target; + var patrolPos; + + switch (gi.order) + { + case CAM_ORDER_ATTACK: + case CAM_ORDER_DEFEND: + case CAM_ORDER_COMPROMISE: + target = __camPickTarget(group); + if (!camDef(target)) + { + return; + } + break; + case CAM_ORDER_PATROL: + case CAM_ORDER_FOLLOW: + //do nothing here + break; + default: + camDebug("Unknown group order given: " + gi.order); + return; + } + + var defending = (gi.order === CAM_ORDER_DEFEND); + var track = (gi.order === CAM_ORDER_COMPROMISE); + + for (let i = 0, len = healthyDroids.length; i < len; ++i) + { + var droid = healthyDroids[i]; + var vtolUnit = (droid.type === DROID && isVTOL(droid)); + + if (droid.player === CAM_HUMAN_PLAYER) + { + camDebug("Controlling a human player's droid"); + } + + //Rearm vtols. + if (vtolUnit) + { + var arm = droid.weapons[0].armed; + var isRearming = droid.order === DORDER_REARM; + + if ((arm < 1) || (isRearming && (arm < 100 || droid.health < 100))) + { + var havePads = enumStruct(droid.player, REARM_PAD).length > 0; + if (havePads && !isRearming) + { + orderDroid(droid, DORDER_REARM); + } + continue; //Rearming. Try not to attack stuff. + } + } + + if (gi.order === CAM_ORDER_FOLLOW) + { + var commander = getObject(gi.data.droid); + if (commander === null) + { + // the commander is dead? let the group execute his last will. + camManageGroup(group, gi.data.order, gi.data.data); + return; + } + if (droid.droidType !== DROID_COMMAND && droid.order !== DORDER_COMMANDERSUPPORT) + { + orderDroidObj(droid, DORDER_COMMANDERSUPPORT, commander); + continue; + } + } + + if (gi.order === CAM_ORDER_DEFEND) + { + // fall back to defense position + var dPos = gi.data.pos[0]; + var dist = camDist(droid.x, droid.y, dPos.x, dPos.y); + var radius = gi.data.radius; + if (!camDef(radius)) + { + radius = __CAM_DEFENSE_RADIUS; + } + if (dist > radius) + { + orderDroidLoc(droid, DORDER_MOVE, target.x, target.y); + continue; + } + } + + if (gi.order === CAM_ORDER_PATROL) + { + if (!camDef(gi.data.interval)) + { + gi.data.interval = camSecondsToMilliseconds(60); + } + if (!camDef(gi.lastmove) || !camDef(gi.lastspot)) + { + gi.lastspot = 0; + gi.lastmove = 0; + } + else + { + if (gameTime - gi.lastmove > gi.data.interval) + { + // find random new position to visit + var list = []; + for (let j = 0, len2 = gi.data.pos.length; j < len2; ++j) + { + if (j !== gi.lastspot) + { + list.push(j); + } + } + gi.lastspot = list[camRand(list.length)]; + gi.lastmove = gameTime; + } + } + patrolPos = gi.data.pos[gi.lastspot]; + //I will leave this here for clarity so that it don't look + //like patrol picks a target. + if (camDef(patrolPos)) + { + target = camMakePos(patrolPos); + } + } + + if (camDef(target) && camDist(droid.x, droid.y, target.x, target.y) >= __CAM_CLOSE_RADIUS) + { + var closeByObj; + var artilleryLike = (droid.isCB || droid.hasIndirect || droid.isSensor); + var closeBy = enumRange(droid.x, droid.y, __camScanRange(gi.order, droid.droidType), CAM_HUMAN_PLAYER, track); + + if (closeBy.length > 0) + { + __camFindGroupAvgCoordinate(group); + closeBy.sort(__camDistToGroupAverage); + closeByObj = closeBy[0]; + } + + //We only care about explicit observe/attack if the object is close + //on the z coordinate. We should not chase things up or down hills + //that may be far away, at least path-wise. + if (closeByObj && !vtolUnit && !artilleryLike) + { + if (Math.abs(droid.z - closeByObj.z) > CLOSE_Z) + { + closeByObj = undefined; + } + } + + if (closeByObj && ((closeByObj.type === DROID) && isVTOL(closeByObj) && (isVTOL(droid) || !droid.canHitAir))) + { + closeByObj = undefined; + } + + if (!defending && closeByObj) + { + if (droid.droidType === DROID_SENSOR) + { + orderDroidObj(droid, DORDER_OBSERVE, closeByObj); + } + else + { + orderDroidObj(droid, DORDER_ATTACK, closeByObj); + } + } + else + { + if (defending || !(artilleryLike || vtolUnit)) + { + orderDroidLoc(droid, DORDER_MOVE, target.x, target.y); + } + else + { + orderDroidLoc(droid, DORDER_SCOUT, target.x, target.y); + } + } + } + } +} + +function __camCheckGroupMorale(group) +{ + var gi = __camGroupInfo[group]; + if (!camDef(gi.data.morale)) + { + return; + } + // morale is %. + var msize = Math.floor((100 - gi.data.morale) * gi.count / 100); + var gsize = groupSize(group); + switch (gi.order) + { + case CAM_ORDER_ATTACK: + if (gsize > msize) + { + break; + } + camTrace("Group", group, "falls back"); + gi.order = CAM_ORDER_DEFEND; + // swap pos and fallback + var temp = gi.data.pos; + gi.data.pos = [ camMakePos(gi.data.fallback) ]; + gi.data.fallback = temp; + // apply orders instantly + queue("__camTacticsTickForGroup", CAM_TICKS_PER_FRAME, group); + break; + case CAM_ORDER_DEFEND: + if (gsize <= msize) + { + break; + } + camTrace("Group", group, "restores"); + gi.order = CAM_ORDER_ATTACK; + // swap pos and fallback + var temp = gi.data.pos; + gi.data.pos = gi.data.fallback; + gi.data.fallback = temp[0]; + // apply orders instantly + queue("__camTacticsTickForGroup", CAM_TICKS_PER_FRAME, group); + break; + default: + camDebug("Group order doesn't support morale", camOrderToString(gi.order)); + break; + } +} diff --git a/script/campaign/libcampaign_includes/time.js b/script/campaign/libcampaign_includes/time.js new file mode 100644 index 0000000..ab321a2 --- /dev/null +++ b/script/campaign/libcampaign_includes/time.js @@ -0,0 +1,53 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Time and Timer related functions. +// Useful for setting the time values for queue(), setTimer(), or setMissionTime(). +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSecondsToMilliseconds(seconds) +//;; +//;; Returns the amount of milliseconds in `seconds`. +//;; +//;; @param {number} seconds +//;; @returns {number} +//;; +function camSecondsToMilliseconds(seconds) +{ + return seconds * MILLISECONDS_IN_SECOND; +} + +//;; ## camMinutesToMilliseconds(minutes) +//;; +//;; Returns the amount of milliseconds in `minutes`. +//;; +//;; @param {number} minutes +//;; @returns {number} +//;; +function camMinutesToMilliseconds(minutes) +{ + return minutes * camSecondsToMilliseconds(SECONDS_IN_MINUTE); +} + +//;; ## camMinutesToSeconds(minutes) +//;; +//;; Returns the amount of seconds in `minutes`. +//;; +//;; @param {number} minutes +//;; @returns {number} +//;; +function camMinutesToSeconds(minutes) +{ + return minutes * SECONDS_IN_MINUTE; +} + +//;; ## camHoursToSeconds(hours) +//;; +//;; Returns the amount of seconds in `hours`. +//;; +//;; @param {number} hours +//;; @returns {number} +//;; +function camHoursToSeconds(hours) +{ + return hours * camMinutesToSeconds(MINUTES_IN_HOUR); +} diff --git a/script/campaign/libcampaign_includes/transport.js b/script/campaign/libcampaign_includes/transport.js new file mode 100644 index 0000000..9ca8b4a --- /dev/null +++ b/script/campaign/libcampaign_includes/transport.js @@ -0,0 +1,170 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Transporter management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camIsTransporter(gameObject) +//;; +//;; Determine if the object is a transporter. +//;; +//;; @param {Object} gameObject +//;; @returns {boolean} +//;; +function camIsTransporter(gameObject) +{ + if (!camDef(gameObject) || !gameObject) + { + return false; + } + + if (gameObject.type !== DROID) + { + camTrace("Attempted to check if a non-droid object is a transporter."); + return false; + } + + return gameObject.droidType === DROID_SUPERTRANSPORTER; +} + +//;; ## camSetupTransporter(placeX, placeY, exitX, exitY) +//;; +//;; A convenient function for placing the standard campaign transport for loading in pre-away missions. +//;; The exit point for the transport is set up as well. +//;; +//;; @param {number} placeX +//;; @param {number} placeY +//;; @param {number} exitX +//;; @param {number} exitY +//;; @returns {void} +//;; +function camSetupTransporter(placeX, placeY, exitX, exitY) +{ + addDroid(CAM_HUMAN_PLAYER, placeX, placeY, "Transport", "TransporterBody", "V-Tol", "", "", "MG3-VTOL"); + setTransporterExit(exitX, exitY, CAM_HUMAN_PLAYER); +} + +//;; ## camRemoveEnemyTransporterBlip() +//;; +//;; Removes the last blip that an enemy transporter left behind, if any. +//;; +//;; @returns {void} +//;; +function camRemoveEnemyTransporterBlip() +{ + if (camDef(__camTransporterMessage)) + { + hackRemoveMessage(__camTransporterMessage, PROX_MSG, CAM_HUMAN_PLAYER); + __camTransporterMessage = undefined; + } +} + +//////////// privates + +// returns true if transporter was launched, +// false if transporter is already on map, +// throws error if queue is empty. +function __camDispatchTransporterUnsafe() +{ + if (__camTransporterQueue.length === 0) + { + camDebug("Transporter queue empty!"); + return false; + } + const OFFSET = 1; //Increaze LZ "no go" zone area a bit + var args = __camTransporterQueue[0]; + var player = args.player; + var pos = args.position; + var list = args.list; + var data = args.data; + if (camDef(__camIncomingTransports[player])) + { + camTrace("Transporter already on map for player", player + ", delaying."); + return false; + } + __camTransporterQueue.shift(); // what could possibly go wrong? + if (!camDef(__camPlayerTransports[player])) + { + camTrace("Creating a transporter for player", player); + __camPlayerTransports[player] = addDroid(player, -1, -1, + "Transporter", + "TransporterBody", + "V-Tol", "", "", + "MG3-VTOL"); + } + var trans = __camPlayerTransports[player]; + var droids = []; + for (let i = 0, l = list.length; i < l; ++i) + { + var template = list[i]; + var prop = __camChangePropulsionOnDiff(template.prop); + var droid = addDroid(player, -1, -1, "Reinforcement", template.body, prop, "", "", template.weap); + droids.push(droid); + addDroidToTransporter(trans, droid); + } + __camIncomingTransports[player] = { + droids: droids, + message: args.data.message, + order: args.order, + data: args.order_data, + }; + camTrace("Incoming transport with", droids.length, + "droids for player", player + + ", queued transports", __camTransporterQueue.length); + + setNoGoArea(pos.x - OFFSET, pos.y - OFFSET, pos.x + OFFSET, pos.y + OFFSET, player); + + //Delete previous enemy reinforcement transport blip + if (player !== CAM_HUMAN_PLAYER) + { + camRemoveEnemyTransporterBlip(); + } + + if (player !== CAM_HUMAN_PLAYER) + { + playSound("pcv381.ogg"); //Enemy transport detected. + } + + setTransporterExit(data.exit.x, data.exit.y, player); + // will guess which transporter to start, automagically + startTransporterEntry(data.entry.x, data.entry.y, player); + return true; +} + +function __camDispatchTransporterSafe(player, position, list, data) +{ + if (!profile("__camDispatchTransporterUnsafe")) + { + queue("__camDispatchTransporterSafe", camSecondsToMilliseconds(1)); + } +} + +function __camLandTransporter(player, pos) +{ + var ti = __camIncomingTransports[player]; + if (!camDef(ti)) + { + camDebug("Unhandled transporter for player", player); + return; + } + if (camDef(ti.message)) + { + __camTransporterMessage = ti.message; + hackAddMessage(ti.message, PROX_MSG, CAM_HUMAN_PLAYER, false); + } + else + { + __camTransporterMessage = undefined; + } + camTrace("Landing transport for player", player); + playSound("pcv395.ogg", pos.x, pos.y, 0); //Incoming enemy transport. + camManageGroup(camMakeGroup(ti.droids), ti.order, ti.data); +} + +function __camRemoveIncomingTransporter(player) +{ + // allow the next transporter to enter + if (camDef(__camIncomingTransports[player])) + { + delete __camIncomingTransports[player]; + } +} diff --git a/script/campaign/libcampaign_includes/truck.js b/script/campaign/libcampaign_includes/truck.js new file mode 100644 index 0000000..2b63b36 --- /dev/null +++ b/script/campaign/libcampaign_includes/truck.js @@ -0,0 +1,166 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Truck management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camManageTrucks(playerId) +//;; +//;; Manage trucks for an AI player. This assumes recapturing oils and rebuilding destroyed trucks +//;; in factories, the latter is implemented via `camQueueDroidProduction()` mechanism. +//;; +//;; @param {number} playerId +//;; @returns {void} +//;; +function camManageTrucks(playerId) +{ + __camTruckInfo[playerId] = { enabled: 1, queue: [], player: playerId }; +} + +//;; ## camQueueBuilding(playerId, stat[, position]) +//;; +//;; Assuming truck management is enabled for the player, issue an order to build a specific building +//;; near a certain position. The order would be issued once as soon as a free truck becomes available. +//;; It will not be re-issued in case the truck is destroyed before the building is finished. +//;; If position is unspecified, the building would be built near the first available truck. +//;; Otherwise, position may be a label or a `POSITION`-like object. +//;; +//;; @param {number} playerId +//;; @param {string} stat +//;; @param {string|Object} [position] +//;; @returns {void} +//;; +function camQueueBuilding(playerId, stat, position) +{ + var ti = __camTruckInfo[playerId]; + ti.queue.push({ stat: stat, pos: camMakePos(position) }); +} + +//////////// privates + +function __camEnumFreeTrucks(player) +{ + var rawDroids = enumDroid(player, DROID_CONSTRUCT); + var droids = []; + for (let i = 0, l = rawDroids.length; i < l; ++i) + { + var droid = rawDroids[i]; + if (droid.order !== DORDER_BUILD && droid.order !== DORDER_HELPBUILD && droid.order !== DORDER_LINEBUILD) + { + droids.push(droid); + } + } + return droids; +} + +function __camGetClosestTruck(player, pos) +{ + var droids = __camEnumFreeTrucks(player); + if (droids.length <= 0) + { + return undefined; + } + + // Find out which one is the closest. + var minDroid = droids[0]; + var minDist = camDist(minDroid, pos); + for (let i = 1, l = droids.length; i < l; ++i) + { + var droid = droids[i]; + if (!droidCanReach(droid, pos.x, pos.y)) + { + continue; + } + var dist = camDist(droid, pos); + if (dist < minDist) + { + minDist = dist; + minDroid = droid; + } + } + return minDroid; +} + +function __camTruckTick() +{ + // Issue truck orders for each player. + // See comments inside the loop to understand priority. + for (const playerObj in __camTruckInfo) + { + var ti = __camTruckInfo[playerObj]; + var player = ti.player; + var truck; + + // First, build things that were explicitly ordered. + while (ti.queue.length > 0) + { + var qi = ti.queue[0]; + var pos = qi.pos; + var randx = 0; + var randy = 0; + + if (camDef(pos)) + { + // Find the truck most suitable for the job. + truck = __camGetClosestTruck(player, pos); + if (!camDef(truck)) + { + break; + } + } + else + { + // Build near any truck if pos was not specified. + var droids = __camEnumFreeTrucks(player); + if (droids.length <= 0) + { + break; + } + truck = droids[0]; + pos = truck; + randx = (camRand(100) < 50) ? -camRand(2) : camRand(2); + randy = (camRand(100) < 50) ? -camRand(2) : camRand(2); + } + + enableStructure(qi.stat, player); + var loc = pickStructLocation(truck, qi.stat, pos.x, pos.y); + if (camDef(loc) && camDef(truck)) + { + if (orderDroidBuild(truck, DORDER_BUILD, qi.stat, loc.x + randx, loc.y + randy)) + { + ti.queue.shift(); // consider it handled + } + } + } + + // Then, capture free oils. + var oils = enumFeature(ALL_PLAYERS, "OilResource"); + if (oils.length === 0) + { + continue; + } + var oil = oils[0]; + truck = __camGetClosestTruck(player, oil); + if (camDef(truck) && player !== NEXUS) + { + enableStructure("A0ResourceExtractor", player); + orderDroidBuild(truck, DORDER_BUILD, "A0ResourceExtractor", oil.x, oil.y); + continue; + } + } +} + +// called from eventDestroyed +function __camCheckDeadTruck(obj) +{ + if (camDef(__camTruckInfo[obj.player])) + { + // multi-turret templates are not supported yet + // cyborg engineers are not supported yet + // cannot use obj.weapons[] because spade is not a weapon + camQueueDroidProduction(obj.player, { + body: obj.body, + prop: obj.propulsion, + weap: "Spade1Mk1" + }); + } +} diff --git a/script/campaign/libcampaign_includes/victory.js b/script/campaign/libcampaign_includes/victory.js index b7400ee..13d7cee 100644 --- a/script/campaign/libcampaign_includes/victory.js +++ b/script/campaign/libcampaign_includes/victory.js @@ -3,17 +3,19 @@ // Victory celebration helpers. //////////////////////////////////////////////////////////////////////////////// -//;; ## camNextLevel(next level) +//;; ## camNextLevel(nextLevel) //;; -//;; A wrapper around ```loadLevel()```. Remembers to give bonus power -//;; for completing the mission faster. +//;; A wrapper around `loadLevel()`. Remembers to give bonus power for completing the mission faster. +//;; +//;; @param {string} nextLevel +//;; @returns {void} //;; function camNextLevel(nextLevel) { if (__camNeedBonusTime) { var bonusTime = getMissionTime(); - if (difficulty === EASY || difficulty === MEDIUM) + if (difficulty <= MEDIUM) { bonusTime = Math.floor(bonusTime * 0.75); } @@ -44,50 +46,44 @@ function camNextLevel(nextLevel) //;; ## camSetStandardWinLossConditions(kind, nextLevel, data) //;; -//;; Set victory and defeat conditions to one of the common -//;; options. On victory, load nextLevel. The extra data parameter -//;; contains extra data required to define some of the victory -//;; conditions. The following options are available: -//;; -//;; * ```CAM_VICTORY_STANDARD``` Defeat if all ground factories -//;; and construction droids are lost, or on mission timeout. -//;; Victory when all enemies are destroyed and all artifacts -//;; are recovered. -//;; * ```CAM_VICTORY_PRE_OFFWORLD``` Defeat on timeout. Victory on -//;; transporter launch, then load the sub-level. -//;; * ```CAM_VICTORY_OFFWORLD``` Defeat on timeout or all units lost. -//;; Victory when all artifacts are recovered and either all enemies -//;; are dead (not just bases) or all droids are at the LZ. -//;; Also automatically handles the "LZ compromised" message, -//;; which is why it needs to know reinforcement interval to restore. -//;; The following data parameter fields are available: -//;; * ```area``` The landing zone to return to. -//;; * ```message``` The "Return to LZ" message ID. Optional. -//;; * ```reinforcements``` Reinforcements interval, in seconds. +//;; Set victory and defeat conditions to one of the common options. On victory, load nextLevel. +//;; The extra data parameter contains extra data required to define some of the victory conditions. +//;; The following options are available: +//;; * `CAM_VICTORY_STANDARD` Defeat if all ground factories and construction droids are lost, or on mission timeout. +//;; Victory when all enemies are destroyed and all artifacts are recovered. +//;; * `CAM_VICTORY_PRE_OFFWORLD` Defeat on timeout. Victory on transporter launch, then load the sub-level. +//;; * `CAM_VICTORY_OFFWORLD` Defeat on timeout or all units lost. +//;; Victory when all artifacts are recovered and either all enemies are dead (not just bases) or all droids are at the LZ. +//;; Also automatically handles the "LZ compromised" message, which is why it needs to know reinforcement interval to restore. +//;; The following data parameter fields are available: +//;; * `area` The landing zone to return to. +//;; * `message` The "Return to LZ" message ID. Optional. +//;; * `reinforcements` Reinforcements interval, in seconds. //;; For standard and offworld victory, some extra data parameters can be defined: -//;; * ```callback``` A function callback to check for extra win/loss -//;; conditions. Return values are interpreted as follows: -//;; * __false__ means instant defeat ("objective failed"), -//;; * __true__ means victory as long as other standard victory -//;; conditions are met, -//;; * __undefined__ means suppress -//;; other victory checks ("clearly not won yet"). -//;; * ```victoryVideo``` Pass in the name of a video string here -//;; and it will be played before attempting to load the next level. +//;; * `callback` A function callback to check for extra win/loss conditions. Return values are interpreted as follows: +//;; * `false` means instant defeat ("objective failed"), +//;; * `true` means victory as long as other standard victory conditions are met, +//;; * `undefined` means suppress other victory checks ("clearly not won yet"). +//;; * `victoryVideo` Pass in the name of a video string here and it will be played before attempting to load the next level. //;; For offworld victory, some more extra data parameters can be defined: -//;; * ```retlz``` Force the player to return to the LZ area: -//;; * __false__ mission does not require a LZ return, -//;; * __true__ mission requires all units to be at LZ to win. -//;; * ```annihilate``` Player must destroy every thing on map to win: -//;; * __false__ mission does not require everything destroyed, -//;; * __true__ mission requires total map annihilation. -//;; * ```eliminateBases``` Instant win when all enemy units and bases are destroyed: -//;; * __false__ does not require all bases to be destroyed, -//;; * __true__ requires all bases destroyed. +//;; * `retlz` Force the player to return to the LZ area: +//;; * `false` mission does not require a LZ return, +//;; * `true` mission requires all units to be at LZ to win. +//;; * `annihilate` Player must destroy every thing on map to win: +//;; * `false` mission does not require everything destroyed, +//;; * `true` mission requires total map annihilation. +//;; * `eliminateBases` Instant win when all enemy units and bases are destroyed: +//;; * `false` does not require all bases to be destroyed, +//;; * `true` requires all bases destroyed. +//;; +//;; @param {string} kind +//;; @param {string} nextLevel +//;; @param {Object} data +//;; @returns {void} //;; function camSetStandardWinLossConditions(kind, nextLevel, data) { - switch(kind) + switch (kind) { case CAM_VICTORY_STANDARD: __camWinLossCallback = CAM_VICTORY_STANDARD; @@ -108,7 +104,6 @@ function camSetStandardWinLossConditions(kind, nextLevel, data) __camDefeatOnTimeout = true; __camVictoryData = data; setReinforcementTime(__camVictoryData.reinforcements); - __camSetOffworldLimits(); useSafetyTransport(false); break; case CAM_VICTORY_TIMEOUT: @@ -126,7 +121,12 @@ function camSetStandardWinLossConditions(kind, nextLevel, data) __camNextLevel = nextLevel; } -//Checks for extra win conditions defined in level scripts, if any. +//;; ## camCheckExtraObjective() +//;; +//;; Checks for extra win conditions defined in level scripts being met, if any. +//;; +//;; @returns {boolean|undefined} +//;; function camCheckExtraObjective() { var extraObjMet = true; @@ -150,13 +150,31 @@ function camCheckExtraObjective() return extraObjMet; } -//Message(s) the mission script can set to further explain specific victory conditions. -//Allows a single string or an array of strings. +//;; ## camSetExtraObjectiveMessage(message) +//;; +//;; Message(s) the mission script can set to further explain specific victory conditions. +//;; Allows a single string or an array of strings. +//;; +//;; @param {string|Object[]} message +//;; @returns {void} +//;; function camSetExtraObjectiveMessage(message) { __camExtraObjectiveMessage = message; } +//;; ## camClearConsoleOnVictoryMessage(clear) +//;; +//;; If the script wants to allow `__camSetupConsoleForVictoryConditions()` to clear the console. +//;; +//;; @param {boolean} clear +//;; @returns {void} +//;; +function camClearConsoleOnVictoryMessage(clear) +{ + __camAllowVictoryMsgClear = clear; +} + //////////// privates function __camGameLostCB() @@ -247,7 +265,7 @@ function __camPlayerDead() if (transporter.length > 0) { var cargoDroids = enumCargo(transporter[0]); - for (var i = 0, len = cargoDroids.length; i < len; ++i) + for (let i = 0, len = cargoDroids.length; i < len; ++i) { var virDroid = cargoDroids[i]; if (camDef(virDroid) && virDroid && virDroid.droidType === DROID_CONSTRUCT) @@ -263,7 +281,7 @@ function __camPlayerDead() { //Make the mission fail if no units are alive on map while having no factories. var droidCount = 0; - enumDroid(CAM_HUMAN_PLAYER).forEach(function(obj) { + enumDroid(CAM_HUMAN_PLAYER).forEach((obj) => { if (obj.droidType === DROID_SUPERTRANSPORTER) { //Don't count the transporter itself. This is for the case where @@ -278,8 +296,8 @@ function __camPlayerDead() }); dead = droidCount <= 0 && !haveFactories; - //Finish Beta-end early if they have no units and factories. - if (dead && (__camNextLevel === "CAM_3A")) + //Finish Beta-end early if they have no units and factories on Easy/Normal. + if (dead && (difficulty <= MEDIUM) && (__camNextLevel === "CAM_3A")) { cam_eventMissionTimeout(); //Early victory trigger return false; @@ -295,9 +313,9 @@ function __camTriggerLastAttack() { var enemies = enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false); // Do not order systems (sensor/trucks/repairs) to attack stuff. - enemies = enemies.filter(function(obj) { - return ((obj.type === DROID) && !camIsTransporter(obj) && !camIsSystemDroid(obj)); - }); + enemies = enemies.filter((obj) => ( + obj.type === DROID && !camIsTransporter(obj) && !camIsSystemDroid(obj) + )); camTrace(enemies.length, "enemy droids remaining"); camManageGroup(camMakeGroup(enemies), CAM_ORDER_ATTACK); __camLastAttackTriggered = true; @@ -319,7 +337,6 @@ function __camVictoryStandard() if (enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).length === 0) { __camGameWon(); - return; } else { @@ -333,7 +350,6 @@ function __camVictoryPreOffworld() if (__camPlayerDead()) { __camGameLost(); - return; } // victory hooked from eventTransporterExit } @@ -343,7 +359,6 @@ function __camVictoryTimeout() if (__camPlayerDead()) { __camGameLost(); - return; } // victory hooked from eventMissionTimeout } @@ -372,10 +387,9 @@ function __camVictoryOffworld() { if (camAllEnemyBasesEliminated()) { - var enemyDroids = enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).filter(function(obj) { - return obj.type === DROID; - }).length; - + var enemyDroids = enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).filter((obj) => ( + obj.type === DROID + )).length; if (!enemyDroids) { @@ -408,9 +422,9 @@ function __camVictoryOffworld() } //Make sure to only count droids here. - var atlz = enumArea(lz, CAM_HUMAN_PLAYER, false).filter(function(obj) { - return (obj.type === DROID && !camIsTransporter(obj)); - }).length; + var atlz = enumArea(lz, CAM_HUMAN_PLAYER, false).filter((obj) => ( + obj.type === DROID && !camIsTransporter(obj) + )).length; if (((!forceLZ && !destroyAll) || (forceLZ && destroyAll && !enemyLen) || (forceLZ && !destroyAll)) && (atlz === total)) { __camGameWon(); @@ -480,22 +494,50 @@ function __camVictoryOffworld() } } -function __camShowVictoryConditions(forceMessage) +function __camSetupConsoleForVictoryConditions() { - if (!camDef(forceMessage)) + // Console clears are only done when collecting artifacts or destroying bases. + if (__camAllowVictoryMsgClear) { - if (__camVictoryMessageThrottle + camSecondsToMilliseconds(10) > gameTime) - { - return; - } - if (!camDef(__camNextLevel)) - { - return; // fastplay / tutorial. Should be a better identifier for this. - } - if (__camWinLossCallback === CAM_VICTORY_PRE_OFFWORLD) + clearConsole(); + } + + queue("__camShowVictoryConditions", camSecondsToMilliseconds(0.5)); +} + +function __camShowBetaHint() +{ + return ((camDiscoverCampaign() === BETA_CAMPAIGN_NUMBER) && (difficulty === HARD || difficulty === INSANE)); +} + +function __camShowBetaHintEarly() +{ + if (!camDef(__camWinLossCallback) || (__camWinLossCallback !== CAM_VICTORY_PRE_OFFWORLD)) + { + return; + } + + if (__camShowBetaHint()) + { + __camShowVictoryConditions(); + } +} + +function __camShowVictoryConditions() +{ + if (!camDef(__camNextLevel)) + { + return; // fastplay / tutorial. Should be a better identifier for this. + } + + if (__camWinLossCallback === CAM_VICTORY_PRE_OFFWORLD) + { + if (__camShowBetaHint()) { - return; // do not need this on these missions. + console(_("Hard / Insane difficulty hint:")); + console(_("Fortify a strong base across the map to protect yourself from the Collective")); } + return; // do not need this on these missions. } const ANNIHILATE_MESSAGE = _("Destroy all enemy units and structures"); @@ -503,7 +545,7 @@ function __camShowVictoryConditions(forceMessage) var unitsOnMap = 0; var structuresOnMap = 0; - enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).forEach(function(obj) { + enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).forEach((obj) => { if (obj.type === DROID) { ++unitsOnMap; @@ -550,7 +592,7 @@ function __camShowVictoryConditions(forceMessage) { if (__camExtraObjectiveMessage instanceof Array) { - for (var i = 0, len = __camExtraObjectiveMessage.length; i < len; ++i) + for (let i = 0, len = __camExtraObjectiveMessage.length; i < len; ++i) { var mes = __camExtraObjectiveMessage[i]; console(mes); @@ -561,6 +603,4 @@ function __camShowVictoryConditions(forceMessage) console(__camExtraObjectiveMessage); } } - - __camVictoryMessageThrottle = gameTime; } diff --git a/script/campaign/libcampaign_includes/video.js b/script/campaign/libcampaign_includes/video.js new file mode 100644 index 0000000..6fa6d82 --- /dev/null +++ b/script/campaign/libcampaign_includes/video.js @@ -0,0 +1,103 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Video playback related logic +//////////////////////////////////////////////////////////////////////////////// + +// Be aware that eventVideoDone will be triggered for each video +// and will be received by the mission script's eventVideoDone, should it exist. + +//;; ## camPlayVideos(data) +//;; +//;; Formats for parameter `data`: `{video: "video string", type: MISS_MSG/CAMP_MSG, immediate: true/false}` OR +//;; `["sound file", {video: "video string", type: MISS_MSG/CAMP_MSG, immediate: true/false}, ...]` +//;; object property "immediate" is optional since most videos are immediate. +//;; If videos is an array, queue up all of them for immediate playing. +//;; This function will play one video sequence should one be provided. +//;; Also, should a sound file be in a string (`pcvX.ogg`) `__camEnqueueVideos()` will recognize it +//;; as a sound to play before a video. Of which is only supported when parameter `data` is an array. +//;; +//;; @param {Object|Object[]} data +//;; @returns {void} +//;; +function camPlayVideos(data) +{ + if (data instanceof Array) + { + __camVideoSequences = data; + __camEnqueueVideos(); + } + else if (data instanceof Object) + { + if (!camDef(data.video) || !camIsString(data.video)) + { + camDebug("Problem with video property."); + return; + } + if (!camDef(data.type) || (data.type !== MISS_MSG && data.type !== CAMP_MSG)) + { + camDebug("Video message type was NOT specified. Please specify one."); + return; + } + if (!camDef(data.immediate)) + { + data.immediate = true; + } + hackAddMessage(data.video, data.type, CAM_HUMAN_PLAYER, data.immediate); + } + else + { + camDebug("Funky camPlayVideos() parameter!"); + } +} + +//////////// privates + +// Play all stored videos and sounds one after the other. +// cam_eventVideoDone will call this function repeatedly. +function __camEnqueueVideos() +{ + if (__camVideoSequences.length === 0) + { + return; //Nothing to play + } + + const SOUND_IDENTIFER = ".ogg"; + var what = __camVideoSequences[0]; + + // Check if this is a sound to play before some sequence. + if (typeof what === "string" && what.indexOf(SOUND_IDENTIFER) !== -1) + { + playSound(what); + queue("__camEnqueueVideos", camSecondsToMilliseconds(3.2)); //more than enough for most sounds. + } + else if (typeof what === "object") + { + var play = true; + + if (!camDef(what.video) || !camIsString(what.video)) + { + camDebug("Problem with video property."); + play = false; + } + if (!camDef(what.type) || (what.type !== MISS_MSG && what.type !== CAMP_MSG)) + { + camDebug("Video message type was NOT specified. Please specify one.") + play = false; + } + if (!camDef(what.immediate)) + { + what.immediate = true; + } + + if (play) + { + hackAddMessage(what.video, what.type, CAM_HUMAN_PLAYER, what.immediate); + } + } + else + { + camDebug("Funky camPlayVideos() parameter!"); + } + + __camVideoSequences.shift(); +} diff --git a/script/campaign/libcampaign_includes/vtol.js b/script/campaign/libcampaign_includes/vtol.js new file mode 100644 index 0000000..b6eb195 --- /dev/null +++ b/script/campaign/libcampaign_includes/vtol.js @@ -0,0 +1,259 @@ + +//////////////////////////////////////////////////////////////////////////////// +// VTOL management. +// These functions create the hit and run vtols for the given player. +// Vtol rearming is handled in group management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSetVtolData(player, startPos, exitPos, templates, timer, [obj[, extras]]) +//;; +//;; Setup hit and runner VTOLs. NOTE: Will almost immediately spawn VTOLs upon calling this function. +//;; `Player`: What player number the VTOLs will belong to. +//;; `StartPos`: Starting position object where VTOLs will spawn. Can be an array. Use undefined for random map edge location. +//;; `ExitPos`: Exit position object where VTOLs will despawn at. +//;; `Templates`: An array of templates that the spawn uses. +//;; `Timer`: How much time in milliseconds the VTOLs will wait to spawn again. +//;; `Obj`: A game object that will stop the spawn when it no longer exists. May be undefined for no explicit end condition. +//;; `Extras`: An object with possible members: +//;; `limit`: Numeric limit of a VTOL design in regards to the parameter Templates. May be an array paired to Templates. +//;; `alternate`: A boolean to force the spawn to use one of the designs at a time in parameter Templates. +//;; `altIdx`: Which design index the spawn will first cycle through the list of templates from. +//;; `minVTOLs`: Minimum amount of VTOLs that will spawn. +//;; `maxRandomVTOLs`: Random amount of VTOLs that will spawn in addition to minVTOLs. +//;; +//;; @param {number} player +//;; @param {Object|Object[]|undefined} startPos +//;; @param {Object} exitPos +//;; @param {Object[]} templates +//;; @param {number} timer +//;; @param {Object} obj +//;; @param {Object} extras +//;; @returns {void} +//;; +function camSetVtolData(player, startPos, exitPos, templates, timer, obj, extras) +{ + __camVtolDataSystem.push({ + player: player, + startPosition: startPos, + exitPosition: camMakePos(exitPos), + templates: templates, + spawnStopObject: obj, + extras: extras, + timer: timer, + nextSpawnTime: timer + gameTime, + isFirstSpawn: true, + active: true + }); +} + +//;; ## camSetVtolSpawnState(state, identifier) +//;; +//;; Sets the active status of a VTOL spawn point. The identifier can either be the +//;; the index number or the label of the object that stops the spawn naturally. +//;; +//;; @param {boolean} state +//;; @param {number|string} identifier +//;; @returns {void} +//;; +function camSetVtolSpawnState(state, identifier) +{ + if (typeof identifier === "number") + { + __camVtolDataSystem[identifier].active = state; + } + else if (typeof identifier === "string") + { + for (let idx = 0, len = __camVtolDataSystem.length; idx < len; ++idx) + { + if (__camVtolDataSystem[idx].spawnStopObject === identifier) + { + __camVtolDataSystem[idx].active = state; + break; + } + } + } + else + { + camDebug("camSetVtolSpawn() expected a number or game object label string"); + } +} + +//;; ## camSetVtolSpawnStateAll(state) +//;; +//;; Sets the active status of all VTOL spawns to `state`. +//;; +//;; @param {boolean} state +//;; @returns {void} +//;; +function camSetVtolSpawnStateAll(state) +{ + for (let idx = 0, len = __camVtolDataSystem.length; idx < len; ++idx) + { + camSetVtolSpawnState(state, idx); + } +} + +//////////// privates + +function __checkVtolSpawnObject() +{ + for (let idx = 0, len = __camVtolDataSystem.length; idx < len; ++idx) + { + if (__camVtolDataSystem[idx].active && camDef(__camVtolDataSystem[idx].spawnStopObject)) + { + if (getObject(__camVtolDataSystem[idx].spawnStopObject) === null) + { + camSetVtolSpawnState(false, idx); //Deactivate hit and runner VTOLs. + } + } + } +} + +function __camSpawnVtols() +{ + for (let idx = 0; idx < __camVtolDataSystem.length; ++idx) + { + if (!__camVtolDataSystem[idx].active) + { + continue; + } + if (gameTime < __camVtolDataSystem[idx].nextSpawnTime) + { + if (__camVtolDataSystem[idx].isFirstSpawn) + { + __camVtolDataSystem[idx].isFirstSpawn = false; + } + else + { + continue; + } + } + else + { + __camVtolDataSystem[idx].nextSpawnTime = gameTime + __camVtolDataSystem[idx].timer; + } + + // Default VTOL amounts + let minVtolAmount = 5; + let maxRandomAdditions = 2; + + if (camDef(__camVtolDataSystem[idx].extras)) + { + if (camDef(__camVtolDataSystem[idx].extras.minVTOLs)) + { + minVtolAmount = __camVtolDataSystem[idx].extras.minVTOLs; + } + if (camDef(__camVtolDataSystem[idx].extras.maxRandomVTOLs)) + { + maxRandomAdditions = __camVtolDataSystem[idx].extras.maxRandomVTOLs; + } + } + + let amount = minVtolAmount + camRand(maxRandomAdditions + 1); + let droids = []; + let pos; + + //Make sure to catch multiple start positions also. + if (__camVtolDataSystem[idx].startPosition instanceof Array) + { + pos = __camVtolDataSystem[idx].startPosition[camRand(__camVtolDataSystem[idx].startPosition.length)]; + } + else if (camDef(__camVtolDataSystem[idx].startPosition) && __camVtolDataSystem[idx].startPosition) + { + pos = __camVtolDataSystem[idx].startPosition; + } + else + { + pos = camGenerateRandomMapEdgeCoordinate(); + } + + if (!camDef(__camVtolDataSystem[idx].extras)) + { + //Pick some droids randomly. + for (let i = 0; i < amount; ++i) + { + droids.push(__camVtolDataSystem[idx].templates[camRand(__camVtolDataSystem[idx].templates.length)]); + } + } + else + { + var lim = amount; + var alternate = false; + if (camDef(__camVtolDataSystem[idx].extras.alternate)) + { + alternate = __camVtolDataSystem[idx].extras.alternate; //Only use one template type + } + if (!camDef(__camVtolDataSystem[idx].extras.altIdx)) + { + __camVtolDataSystem[idx].extras.altIdx = 0; + } + if (camDef(__camVtolDataSystem[idx].extras.limit)) + { + //support an array of limits for each template + if (__camVtolDataSystem[idx].extras.limit instanceof Array) + { + lim = __camVtolDataSystem[idx].extras.limit[__camVtolDataSystem[idx].extras.altIdx]; //max templates to use + } + else + { + lim = __camVtolDataSystem[idx].extras.limit; + } + } + + for (let i = 0; i < lim; ++i) + { + if (!alternate) + { + droids.push(__camVtolDataSystem[idx].templates[camRand(__camVtolDataSystem[idx].templates.length)]); + } + else + { + droids.push(__camVtolDataSystem[idx].templates[__camVtolDataSystem[idx].extras.altIdx]); + } + } + + if (__camVtolDataSystem[idx].extras.altIdx < (__camVtolDataSystem[idx].templates.length - 1)) + { + ++__camVtolDataSystem[idx].extras.altIdx; + } + else + { + __camVtolDataSystem[idx].extras.altIdx = 0; + } + } + + //...And send them. + camSendReinforcement(__camVtolDataSystem[idx].player, camMakePos(pos), droids, CAM_REINFORCE_GROUND, { + order: CAM_ORDER_ATTACK, + data: { regroup: false, count: -1 } + }); + } +} + +function __camRetreatVtols() +{ + for (let idx = 0; idx < __camVtolDataSystem.length; ++idx) + { + if (camDef(__camVtolDataSystem[idx].exitPosition.x) && + camDef(__camVtolDataSystem[idx].exitPosition.y) && + enumStruct(__camVtolDataSystem[idx].player, REARM_PAD).length === 0) + { + const VTOL_RETURN_HEALTH = 40; // run-away if health is less than... + const VTOL_RETURN_ARMED = 1; // run-away if weapon ammo is less than... + let vtols = enumDroid(__camVtolDataSystem[idx].player).filter((obj) => (isVTOL(obj))); + + for (let i = 0, len = vtols.length; i < len; ++i) + { + let vt = vtols[i]; + for (let c = 0, len2 = vt.weapons.length; c < len2; ++c) + { + if ((vt.order === DORDER_RTB) || (vt.weapons[c].armed < VTOL_RETURN_ARMED) || (vt.health < VTOL_RETURN_HEALTH)) + { + orderDroidLoc(vt, DORDER_MOVE, __camVtolDataSystem[idx].exitPosition.x, __camVtolDataSystem[idx].exitPosition.y); + break; + } + } + } + } + } +} diff --git a/script/rules.js b/script/rules.js new file mode 100644 index 0000000..070f4c3 --- /dev/null +++ b/script/rules.js @@ -0,0 +1,470 @@ +// General rules for the campaign +// +// * Enable unit design and minimap only when an HQ exists +receiveAllEvents(true); //Needed to allow enemy research to apply to them + +include("script/weather.js"); + +var mainReticule = false; +const CREATE_LIKE_EVENT = 0; +const DESTROY_LIKE_EVENT = 1; +const TRANSFER_LIKE_EVENT = 2; + +function reticuleManufactureCheck() +{ + var structureComplete = false; + var facs = [FACTORY, CYBORG_FACTORY, VTOL_FACTORY,]; + + for (let i = 0, len = facs.length; i < len; ++i) + { + var facType = facs[i]; + var offWorldFacs = enumStructOffWorld(selectedPlayer, facType); + var onMapFacs = enumStruct(selectedPlayer, facType); + + if (offWorldFacs !== null) + { + for (let j = 0, len2 = offWorldFacs.length; j < len2; ++j) + { + if (offWorldFacs[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + if (!structureComplete) + { + for (let j = 0, len2 = onMapFacs.length; j < len2; ++j) + { + if (onMapFacs[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + + if (structureComplete === true) + { + break; + } + } + + if (structureComplete === true && getMissionType() !== LDS_EXPAND_LIMBO) + { + setReticuleButton(1, _("Manufacture (F1)"), "image_manufacture_up.png", "image_manufacture_down.png"); + } + else + { + setReticuleButton(1, _("Manufacture - build factory first"), "", ""); + } +} + +function reticuleResearchCheck() +{ + var structureComplete = false; + var labs = [RESEARCH_LAB,]; + + for (let i = 0, len = labs.length; i < len; ++i) + { + var resType = labs[i]; + var offWorldLabs = enumStructOffWorld(selectedPlayer, resType); + var onMapLabs = enumStruct(selectedPlayer, resType); + + if (offWorldLabs !== null) + { + for (let j = 0, len2 = offWorldLabs.length; j < len2; ++j) + { + if (offWorldLabs[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + if (!structureComplete) + { + for (let j = 0, len2 = onMapLabs.length; j < len2; ++j) + { + if (onMapLabs[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + + if (structureComplete === true) + { + break; + } + } + + if (structureComplete === true && getMissionType() !== LDS_EXPAND_LIMBO) + { + setReticuleButton(2, _("Research (F2)"), "image_research_up.png", "image_research_down.png"); + } + else + { + setReticuleButton(2, _("Research - build research facility first"), "", ""); + } +} + +function reticuleBuildCheck() +{ + if (enumDroid(selectedPlayer, DROID_CONSTRUCT).length > 0) + { + setReticuleButton(3, _("Build (F3)"), "image_build_up.png", "image_build_down.png"); + } + else + { + setReticuleButton(3, _("Build - manufacture constructor droids first"), "", ""); + } +} + +function reticuleDesignCheck() +{ + var structureComplete = false; + var hqs = [HQ,]; + + for (let i = 0, len = hqs.length; i < len; ++i) + { + var hqType = hqs[i]; + var offWorldHq = enumStructOffWorld(selectedPlayer, hqType); + var onMapHq = enumStruct(selectedPlayer, hqType); + + if (offWorldHq !== null) + { + for (let j = 0, len2 = offWorldHq.length; j < len2; ++j) + { + if (offWorldHq[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + if (!structureComplete) + { + for (let j = 0, len2 = onMapHq.length; j < len2; ++j) + { + if (onMapHq[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + + if (structureComplete === true) + { + break; + } + } + + if (structureComplete === true) + { + setReticuleButton(4, _("Design (F4)"), "image_design_up.png", "image_design_down.png"); + setMiniMap(true); + } + else + { + setReticuleButton(4, _("Design - construct HQ first"), "", ""); + setMiniMap(false); + } +} + +function reticuleCommandCheck() +{ + if (enumDroid(selectedPlayer, DROID_COMMAND).length > 0) + { + setReticuleButton(6, _("Commanders (F6)"), "image_commanddroid_up.png", "image_commanddroid_down.png"); + } + else + { + setReticuleButton(6, _("Commanders - manufacture commanders first"), "", ""); + } +} + +function setMainReticule() +{ + setReticuleButton(0, _("Close"), "image_cancel_up.png", "image_cancel_down.png"); + reticuleManufactureCheck(); + reticuleResearchCheck(); + reticuleBuildCheck(); + reticuleDesignCheck(); + setReticuleButton(5, _("Intelligence Display (F5)"), "image_intelmap_up.png", "image_intelmap_down.png"); + reticuleCommandCheck(); +} + +function reticuleUpdate(obj, eventType) +{ + var update_reticule = false; + + if (eventType === TRANSFER_LIKE_EVENT) + { + update_reticule = true; + } + else if (obj.player === selectedPlayer && obj.type === STRUCTURE) + { + if (obj.stattype === HQ || obj.stattype === RESEARCH_LAB || obj.stattype === CYBORG_FACTORY || + obj.stattype === VTOL_FACTORY || obj.stattype === FACTORY || obj.stattype === COMMAND_CONTROL) + { + update_reticule = true; + } + } + else if (obj.player === selectedPlayer && obj.type === DROID) + { + if (obj.droidType === DROID_CONSTRUCT || obj.droidType === DROID_COMMAND || + obj.droidType === DROID_TRANSPORTER || obj.droidType === DROID_SUPERTRANSPORTER) + { + update_reticule = true; + } + } + + if (mainReticule && update_reticule) + { + //Wait a tick for the counts to update + const TICK_TIME = 100; + queue("setMainReticule", TICK_TIME); + } +} + +function setupGame() +{ + //Use dark fog for campaign + setRevealStatus(false); + + if (tilesetType === "ARIZONA") + { + setCampaignNumber(1); + } + else if (tilesetType === "URBAN") + { + setCampaignNumber(2); + replaceTexture("page-7-barbarians-arizona.png", "page-7-barbarians-urban.png"); + replaceTexture("page-8-player-buildings-bases.png", "page-8-player-buildings-bases-urban.png"); + replaceTexture("page-9-player-buildings-bases.png", "page-9-player-buildings-bases-urban.png"); + } + else if (tilesetType === "ROCKIES") + { + setCampaignNumber(3); + replaceTexture("page-8-player-buildings-bases.png", "page-8-player-buildings-bases-rockies.png"); + replaceTexture("page-9-player-buildings-bases.png", "page-9-player-buildings-bases-rockies.png"); + replaceTexture("page-7-barbarians-arizona.png", "page-7-barbarians-kevlar.png"); + } + + if (tilesetType !== "ARIZONA") + { + setSky("texpages/page-25-sky-urban.png", 0.5, 10000.0); + } + + // Disable by default + setMiniMap(false); + // Enable all templates + setDesign(true); + + showInterface(); // init buttons. This MUST come before setting the reticule button data + setMainReticule(); + mainReticule = true; + queue("resetPower", 1000); +} + +function eventGameLoaded() +{ + setupGame(); +} + +function eventGameInit() +{ + setupGame(); + setTimer("autoSave", 10*60*1000); +} + +function setLimits() +{ + setDroidLimit(selectedPlayer, 101, DROID_ANY); //note: the transporter is a unit you own + setDroidLimit(selectedPlayer, 10, DROID_COMMAND); + setDroidLimit(selectedPlayer, 15, DROID_CONSTRUCT); + + for (let i = 0; i < maxPlayers; ++i) + { + setStructureLimits("A0PowerGenerator", 5, i); + setStructureLimits("A0ResourceExtractor", 200, i); + setStructureLimits("A0ResearchFacility", 5, i); + setStructureLimits("A0LightFactory", 5, i); + setStructureLimits("A0CyborgFactory", 5, i); + setStructureLimits("A0VTolFactory1", 5, i); + //non human players get five of these + setStructureLimits("A0CommandCentre", i === selectedPlayer ? 1 : 5, i); + setStructureLimits("A0ComDroidControl", i === selectedPlayer ? 1 : 5, i); + setStructureLimits("A0CommandCentreNP", 5, i); + setStructureLimits("A0CommandCentreCO", 5, i); + setStructureLimits("A0CommandCentreNE", 5, i); + } +} + +function resetPower() +{ + var powerLimit = 999999; + var powerProductionRate = 100; + + // set income modifier/power storage for player 0 (human) + if (difficulty <= EASY) + { + powerProductionRate = 115; + } + else if (difficulty === HARD) + { + powerProductionRate = 85; + powerLimit = 20000; //base value for Alpha + + if (tilesetType === "URBAN") + { + powerLimit += 5000; + } + else if (tilesetType === "ROCKIES") + { + powerLimit += 10000; + } + } + else if (difficulty === INSANE) + { + powerProductionRate = 70; + powerLimit = 12000; //base value for Alpha + + if (tilesetType === "URBAN") + { + powerLimit += 2000; + } + else if (tilesetType === "ROCKIES") + { + powerLimit += 4000; + } + } + + setPowerModifier(powerProductionRate); + setPowerStorageMaximum(powerLimit); + if (playerPower(selectedPlayer) >= powerLimit) + { + setPower(powerLimit - 1, selectedPlayer); + } +} + +function eventStartLevel() +{ + setLimits(); + if (tilesetType === "URBAN" || tilesetType === "ROCKIES") + { + weatherCycle(); + setTimer("weatherCycle", 45000); + } +} + +function eventDroidBuilt(droid, structure) +{ + if (droid.player === selectedPlayer) + { + reticuleUpdate(droid, CREATE_LIKE_EVENT); + } +} + +function eventStructureBuilt(struct, droid) +{ + if (struct.player === selectedPlayer) + { + reticuleUpdate(struct, CREATE_LIKE_EVENT); + } +} + +function eventStructureDemolish(struct, droid) +{ + if (struct.player === selectedPlayer) + { + reticuleUpdate(struct, DESTROY_LIKE_EVENT); + } +} + +function eventStructureUpgradeStarted(struct) +{ + if (struct.player === selectedPlayer) + { + reticuleUpdate(struct, TRANSFER_LIKE_EVENT); + } +} + +function eventDestroyed(victim) +{ + if (victim.player === selectedPlayer) + { + reticuleUpdate(victim, DESTROY_LIKE_EVENT); + } +} + +function eventObjectTransfer(obj, from) +{ + if (obj.player === selectedPlayer || from === selectedPlayer) + { + reticuleUpdate(obj, TRANSFER_LIKE_EVENT); + } +} + +//Could be the last remaining trucks are on it. +function eventTransporterLanded(transport) +{ + if (transport.player === selectedPlayer) + { + reticuleUpdate(transport, TRANSFER_LIKE_EVENT); + } +} + +function eventResearched(research, structure, player) +{ + // NOTE: Research upgrades are handled by the C++ core game engine since 4.1.0 +} + +var lastHitTime = 0; +var attackRecord = []; +function eventAttacked(victim, attacker) +{ + if ((victim.player === selectedPlayer && attacker.player !== selectedPlayer) && gameTime > lastHitTime + 2000) + { + lastHitTime = gameTime; + var newRecord = []; + var soundWorthy = true; // Whether an attack alert sound should be played + for (var i in attackRecord) + { + if (attackRecord[i].time < gameTime - 20000) + { + // This attack happened over 20 seconds ago, forget about it + continue; + } + var oldAttack = attackRecord[i]; + newRecord.push(oldAttack); + if (oldAttack.type === victim.type + && distBetweenTwoPoints(victim.x, victim.y, oldAttack.x, oldAttack.y) <= 12) + { + // The new attack has occured near a recent attack + // of the same type, don't bother playing a sound alert + soundWorthy = false; + } + } + if (!soundWorthy) + { + return; + } + + // Add this attack to the record + newRecord.push({time: gameTime, type: victim.type, x: victim.x, y: victim.y}); + attackRecord = newRecord; + + if (victim.type === STRUCTURE) + { + playSound("pcv337.ogg", victim.x, victim.y, victim.z); // "Structure under attack!" + } + else + { + playSound("pcv399.ogg", victim.x, victim.y, victim.z); // "Unit under attack!" + } + } +} diff --git a/stats/body.json b/stats/body.json index 3efdcad..d7222ba 100644 --- a/stats/body.json +++ b/stats/body.json @@ -103,30 +103,24 @@ "powerOutput": 23000, "propulsionExtraModels": { "HalfTrack": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack02": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack03": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "V-Tol": { - "left": "prhlvtl2.pie", - "right": "prhrvtl2.pie", + "left": "prhvtl2.pie", "moving": "fxvtl10.pie" }, "V-Tol02": { - "left": "prhlvtl2.pie", - "right": "prhrvtl2.pie", + "left": "prhvtl2.pie", "moving": "fxvtl10.pie" }, "V-Tol03": { - "left": "prhlvtl2.pie", - "right": "prhrvtl2.pie", + "left": "prhvtl2.pie", "moving": "fxvtl10.pie" }, "hover01": { @@ -139,28 +133,22 @@ "left": "prhhov1.pie" }, "tracked01": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked02": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked03": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "wheeled01": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled02": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled03": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" } }, "size": "HEAVY", @@ -181,30 +169,24 @@ "powerOutput": 20000, "propulsionExtraModels": { "HalfTrack": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack02": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack03": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "V-Tol": { - "left": "prhlvtl3.pie", - "right": "prhrvtl3.pie", + "left": "prhvtl3.pie", "moving": "fxvtl11.pie" }, "V-Tol02": { - "left": "prhlvtl3.pie", - "right": "prhrvtl3.pie", + "left": "prhvtl3.pie", "moving": "fxvtl11.pie" }, "V-Tol03": { - "left": "prhlvtl3.pie", - "right": "prhrvtl3.pie", + "left": "prhvtl3.pie", "moving": "fxvtl11.pie" }, "hover01": { @@ -217,28 +199,22 @@ "left": "prhhov1.pie" }, "tracked01": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked02": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked03": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "wheeled01": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled02": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled03": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" } }, "size": "HEAVY", @@ -259,30 +235,24 @@ "powerOutput": 20000, "propulsionExtraModels": { "HalfTrack": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack02": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack03": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "V-Tol": { - "left": "prhlvtl4.pie", - "right": "prhrvtl4.pie", + "left": "prhvtl4.pie", "moving": "fxvtl12.pie" }, "V-Tol02": { - "left": "prhlvtl4.pie", - "right": "prhrvtl4.pie", + "left": "prhvtl4.pie", "moving": "fxvtl12.pie" }, "V-Tol03": { - "left": "prhlvtl4.pie", - "right": "prhrvtl4.pie", + "left": "prhvtl4.pie", "moving": "fxvtl12.pie" }, "hover01": { @@ -295,28 +265,22 @@ "left": "prhhov1.pie" }, "tracked01": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked02": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked03": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "wheeled01": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled02": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled03": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" } }, "size": "HEAVY", @@ -337,30 +301,24 @@ "powerOutput": 5000, "propulsionExtraModels": { "HalfTrack": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack02": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack03": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "V-Tol": { - "left": "prllvtl1.pie", - "right": "prlrvtl1.pie", + "left": "prlvtl1.pie", "moving": "fxvtl01.pie" }, "V-Tol02": { - "left": "prllvtl1.pie", - "right": "prlrvtl1.pie", + "left": "prlvtl1.pie", "moving": "fxvtl01.pie" }, "V-Tol03": { - "left": "prllvtl1.pie", - "right": "prlrvtl1.pie", + "left": "prlvtl1.pie", "moving": "fxvtl01.pie" }, "hover01": { @@ -373,28 +331,22 @@ "left": "prlhov1.pie" }, "tracked01": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked02": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked03": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "wheeled01": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled02": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled03": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" } }, "size": "LIGHT", @@ -415,30 +367,24 @@ "powerOutput": 6500, "propulsionExtraModels": { "HalfTrack": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack02": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack03": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "V-Tol": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "V-Tol02": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "V-Tol03": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "hover01": { @@ -451,28 +397,22 @@ "left": "prlhov1.pie" }, "tracked01": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked02": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked03": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "wheeled01": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled02": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled03": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" } }, "size": "LIGHT", @@ -493,30 +433,24 @@ "powerOutput": 5000, "propulsionExtraModels": { "HalfTrack": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack02": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack03": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "V-Tol": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "V-Tol02": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "V-Tol03": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "hover01": { @@ -529,28 +463,22 @@ "left": "prlhov1.pie" }, "tracked01": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked02": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked03": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "wheeled01": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled02": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled03": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" } }, "size": "LIGHT", @@ -571,30 +499,24 @@ "powerOutput": 5000, "propulsionExtraModels": { "HalfTrack": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack02": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack03": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "V-Tol": { - "left": "prllvtl3.pie", - "right": "prlrvtl3.pie", + "left": "prlvtl3.pie", "moving": "fxvtl04.pie" }, "V-Tol02": { - "left": "prllvtl3.pie", - "right": "prlrvtl3.pie", + "left": "prlvtl3.pie", "moving": "fxvtl04.pie" }, "V-Tol03": { - "left": "prllvtl3.pie", - "right": "prlrvtl3.pie", + "left": "prlvtl3.pie", "moving": "fxvtl04.pie" }, "hover01": { @@ -607,28 +529,22 @@ "left": "prlhov1.pie" }, "tracked01": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked02": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked03": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "wheeled01": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled02": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled03": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" } }, "size": "LIGHT", @@ -649,30 +565,24 @@ "powerOutput": 15000, "propulsionExtraModels": { "HalfTrack": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack02": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack03": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "V-Tol": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol02": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol03": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "hover01": { @@ -685,28 +595,22 @@ "left": "prmhov1.pie" }, "tracked01": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked02": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked03": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "wheeled01": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled02": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled03": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" } }, "size": "MEDIUM", @@ -727,30 +631,24 @@ "powerOutput": 18000, "propulsionExtraModels": { "HalfTrack": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack02": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack03": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "V-Tol": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol02": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol03": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "hover01": { @@ -763,28 +661,22 @@ "left": "prmhov1.pie" }, "tracked01": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked02": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked03": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "wheeled01": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled02": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled03": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" } }, "size": "MEDIUM", @@ -805,64 +697,52 @@ "powerOutput": 15000, "propulsionExtraModels": { "HalfTrack": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack02": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack03": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "V-Tol": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol02": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol03": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "hover01": { - "left": "prmhov1.pie" + "left": "prmhov2.pie" }, "hover02": { - "left": "prmhov1.pie" + "left": "prmhov2.pie" }, "hover03": { - "left": "prmhov1.pie" + "left": "prmhov2.pie" }, "tracked01": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked02": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked03": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "wheeled01": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled02": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled03": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" } }, "size": "MEDIUM", @@ -883,30 +763,24 @@ "powerOutput": 15000, "propulsionExtraModels": { "HalfTrack": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack02": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack03": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "V-Tol": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol02": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol03": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "hover01": { @@ -919,28 +793,22 @@ "left": "prmhov1.pie" }, "tracked01": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked02": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked03": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "wheeled01": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled02": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled03": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" } }, "size": "MEDIUM", @@ -961,30 +829,24 @@ "powerOutput": 18000, "propulsionExtraModels": { "HalfTrack": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack02": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack03": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "V-Tol": { - "left": "prhlvtl1.pie", - "right": "prhrvtl1.pie", + "left": "prhvtl1.pie", "moving": "fxvtl09.pie" }, "V-Tol02": { - "left": "prhlvtl1.pie", - "right": "prhrvtl1.pie", + "left": "prhvtl1.pie", "moving": "fxvtl09.pie" }, "V-Tol03": { - "left": "prhlvtl1.pie", - "right": "prhrvtl1.pie", + "left": "prhvtl1.pie", "moving": "fxvtl09.pie" }, "hover01": { @@ -997,28 +859,22 @@ "left": "prhhov1.pie" }, "tracked01": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked02": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked03": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "wheeled01": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled02": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled03": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" } }, "size": "HEAVY", @@ -1311,12 +1167,11 @@ }, "ZNULLBODY": { "id": "ZNULLBODY", - "model": "mibnkbod.pie", + "model": "znullbody.pie", "name": "*Z NULL BODY*", "propulsionExtraModels": { "ZNULLPROP": { - "left": "mibnkdrl.pie", - "right": "mibnkdrr.pie" + "left": "znullfull.pie" } }, "size": "LIGHT", diff --git a/stats/propulsion.json b/stats/propulsion.json index 9c873a9..32a6a4e 100644 --- a/stats/propulsion.json +++ b/stats/propulsion.json @@ -67,7 +67,7 @@ "designable": 1, "hitpointPctOfBody": 200, "id": "HalfTrack", - "model": "PRLRHTR1.PIE", + "model": "prlhtr1.PIE", "name": "Half-tracks", "skidDeceleration": 500, "speed": 150, @@ -80,7 +80,7 @@ "designable": 1, "hitpointPctOfBody": 350, "id": "HalfTrack02", - "model": "PRLRHTR1.PIE", + "model": "prlhtr1.PIE", "name": "Half-tracks II", "skidDeceleration": 500, "speed": 150, @@ -93,7 +93,7 @@ "designable": 1, "hitpointPctOfBody": 500, "id": "HalfTrack03", - "model": "PRLRHTR1.PIE", + "model": "prlhtr1.PIE", "name": "Half-tracks III", "skidDeceleration": 500, "speed": 150, @@ -150,7 +150,7 @@ }, "ZNULLPROP": { "id": "ZNULLPROP", - "model": "MIBNKDRL.PIE", + "model": "znullfull.PIE", "name": "Z NULL PROP", "type": "Wheeled" }, @@ -199,7 +199,7 @@ "designable": 1, "hitpointPctOfBody": 300, "id": "tracked01", - "model": "PRLRTRK1.PIE", + "model": "prltrk1.PIE", "name": "Tracks", "speed": 125, "spinAngle": 45, @@ -212,7 +212,7 @@ "designable": 1, "hitpointPctOfBody": 450, "id": "tracked02", - "model": "PRLRTRK1.PIE", + "model": "prltrk1.PIE", "name": "Tracks II", "speed": 125, "spinAngle": 45, @@ -225,7 +225,7 @@ "designable": 1, "hitpointPctOfBody": 600, "id": "tracked03", - "model": "PRLRTRK1.PIE", + "model": "prltrk1.PIE", "name": "Tracks III", "speed": 125, "spinAngle": 45, @@ -238,7 +238,7 @@ "designable": 1, "hitpointPctOfBody": 100, "id": "wheeled01", - "model": "PRLRWHL1.PIE", + "model": "prlwhl1.PIE", "name": "Wheels", "skidDeceleration": 350, "speed": 175, @@ -251,7 +251,7 @@ "designable": 1, "hitpointPctOfBody": 200, "id": "wheeled02", - "model": "PRLRWHL1.PIE", + "model": "prlwhl1.PIE", "name": "Wheels II", "skidDeceleration": 350, "speed": 175, @@ -264,7 +264,7 @@ "designable": 1, "hitpointPctOfBody": 300, "id": "wheeled03", - "model": "PRLRWHL1.PIE", + "model": "prlwhl1.PIE", "name": "Wheels III", "skidDeceleration": 350, "speed": 175, diff --git a/wrf/cam1/cam1c.gam b/wrf/cam1/cam1c.gam new file mode 100644 index 0000000..4b19c64 Binary files /dev/null and b/wrf/cam1/cam1c.gam differ diff --git a/wrf/cam1/cam1c/droid.ini b/wrf/cam1/cam1c/droid.ini new file mode 100644 index 0000000..78c0c0b --- /dev/null +++ b/wrf/cam1/cam1c/droid.ini @@ -0,0 +1,476 @@ +[droid_2008] +id = 2008 +startpos = 7 +template = BaBaPeople +position = 8659, 2985, 0 +rotation = 0, 0, 0 + +[droid_2007] +id = 2007 +startpos = 7 +template = BaBaPeople +position = 8759, 3015, 0 +rotation = 0, 0, 0 + +[droid_2119] +id = 2119 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 8512, 5568, 0 +rotation = 0, 0, 0 + +[droid_2138] +id = 2138 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 13366, 4674, 0 +rotation = 0, 0, 0 + +[droid_2139] +id = 2139 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 8896, 14912, 0 +rotation = 0, 0, 0 + +[droid_2213] +id = 2213 +startpos = 7 +template = BaBaPeople +position = 9034, 13882, 0 +rotation = 42598, 0, 0 + +[droid_2214] +id = 2214 +startpos = 7 +template = BaBaPeople +position = 9152, 13888, 0 +rotation = 56798, 0, 0 + +[droid_2215] +id = 2215 +startpos = 7 +template = BaBaPeople +position = 9024, 14016, 0 +rotation = 48788, 0, 0 + +[droid_2216] +id = 2216 +startpos = 7 +template = BaBaPeople +position = 9152, 14016, 0 +rotation = 7282, 0, 0 + +[droid_2217] +id = 2217 +startpos = 7 +template = BaBaPeople +position = 9024, 14144, 0 +rotation = 30219, 0, 0 + +[droid_2218] +id = 2218 +startpos = 7 +template = BaBaPeople +position = 9152, 14144, 0 +rotation = 42780, 0, 0 + +[droid_2219] +id = 2219 +startpos = 7 +template = BaBaPeople +position = 9024, 14272, 0 +rotation = 50244, 0, 0 + +[droid_2220] +id = 2220 +startpos = 7 +template = BaBaPeople +position = 9152, 14272, 0 +rotation = 44419, 0, 0 + +[droid_2224] +id = 2224 +startpos = 7 +template = BaBaPeople +position = 10046, 14274, 0 +rotation = 49880, 0, 0 + +[droid_2231] +id = 2231 +startpos = 7 +template = BaBaPeople +position = 10048, 14528, 0 +rotation = 9284, 0, 0 + +[droid_2233] +id = 2233 +startpos = 7 +template = BaBaPeople +position = 10432, 14656, 0 +rotation = 46785, 0, 0 + +[droid_2325] +id = 2325 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 8768, 9408, 0 +rotation = 0, 0, 0 + +[droid_3254] +id = 3254 +startpos = 1 +template = NP-L-Sensor-Wheels +position = 8376, 13876, 0 +rotation = 48606, 0, 0 + +[droid_3255] +id = 3255 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8496, 13886, 0 +rotation = 49516, 0, 0 + +[droid_3256] +id = 3256 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8382, 14010, 0 +rotation = 50062, 0, 0 + +[droid_3268] +id = 3268 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 11324, 11330, 0 +rotation = 0, 0, 0 + +[droid_3269] +id = 3269 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 11322, 11200, 0 +rotation = 0, 0, 0 + +[droid_3270] +id = 3270 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 11322, 11070, 0 +rotation = 0, 0, 0 + +[droid_3272] +id = 3272 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 11450, 11628, 0 +rotation = 0, 0, 0 + +[droid_3274] +id = 3274 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 11456, 11076, 0 +rotation = 0, 0, 0 + +[droid_3275] +id = 3275 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 11194, 11068, 0 +rotation = 0, 0, 0 + +[droid_3276] +id = 3276 +startpos = 1 +template = NP-M-Command-Halftrack +position = 11186, 10950, 0 +rotation = 0, 0, 0 + +[droid_3279] +id = 3279 +startpos = 1 +template = NP-L-Sensor-Wheels +position = 11322, 11630, 0 +rotation = 0, 0, 0 + +[droid_3280] +id = 3280 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 11200, 11610, 0 +rotation = 0, 0, 0 + +[droid_3281] +id = 3281 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 11322, 11466, 0 +rotation = 0, 0, 0 + +[droid_3295] +id = 3295 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 13510, 3898, 0 +rotation = 43327, 0, 0 + +[droid_3296] +id = 3296 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 13368, 3784, 0 +rotation = 44055, 0, 0 + +[droid_3297] +id = 3297 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 14150, 4034, 0 +rotation = 10377, 0, 0 + +[droid_3298] +id = 3298 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 14276, 3904, 0 +rotation = 14746, 0, 0 + +[droid_3299] +id = 3299 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 12342, 2242, 0 +rotation = 11651, 0, 0 + +[droid_3300] +id = 3300 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 12348, 2502, 0 +rotation = 9466, 0, 0 + +[droid_3301] +id = 3301 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 12592, 2372, 0 +rotation = 0, 0, 0 + +[droid_3302] +id = 3302 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 13120, 2624, 0 +rotation = 0, 0, 0 + +[droid_3303] +id = 3303 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 11950, 2620, 0 +rotation = 0, 0, 0 + +[droid_3304] +id = 3304 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 9296, 7096, 0 +rotation = 0, 0, 0 + +[droid_3305] +id = 3305 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8380, 6850, 0 +rotation = 0, 0, 0 + +[droid_3306] +id = 3306 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8394, 15312, 0 +rotation = 39868, 0, 0 + +[droid_3307] +id = 3307 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8668, 15432, 0 +rotation = 37137, 0, 0 + +[droid_3308] +id = 3308 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8768, 15300, 0 +rotation = 50790, 0, 0 + +[droid_3309] +id = 3309 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8916, 15442, 0 +rotation = 44237, 0, 0 + +[droid_3310] +id = 3310 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 9024, 15528, 0 +rotation = 51701, 0, 0 + +[droid_3311] +id = 3311 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8782, 15554, 0 +rotation = 41870, 0, 0 + +[droid_3312] +id = 3312 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8896, 15166, 0 +rotation = 0, 0, 0 + +[droid_3374] +id = 3374 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 9402, 13998, 0 +rotation = 50790, 0, 0 + +[droid_3375] +id = 3375 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 9530, 13878, 0 +rotation = 47514, 0, 0 + +[droid_3376] +id = 3376 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 9534, 14012, 0 +rotation = 51701, 0, 0 + +[droid_3381] +id = 3381 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 9538, 14410, 0 +rotation = 40050, 0, 0 + +[droid_3383] +id = 3383 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 9662, 14404, 0 +rotation = 30766, 0, 0 + +[droid_3384] +id = 3384 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 9784, 14394, 0 +rotation = 45147, 0, 0 + +[droid_3386] +id = 3386 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 9658, 14528, 0 +rotation = 39140, 0, 0 + +[droid_3387] +id = 3387 +startpos = 1 +template = NP-M-Command-Halftrack +position = 9406, 14142, 0 +rotation = 46603, 0, 0 + +[droid_3388] +id = 3388 +startpos = 1 +template = NP-M-Command-Halftrack +position = 9790, 14528, 0 +rotation = 47150, 0, 0 + +[droid_3389] +id = 3389 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8636, 13882, 0 +rotation = 48242, 0, 0 + +[droid_3390] +id = 3390 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8760, 13886, 0 +rotation = 45875, 0, 0 + +[droid_3392] +id = 3392 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8620, 14004, 0 +rotation = 49334, 0, 0 + +[droid_3393] +id = 3393 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8772, 14012, 0 +rotation = 50608, 0, 0 + +[droid_3491] +id = 3491 +startpos = 7 +template = BarbarianTrike +position = 10304, 14388, 0 +rotation = 24758, 0, 0 + +[droid_3492] +id = 3492 +startpos = 7 +template = BarbarianTrike +position = 10166, 14398, 0 +rotation = 47878, 0, 0 + +[droid_3493] +id = 3493 +startpos = 7 +template = BabaJeep +position = 10304, 14528, 0 +rotation = 51519, 0, 0 + +[droid_3523] +id = 3523 +startpos = 1 +template = NP-M-LitCannon-Halftrack +position = 9664, 13886, 0 +rotation = 45875, 0, 0 + +[droid_3524] +id = 3524 +startpos = 1 +template = NP-M-LitCannon-Halftrack +position = 9660, 14018, 0 +rotation = 51519, 0, 0 + +[droid_3525] +id = 3525 +startpos = 1 +template = NP-M-LitCannon-Halftrack +position = 9786, 13880, 0 +rotation = 55524, 0, 0 + +[droid_3581] +id = 3581 +startpos = 7 +template = BaBaPeople +position = 8896, 2880, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam1/cam1c/feature.ini b/wrf/cam1/cam1c/feature.ini new file mode 100644 index 0000000..c261528 --- /dev/null +++ b/wrf/cam1/cam1c/feature.ini @@ -0,0 +1,516 @@ +[feature_1371] +id = 1371 +position = 10176, 9792, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1380] +id = 1380 +position = 10304, 9664, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1381] +id = 1381 +position = 10176, 9664, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1382] +id = 1382 +position = 10688, 9664, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1384] +id = 1384 +position = 13056, 9792, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_1752] +id = 1752 +position = 12096, 5312, 0 +rotation = 49152, 0, 0 +name = WreckedSuzukiJeep + +[feature_1753] +id = 1753 +position = 11328, 5952, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_1754] +id = 1754 +position = 12352, 6336, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_1755] +id = 1755 +position = 11648, 5312, 0 +rotation = 0, 0, 0 +name = BarbTechRuin + +[feature_1757] +id = 1757 +position = 12480, 5056, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1758] +id = 1758 +position = 12480, 4800, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1759] +id = 1759 +position = 12992, 5824, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1762] +id = 1762 +position = 12480, 8512, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1763] +id = 1763 +position = 12480, 8640, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1765] +id = 1765 +position = 11456, 5824, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1766] +id = 1766 +position = 12096, 6208, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_1767] +id = 1767 +position = 12480, 5440, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1769] +id = 1769 +position = 12992, 5568, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1771] +id = 1771 +position = 9920, 14528, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1772] +id = 1772 +position = 10560, 14400, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1774] +id = 1774 +position = 10176, 14784, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1776] +id = 1776 +position = 12352, 11712, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1777] +id = 1777 +position = 12096, 11968, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1778] +id = 1778 +position = 12480, 11584, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_1779] +id = 1779 +position = 12480, 11328, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_1789] +id = 1789 +position = 10816, 4416, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1790] +id = 1790 +position = 12608, 2880, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1791] +id = 1791 +position = 12864, 2496, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1792] +id = 1792 +position = 12992, 1728, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1793] +id = 1793 +position = 12224, 1728, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1795] +id = 1795 +position = 12608, 2624, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_1796] +id = 1796 +position = 12608, 3904, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1797] +id = 1797 +position = 12864, 3904, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1798] +id = 1798 +position = 12608, 3520, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1803] +id = 1803 +position = 12864, 7360, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1804] +id = 1804 +position = 12864, 7232, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1811] +id = 1811 +position = 12096, 6848, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1957] +id = 1957 +position = 12096, 12224, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_2069] +id = 2069 +position = 8640, 7488, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_2123] +id = 2123 +position = 10688, 15296, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_2237] +id = 2237 +position = 10048, 16064, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2238] +id = 2238 +position = 10176, 16064, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2239] +id = 2239 +position = 10304, 15808, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2240] +id = 2240 +position = 10048, 15936, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2241] +id = 2241 +position = 10304, 15936, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2251] +id = 2251 +position = 12864, 13376, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2252] +id = 2252 +position = 12992, 13248, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2328] +id = 2328 +position = 9792, 1600, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2329] +id = 2329 +position = 9408, 1728, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2330] +id = 2330 +position = 8256, 2112, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2331] +id = 2331 +position = 7360, 3392, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2332] +id = 2332 +position = 8128, 3648, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_2333] +id = 2333 +position = 7872, 3648, 0 +rotation = 0, 0, 0 +name = miruin2 + +[feature_2334] +id = 2334 +position = 9408, 4288, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2335] +id = 2335 +position = 9280, 4288, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_2337] +id = 2337 +position = 8128, 3776, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2338] +id = 2338 +position = 9024, 7936, 0 +rotation = 0, 0, 0 +name = WreckedTankerV + +[feature_2340] +id = 2340 +position = 8384, 4416, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_2341] +id = 2341 +position = 7872, 5184, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2342] +id = 2342 +position = 7104, 4416, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2344] +id = 2344 +position = 6848, 4672, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_2345] +id = 2345 +position = 6976, 3008, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_2348] +id = 2348 +position = 10304, 7744, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2350] +id = 2350 +position = 7104, 8640, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2353] +id = 2353 +position = 8512, 11584, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2354] +id = 2354 +position = 7616, 12224, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2355] +id = 2355 +position = 8256, 12480, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_2356] +id = 2356 +position = 9536, 10048, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_2358] +id = 2358 +position = 8384, 10816, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2359] +id = 2359 +position = 8256, 12096, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_2360] +id = 2360 +position = 8128, 12224, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_2363] +id = 2363 +position = 7104, 11200, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_2364] +id = 2364 +position = 10048, 5952, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2365] +id = 2365 +position = 10176, 5696, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2369] +id = 2369 +position = 10176, 5952, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2370] +id = 2370 +position = 10048, 5696, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2406] +id = 2406 +position = 9536, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_2407] +id = 2407 +position = 9664, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_3399] +id = 3399 +position = 14272, 13888, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_3401] +id = 3401 +position = 14656, 13760, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_3562] +id = 3562 +position = 13952, 13632, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_3563] +id = 3563 +position = 13952, 13760, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_3564] +id = 3564 +position = 14144, 13888, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_3569] +id = 3569 +position = 15424, 9152, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_3571] +id = 3571 +position = 14528, 11584, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_3576] +id = 3576 +position = 14144, 1472, 0 +rotation = 0, 0, 0 +name = OilResource + diff --git a/wrf/cam1/cam1c/labels.ini b/wrf/cam1/cam1c/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam1/cam1c/labels.json b/wrf/cam1/cam1c/labels.json new file mode 100644 index 0000000..f0d0da0 --- /dev/null +++ b/wrf/cam1/cam1c/labels.json @@ -0,0 +1,244 @@ +{ + "position_0": { + "label": "startPosition", + "pos": [1920, 6656] + }, + "position_1": { + "label": "ScavSouthFactoryAssembly", + "pos": [12736, 14016] + }, + "position_2": { + "label": "ScavCentralFactoryAssembly", + "pos": [8512, 6592] + }, + "position_3": { + "label": "ScavNorthFactoryAssembly", + "pos": [8384, 704] + }, + "position_4": { + "label": "NPCentralFactoryAssembly", + "pos": [12736, 11456] + }, + "position_5": { + "label": "NPNorthFactoryAssembly", + "pos": [9920, 3136] + }, + "position_6": { + "label": "AmbushTarget", + "pos": [8352, 13880] + }, + + "area_0": { + "label": "landingZone", + "pos1": [1280, 6528], + "pos2": [1536, 6784] + }, + "area_1": { + "label": "EastNPLZ", + "pos1": [13504, 4672], + "pos2": [13760, 4928] + }, + "area_2": { + "label": "WestNPLZ", + "pos1": [8896, 10048], + "pos2": [9152, 10304] + }, + "area_3": { + "label": "PhantomLZ1", + "pos1": [7104, 6208], + "pos2": [7360, 6464] + }, + "area_4": { + "label": "PhantomLZ2", + "pos1": [6080, 6720], + "pos2": [6336, 6976] + }, + "area_5": { + "label": "PhantomLZ3", + "pos1": [7744, 4544], + "pos2": [8000, 4800] + }, + "area_6": { + "label": "PhantomLZ4", + "pos1": [6720, 3392], + "pos2": [6976, 3648] + }, + "area_7": { + "label": "PhantomLZ5", + "pos1": [10432, 8256], + "pos2": [10678, 8512] + }, + "area_8": { + "label": "RocketScoutForce", + "pos1": [8384, 13760], + "pos2": [8640, 14144] + }, + "area_9": { + "label": "RocketForce", + "pos1": [8640, 13760], + "pos2": [8896, 14144] + }, + "area_10": { + "label": "TankScoutForce", + "pos1": [9280, 13760], + "pos2": [9920, 14272] + }, + "area_11": { + "label": "TankForce", + "pos1": [9280, 14272], + "pos2": [9920, 14656] + }, + "area_12": { + "label": "AmbushForce", + "pos1": [10944, 10816], + "pos2": [11712, 11712] + }, + "area_13": { + "label": "ScavSouthDerrick", + "pos1": [9920, 14848], + "pos2": [11072, 16192] + }, + "area_14": { + "label": "ScavSouthEastHighground", + "pos1": [10624, 11968], + "pos2": [14912, 14784] + }, + "area_15": { + "label": "ScavNorthBase", + "pos1": [8000, 192], + "pos2": [9664, 1600] + }, + "area_16": { + "label": "ScavSouthPodPits", + "pos1": [8384, 2624], + "pos2": [10048, 4672] + }, + "area_17": { + "label": "MixedCentralBase", + "pos1": [8256, 4928], + "pos2": [10048, 8640] + }, + "area_18": { + "label": "NPEastBase", + "pos1": [9408, 8640], + "pos2": [13760, 11328] + }, + "area_19": { + "label": "NPNorthEastGenerator", + "pos1": [12992, 1088], + "pos2": [15040, 3776] + }, + "area_20": { + "label": "NPNorthEastBase", + "pos1": [10176, 1216], + "pos2": [12352, 4544] + }, + "area_21": { + "label": "NPLZ2", + "pos1": [8512, 9792], + "pos2": [9664, 10944] + }, + "area_22": { + "label": "NPLZ1", + "pos1": [12892, 3704], + "pos2": [14472, 5668] + }, + "area_23": { + "label": "AmbushTrigger", + "subscriber": 0, + "pos1": [8896, 13760], + "pos2": [10048, 14656] + }, + "area_24": { + "label": "NPLZ1Trigger", + "subscriber": 0, + "pos1": [10560, 6400], + "pos2": [16448, 8256] + }, + "area_25": { + "label": "NPLZ2Trigger", + "subscriber": 0, + "pos1": [7616, 4800], + "pos2": [9408, 5696] + }, + + "object_0": { + "label": "NPResearchFacility", + "id": 3580, + "player": 1, + "type": 1 + }, + "object_1": { + "label": "ScavSouthFactory", + "id": 1888, + "player": 7, + "type": 1 + }, + "object_2": { + "label": "ScavCentralFactory", + "id": 2265, + "player": 7, + "type": 1 + }, + "object_3": { + "label": "ScavNorthFactory", + "id": 2168, + "player": 7, + "type": 1 + }, + "object_4": { + "label": "NPCentralFactory", + "id": 2135, + "player": 1, + "type": 1 + }, + "object_5": { + "label": "NPNorthFactory", + "id": 2136, + "player": 1, + "type": 1 + }, + "object_6": { + "label": "TankScoutForceCommander", + "id": 3387, + "player": 1, + "type": 0 + }, + "object_7": { + "label": "TankForceCommander", + "id": 3388, + "player": 1, + "type": 0 + }, + "object_8": { + "label": "AmbushForceCommander", + "id": 3276, + "player": 1, + "type": 0 + }, + + "radius_0": { + "label": "ScavCentralFactoryTrigger", + "subscriber": 0, + "pos": [8448, 7040], + "radius": 1920 + }, + "radius_1": { + "label": "ScavNorthFactoryTrigger", + "subscriber": 0, + "pos": [8576, 384], + "radius": 1920 + }, + "radius_2": { + "label": "NPNorthFactoryTrigger", + "subscriber": 0, + "pos": [11520, 3712], + "radius": 1920 + }, + "radius_3": { + "label": "RemoveBeacon", + "subscriber": 0, + "pos": [7168, 13888], + "radius": 540 + } +} diff --git a/wrf/cam1/cam1c/struct.ini b/wrf/cam1/cam1c/struct.ini new file mode 100644 index 0000000..66a90ef --- /dev/null +++ b/wrf/cam1/cam1c/struct.ini @@ -0,0 +1,1826 @@ +[structure_1114] +id = 1114 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11968, 10048, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1115] +id = 1115 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 10048, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1119] +id = 1119 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 13248, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1124] +id = 1124 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12352, 10048, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1228] +id = 1228 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 13120, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1355] +id = 1355 +startpos = 1 +name = WallTower02 +position = 13376, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1359] +id = 1359 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11712, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1369] +id = 1369 +startpos = 1 +name = A0RepairCentre3 +position = 12096, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1383] +id = 1383 +startpos = 1 +name = Sys-SensoTower01 +position = 11840, 10688, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1476] +id = 1476 +startpos = 1 +name = A0LightFactory +position = 11584, 3776, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1477] +id = 1477 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11456, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1478] +id = 1478 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11584, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1479] +id = 1479 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11712, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1480] +id = 1480 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11840, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1481] +id = 1481 +startpos = 1 +name = WallTower02 +position = 11456, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1482] +id = 1482 +startpos = 1 +name = WallTower02 +position = 11328, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1483] +id = 1483 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11456, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1484] +id = 1484 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11328, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1485] +id = 1485 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11328, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1486] +id = 1486 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11200, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1487] +id = 1487 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11328, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1488] +id = 1488 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11072, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1489] +id = 1489 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11200, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1490] +id = 1490 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11328, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1491] +id = 1491 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11328, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1492] +id = 1492 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11328, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1493] +id = 1493 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11456, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1494] +id = 1494 +startpos = 1 +name = WallTower02 +position = 11712, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1495] +id = 1495 +startpos = 1 +name = WallTower02 +position = 11968, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1496] +id = 1496 +startpos = 1 +name = A0HardcreteMk1CWall +position = 12096, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1497] +id = 1497 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11584, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1498] +id = 1498 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 4160, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1499] +id = 1499 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 4032, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1500] +id = 1500 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1501] +id = 1501 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1502] +id = 1502 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3648, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1503] +id = 1503 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1504] +id = 1504 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1505] +id = 1505 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1506] +id = 1506 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1508] +id = 1508 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1509] +id = 1509 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11968, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1512] +id = 1512 +startpos = 1 +name = WallTower02 +position = 12096, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1514] +id = 1514 +startpos = 1 +name = A0PowerGenerator +position = 14464, 2944, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1529] +id = 1529 +startpos = 1 +name = A0CommandCentreNP +position = 9216, 6144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1530] +id = 1530 +startpos = 1 +name = A0LightFactory +position = 10176, 9152, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1538] +id = 1538 +startpos = 1 +name = WallTower02 +position = 13376, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1539] +id = 1539 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11840, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1608] +id = 1608 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11072, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1613] +id = 1613 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11584, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1641] +id = 1641 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12224, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1807] +id = 1807 +startpos = 1 +name = A0HardcreteMk1CWall +position = 10944, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1808] +id = 1808 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11712, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1816] +id = 1816 +startpos = 1 +name = A0HardcreteMk1CWall +position = 12992, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1817] +id = 1817 +startpos = 1 +name = A0HardcreteMk1CWall +position = 12480, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1841] +id = 1841 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12224, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1842] +id = 1842 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12352, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1843] +id = 1843 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12480, 14272, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1859] +id = 1859 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12352, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1860] +id = 1860 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12224, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1868] +id = 1868 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12480, 13760, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1888] +id = 1888 +startpos = 7 +name = A0BaBaFactory +position = 12928, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1889] +id = 1889 +startpos = 7 +name = LookOutTower +position = 12992, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1904] +id = 1904 +startpos = 7 +name = A0CannonTower +position = 12480, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1933] +id = 1933 +startpos = 7 +name = Sys-SensoTower01 +position = 13120, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1942] +id = 1942 +startpos = 7 +name = A0BaBaRocketPit +position = 14528, 13632, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1943] +id = 1943 +startpos = 7 +name = A0BaBaRocketPit +position = 14528, 14016, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1944] +id = 1944 +startpos = 7 +name = A0BaBaRocketPit +position = 12224, 12608, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1945] +id = 1945 +startpos = 7 +name = A0BaBaRocketPit +position = 11968, 13632, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1946] +id = 1946 +startpos = 7 +name = A0BaBaRocketPit +position = 11840, 14400, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1947] +id = 1947 +startpos = 7 +name = A0BaBaBunker +position = 11712, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1948] +id = 1948 +startpos = 7 +name = A0BaBaBunker +position = 11712, 14144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1949] +id = 1949 +startpos = 7 +name = LookOutTower +position = 14272, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1954] +id = 1954 +startpos = 7 +name = A0BaBaBunker +position = 11328, 13504, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1955] +id = 1955 +startpos = 7 +name = A0BaBaBunker +position = 12864, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1956] +id = 1956 +startpos = 7 +name = A0BaBaBunker +position = 12480, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1976] +id = 1976 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11072, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1977] +id = 1977 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11072, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1980] +id = 1980 +startpos = 7 +name = A0BaBaHorizontalWall +position = 8256, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1981] +id = 1981 +startpos = 7 +name = A0BaBaHorizontalWall +position = 8256, 448, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1982] +id = 1982 +startpos = 7 +name = A0BaBaPowerGenerator +position = 8768, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2006] +id = 2006 +startpos = 7 +name = A0BaBaRocketPit +position = 8768, 2752, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_2010] +id = 2010 +startpos = 7 +name = A0BaBaRocketPit +position = 9408, 3904, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_2011] +id = 2011 +startpos = 7 +name = A0BaBaRocketPit +position = 9792, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2012] +id = 2012 +startpos = 7 +name = A0BaBaRocketPit +position = 9664, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2034] +id = 2034 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 8640, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2035] +id = 2035 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 9152, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2036] +id = 2036 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 9280, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2039] +id = 2039 +startpos = 1 +name = A0ComDroidControl +position = 9344, 6784, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2051] +id = 2051 +startpos = 1 +name = A0ResearchFacility +position = 9344, 7424, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_2120] +id = 2120 +startpos = 1 +name = WallTower02 +position = 8768, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2121] +id = 2121 +startpos = 1 +name = WallTower02 +position = 9024, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2124] +id = 2124 +startpos = 7 +name = A0BaBaGunTower +position = 10560, 15168, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2125] +id = 2125 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10688, 15168, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2126] +id = 2126 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10816, 15168, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2127] +id = 2127 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10560, 15296, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2128] +id = 2128 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10560, 15424, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2129] +id = 2129 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10560, 15552, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2130] +id = 2130 +startpos = 7 +name = A0BaBaRocketPit +position = 10688, 15040, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_2131] +id = 2131 +startpos = 7 +name = A0BaBaRocketPit +position = 10432, 15296, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_2132] +id = 2132 +startpos = 7 +name = A0BaBaPowerGenerator +position = 12864, 13248, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2133] +id = 2133 +startpos = 7 +name = A0ResourceExtractor +position = 10688, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2163] +id = 2163 +startpos = 7 +name = A0BaBaBunker +position = 8896, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2164] +id = 2164 +startpos = 7 +name = A0BaBaBunker +position = 9536, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2165] +id = 2165 +startpos = 7 +name = A0BaBaRocketPit +position = 8512, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2166] +id = 2166 +startpos = 7 +name = A0BaBaRocketPit +position = 8768, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2167] +id = 2167 +startpos = 7 +name = A0BaBaRocketPit +position = 9024, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2168] +id = 2168 +startpos = 7 +name = A0BaBaFactory +position = 8704, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2242] +id = 2242 +startpos = 7 +name = LookOutTower +position = 10176, 15808, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2265] +id = 2265 +startpos = 7 +name = A0BaBaFactory +position = 8576, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2267] +id = 2267 +startpos = 7 +name = A0BaBaPowerGenerator +position = 8384, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2394] +id = 2394 +startpos = 1 +name = PillBox1 +position = 9280, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2395] +id = 2395 +startpos = 1 +name = PillBox1 +position = 9792, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2400] +id = 2400 +startpos = 1 +name = PillBox1 +position = 9536, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2402] +id = 2402 +startpos = 1 +name = GuardTower1 +position = 8896, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2403] +id = 2403 +startpos = 1 +name = GuardTower1 +position = 8896, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2404] +id = 2404 +startpos = 1 +name = GuardTower1 +position = 8896, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2405] +id = 2405 +startpos = 1 +name = Sys-SensoTower01 +position = 9920, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2408] +id = 2408 +startpos = 1 +name = GuardTower1 +position = 9664, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2425] +id = 2425 +startpos = 1 +name = PillBox1 +position = 8384, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2426] +id = 2426 +startpos = 1 +name = PillBox1 +position = 8640, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2427] +id = 2427 +startpos = 1 +name = PillBox1 +position = 8384, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2428] +id = 2428 +startpos = 1 +name = PillBox1 +position = 8640, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3259] +id = 3259 +startpos = 1 +name = PillBox3 +position = 8512, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3260] +id = 3260 +startpos = 1 +name = PillBox3 +position = 8512, 14144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3261] +id = 3261 +startpos = 1 +name = PillBox5 +position = 8768, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3262] +id = 3262 +startpos = 1 +name = PillBox5 +position = 8768, 14144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3264] +id = 3264 +startpos = 1 +name = GuardTower6 +position = 8896, 14528, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3277] +id = 3277 +startpos = 1 +name = WallTower02 +position = 9408, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3278] +id = 3278 +startpos = 1 +name = WallTower02 +position = 10688, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3282] +id = 3282 +startpos = 1 +name = WallTower02 +position = 11968, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3283] +id = 3283 +startpos = 1 +name = GuardTower6 +position = 12224, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3286] +id = 3286 +startpos = 1 +name = PillBox5 +position = 12480, 10304, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3287] +id = 3287 +startpos = 1 +name = PillBox5 +position = 12992, 10304, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3314] +id = 3314 +startpos = 7 +name = A0BaBaRocketPit +position = 12096, 13888, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_3315] +id = 3315 +startpos = 7 +name = A0BaBaGunTowerEND +position = 12480, 14144, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3316] +id = 3316 +startpos = 7 +name = A0BaBaGunTowerEND +position = 12480, 13888, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_3319] +id = 3319 +startpos = 7 +name = A0BabaCornerWall +position = 12096, 13632, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_3320] +id = 3320 +startpos = 7 +name = A0BabaCornerWall +position = 11968, 14400, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3321] +id = 3321 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12096, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3322] +id = 3322 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12096, 13504, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3323] +id = 3323 +startpos = 7 +name = A0BaBaHorizontalWall +position = 11968, 14528, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3324] +id = 3324 +startpos = 7 +name = A0BabaCornerWall +position = 12480, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3325] +id = 3325 +startpos = 7 +name = A0BabaCornerWall +position = 12480, 14400, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_3328] +id = 3328 +startpos = 7 +name = A0BaBaBunker +position = 11712, 13248, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3329] +id = 3329 +startpos = 7 +name = A0BaBaBunker +position = 11584, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3330] +id = 3330 +startpos = 7 +name = A0BaBaBunker +position = 10688, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3336] +id = 3336 +startpos = 7 +name = A0BabaCornerWall +position = 11968, 14656, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_3337] +id = 3337 +startpos = 7 +name = A0BabaCornerWall +position = 12096, 13376, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3339] +id = 3339 +startpos = 7 +name = A0BaBaRocketPit +position = 13376, 12352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3367] +id = 3367 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12096, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3368] +id = 3368 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12224, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3369] +id = 3369 +startpos = 7 +name = A0BaBaGunTowerEND +position = 12352, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3370] +id = 3370 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12224, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3372] +id = 3372 +startpos = 7 +name = A0BaBaGunTowerEND +position = 12352, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3395] +id = 3395 +startpos = 1 +name = GuardTower6 +position = 10304, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3404] +id = 3404 +startpos = 7 +name = A0BaBaRocketPit +position = 9024, 3008, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3405] +id = 3405 +startpos = 7 +name = A0BaBaRocketPit +position = 8896, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3488] +id = 3488 +startpos = 7 +name = A0CannonTower +position = 12608, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3489] +id = 3489 +startpos = 7 +name = A0CannonTower +position = 12864, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3490] +id = 3490 +startpos = 7 +name = A0CannonTower +position = 12864, 12992, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3495] +id = 3495 +startpos = 1 +name = A0TankTrap +position = 12608, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3496] +id = 3496 +startpos = 1 +name = A0TankTrap +position = 12864, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3497] +id = 3497 +startpos = 1 +name = A0TankTrap +position = 12992, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3498] +id = 3498 +startpos = 1 +name = A0TankTrap +position = 13120, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3499] +id = 3499 +startpos = 1 +name = A0TankTrap +position = 13248, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3500] +id = 3500 +startpos = 1 +name = A0TankTrap +position = 13376, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3501] +id = 3501 +startpos = 1 +name = A0TankTrap +position = 13504, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3502] +id = 3502 +startpos = 1 +name = A0TankTrap +position = 13632, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3503] +id = 3503 +startpos = 1 +name = PillBox4 +position = 13376, 10560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3512] +id = 3512 +startpos = 1 +name = GuardTower6 +position = 10688, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3513] +id = 3513 +startpos = 1 +name = GuardTower6 +position = 10304, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3514] +id = 3514 +startpos = 1 +name = GuardTower6 +position = 10304, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3515] +id = 3515 +startpos = 1 +name = GuardTower6 +position = 10560, 8768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3516] +id = 3516 +startpos = 1 +name = GuardTower6 +position = 11200, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3518] +id = 3518 +startpos = 1 +name = GuardTower6 +position = 9536, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3521] +id = 3521 +startpos = 7 +name = A0BaBaFlameTower +position = 8256, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3522] +id = 3522 +startpos = 7 +name = A0BaBaFlameTower +position = 9152, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3526] +id = 3526 +startpos = 1 +name = A0CyborgFactory +position = 8512, 7424, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3527] +id = 3527 +startpos = 7 +name = A0BaBaRocketPit +position = 14400, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3528] +id = 3528 +startpos = 7 +name = A0BaBaRocketPit +position = 14400, 13504, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_3529] +id = 3529 +startpos = 7 +name = A0CannonTower +position = 14016, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3530] +id = 3530 +startpos = 7 +name = A0CannonTower +position = 13760, 13504, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3531] +id = 3531 +startpos = 7 +name = A0CannonTower +position = 13376, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3532] +id = 3532 +startpos = 7 +name = A0CannonTower +position = 13376, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3533] +id = 3533 +startpos = 7 +name = A0CannonTower +position = 13376, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3535] +id = 3535 +startpos = 7 +name = A0BaBaGunTowerEND +position = 13760, 13120, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_3536] +id = 3536 +startpos = 7 +name = A0BaBaGunTowerEND +position = 14144, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3537] +id = 3537 +startpos = 7 +name = A0BaBaHorizontalWall +position = 13888, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3538] +id = 3538 +startpos = 7 +name = A0BaBaHorizontalWall +position = 14016, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3539] +id = 3539 +startpos = 7 +name = A0BaBaFlameTower +position = 12480, 13504, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3540] +id = 3540 +startpos = 1 +name = WallTower02 +position = 8640, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3541] +id = 3541 +startpos = 1 +name = WallTower02 +position = 8512, 10560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3542] +id = 3542 +startpos = 1 +name = WallTower02 +position = 9280, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3543] +id = 3543 +startpos = 1 +name = WallTower02 +position = 9280, 10560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3544] +id = 3544 +startpos = 1 +name = WallTower02 +position = 13120, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3545] +id = 3545 +startpos = 1 +name = A0HardcreteMk1CWall +position = 13120, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3546] +id = 3546 +startpos = 1 +name = A0HardcreteMk1CWall +position = 13248, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3547] +id = 3547 +startpos = 1 +name = WallTower02 +position = 13248, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3548] +id = 3548 +startpos = 1 +name = A0HardcreteMk1CWall +position = 13376, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3549] +id = 3549 +startpos = 1 +name = A0HardcreteMk1CWall +position = 13248, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3550] +id = 3550 +startpos = 1 +name = A0HardcreteMk1CWall +position = 14016, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3551] +id = 3551 +startpos = 1 +name = WallTower02 +position = 14144, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3552] +id = 3552 +startpos = 1 +name = A0HardcreteMk1CWall +position = 14144, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3553] +id = 3553 +startpos = 1 +name = WallTower02 +position = 14144, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3555] +id = 3555 +startpos = 1 +name = A0HardcreteMk1CWall +position = 14144, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3557] +id = 3557 +startpos = 1 +name = Sys-SensoTower01 +position = 12224, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3558] +id = 3558 +startpos = 1 +name = Emplacement-MortarPit01 +position = 11968, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3559] +id = 3559 +startpos = 1 +name = Emplacement-MortarPit01 +position = 11584, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3560] +id = 3560 +startpos = 1 +name = Emplacement-MortarPit01 +position = 11968, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3561] +id = 3561 +startpos = 1 +name = Emplacement-MortarPit01 +position = 11584, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3565] +id = 3565 +startpos = 1 +name = WallTower01 +position = 11200, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3566] +id = 3566 +startpos = 1 +name = WallTower01 +position = 11456, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3567] +id = 3567 +startpos = 1 +name = WallTower01 +position = 12608, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3568] +id = 3568 +startpos = 1 +name = WallTower01 +position = 12864, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3572] +id = 3572 +startpos = 1 +name = Sys-SensoTower01 +position = 12096, 7232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3577] +id = 3577 +startpos = 1 +name = A0ResourceExtractor +position = 14144, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3578] +id = 3578 +startpos = 1 +name = WallTower02 +position = 14400, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3579] +id = 3579 +startpos = 1 +name = WallTower02 +position = 13888, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3582] +id = 3582 +startpos = 1 +name = A0HardcreteMk1Gate +position = 11840, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3583] +id = 3583 +startpos = 1 +name = A0HardcreteMk1Gate +position = 11072, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3584] +id = 3584 +startpos = 1 +name = A0HardcreteMk1Gate +position = 11072, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3585] +id = 3585 +startpos = 1 +name = A0HardcreteMk1Gate +position = 12736, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3586] +id = 3586 +startpos = 1 +name = A0HardcreteMk1Gate +position = 8896, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam1/sub1-1.gam b/wrf/cam1/sub1-1.gam new file mode 100644 index 0000000..7f4d6ab Binary files /dev/null and b/wrf/cam1/sub1-1.gam differ diff --git a/wrf/cam1/sub1-3.gam b/wrf/cam1/sub1-3.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam1/sub1-3.gam differ diff --git a/wrf/cam1/sub1-3/labels.ini b/wrf/cam1/sub1-3/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam1/sub1-3/struct.ini b/wrf/cam1/sub1-3/struct.ini new file mode 100644 index 0000000..be58671 --- /dev/null +++ b/wrf/cam1/sub1-3/struct.ini @@ -0,0 +1,552 @@ +[structure_109] +id = 109 +startpos = 1 +name = A0LightFactory +position = 7360, 832, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_111] +id = 111 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6336, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_114] +id = 114 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6208, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_115] +id = 115 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2368, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_228] +id = 228 +startpos = 1 +name = A0HardcreteMk1CWall +position = 6464, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_229] +id = 229 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2240, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_231] +id = 231 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7360, 2752, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_232] +id = 232 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6464, 2880, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_233] +id = 233 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6464, 2752, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_238] +id = 238 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5184, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_239] +id = 239 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5056, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_240] +id = 240 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5056, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_241] +id = 241 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5568, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_242] +id = 242 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5184, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_243] +id = 243 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5312, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_244] +id = 244 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5440, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_245] +id = 245 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5568, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_247] +id = 247 +startpos = 7 +name = A0BaBaGunTower +position = 5056, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_248] +id = 248 +startpos = 7 +name = A0BaBaGunTower +position = 5696, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_249] +id = 249 +startpos = 7 +name = A0BaBaGunTower +position = 6080, 5056, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_250] +id = 250 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5696, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_251] +id = 251 +startpos = 7 +name = A0BaBaHorizontalWall +position = 6080, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_261] +id = 261 +startpos = 7 +name = A0BaBaRocketPit +position = 5568, 4288, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_262] +id = 262 +startpos = 7 +name = A0BaBaRocketPit +position = 5184, 4288, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_270] +id = 270 +startpos = 7 +name = A0BaBaFactory +position = 5248, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_403] +id = 403 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2880, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_404] +id = 404 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2752, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_405] +id = 405 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2624, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_406] +id = 406 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2496, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_407] +id = 407 +startpos = 1 +name = A0HardcreteMk1CWall +position = 7360, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_408] +id = 408 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7232, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_418] +id = 418 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5056, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_419] +id = 419 +startpos = 7 +name = A0BaBaGunTower +position = 5056, 5056, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_420] +id = 420 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5056, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_421] +id = 421 +startpos = 7 +name = A0CannonTower +position = 4544, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_426] +id = 426 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5696, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_427] +id = 427 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5824, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_428] +id = 428 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5952, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_429] +id = 429 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5824, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_430] +id = 430 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5952, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_431] +id = 431 +startpos = 7 +name = A0BaBaHorizontalWall +position = 6080, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_432] +id = 432 +startpos = 7 +name = A0BaBaGunTower +position = 6080, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_433] +id = 433 +startpos = 7 +name = A0BabaCornerWall +position = 5696, 4672, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_440] +id = 440 +startpos = 7 +name = A0CannonTower +position = 5568, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_442] +id = 442 +startpos = 7 +name = A0BaBaPowerGenerator +position = 5440, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_507] +id = 507 +startpos = 1 +name = A0ResearchFacility +position = 6400, 1536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_542] +id = 542 +startpos = 1 +name = A0CommandCentreNP +position = 6912, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_543] +id = 543 +startpos = 1 +name = A0ComDroidControl +position = 6272, 2304, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_555] +id = 555 +startpos = 1 +name = WallTower01 +position = 6464, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_568] +id = 568 +startpos = 1 +name = PillBox5 +position = 6592, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_576] +id = 576 +startpos = 1 +name = Sys-SensoTower01 +position = 5952, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_582] +id = 582 +startpos = 1 +name = PillBox2 +position = 7232, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_585] +id = 585 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7104, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_619] +id = 619 +startpos = 1 +name = WallTower01 +position = 6976, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_624] +id = 624 +startpos = 1 +name = WallTower02 +position = 6720, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_625] +id = 625 +startpos = 1 +name = WallTower02 +position = 6080, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_627] +id = 627 +startpos = 1 +name = WallTower02 +position = 7616, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_628] +id = 628 +startpos = 1 +name = WallTower02 +position = 6720, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_631] +id = 631 +startpos = 1 +name = A0RepairCentre3 +position = 7360, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_635] +id = 635 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7360, 2880, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_643] +id = 643 +startpos = 1 +name = A0HardcreteMk1CWall +position = 6720, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_644] +id = 644 +startpos = 1 +name = A0HardcreteMk1CWall +position = 6976, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_645] +id = 645 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6592, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_646] +id = 646 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7104, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_647] +id = 647 +startpos = 1 +name = A0HardcreteMk1CWall +position = 6080, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_648] +id = 648 +startpos = 1 +name = A0HardcreteMk1CWall +position = 7360, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_649] +id = 649 +startpos = 1 +name = A0HardcreteMk1Gate +position = 6848, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam1/sub1-5.gam b/wrf/cam1/sub1-5.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam1/sub1-5.gam differ diff --git a/wrf/cam1/sub1-5/droid.ini b/wrf/cam1/sub1-5/droid.ini new file mode 100644 index 0000000..74b6e27 --- /dev/null +++ b/wrf/cam1/sub1-5/droid.ini @@ -0,0 +1,280 @@ +[droid_462] +id = 462 +startpos = 7 +template = BaBaPeople +position = 2624, 6720, 0 +rotation = 13289, 0, 0 + +[droid_240] +id = 240 +startpos = 7 +template = BarbarianRKBuggy +position = 2880, 1600, 0 +rotation = 0, 0, 0 + +[droid_463] +id = 463 +startpos = 7 +template = BaBaPeople +position = 2624, 6848, 0 +rotation = 58072, 0, 0 + +[droid_67] +id = 67 +startpos = 7 +template = BabaRKJeep +position = 568, 3890, 0 +rotation = 33860, 0, 0 + +[droid_68] +id = 68 +startpos = 7 +template = BabaRKJeep +position = 463, 4134, 0 +rotation = 59893, 0, 0 + +[droid_69] +id = 69 +startpos = 7 +template = BabaRKJeep +position = 432, 4025, 0 +rotation = 45329, 0, 0 + +[droid_70] +id = 70 +startpos = 7 +template = BabaRKJeep +position = 471, 2751, 0 +rotation = 59529, 0, 0 + +[droid_71] +id = 71 +startpos = 7 +template = BabaRKJeep +position = 448, 2624, 0 +rotation = 49152, 0, 0 + +[droid_72] +id = 72 +startpos = 7 +template = BabaRKJeep +position = 453, 2507, 0 +rotation = 41688, 0, 0 + +[droid_73] +id = 73 +startpos = 7 +template = BabaRKJeep +position = 454, 2377, 0 +rotation = 26943, 0, 0 + +[droid_79] +id = 79 +startpos = 7 +template = BabaRKJeep +position = 1462, 3784, 0 +rotation = 5279, 0, 0 + +[droid_80] +id = 80 +startpos = 7 +template = BabaRKJeep +position = 1872, 3764, 0 +rotation = 4005, 0, 0 + +[droid_81] +id = 81 +startpos = 7 +template = BabaRKJeep +position = 1618, 3914, 0 +rotation = 16020, 0, 0 + +[droid_195] +id = 195 +startpos = 7 +template = BarbarianRKBuggy +position = 2840, 4320, 0 +rotation = 49152, 0, 0 + +[droid_196] +id = 196 +startpos = 7 +template = BarbarianRKBuggy +position = 2986, 4322, 0 +rotation = 3641, 0, 0 + +[droid_197] +id = 197 +startpos = 7 +template = BarbarianRKBuggy +position = 2992, 4450, 0 +rotation = 58254, 0, 0 + +[droid_198] +id = 198 +startpos = 7 +template = BarbarianRKBuggy +position = 2840, 4454, 0 +rotation = 57526, 0, 0 + +[droid_233] +id = 233 +startpos = 7 +template = BabaJeep +position = 3264, 1216, 0 +rotation = 0, 0, 0 + +[droid_234] +id = 234 +startpos = 7 +template = BabaJeep +position = 3136, 1216, 0 +rotation = 0, 0, 0 + +[droid_235] +id = 235 +startpos = 7 +template = BabaJeep +position = 2752, 1472, 0 +rotation = 0, 0, 0 + +[droid_236] +id = 236 +startpos = 7 +template = BarbarianRKBuggy +position = 2645, 1510, 0 +rotation = 0, 0, 0 + +[droid_237] +id = 237 +startpos = 7 +template = BarbarianRKBuggy +position = 2747, 1554, 0 +rotation = 0, 0, 0 + +[droid_238] +id = 238 +startpos = 7 +template = BarbarianRKBuggy +position = 3008, 832, 0 +rotation = 0, 0, 0 + +[droid_239] +id = 239 +startpos = 7 +template = BarbarianRKBuggy +position = 2837, 1528, 0 +rotation = 0, 0, 0 + +[droid_464] +id = 464 +startpos = 7 +template = BaBaPeople +position = 2624, 6464, 0 +rotation = 47150, 0, 0 + +[droid_241] +id = 241 +startpos = 7 +template = BarbarianRKBuggy +position = 2637, 1385, 0 +rotation = 0, 0, 0 + +[droid_242] +id = 242 +startpos = 7 +template = BarbarianRKBuggy +position = 2874, 1340, 0 +rotation = 0, 0, 0 + +[droid_417] +id = 417 +startpos = 1 +template = CyborgChain01Ground +position = 4290, 4552, 0 +rotation = 22938, 0, 0 + +[droid_418] +id = 418 +startpos = 1 +template = CyborgChain01Ground +position = 4290, 4684, 0 +rotation = 10377, 0, 0 + +[droid_419] +id = 419 +startpos = 1 +template = CyborgChain01Ground +position = 4156, 4678, 0 +rotation = 57344, 0, 0 + +[droid_420] +id = 420 +startpos = 1 +template = CyborgChain01Ground +position = 3768, 4404, 0 +rotation = 17840, 0, 0 + +[droid_421] +id = 421 +startpos = 1 +template = CyborgChain01Ground +position = 3898, 4534, 0 +rotation = 30766, 0, 0 + +[droid_422] +id = 422 +startpos = 1 +template = CyborgChain01Ground +position = 3776, 4672, 0 +rotation = 54613, 0, 0 + +[droid_423] +id = 423 +startpos = 1 +template = CyborgChain01Ground +position = 3906, 4692, 0 +rotation = 55888, 0, 0 + +[droid_456] +id = 456 +startpos = 7 +template = BabaJeep +position = 2368, 6720, 0 +rotation = 64626, 0, 0 + +[droid_457] +id = 457 +startpos = 7 +template = BabaJeep +position = 2368, 6848, 0 +rotation = 51883, 0, 0 + +[droid_458] +id = 458 +startpos = 7 +template = BaBaPeople +position = 2496, 6592, 0 +rotation = 38958, 0, 0 + +[droid_459] +id = 459 +startpos = 7 +template = BaBaPeople +position = 2496, 6848, 0 +rotation = 59346, 0, 0 + +[droid_460] +id = 460 +startpos = 7 +template = BaBaPeople +position = 2496, 6720, 0 +rotation = 55159, 0, 0 + +[droid_461] +id = 461 +startpos = 7 +template = BaBaPeople +position = 2624, 6592, 0 +rotation = 61167, 0, 0 + diff --git a/wrf/cam1/sub1-5/feature.ini b/wrf/cam1/sub1-5/feature.ini new file mode 100644 index 0000000..0233075 --- /dev/null +++ b/wrf/cam1/sub1-5/feature.ini @@ -0,0 +1,384 @@ +[feature_74] +id = 74 +position = 1856, 3520, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_75] +id = 75 +position = 1728, 3648, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_76] +id = 76 +position = 2240, 3648, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_82] +id = 82 +position = 1600, 3776, 0 +rotation = 0, 0, 0 +name = miruin2 + +[feature_84] +id = 84 +position = 1984, 3136, 0 +rotation = 0, 0, 0 +name = miruin2 + +[feature_224] +id = 224 +position = 3392, 1600, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_225] +id = 225 +position = 3520, 1728, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_226] +id = 226 +position = 2880, 1856, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_227] +id = 227 +position = 2880, 1728, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_228] +id = 228 +position = 2880, 1984, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_230] +id = 230 +position = 2880, 960, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_231] +id = 231 +position = 3008, 960, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_232] +id = 232 +position = 3392, 960, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_246] +id = 246 +position = 2624, 4416, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_247] +id = 247 +position = 2880, 4032, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_248] +id = 248 +position = 3136, 4032, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_249] +id = 249 +position = 2880, 4160, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_250] +id = 250 +position = 3136, 4160, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_283] +id = 283 +position = 4288, 7744, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_285] +id = 285 +position = 5440, 7744, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_301] +id = 301 +position = 2752, 2112, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_302] +id = 302 +position = 3264, 2752, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_303] +id = 303 +position = 2752, 2240, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_304] +id = 304 +position = 3264, 2624, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_305] +id = 305 +position = 3392, 1728, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_306] +id = 306 +position = 3264, 2368, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_307] +id = 307 +position = 2624, 3392, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_313] +id = 313 +position = 2624, 4160, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_314] +id = 314 +position = 7744, 4416, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_315] +id = 315 +position = 7744, 4544, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_316] +id = 316 +position = 6336, 4672, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_317] +id = 317 +position = 6208, 4672, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_318] +id = 318 +position = 3904, 448, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_319] +id = 319 +position = 3904, 320, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_320] +id = 320 +position = 4416, 448, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_321] +id = 321 +position = 2624, 448, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_322] +id = 322 +position = 3520, 1984, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_325] +id = 325 +position = 2624, 5056, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_326] +id = 326 +position = 2624, 5312, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_327] +id = 327 +position = 2624, 5440, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_328] +id = 328 +position = 2240, 6592, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_329] +id = 329 +position = 2752, 6592, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_345] +id = 345 +position = 5184, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_349] +id = 349 +position = 5184, 3264, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_350] +id = 350 +position = 5312, 3264, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_353] +id = 353 +position = 6208, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_354] +id = 354 +position = 6080, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_355] +id = 355 +position = 5568, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_362] +id = 362 +position = 1344, 2112, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_364] +id = 364 +position = 1600, 448, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_365] +id = 365 +position = 832, 1216, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_366] +id = 366 +position = 1344, 2368, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_381] +id = 381 +position = 3008, 704, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_382] +id = 382 +position = 3136, 704, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_383] +id = 383 +position = 3392, 704, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_430] +id = 430 +position = 5824, 7744, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_431] +id = 431 +position = 5696, 7744, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_432] +id = 432 +position = 4416, 7488, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_435] +id = 435 +position = 3904, 7488, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_443] +id = 443 +position = 4032, 7488, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_448] +id = 448 +position = 5952, 3264, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_451] +id = 451 +position = 6080, 3264, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_452] +id = 452 +position = 6080, 3136, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_466] +id = 466 +position = 3008, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam1/sub1-5/labels.ini b/wrf/cam1/sub1-5/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam1/sub1-d.gam b/wrf/cam1/sub1-d.gam new file mode 100644 index 0000000..5cae58b Binary files /dev/null and b/wrf/cam1/sub1-d.gam differ diff --git a/wrf/cam1/sub1-d/droid.ini b/wrf/cam1/sub1-d/droid.ini new file mode 100644 index 0000000..0fe4320 --- /dev/null +++ b/wrf/cam1/sub1-d/droid.ini @@ -0,0 +1,490 @@ +[droid_726] +id = 726 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 960, 1472, 0 +rotation = 0, 0, 0 + +[droid_725] +id = 725 +startpos = 1 +template = NP-M-LtAT-Hover +position = 1216, 1600, 0 +rotation = 0, 0, 0 + +[droid_727] +id = 727 +startpos = 1 +template = NP-M-MG3-Hover +position = 960, 1344, 0 +rotation = 0, 0, 0 + +[droid_466] +id = 466 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 7616, 0 +rotation = 0, 0, 0 + +[droid_467] +id = 467 +startpos = 1 +template = CyborgRkt01Ground +position = 5440, 7616, 0 +rotation = 0, 0, 0 + +[droid_468] +id = 468 +startpos = 1 +template = CyborgRkt01Ground +position = 5568, 7616, 0 +rotation = 0, 0, 0 + +[droid_469] +id = 469 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 7488, 0 +rotation = 0, 0, 0 + +[droid_470] +id = 470 +startpos = 1 +template = CyborgRkt01Ground +position = 5440, 7488, 0 +rotation = 0, 0, 0 + +[droid_471] +id = 471 +startpos = 1 +template = CyborgRkt01Ground +position = 5568, 7360, 0 +rotation = 0, 0, 0 + +[droid_472] +id = 472 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 7360, 0 +rotation = 0, 0, 0 + +[droid_473] +id = 473 +startpos = 1 +template = CyborgRkt01Ground +position = 5568, 7488, 0 +rotation = 0, 0, 0 + +[droid_474] +id = 474 +startpos = 1 +template = CyborgRkt01Ground +position = 5440, 7360, 0 +rotation = 0, 0, 0 + +[droid_475] +id = 475 +startpos = 1 +template = CyborgRkt01Ground +position = 5184, 6720, 0 +rotation = 0, 0, 0 + +[droid_476] +id = 476 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 6720, 0 +rotation = 0, 0, 0 + +[droid_477] +id = 477 +startpos = 1 +template = CyborgRkt01Ground +position = 5056, 6720, 0 +rotation = 0, 0, 0 + +[droid_478] +id = 478 +startpos = 1 +template = CyborgRkt01Ground +position = 5056, 6848, 0 +rotation = 0, 0, 0 + +[droid_479] +id = 479 +startpos = 1 +template = CyborgRkt01Ground +position = 5184, 6848, 0 +rotation = 0, 0, 0 + +[droid_480] +id = 480 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 6848, 0 +rotation = 0, 0, 0 + +[droid_481] +id = 481 +startpos = 1 +template = CyborgRkt01Ground +position = 5056, 6976, 0 +rotation = 0, 0, 0 + +[droid_482] +id = 482 +startpos = 1 +template = CyborgRkt01Ground +position = 5184, 6976, 0 +rotation = 0, 0, 0 + +[droid_483] +id = 483 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 6976, 0 +rotation = 0, 0, 0 + +[droid_676] +id = 676 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 4927, 3905, 0 +rotation = 0, 0, 0 + +[droid_677] +id = 677 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 4288, 15296, 0 +rotation = 49516, 0, 0 + +[droid_678] +id = 678 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 4288, 15424, 0 +rotation = 48242, 0, 0 + +[droid_679] +id = 679 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 4175, 15300, 0 +rotation = 48970, 0, 0 + +[droid_680] +id = 680 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 4160, 15424, 0 +rotation = 48788, 0, 0 + +[droid_681] +id = 681 +startpos = 1 +template = NP-M-Sensor-Wheels +position = 3264, 15296, 0 +rotation = 48970, 0, 0 + +[droid_682] +id = 682 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3264, 15424, 0 +rotation = 48424, 0, 0 + +[droid_683] +id = 683 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3392, 15296, 0 +rotation = 47696, 0, 0 + +[droid_684] +id = 684 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3392, 15424, 0 +rotation = 48424, 0, 0 + +[droid_685] +id = 685 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3264, 13760, 0 +rotation = 0, 0, 0 + +[droid_686] +id = 686 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3392, 13760, 0 +rotation = 0, 0, 0 + +[droid_687] +id = 687 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3392, 13888, 0 +rotation = 0, 0, 0 + +[droid_688] +id = 688 +startpos = 1 +template = NP-M-Sensor-Wheels +position = 3264, 13888, 0 +rotation = 0, 0, 0 + +[droid_689] +id = 689 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 12992, 0 +rotation = 46603, 0, 0 + +[droid_690] +id = 690 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 13120, 0 +rotation = 50790, 0, 0 + +[droid_691] +id = 691 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 13248, 0 +rotation = 46967, 0, 0 + +[droid_692] +id = 692 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 5312, 12992, 0 +rotation = 48424, 0, 0 + +[droid_693] +id = 693 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 5312, 13120, 0 +rotation = 48606, 0, 0 + +[droid_694] +id = 694 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 5181, 13134, 0 +rotation = 49880, 0, 0 + +[droid_695] +id = 695 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 5184, 12992, 0 +rotation = 49152, 0, 0 + +[droid_696] +id = 696 +startpos = 1 +template = NP-L-MRLS-Halftrack +position = 4544, 8256, 0 +rotation = 16020, 0, 0 + +[droid_697] +id = 697 +startpos = 1 +template = NP-L-MRLS-Halftrack +position = 4544, 8384, 0 +rotation = 19115, 0, 0 + +[droid_698] +id = 698 +startpos = 1 +template = NP-L-MRLS-Halftrack +position = 4672, 8256, 0 +rotation = 15292, 0, 0 + +[droid_699] +id = 699 +startpos = 1 +template = NP-L-MRLS-Halftrack +position = 4672, 8384, 0 +rotation = 17112, 0, 0 + +[droid_700] +id = 700 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4928, 8256, 0 +rotation = 20571, 0, 0 + +[droid_701] +id = 701 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4928, 8384, 0 +rotation = 12379, 0, 0 + +[droid_702] +id = 702 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 8256, 0 +rotation = 15656, 0, 0 + +[droid_703] +id = 703 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 8384, 0 +rotation = 12561, 0, 0 + +[droid_704] +id = 704 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6336, 7232, 0 +rotation = 49334, 0, 0 + +[droid_705] +id = 705 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6336, 7360, 0 +rotation = 49698, 0, 0 + +[droid_706] +id = 706 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6336, 7488, 0 +rotation = 48242, 0, 0 + +[droid_707] +id = 707 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6464, 7232, 0 +rotation = 48788, 0, 0 + +[droid_708] +id = 708 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6464, 7360, 0 +rotation = 49334, 0, 0 + +[droid_709] +id = 709 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6464, 7488, 0 +rotation = 50608, 0, 0 + +[droid_710] +id = 710 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6592, 7360, 0 +rotation = 49334, 0, 0 + +[droid_711] +id = 711 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6592, 7488, 0 +rotation = 48060, 0, 0 + +[droid_712] +id = 712 +startpos = 1 +template = NP-M-LtAT-Hover +position = 2752, 12352, 0 +rotation = 0, 0, 0 + +[droid_713] +id = 713 +startpos = 1 +template = NP-M-LtAT-Hover +position = 2624, 12352, 0 +rotation = 0, 0, 0 + +[droid_714] +id = 714 +startpos = 1 +template = NP-M-MG3-Hover +position = 2752, 12096, 0 +rotation = 29855, 0, 0 + +[droid_715] +id = 715 +startpos = 1 +template = NP-M-MG3-Hover +position = 2624, 12096, 0 +rotation = 25850, 0, 0 + +[droid_716] +id = 716 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 3904, 2368, 0 +rotation = 0, 0, 0 + +[droid_717] +id = 717 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 4032, 2368, 0 +rotation = 0, 0, 0 + +[droid_718] +id = 718 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 3904, 2496, 0 +rotation = 0, 0, 0 + +[droid_719] +id = 719 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 4032, 2496, 0 +rotation = 0, 0, 0 + +[droid_720] +id = 720 +startpos = 1 +template = NP-M-MG3-Hover +position = 3904, 2240, 0 +rotation = 0, 0, 0 + +[droid_721] +id = 721 +startpos = 1 +template = NP-M-MG3-Hover +position = 4032, 2240, 0 +rotation = 0, 0, 0 + +[droid_722] +id = 722 +startpos = 1 +template = NP-M-LtAT-Hover +position = 1088, 1472, 0 +rotation = 0, 0, 0 + +[droid_723] +id = 723 +startpos = 1 +template = NP-M-LtAT-Hover +position = 1216, 1472, 0 +rotation = 0, 0, 0 + +[droid_724] +id = 724 +startpos = 1 +template = NP-M-LtAT-Hover +position = 1088, 1600, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam1/sub1-d/feature.ini b/wrf/cam1/sub1-d/feature.ini new file mode 100644 index 0000000..70b0aa6 --- /dev/null +++ b/wrf/cam1/sub1-d/feature.ini @@ -0,0 +1,180 @@ +[feature_525] +id = 525 +position = 7488, 5056, 0 +rotation = 63716, 0, 0 +name = Crane + +[feature_526] +id = 526 +position = 6976, 4544, 0 +rotation = 24576, 0, 0 +name = Crane + +[feature_527] +id = 527 +position = 7552, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_528] +id = 528 +position = 7232, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_529] +id = 529 +position = 6720, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_530] +id = 530 +position = 4736, 3136, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_531] +id = 531 +position = 4736, 3264, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_555] +id = 555 +position = 6080, 15424, 0 +rotation = 0, 0, 0 +name = Crate + +[feature_574] +id = 574 +position = 6144, 15680, 0 +rotation = 0, 0, 0 +name = BarbTechRuin + +[feature_576] +id = 576 +position = 5504, 15808, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_577] +id = 577 +position = 6144, 15808, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_578] +id = 578 +position = 6336, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_579] +id = 579 +position = 6336, 15680, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_580] +id = 580 +position = 5312, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_581] +id = 581 +position = 6464, 15680, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_582] +id = 582 +position = 6464, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_589] +id = 589 +position = 2368, 3584, 0 +rotation = 0, 0, 0 +name = WreckedTankerV + +[feature_594] +id = 594 +position = 2368, 3136, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_595] +id = 595 +position = 2624, 4416, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_596] +id = 596 +position = 2496, 4416, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_744] +id = 744 +position = 960, 6336, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_745] +id = 745 +position = 1088, 6208, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_746] +id = 746 +position = 960, 6464, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_747] +id = 747 +position = 1088, 6464, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_748] +id = 748 +position = 1216, 6464, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_749] +id = 749 +position = 960, 6592, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_750] +id = 750 +position = 1088, 6592, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_751] +id = 751 +position = 1216, 6592, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_752] +id = 752 +position = 832, 6720, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_754] +id = 754 +position = 1088, 6336, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam1/sub1-d/labels.ini b/wrf/cam1/sub1-d/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/cam2b.gam b/wrf/cam2/cam2b.gam new file mode 100644 index 0000000..720b2d1 Binary files /dev/null and b/wrf/cam2/cam2b.gam differ diff --git a/wrf/cam2/cam2b/droid.ini b/wrf/cam2/cam2b/droid.ini new file mode 100644 index 0000000..3bbef7a --- /dev/null +++ b/wrf/cam2/cam2b/droid.ini @@ -0,0 +1,336 @@ +[droid_4432] +id = 4432 +startpos = 2 +template = CO-M-Vstrike-T +position = 12346, 7994, 0 +rotation = 0, 0, 0 + +[droid_1413] +id = 1413 +startpos = 2 +template = CO-M-Con-T +position = 12103, 7175, 0 +rotation = 0, 0, 0 + +[droid_1518] +id = 1518 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 10176, 4160, 0 +rotation = 0, 0, 0 + +[droid_1519] +id = 1519 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 10442, 4158, 0 +rotation = 0, 0, 0 + +[droid_1520] +id = 1520 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 10303, 4161, 0 +rotation = 0, 0, 0 + +[droid_1521] +id = 1521 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 10305, 3904, 0 +rotation = 0, 0, 0 + +[droid_1522] +id = 1522 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 10175, 3872, 0 +rotation = 0, 0, 0 + +[droid_1523] +id = 1523 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 10433, 3904, 0 +rotation = 0, 0, 0 + +[droid_1672] +id = 1672 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 11329, 2000, 0 +rotation = 0, 0, 0 + +[droid_1674] +id = 1674 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 11453, 2000, 0 +rotation = 0, 0, 0 + +[droid_1676] +id = 1676 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 11577, 1995, 0 +rotation = 0, 0, 0 + +[droid_1682] +id = 1682 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 11202, 2746, 0 +rotation = 0, 0, 0 + +[droid_1683] +id = 1683 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 11332, 2750, 0 +rotation = 0, 0, 0 + +[droid_3794] +id = 3794 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12096, 7488, 0 +rotation = 0, 0, 0 + +[droid_3795] +id = 3795 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12224, 7488, 0 +rotation = 0, 0, 0 + +[droid_3809] +id = 3809 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12097, 4288, 0 +rotation = 0, 0, 0 + +[droid_3810] +id = 3810 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12224, 4288, 0 +rotation = 0, 0, 0 + +[droid_3811] +id = 3811 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12096, 4160, 0 +rotation = 0, 0, 0 + +[droid_3812] +id = 3812 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12224, 4160, 0 +rotation = 0, 0, 0 + +[droid_3846] +id = 3846 +startpos = 2 +template = Cyb-Chain-GROUND +position = 12988, 2998, 0 +rotation = 0, 0, 0 + +[droid_3847] +id = 3847 +startpos = 2 +template = Cyb-Chain-GROUND +position = 12866, 2880, 0 +rotation = 0, 0, 0 + +[droid_3848] +id = 3848 +startpos = 2 +template = Cyb-Chain-GROUND +position = 12992, 2880, 0 +rotation = 0, 0, 0 + +[droid_3849] +id = 3849 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 12096, 6464, 0 +rotation = 0, 0, 0 + +[droid_3850] +id = 3850 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 12224, 6464, 0 +rotation = 0, 0, 0 + +[droid_3851] +id = 3851 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 12096, 6592, 0 +rotation = 0, 0, 0 + +[droid_3852] +id = 3852 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 12225, 6592, 0 +rotation = 0, 0, 0 + +[droid_3853] +id = 3853 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 12096, 6336, 0 +rotation = 0, 0, 0 + +[droid_3854] +id = 3854 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 12224, 6337, 0 +rotation = 0, 0, 0 + +[droid_3874] +id = 3874 +startpos = 2 +template = CO-M-Sensor-T +position = 12092, 7866, 0 +rotation = 0, 0, 0 + +[droid_3876] +id = 3876 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12090, 7988, 0 +rotation = 0, 0, 0 + +[droid_4180] +id = 4180 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 11970, 7600, 0 +rotation = 0, 0, 0 + +[droid_4186] +id = 4186 +startpos = 2 +template = CO-H-Command-Track +position = 12348, 7862, 0 +rotation = 0, 0, 0 + +[droid_4191] +id = 4191 +startpos = 2 +template = CO-M-Con-T +position = 10054, 1981, 0 +rotation = 0, 0, 0 + +[droid_4192] +id = 4192 +startpos = 2 +template = CO-M-Con-T +position = 9792, 1984, 0 +rotation = 0, 0, 0 + +[droid_4202] +id = 4202 +startpos = 2 +template = CO-H-Rkt-BB-T +position = 12224, 7616, 0 +rotation = 0, 0, 0 + +[droid_4203] +id = 4203 +startpos = 2 +template = CO-H-Rkt-BB-T +position = 12096, 7616, 0 +rotation = 0, 0, 0 + +[droid_4204] +id = 4204 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 12608, 7616, 0 +rotation = 0, 0, 0 + +[droid_4205] +id = 4205 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 12736, 7616, 0 +rotation = 0, 0, 0 + +[droid_4207] +id = 4207 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 12736, 7744, 0 +rotation = 0, 0, 0 + +[droid_4262] +id = 4262 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 9664, 4160, 0 +rotation = 0, 0, 0 + +[droid_4263] +id = 4263 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 9792, 4160, 0 +rotation = 0, 0, 0 + +[droid_4264] +id = 4264 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 9920, 4160, 0 +rotation = 0, 0, 0 + +[droid_4265] +id = 4265 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 9664, 4032, 0 +rotation = 0, 0, 0 + +[droid_4266] +id = 4266 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 9792, 4032, 0 +rotation = 0, 0, 0 + +[droid_4267] +id = 4267 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 9920, 4032, 0 +rotation = 0, 0, 0 + +[droid_4268] +id = 4268 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 9664, 3904, 0 +rotation = 0, 0, 0 + +[droid_4269] +id = 4269 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 9792, 3904, 0 +rotation = 0, 0, 0 + +[droid_4270] +id = 4270 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 9920, 3904, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/cam2b/feature.ini b/wrf/cam2/cam2b/feature.ini new file mode 100644 index 0000000..502753b --- /dev/null +++ b/wrf/cam2/cam2b/feature.ini @@ -0,0 +1,510 @@ +[feature_624] +id = 624 +position = 12480, 5056, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_626] +id = 626 +position = 11136, 3520, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_628] +id = 628 +position = 10432, 3520, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_629] +id = 629 +position = 13120, 1472, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_631] +id = 631 +position = 11904, 3392, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_632] +id = 632 +position = 14400, 5184, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_935] +id = 935 +position = 14144, 2240, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_936] +id = 936 +position = 13632, 1600, 0 +rotation = 16384, 0, 0 +name = building1 + +[feature_952] +id = 952 +position = 8896, 7232, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1050] +id = 1050 +position = 13760, 3904, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1069] +id = 1069 +position = 13248, 7360, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1070] +id = 1070 +position = 13120, 5184, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1071] +id = 1071 +position = 11712, 5184, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1072] +id = 1072 +position = 10944, 5056, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1073] +id = 1073 +position = 10112, 6464, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1075] +id = 1075 +position = 10688, 6336, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1114] +id = 1114 +position = 13120, 8000, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1115] +id = 1115 +position = 15808, 3776, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1116] +id = 1116 +position = 13760, 4544, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1117] +id = 1117 +position = 14400, 960, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_1119] +id = 1119 +position = 8896, 3904, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1132] +id = 1132 +position = 15424, 1600, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1151] +id = 1151 +position = 11072, 8000, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1152] +id = 1152 +position = 12608, 8000, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1153] +id = 1153 +position = 9536, 8000, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1154] +id = 1154 +position = 10112, 7872, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1155] +id = 1155 +position = 14336, 6336, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1197] +id = 1197 +position = 11840, 8000, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1419] +id = 1419 +position = 15168, 7744, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1427] +id = 1427 +position = 10432, 4928, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_1434] +id = 1434 +position = 13312, 6208, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1436] +id = 1436 +position = 13760, 5184, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_1439] +id = 1439 +position = 13632, 6720, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1440] +id = 1440 +position = 13760, 7360, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1446] +id = 1446 +position = 9152, 5184, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1448] +id = 1448 +position = 10176, 5440, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_1452] +id = 1452 +position = 9536, 6976, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_1455] +id = 1455 +position = 9088, 6976, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1457] +id = 1457 +position = 9536, 7360, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1463] +id = 1463 +position = 9024, 8000, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_1464] +id = 1464 +position = 9152, 7744, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1465] +id = 1465 +position = 8512, 7872, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1871] +id = 1871 +position = 15488, 896, 0 +rotation = 0, 0, 0 +name = WreckedBuilding9 + +[feature_1981] +id = 1981 +position = 15936, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1982] +id = 1982 +position = 15296, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1985] +id = 1985 +position = 14528, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1987] +id = 1987 +position = 12992, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1988] +id = 1988 +position = 11072, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1990] +id = 1990 +position = 10304, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_2008] +id = 2008 +position = 13568, 640, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_2009] +id = 2009 +position = 14656, 7488, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_2013] +id = 2013 +position = 15296, 1856, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2014] +id = 2014 +position = 15936, 3008, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_2018] +id = 2018 +position = 15360, 5696, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_2231] +id = 2231 +position = 13376, 832, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_2232] +id = 2232 +position = 13632, 960, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2234] +id = 2234 +position = 14272, 2752, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_2235] +id = 2235 +position = 14272, 3136, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_4609] +id = 4609 +position = 11840, 6848, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_4623] +id = 4623 +position = 12736, 6848, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4624] +id = 4624 +position = 12864, 6848, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4625] +id = 4625 +position = 12736, 6720, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4626] +id = 4626 +position = 12992, 6720, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4627] +id = 4627 +position = 12992, 6592, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4660] +id = 4660 +position = 10432, 1600, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4659] +id = 4659 +position = 10432, 1472, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4662] +id = 4662 +position = 11072, 1600, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4686] +id = 4686 +position = 9792, 2496, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4687] +id = 4687 +position = 9920, 2368, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4688] +id = 4688 +position = 9920, 2496, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4689] +id = 4689 +position = 9920, 2624, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4703] +id = 4703 +position = 12608, 6080, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4704] +id = 4704 +position = 12736, 6080, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4705] +id = 4705 +position = 12608, 6208, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4706] +id = 4706 +position = 12736, 6208, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4707] +id = 4707 +position = 12608, 6336, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4708] +id = 4708 +position = 12736, 6336, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4709] +id = 4709 +position = 14272, 1856, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4710] +id = 4710 +position = 14400, 1856, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4711] +id = 4711 +position = 14272, 1984, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4712] +id = 4712 +position = 14400, 1984, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4713] +id = 4713 +position = 14144, 1856, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4714] +id = 4714 +position = 14144, 1984, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4741] +id = 4741 +position = 9920, 2240, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_4661] +id = 4661 +position = 11072, 1728, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam2/cam2b/game.map b/wrf/cam2/cam2b/game.map new file mode 100644 index 0000000..dcd15a9 Binary files /dev/null and b/wrf/cam2/cam2b/game.map differ diff --git a/wrf/cam2/cam2b/labels.ini b/wrf/cam2/cam2b/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/cam2b/struct.ini b/wrf/cam2/cam2b/struct.ini new file mode 100644 index 0000000..b362215 --- /dev/null +++ b/wrf/cam2/cam2b/struct.ini @@ -0,0 +1,1008 @@ +[structure_1559] +id = 1559 +startpos = 2 +name = CO-Tower-LtATRkt +position = 10304, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_423] +id = 423 +startpos = 2 +name = CollectiveCWall +position = 11200, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_428] +id = 428 +startpos = 2 +name = CollectiveWall +position = 11584, 6976, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_429] +id = 429 +startpos = 2 +name = CollectiveWall +position = 11840, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_430] +id = 430 +startpos = 2 +name = CollectiveWall +position = 12608, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_432] +id = 432 +startpos = 2 +name = CollectiveWall +position = 12480, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_440] +id = 440 +startpos = 2 +name = CollectiveWall +position = 11712, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_442] +id = 442 +startpos = 2 +name = CollectiveWall +position = 11584, 7104, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_443] +id = 443 +startpos = 2 +name = CollectiveWall +position = 11584, 7232, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_447] +id = 447 +startpos = 2 +name = CollectiveWall +position = 12736, 7104, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_448] +id = 448 +startpos = 2 +name = CollectiveWall +position = 12736, 7232, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_453] +id = 453 +startpos = 2 +name = A0RepairCentre3 +position = 12352, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_458] +id = 458 +startpos = 2 +name = CollectiveWall +position = 11584, 6720, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_459] +id = 459 +startpos = 2 +name = CollectiveWall +position = 11584, 6592, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_460] +id = 460 +startpos = 2 +name = CollectiveWall +position = 11584, 6464, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_463] +id = 463 +startpos = 2 +name = CollectiveWall +position = 12992, 6976, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_464] +id = 464 +startpos = 2 +name = CollectiveWall +position = 12864, 6976, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_497] +id = 497 +startpos = 2 +name = CollectiveWall +position = 11200, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_498] +id = 498 +startpos = 2 +name = CollectiveWall +position = 11200, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_510] +id = 510 +startpos = 2 +name = A0PowerGenerator +position = 10240, 2304, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_518] +id = 518 +startpos = 2 +name = A0LightFactory +position = 10048, 1600, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_520] +id = 520 +startpos = 2 +name = A0LightFactory +position = 10688, 1600, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_1380] +id = 1380 +startpos = 2 +name = A0TankTrap +position = 11200, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1381] +id = 1381 +startpos = 2 +name = A0TankTrap +position = 11328, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1382] +id = 1382 +startpos = 2 +name = A0TankTrap +position = 11072, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1383] +id = 1383 +startpos = 2 +name = A0TankTrap +position = 11456, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1414] +id = 1414 +startpos = 2 +name = A0LightFactory +position = 11840, 6208, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_1491] +id = 1491 +startpos = 2 +name = A0CyborgFactory +position = 12352, 6400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1552] +id = 1552 +startpos = 2 +name = CO-Tower-LtATRkt +position = 9792, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1553] +id = 1553 +startpos = 2 +name = CO-Tower-LtATRkt +position = 9792, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1554] +id = 1554 +startpos = 2 +name = CO-Tower-LtATRkt +position = 10304, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1555] +id = 1555 +startpos = 2 +name = CO-Tower-LtATRkt +position = 10816, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1557] +id = 1557 +startpos = 2 +name = CO-Tower-LtATRkt +position = 9792, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1558] +id = 1558 +startpos = 2 +name = CO-Tower-LtATRkt +position = 11072, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3770] +id = 3770 +startpos = 2 +name = AASite-QuadMg1 +position = 10432, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1560] +id = 1560 +startpos = 2 +name = CO-Tower-LtATRkt +position = 9792, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1643] +id = 1643 +startpos = 2 +name = CollectiveWall +position = 11456, 2752, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1644] +id = 1644 +startpos = 2 +name = CollectiveWall +position = 11456, 2880, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1645] +id = 1645 +startpos = 2 +name = CollectiveWall +position = 11456, 3008, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1652] +id = 1652 +startpos = 2 +name = CollectiveWall +position = 9664, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1654] +id = 1654 +startpos = 2 +name = CollectiveWall +position = 9920, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1655] +id = 1655 +startpos = 2 +name = CollectiveWall +position = 10048, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1656] +id = 1656 +startpos = 2 +name = CollectiveWall +position = 10176, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1658] +id = 1658 +startpos = 2 +name = CollectiveWall +position = 10432, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1659] +id = 1659 +startpos = 2 +name = CollectiveWall +position = 10560, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1660] +id = 1660 +startpos = 2 +name = CollectiveWall +position = 11456, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1664] +id = 1664 +startpos = 2 +name = CollectiveWall +position = 11200, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1665] +id = 1665 +startpos = 2 +name = CollectiveWall +position = 11328, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3769] +id = 3769 +startpos = 2 +name = AASite-QuadMg1 +position = 9920, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3843] +id = 3843 +startpos = 2 +name = A0CyborgFactory +position = 13248, 2560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3844] +id = 3844 +startpos = 2 +name = A0CyborgFactory +position = 12992, 2560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3845] +id = 3845 +startpos = 2 +name = A0CommandCentreCO +position = 13184, 2944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3866] +id = 3866 +startpos = 2 +name = CollectiveWall +position = 13120, 6592, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3867] +id = 3867 +startpos = 2 +name = CollectiveWall +position = 13120, 6720, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3868] +id = 3868 +startpos = 2 +name = CollectiveWall +position = 13120, 6848, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4193] +id = 4193 +startpos = 2 +name = Sys-SensoTower02 +position = 10688, 7232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4194] +id = 4194 +startpos = 2 +name = Sys-CB-Tower01 +position = 12608, 7232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4195] +id = 4195 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12736, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4196] +id = 4196 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12992, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4198] +id = 4198 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12864, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4210] +id = 4210 +startpos = 2 +name = CollectiveCWall +position = 11456, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4211] +id = 4211 +startpos = 2 +name = CollectiveCWall +position = 11072, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4212] +id = 4212 +startpos = 2 +name = CollectiveCWall +position = 10688, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4213] +id = 4213 +startpos = 2 +name = CollectiveCWall +position = 9536, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4214] +id = 4214 +startpos = 2 +name = CollectiveWall +position = 9792, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4215] +id = 4215 +startpos = 2 +name = CollectiveWall +position = 10304, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4234] +id = 4234 +startpos = 2 +name = CO-Tower-MdCan +position = 9536, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4235] +id = 4235 +startpos = 2 +name = CO-Tower-MdCan +position = 9792, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4236] +id = 4236 +startpos = 2 +name = CO-Tower-MdCan +position = 10304, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4237] +id = 4237 +startpos = 2 +name = CO-Tower-MdCan +position = 11328, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4241] +id = 4241 +startpos = 2 +name = CO-Tower-MdCan +position = 11584, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4242] +id = 4242 +startpos = 2 +name = CO-Tower-MdCan +position = 11584, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4243] +id = 4243 +startpos = 2 +name = CO-Tower-MdCan +position = 11584, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4245] +id = 4245 +startpos = 2 +name = CO-Tower-MdCan +position = 9408, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4246] +id = 4246 +startpos = 2 +name = CO-Tower-MdCan +position = 9408, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4247] +id = 4247 +startpos = 2 +name = CO-Tower-MdCan +position = 9408, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4250] +id = 4250 +startpos = 2 +name = CO-Tower-MG3 +position = 11200, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4251] +id = 4251 +startpos = 2 +name = CO-Tower-MG3 +position = 10560, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4252] +id = 4252 +startpos = 2 +name = CO-Tower-MG3 +position = 10560, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4253] +id = 4253 +startpos = 2 +name = CO-Tower-MG3 +position = 11328, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4254] +id = 4254 +startpos = 2 +name = PillBox5 +position = 10688, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4255] +id = 4255 +startpos = 2 +name = PillBox5 +position = 11072, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4278] +id = 4278 +startpos = 2 +name = CO-Tower-LtATRkt +position = 12864, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4281] +id = 4281 +startpos = 2 +name = CO-Tower-MdCan +position = 12864, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4282] +id = 4282 +startpos = 2 +name = CO-Tower-MdCan +position = 12224, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4510] +id = 4510 +startpos = 2 +name = A0ResearchFacility +position = 10624, 2304, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_4514] +id = 4514 +startpos = 2 +name = CO-WallTower-HvCan +position = 12736, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4515] +id = 4515 +startpos = 2 +name = CO-WallTower-HvCan +position = 12736, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4516] +id = 4516 +startpos = 2 +name = CO-WallTower-HvCan +position = 13376, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4517] +id = 4517 +startpos = 2 +name = CO-WallTower-HvCan +position = 13376, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4518] +id = 4518 +startpos = 2 +name = Emplacement-MortarPit02 +position = 10944, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4519] +id = 4519 +startpos = 2 +name = Emplacement-MortarPit02 +position = 10688, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4520] +id = 4520 +startpos = 2 +name = Emplacement-MortarPit02 +position = 10432, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4521] +id = 4521 +startpos = 2 +name = Emplacement-MortarPit02 +position = 11200, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4523] +id = 4523 +startpos = 2 +name = Sys-CB-Tower01 +position = 10432, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4582] +id = 4582 +startpos = 2 +name = Sys-SensoTower02 +position = 13120, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4583] +id = 4583 +startpos = 2 +name = Emplacement-MortarPit02 +position = 13120, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4584] +id = 4584 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12992, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4585] +id = 4585 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12992, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4586] +id = 4586 +startpos = 2 +name = Emplacement-MortarPit02 +position = 13376, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4587] +id = 4587 +startpos = 2 +name = PillBox4 +position = 12736, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4588] +id = 4588 +startpos = 2 +name = PillBox1 +position = 13888, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4589] +id = 4589 +startpos = 2 +name = PillBox1 +position = 13376, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4590] +id = 4590 +startpos = 2 +name = Emplacement-MortarPit02 +position = 13248, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4591] +id = 4591 +startpos = 2 +name = CO-Tower-LtATRkt +position = 11200, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4592] +id = 4592 +startpos = 2 +name = CO-Tower-LtATRkt +position = 11200, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4594] +id = 4594 +startpos = 2 +name = Sys-SensoTower02 +position = 11072, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4595] +id = 4595 +startpos = 2 +name = Sys-SensoTower02 +position = 11968, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4610] +id = 4610 +startpos = 2 +name = A0ResourceExtractor +position = 11840, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4611] +id = 4611 +startpos = 2 +name = A0TankTrap +position = 10944, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4612] +id = 4612 +startpos = 2 +name = CollectiveWall +position = 11584, 6848, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4613] +id = 4613 +startpos = 2 +name = CollectiveCWall +position = 12736, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4746] +id = 4746 +startpos = 2 +name = A0HardcreteMk1Gate +position = 10944, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4615] +id = 4615 +startpos = 2 +name = CO-Tower-MdCan +position = 11584, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4616] +id = 4616 +startpos = 2 +name = CO-Tower-MdCan +position = 11584, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4744] +id = 4744 +startpos = 2 +name = A0HardcreteMk1Gate +position = 12224, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4618] +id = 4618 +startpos = 2 +name = CO-Tower-MdCan +position = 12736, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4619] +id = 4619 +startpos = 2 +name = CO-Tower-MdCan +position = 13120, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4620] +id = 4620 +startpos = 2 +name = CO-Tower-MdCan +position = 11584, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4621] +id = 4621 +startpos = 2 +name = CO-Tower-MdCan +position = 12736, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4622] +id = 4622 +startpos = 2 +name = CO-Tower-MdCan +position = 13120, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4742] +id = 4742 +startpos = 2 +name = A0ResourceExtractor +position = 9920, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4614] +id = 4614 +startpos = 2 +name = CO-Tower-MdCan +position = 11968, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4743] +id = 4743 +startpos = 2 +name = A0HardcreteMk1Gate +position = 12096, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4745] +id = 4745 +startpos = 2 +name = A0HardcreteMk1Gate +position = 10816, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4617] +id = 4617 +startpos = 2 +name = CO-Tower-MdCan +position = 12352, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/cam2b/ttypes.ttp b/wrf/cam2/cam2b/ttypes.ttp new file mode 100644 index 0000000..c746400 Binary files /dev/null and b/wrf/cam2/cam2b/ttypes.ttp differ diff --git a/wrf/cam2/cam2c.gam b/wrf/cam2/cam2c.gam new file mode 100644 index 0000000..4b19c64 Binary files /dev/null and b/wrf/cam2/cam2c.gam differ diff --git a/wrf/cam2/cam2c/droid.ini b/wrf/cam2/cam2c/droid.ini new file mode 100644 index 0000000..5b28e38 --- /dev/null +++ b/wrf/cam2/cam2c/droid.ini @@ -0,0 +1,462 @@ +[droid_2283] +id = 2283 +startpos = 2 +template = CO-M-Sensor-T +position = 3904, 960, 0 +rotation = 0, 0, 0 + +[droid_2316] +id = 2316 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1598, 3516, 0 +rotation = 0, 0, 0 + +[droid_2318] +id = 2318 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 2114, 3520, 0 +rotation = 0, 0, 0 + +[droid_2691] +id = 2691 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 6976, 10688, 0 +rotation = 0, 0, 0 + +[droid_2692] +id = 2692 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 6464, 11328, 0 +rotation = 0, 0, 0 + +[droid_2693] +id = 2693 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 4928, 11328, 0 +rotation = 32768, 0, 0 + +[droid_2695] +id = 2695 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 5444, 10950, 0 +rotation = 0, 0, 0 + +[droid_2703] +id = 2703 +startpos = 2 +template = CO-M-Sensor-T +position = 1216, 12352, 0 +rotation = 0, 0, 0 + +[droid_3458] +id = 3458 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 5440, 6080, 0 +rotation = 0, 0, 0 + +[droid_3467] +id = 3467 +startpos = 2 +template = CO-M-Con-T +position = 5184, 6080, 0 +rotation = 0, 0, 0 + +[droid_3468] +id = 3468 +startpos = 2 +template = CO-M-Con-T +position = 5184, 6336, 0 +rotation = 0, 0, 0 + +[droid_3470] +id = 3470 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5312, 5696, 0 +rotation = 0, 0, 0 + +[droid_3476] +id = 3476 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4288, 5312, 0 +rotation = 0, 0, 0 + +[droid_3481] +id = 3481 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5184, 7104, 0 +rotation = 0, 0, 0 + +[droid_3482] +id = 3482 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5183, 7001, 0 +rotation = 0, 0, 0 + +[droid_3487] +id = 3487 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4800, 8384, 0 +rotation = 0, 0, 0 + +[droid_3488] +id = 3488 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4928, 8384, 0 +rotation = 0, 0, 0 + +[droid_3662] +id = 3662 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4415, 703, 0 +rotation = 0, 0, 0 + +[droid_3663] +id = 3663 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4416, 832, 0 +rotation = 0, 0, 0 + +[droid_3664] +id = 3664 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4288, 704, 0 +rotation = 0, 0, 0 + +[droid_3665] +id = 3665 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4288, 832, 0 +rotation = 0, 0, 0 + +[droid_3969] +id = 3969 +startpos = 2 +template = Cyb-Chain-GROUND +position = 960, 10816, 0 +rotation = 0, 0, 0 + +[droid_3970] +id = 3970 +startpos = 2 +template = Cyb-Chain-GROUND +position = 960, 10944, 0 +rotation = 0, 0, 0 + +[droid_3971] +id = 3971 +startpos = 2 +template = Cyb-Chain-GROUND +position = 960, 11072, 0 +rotation = 0, 0, 0 + +[droid_3972] +id = 3972 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1060, 11087, 0 +rotation = 0, 0, 0 + +[droid_3973] +id = 3973 +startpos = 2 +template = CO-M-Sensor-T +position = 1088, 10944, 0 +rotation = 0, 0, 0 + +[droid_3974] +id = 3974 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1088, 12224, 0 +rotation = 0, 0, 0 + +[droid_3975] +id = 3975 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1089, 12474, 0 +rotation = 0, 0, 0 + +[droid_3976] +id = 3976 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1088, 12352, 0 +rotation = 0, 0, 0 + +[droid_3977] +id = 3977 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1216, 12608, 0 +rotation = 0, 0, 0 + +[droid_4321] +id = 4321 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 1600, 3392, 0 +rotation = 0, 0, 0 + +[droid_4322] +id = 4322 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 2112, 3392, 0 +rotation = 0, 0, 0 + +[droid_4323] +id = 4323 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 3008, 2752, 0 +rotation = 0, 0, 0 + +[droid_4324] +id = 4324 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 3264, 2752, 0 +rotation = 0, 0, 0 + +[droid_4326] +id = 4326 +startpos = 2 +template = CO-M-HMG-T +position = 3904, 1088, 0 +rotation = 0, 0, 0 + +[droid_4329] +id = 4329 +startpos = 2 +template = CO-M-Bomb2-VTOL +position = 2240, 1734, 0 +rotation = 17294, 0, 0 + +[droid_4330] +id = 4330 +startpos = 2 +template = CO-M-Bomb2-VTOL +position = 2238, 1470, 0 +rotation = 15110, 0, 0 + +[droid_4331] +id = 4331 +startpos = 2 +template = CO-M-Bomb2-VTOL +position = 2240, 1984, 0 +rotation = 16020, 0, 0 + +[droid_4352] +id = 4352 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7488, 8128, 0 +rotation = 0, 0, 0 + +[droid_4353] +id = 4353 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7488, 8000, 0 +rotation = 0, 0, 0 + +[droid_4354] +id = 4354 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7360, 8000, 0 +rotation = 0, 0, 0 + +[droid_4357] +id = 4357 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 7744, 7616, 0 +rotation = 0, 0, 0 + +[droid_4358] +id = 4358 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 7872, 7616, 0 +rotation = 0, 0, 0 + +[droid_4371] +id = 4371 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 5824, 0 +rotation = 0, 0, 0 + +[droid_4372] +id = 4372 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 5952, 0 +rotation = 0, 0, 0 + +[droid_4373] +id = 4373 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 5952, 0 +rotation = 0, 0, 0 + +[droid_4374] +id = 4374 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 5824, 0 +rotation = 0, 0, 0 + +[droid_4375] +id = 4375 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 4160, 0 +rotation = 0, 0, 0 + +[droid_4376] +id = 4376 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 4160, 0 +rotation = 0, 0, 0 + +[droid_4377] +id = 4377 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 4288, 0 +rotation = 0, 0, 0 + +[droid_4378] +id = 4378 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 4288, 0 +rotation = 0, 0, 0 + +[droid_4379] +id = 4379 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 832, 4544, 0 +rotation = 0, 0, 0 + +[droid_4380] +id = 4380 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 960, 4544, 0 +rotation = 0, 0, 0 + +[droid_4381] +id = 4381 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 832, 4672, 0 +rotation = 0, 0, 0 + +[droid_4382] +id = 4382 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 960, 4672, 0 +rotation = 0, 0, 0 + +[droid_4386] +id = 4386 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 3136, 10176, 0 +rotation = 0, 0, 0 + +[droid_4387] +id = 4387 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 3904, 10176, 0 +rotation = 0, 0, 0 + +[droid_4433] +id = 4433 +startpos = 2 +template = CO-M-Repair-T +position = 4672, 5824, 0 +rotation = 0, 0, 0 + +[droid_4434] +id = 4434 +startpos = 2 +template = CO-M-Repair-T +position = 3776, 5184, 0 +rotation = 0, 0, 0 + +[droid_4440] +id = 4440 +startpos = 2 +template = CO-H-Command-Track +position = 1216, 11072, 0 +rotation = 0, 0, 0 + +[droid_4441] +id = 4441 +startpos = 2 +template = CO-H-Command-Track +position = 1216, 12480, 0 +rotation = 0, 0, 0 + +[droid_4643] +id = 4643 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 2244, 2230, 0 +rotation = 17294, 0, 0 + +[droid_4644] +id = 4644 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 2236, 2496, 0 +rotation = 15292, 0, 0 + +[droid_4693] +id = 4693 +startpos = 7 +template = BaBaCivilian +position = 1332, 11060, 0 +rotation = 0, 0, 0 + +[droid_4694] +id = 4694 +startpos = 7 +template = BaBaCivilian +position = 1332, 11202, 0 +rotation = 0, 0, 0 + +[droid_4695] +id = 4695 +startpos = 7 +template = BaBaCivilian +position = 1480, 11204, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/cam2c/feature.ini b/wrf/cam2/cam2c/feature.ini new file mode 100644 index 0000000..70d114f --- /dev/null +++ b/wrf/cam2/cam2c/feature.ini @@ -0,0 +1,1110 @@ +[feature_636] +id = 636 +position = 4160, 9536, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_639] +id = 639 +position = 5824, 9536, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_644] +id = 644 +position = 5504, 9408, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_646] +id = 646 +position = 3520, 11200, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_649] +id = 649 +position = 4288, 10304, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_651] +id = 651 +position = 3840, 9024, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_653] +id = 653 +position = 4352, 10560, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_938] +id = 938 +position = 8000, 4928, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_943] +id = 943 +position = 1472, 5568, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_945] +id = 945 +position = 1600, 13504, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_946] +id = 946 +position = 1600, 12608, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_949] +id = 949 +position = 7872, 13760, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_951] +id = 951 +position = 7872, 9536, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_955] +id = 955 +position = 4928, 3520, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_958] +id = 958 +position = 5440, 4928, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_964] +id = 964 +position = 7232, 6080, 0 +rotation = 16384, 0, 0 +name = building3 + +[feature_966] +id = 966 +position = 8064, 5312, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_970] +id = 970 +position = 7936, 2496, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_975] +id = 975 +position = 4864, 1344, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_978] +id = 978 +position = 5440, 9024, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_982] +id = 982 +position = 4928, 8768, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_984] +id = 984 +position = 7424, 9408, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_988] +id = 988 +position = 4928, 12608, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_989] +id = 989 +position = 3904, 12224, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_990] +id = 990 +position = 2496, 11200, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_993] +id = 993 +position = 1600, 10944, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_994] +id = 994 +position = 1600, 10304, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_996] +id = 996 +position = 2496, 10432, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1006] +id = 1006 +position = 1344, 2880, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1035] +id = 1035 +position = 7360, 12224, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1037] +id = 1037 +position = 5888, 12480, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1038] +id = 1038 +position = 3200, 12224, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1039] +id = 1039 +position = 2304, 14016, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1041] +id = 1041 +position = 4224, 5696, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1042] +id = 1042 +position = 3904, 6208, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1043] +id = 1043 +position = 3776, 4928, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1044] +id = 1044 +position = 4352, 4032, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1046] +id = 1046 +position = 3840, 8640, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1076] +id = 1076 +position = 8000, 6336, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1078] +id = 1078 +position = 5568, 6976, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1079] +id = 1079 +position = 4288, 4928, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1089] +id = 1089 +position = 1536, 12096, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1092] +id = 1092 +position = 3072, 14144, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1095] +id = 1095 +position = 3776, 13888, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_1097] +id = 1097 +position = 4928, 14016, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1100] +id = 1100 +position = 7360, 13504, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1101] +id = 1101 +position = 3776, 7104, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1103] +id = 1103 +position = 4352, 7104, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1104] +id = 1104 +position = 4160, 7360, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1106] +id = 1106 +position = 2880, 7872, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1107] +id = 1107 +position = 4224, 7872, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1108] +id = 1108 +position = 3520, 9536, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1109] +id = 1109 +position = 4928, 13376, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1110] +id = 1110 +position = 3648, 13248, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1111] +id = 1111 +position = 4160, 13504, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1120] +id = 1120 +position = 7936, 3520, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1121] +id = 1121 +position = 7232, 5056, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1122] +id = 1122 +position = 7168, 5696, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1124] +id = 1124 +position = 7616, 5568, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1126] +id = 1126 +position = 6272, 5824, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1131] +id = 1131 +position = 2112, 7104, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1275] +id = 1275 +position = 1600, 13248, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1992] +id = 1992 +position = 7488, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1993] +id = 1993 +position = 6720, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1995] +id = 1995 +position = 5184, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_2021] +id = 2021 +position = 6720, 1088, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2023] +id = 2023 +position = 6720, 1728, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2025] +id = 2025 +position = 6720, 3392, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2026] +id = 2026 +position = 6720, 3904, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2029] +id = 2029 +position = 6336, 6464, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2032] +id = 2032 +position = 6720, 9408, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2036] +id = 2036 +position = 6720, 12224, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2037] +id = 2037 +position = 6720, 12608, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2039] +id = 2039 +position = 6720, 14784, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2040] +id = 2040 +position = 6720, 15168, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2041] +id = 2041 +position = 6720, 15808, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2043] +id = 2043 +position = 1088, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_2044] +id = 2044 +position = 1088, 1088, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2045] +id = 2045 +position = 1088, 448, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2046] +id = 2046 +position = 1088, 1728, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2047] +id = 2047 +position = 1088, 2496, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2048] +id = 2048 +position = 1088, 3392, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2052] +id = 2052 +position = 1088, 6848, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2053] +id = 2053 +position = 1088, 7488, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2058] +id = 2058 +position = 1088, 11328, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2059] +id = 2059 +position = 1088, 12096, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2060] +id = 2060 +position = 1088, 12608, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2061] +id = 2061 +position = 1088, 14016, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2063] +id = 2063 +position = 1088, 15040, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2064] +id = 2064 +position = 1088, 15808, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2066] +id = 2066 +position = 1088, 5824, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2067] +id = 2067 +position = 1088, 5184, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2068] +id = 2068 +position = 1088, 10688, 0 +rotation = 60075, 0, 0 +name = Pylon + +[feature_2069] +id = 2069 +position = 2496, 15808, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2070] +id = 2070 +position = 3392, 15936, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_2073] +id = 2073 +position = 3520, 16064, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2074] +id = 2074 +position = 4224, 12992, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_2075] +id = 2075 +position = 3904, 12608, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2076] +id = 2076 +position = 4160, 12864, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2077] +id = 2077 +position = 7488, 14272, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2079] +id = 2079 +position = 5312, 13760, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_2080] +id = 2080 +position = 5184, 12480, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2087] +id = 2087 +position = 4352, 13824, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_2088] +id = 2088 +position = 4928, 14912, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2089] +id = 2089 +position = 6976, 12608, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2090] +id = 2090 +position = 6848, 15936, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2095] +id = 2095 +position = 7296, 13120, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_2098] +id = 2098 +position = 7168, 12672, 0 +rotation = 0, 0, 0 +name = WreckedBuilding9 + +[feature_2099] +id = 2099 +position = 2496, 11968, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_2126] +id = 2126 +position = 3392, 8128, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2128] +id = 2128 +position = 3520, 8000, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2129] +id = 2129 +position = 3264, 8000, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_2130] +id = 2130 +position = 5056, 5824, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_2132] +id = 2132 +position = 3328, 7808, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_2133] +id = 2133 +position = 5376, 7808, 0 +rotation = 0, 0, 0 +name = WreckedBuilding9 + +[feature_2136] +id = 2136 +position = 3840, 5760, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_2139] +id = 2139 +position = 3776, 6464, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2142] +id = 2142 +position = 4416, 6464, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2143] +id = 2143 +position = 5312, 4288, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2145] +id = 2145 +position = 1216, 6208, 0 +rotation = 5461, 0, 0 +name = Pickup + +[feature_2147] +id = 2147 +position = 704, 5696, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2151] +id = 2151 +position = 4928, 5440, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_2153] +id = 2153 +position = 6080, 4928, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_2156] +id = 2156 +position = 6080, 5440, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_2157] +id = 2157 +position = 5824, 5056, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_2158] +id = 2158 +position = 6336, 5312, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2161] +id = 2161 +position = 4544, 4544, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2164] +id = 2164 +position = 5056, 2880, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2165] +id = 2165 +position = 4800, 3264, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2169] +id = 2169 +position = 6208, 4032, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2171] +id = 2171 +position = 7232, 3904, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_2172] +id = 2172 +position = 7360, 3904, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_2173] +id = 2173 +position = 7360, 2880, 0 +rotation = 32768, 0, 0 +name = Chevy + +[feature_2178] +id = 2178 +position = 8000, 960, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_2183] +id = 2183 +position = 7232, 1216, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_2200] +id = 2200 +position = 2112, 1088, 0 +rotation = 0, 0, 0 +name = Crane + +[feature_2201] +id = 2201 +position = 2624, 1600, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2203] +id = 2203 +position = 2112, 1600, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2544] +id = 2544 +position = 1920, 2496, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_2545] +id = 2545 +position = 2048, 2240, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_2546] +id = 2546 +position = 2048, 1984, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_2679] +id = 2679 +position = 4928, 11584, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_3280] +id = 3280 +position = 5184, 2368, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_3281] +id = 3281 +position = 5184, 2240, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_4074] +id = 4074 +position = 7296, 3520, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_4076] +id = 4076 +position = 8064, 15936, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_4645] +id = 4645 +position = 2752, 4544, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4646] +id = 4646 +position = 2880, 4544, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4647] +id = 4647 +position = 3008, 4416, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4648] +id = 4648 +position = 2880, 4672, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4649] +id = 4649 +position = 3008, 4800, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4650] +id = 4650 +position = 1984, 2624, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4651] +id = 4651 +position = 2112, 2752, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4652] +id = 4652 +position = 1984, 2880, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4653] +id = 4653 +position = 2112, 3008, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4654] +id = 4654 +position = 1984, 3136, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4656] +id = 4656 +position = 7104, 7488, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4657] +id = 4657 +position = 7232, 7488, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4658] +id = 4658 +position = 7104, 7616, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4685] +id = 4685 +position = 4928, 8000, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_4715] +id = 4715 +position = 1856, 448, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4716] +id = 4716 +position = 1728, 448, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4717] +id = 4717 +position = 1600, 448, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4718] +id = 4718 +position = 1472, 448, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4719] +id = 4719 +position = 1472, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4720] +id = 4720 +position = 1600, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4721] +id = 4721 +position = 1728, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4722] +id = 4722 +position = 1856, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4723] +id = 4723 +position = 1472, 704, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4724] +id = 4724 +position = 1600, 704, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4725] +id = 4725 +position = 832, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4726] +id = 4726 +position = 960, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4727] +id = 4727 +position = 832, 15936, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4728] +id = 4728 +position = 960, 15936, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4729] +id = 4729 +position = 704, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4730] +id = 4730 +position = 704, 15936, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4731] +id = 4731 +position = 7104, 8000, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4733] +id = 4733 +position = 7104, 8128, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4734] +id = 4734 +position = 7232, 8128, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4735] +id = 4735 +position = 7104, 8256, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4736] +id = 4736 +position = 7232, 8256, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4737] +id = 4737 +position = 6976, 7488, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4738] +id = 4738 +position = 6976, 7616, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4739] +id = 4739 +position = 7104, 7744, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4740] +id = 4740 +position = 7104, 7872, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam2/cam2c/game.map b/wrf/cam2/cam2c/game.map new file mode 100644 index 0000000..dcd15a9 Binary files /dev/null and b/wrf/cam2/cam2c/game.map differ diff --git a/wrf/cam2/cam2c/labels.ini b/wrf/cam2/cam2c/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/cam2c/struct.ini b/wrf/cam2/cam2c/struct.ini new file mode 100644 index 0000000..e166a99 --- /dev/null +++ b/wrf/cam2/cam2c/struct.ini @@ -0,0 +1,792 @@ +[structure_2291] +id = 2291 +startpos = 2 +name = A0CommandCentreCO +position = 3456, 2560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2293] +id = 2293 +startpos = 2 +name = A0ResearchFacility +position = 3072, 2944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2295] +id = 2295 +startpos = 2 +name = PillBox6 +position = 3392, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2296] +id = 2296 +startpos = 2 +name = PillBox6 +position = 1472, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2297] +id = 2297 +startpos = 2 +name = PillBox6 +position = 2368, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2510] +id = 2510 +startpos = 2 +name = A0ComDroidControl +position = 3456, 2944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2534] +id = 2534 +startpos = 2 +name = A0PowerGenerator +position = 3072, 2560, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_2538] +id = 2538 +startpos = 2 +name = A0VtolPad +position = 2368, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2539] +id = 2539 +startpos = 2 +name = A0VtolPad +position = 2368, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2540] +id = 2540 +startpos = 2 +name = A0VtolPad +position = 2368, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2547] +id = 2547 +startpos = 2 +name = A0VtolPad +position = 2752, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2548] +id = 2548 +startpos = 2 +name = A0VtolPad +position = 3008, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2551] +id = 2551 +startpos = 2 +name = Emplacement-Howitzer105 +position = 2240, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2552] +id = 2552 +startpos = 2 +name = Emplacement-Howitzer105 +position = 1984, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2553] +id = 2553 +startpos = 2 +name = Emplacement-Howitzer105 +position = 1984, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2554] +id = 2554 +startpos = 2 +name = Emplacement-Howitzer105 +position = 2240, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2569] +id = 2569 +startpos = 2 +name = CollectiveWall +position = 2240, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2583] +id = 2583 +startpos = 2 +name = CollectiveWall +position = 1728, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2584] +id = 2584 +startpos = 2 +name = CollectiveWall +position = 2112, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2585] +id = 2585 +startpos = 2 +name = CollectiveWall +position = 1728, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2586] +id = 2586 +startpos = 2 +name = CollectiveWall +position = 2112, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2631] +id = 2631 +startpos = 2 +name = CollectiveWall +position = 4800, 11328, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2650] +id = 2650 +startpos = 2 +name = CollectiveWall +position = 5824, 11968, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2678] +id = 2678 +startpos = 2 +name = A0ResourceExtractor +position = 4928, 11584, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2686] +id = 2686 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6848, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3225] +id = 3225 +startpos = 2 +name = A0VTolFactory1 +position = 2624, 704, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_3226] +id = 3226 +startpos = 2 +name = A0VTolFactory1 +position = 3136, 704, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_3249] +id = 3249 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3291] +id = 3291 +startpos = 2 +name = CO-WallTower-HvCan +position = 8000, 7872, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3300] +id = 3300 +startpos = 2 +name = CO-WallTower-HvCan +position = 8000, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3301] +id = 3301 +startpos = 2 +name = CollectiveWall +position = 8000, 7744, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3302] +id = 3302 +startpos = 2 +name = CollectiveWall +position = 8000, 7232, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3303] +id = 3303 +startpos = 2 +name = CO-WallTower-HvCan +position = 8000, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3304] +id = 3304 +startpos = 2 +name = CO-WallTower-HvCan +position = 8000, 7616, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3332] +id = 3332 +startpos = 2 +name = CO-WallTower-HvCan +position = 7232, 8384, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3375] +id = 3375 +startpos = 2 +name = A0CommandCentreCO +position = 7168, 7296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3376] +id = 3376 +startpos = 2 +name = A0CyborgFactory +position = 7232, 7808, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3377] +id = 3377 +startpos = 2 +name = A0CyborgFactory +position = 7616, 7296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3462] +id = 3462 +startpos = 2 +name = PillBox5 +position = 5952, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3463] +id = 3463 +startpos = 2 +name = PillBox5 +position = 5824, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3464] +id = 3464 +startpos = 2 +name = CO-Tower-LtATRkt +position = 5056, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3465] +id = 3465 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6080, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3466] +id = 3466 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6464, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3670] +id = 3670 +startpos = 2 +name = A0LightFactory +position = 3648, 704, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_3673] +id = 3673 +startpos = 2 +name = A0LightFactory +position = 3648, 1344, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4072] +id = 4072 +startpos = 2 +name = CO-Tower-HvFlame +position = 5184, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4283] +id = 4283 +startpos = 2 +name = CO-WallTower-HvCan +position = 1728, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4284] +id = 4284 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4285] +id = 4285 +startpos = 2 +name = CO-WallTower-HvCan +position = 1728, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4286] +id = 4286 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4289] +id = 4289 +startpos = 2 +name = CO-WallTower-HvCan +position = 4032, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4293] +id = 4293 +startpos = 2 +name = CO-WallTower-HvCan +position = 4032, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4295] +id = 4295 +startpos = 2 +name = CO-WallTower-HvCan +position = 960, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4304] +id = 4304 +startpos = 2 +name = Sys-VTOL-RadarTower01 +position = 2624, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4305] +id = 4305 +startpos = 2 +name = Sys-VTOL-CB-Tower01 +position = 1728, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4306] +id = 4306 +startpos = 2 +name = CO-Tower-HvFlame +position = 1728, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4307] +id = 4307 +startpos = 2 +name = CO-Tower-HvFlame +position = 1984, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4308] +id = 4308 +startpos = 2 +name = CO-Tower-HvFlame +position = 2880, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4312] +id = 4312 +startpos = 2 +name = CO-Tower-LtATRkt +position = 1600, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4313] +id = 4313 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2240, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4314] +id = 4314 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4032, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4316] +id = 4316 +startpos = 2 +name = Sys-CB-Tower01 +position = 1984, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4337] +id = 4337 +startpos = 2 +name = Sys-SensoTower02 +position = 5696, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4359] +id = 4359 +startpos = 2 +name = Sys-SensoTower02 +position = 7872, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4405] +id = 4405 +startpos = 2 +name = CO-Tower-MG3 +position = 5696, 10688, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4406] +id = 4406 +startpos = 2 +name = CO-Tower-MG3 +position = 5696, 11328, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4407] +id = 4407 +startpos = 2 +name = CO-Tower-MdCan +position = 6336, 11840, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4410] +id = 4410 +startpos = 2 +name = CO-Tower-HvATRkt +position = 7488, 10816, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4411] +id = 4411 +startpos = 2 +name = CO-Tower-HvATRkt +position = 7360, 10176, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4412] +id = 4412 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6208, 9920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4413] +id = 4413 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6976, 11584, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4414] +id = 4414 +startpos = 2 +name = Sys-SensoTower02 +position = 7104, 11072, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4417] +id = 4417 +startpos = 2 +name = CO-WallTower-HvCan +position = 4800, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4418] +id = 4418 +startpos = 2 +name = CO-WallTower-HvCan +position = 4800, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4419] +id = 4419 +startpos = 2 +name = CO-WallTower-HvCan +position = 4928, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4420] +id = 4420 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4421] +id = 4421 +startpos = 2 +name = CollectiveCWall +position = 4800, 11456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4426] +id = 4426 +startpos = 2 +name = CollectiveCWall +position = 4800, 10816, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4630] +id = 4630 +startpos = 2 +name = AASite-QuadBof +position = 3008, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4631] +id = 4631 +startpos = 2 +name = A0VtolPad +position = 2368, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4632] +id = 4632 +startpos = 2 +name = A0VtolPad +position = 2368, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4633] +id = 4633 +startpos = 2 +name = A0VtolPad +position = 2368, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4634] +id = 4634 +startpos = 2 +name = A0VtolPad +position = 2368, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4635] +id = 4635 +startpos = 2 +name = A0VtolPad +position = 2496, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4640] +id = 4640 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 1728, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4641] +id = 4641 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 1728, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4642] +id = 4642 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 1728, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4665] +id = 4665 +startpos = 2 +name = PillBox3 +position = 3264, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4666] +id = 4666 +startpos = 2 +name = PillBox3 +position = 2752, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4667] +id = 4667 +startpos = 2 +name = PillBox3 +position = 5440, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4668] +id = 4668 +startpos = 2 +name = PillBox3 +position = 6336, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4670] +id = 4670 +startpos = 2 +name = PillBox3 +position = 1728, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4671] +id = 4671 +startpos = 2 +name = PillBox3 +position = 3136, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4676] +id = 4676 +startpos = 2 +name = PillBox3 +position = 5312, 10816, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4677] +id = 4677 +startpos = 2 +name = PillBox3 +position = 5312, 11456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4678] +id = 4678 +startpos = 2 +name = PillBox3 +position = 3392, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4741] +id = 4741 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4800, 11072, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4742] +id = 4742 +startpos = 2 +name = A0HardcreteMk1Gate +position = 1856, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4743] +id = 4743 +startpos = 2 +name = A0HardcreteMk1Gate +position = 1984, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/cam2c/ttypes.ttp b/wrf/cam2/cam2c/ttypes.ttp new file mode 100644 index 0000000..c746400 Binary files /dev/null and b/wrf/cam2/cam2c/ttypes.ttp differ diff --git a/wrf/cam2/cam2start.gam b/wrf/cam2/cam2start.gam new file mode 100644 index 0000000..83d2362 Binary files /dev/null and b/wrf/cam2/cam2start.gam differ diff --git a/wrf/cam2/cam2start/droid.ini b/wrf/cam2/cam2start/droid.ini new file mode 100644 index 0000000..7e10eb1 --- /dev/null +++ b/wrf/cam2/cam2start/droid.ini @@ -0,0 +1,217 @@ +[droid_4704] +id = 4704 +startpos = 0 +template = P0cam3PyHPVcanTrk +position = 12096, 11968, 0 +rotation = 31312, 0, 0 + +[droid_4112] +id = 4112 +startpos = 2 +template = Cyb-Chain-GROUND +position = 12096, 9024, 0 +rotation = 0, 0, 0 + +[droid_4113] +id = 4113 +startpos = 2 +template = Cyb-Chain-GROUND +position = 12224, 9024, 0 +rotation = 0, 0, 0 + +[droid_4121] +id = 4121 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12096, 9536, 0 +rotation = 0, 0, 0 + +[droid_4122] +id = 4122 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12224, 9536, 0 +rotation = 0, 0, 0 + +[droid_4129] +id = 4129 +startpos = 2 +template = CO-M-Sensor-T +position = 10432, 11200, 0 +rotation = 0, 0, 0 + +[droid_4132] +id = 4132 +startpos = 2 +template = CO-M-Con-T +position = 14273, 9408, 0 +rotation = 0, 0, 0 + +[droid_4136] +id = 4136 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 9792, 10176, 0 +rotation = 0, 0, 0 + +[droid_4137] +id = 4137 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 9920, 10176, 0 +rotation = 0, 0, 0 + +[droid_4151] +id = 4151 +startpos = 2 +template = CO-M-HvMortar-T +position = 9792, 9920, 0 +rotation = 0, 0, 0 + +[droid_4152] +id = 4152 +startpos = 2 +template = CO-M-HvMortar-T +position = 9920, 9920, 0 +rotation = 0, 0, 0 + +[droid_4153] +id = 4153 +startpos = 2 +template = CO-M-HvMortar-T +position = 9920, 9792, 0 +rotation = 0, 0, 0 + +[droid_4167] +id = 4167 +startpos = 2 +template = CO-M-HMG-T +position = 14544, 9402, 0 +rotation = 4733, 0, 0 + +[droid_4168] +id = 4168 +startpos = 2 +template = CO-M-HMG-T +position = 14656, 9408, 0 +rotation = 6372, 0, 0 + +[droid_4169] +id = 4169 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 12096, 10048, 0 +rotation = 0, 0, 0 + +[droid_4172] +id = 4172 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 12222, 10046, 0 +rotation = 0, 0, 0 + +[droid_4173] +id = 4173 +startpos = 2 +template = CO-M-HMG-T +position = 10304, 11200, 0 +rotation = 0, 0, 0 + +[droid_4174] +id = 4174 +startpos = 2 +template = CO-M-HMG-T +position = 10432, 11072, 0 +rotation = 0, 0, 0 + +[droid_4175] +id = 4175 +startpos = 2 +template = CO-H-Command-Track +position = 12096, 9792, 0 +rotation = 0, 0, 0 + +[droid_4428] +id = 4428 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 13888, 11456, 0 +rotation = 52975, 0, 0 + +[droid_4429] +id = 4429 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 13888, 11584, 0 +rotation = 54613, 0, 0 + +[droid_4430] +id = 4430 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 13888, 11712, 0 +rotation = 56252, 0, 0 + +[droid_4431] +id = 4431 +startpos = 2 +template = CO-M-Vstrike-T +position = 14016, 11584, 0 +rotation = 58436, 0, 0 + +[droid_4500] +id = 4500 +startpos = 0 +template = P0CobraSpadeTracks +position = 12208, 12908, 0 +rotation = 0, 0, 0 + +[droid_4501] +id = 4501 +startpos = 0 +template = P0CobraSpadeTracks +position = 11324, 13530, 0 +rotation = 43691, 0, 0 + +[droid_4502] +id = 4502 +startpos = 0 +template = P0CobraMedCnTrks +position = 12080, 12312, 0 +rotation = 26032, 0, 0 + +[droid_4503] +id = 4503 +startpos = 0 +template = P0CobraFlameTracks +position = 12184, 12500, 0 +rotation = 16748, 0, 0 + +[droid_4504] +id = 4504 +startpos = 0 +template = P0CobraMedCnTrks +position = 12526, 12618, 0 +rotation = 60803, 0, 0 + +[droid_4703] +id = 4703 +startpos = 0 +template = P0cam3PyHPVcanTrk +position = 12224, 11840, 0 +rotation = 34042, 0, 0 + +[droid_4696] +id = 4696 +startpos = 0 +template = P0CobraSpadeTracks +position = 11324, 12378, 0 +rotation = 43691, 0, 0 + +[droid_4581] +id = 4581 +startpos = 0 +template = P0CobraRepairTrks +position = 12208, 12078, 0 +rotation = 34406, 0, 0 + diff --git a/wrf/cam2/cam2start/feature.ini b/wrf/cam2/cam2start/feature.ini new file mode 100644 index 0000000..36a0004 --- /dev/null +++ b/wrf/cam2/cam2start/feature.ini @@ -0,0 +1,120 @@ +[feature_1143] +id = 1143 +position = 11840, 8896, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1145] +id = 1145 +position = 12480, 8512, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1147] +id = 1147 +position = 11840, 9920, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1193] +id = 1193 +position = 11840, 9536, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1196] +id = 1196 +position = 11456, 8896, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1251] +id = 1251 +position = 15552, 12352, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1286] +id = 1286 +position = 8640, 14912, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1294] +id = 1294 +position = 12608, 12224, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1765] +id = 1765 +position = 14656, 9536, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_4138] +id = 4138 +position = 11840, 13376, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_4145] +id = 4145 +position = 10816, 12608, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_4606] +id = 4606 +position = 12864, 9408, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4607] +id = 4607 +position = 12608, 9792, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4608] +id = 4608 +position = 14784, 9152, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4697] +id = 4697 +position = 15552, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4698] +id = 4698 +position = 15680, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4699] +id = 4699 +position = 15552, 15424, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4700] +id = 4700 +position = 15808, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4701] +id = 4701 +position = 15680, 15936, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4702] +id = 4702 +position = 15936, 15680, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam2/cam2start/labels.ini b/wrf/cam2/cam2start/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/cam2start/struct.ini b/wrf/cam2/cam2start/struct.ini new file mode 100644 index 0000000..9fff1b2 --- /dev/null +++ b/wrf/cam2/cam2start/struct.ini @@ -0,0 +1,839 @@ +[structure_1157] +id = 1157 +startpos = 0 +name = A0PowerGenerator +position = 11520, 13312, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1159] +id = 1159 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12736, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1161] +id = 1161 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12608, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1171] +id = 1171 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12608, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4710] +id = 4710 +startpos = 0 +name = A0HardcreteMk1Gate +position = 12224, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1173] +id = 1173 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 13248, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1174] +id = 1174 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 13376, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1175] +id = 1175 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 13504, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1178] +id = 1178 +startpos = 0 +name = A0LightFactory +position = 11200, 12096, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_1179] +id = 1179 +startpos = 0 +name = A0CommandCentre +position = 12160, 13184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1186] +id = 1186 +startpos = 0 +name = A0ResearchFacility +position = 11136, 13312, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1202] +id = 1202 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12608, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1221] +id = 1221 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 11968, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1222] +id = 1222 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12096, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1223] +id = 1223 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12224, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1224] +id = 1224 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12736, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1225] +id = 1225 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 11840, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1226] +id = 1226 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12352, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1229] +id = 1229 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11712, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1230] +id = 1230 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11456, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1295] +id = 1295 +startpos = 0 +name = A0ResourceExtractor +position = 12608, 12224, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1322] +id = 1322 +startpos = 0 +name = A0CyborgFactory +position = 12096, 13568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1347] +id = 1347 +startpos = 0 +name = A0ComDroidControl +position = 12544, 12928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1529] +id = 1529 +startpos = 2 +name = A0CommandCentreCO +position = 12928, 9600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4118] +id = 4118 +startpos = 0 +name = A0ResourceExtractor +position = 14656, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4139] +id = 4139 +startpos = 0 +name = A0ResourceExtractor +position = 11840, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4146] +id = 4146 +startpos = 0 +name = A0ResourceExtractor +position = 10816, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4445] +id = 4445 +startpos = 0 +name = WallTower03 +position = 11968, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4446] +id = 4446 +startpos = 0 +name = WallTower03 +position = 12352, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4449] +id = 4449 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12352, 11968, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4450] +id = 4450 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12352, 11840, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4451] +id = 4451 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11968, 11968, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4452] +id = 4452 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11968, 11840, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4455] +id = 4455 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11840, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_4456] +id = 4456 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12480, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_4457] +id = 4457 +startpos = 0 +name = WallTower06 +position = 12864, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4458] +id = 4458 +startpos = 0 +name = WallTower06 +position = 12864, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4459] +id = 4459 +startpos = 0 +name = WallTower06 +position = 11328, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4462] +id = 4462 +startpos = 0 +name = WallTower03 +position = 12864, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4468] +id = 4468 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12864, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4469] +id = 4469 +startpos = 2 +name = Emplacement-MortarPit02 +position = 13120, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4470] +id = 4470 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12992, 9408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4471] +id = 4471 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12736, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4487] +id = 4487 +startpos = 2 +name = Sys-CB-Tower01 +position = 13120, 9920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4493] +id = 4493 +startpos = 0 +name = AASite-QuadMg1 +position = 12608, 12352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4494] +id = 4494 +startpos = 0 +name = AASite-QuadMg1 +position = 11584, 12992, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4496] +id = 4496 +startpos = 0 +name = PillBox5 +position = 12352, 11456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4497] +id = 4497 +startpos = 0 +name = PillBox5 +position = 11712, 11456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4498] +id = 4498 +startpos = 0 +name = PillBox5 +position = 12608, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4499] +id = 4499 +startpos = 0 +name = PillBox5 +position = 14912, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4508] +id = 4508 +startpos = 2 +name = CO-Tower-MdCan +position = 15296, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4524] +id = 4524 +startpos = 2 +name = CollectiveWall +position = 12864, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4525] +id = 4525 +startpos = 2 +name = CollectiveWall +position = 12992, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4526] +id = 4526 +startpos = 2 +name = CollectiveWall +position = 13120, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4527] +id = 4527 +startpos = 2 +name = CollectiveWall +position = 13248, 9408, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4528] +id = 4528 +startpos = 2 +name = CollectiveWall +position = 13248, 9536, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4529] +id = 4529 +startpos = 2 +name = CollectiveWall +position = 13248, 9664, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4530] +id = 4530 +startpos = 2 +name = CollectiveWall +position = 13248, 9792, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4531] +id = 4531 +startpos = 2 +name = CollectiveWall +position = 13248, 9920, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4541] +id = 4541 +startpos = 0 +name = PillBox5 +position = 11968, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4542] +id = 4542 +startpos = 0 +name = PillBox5 +position = 12352, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4543] +id = 4543 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11584, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_4544] +id = 4544 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12480, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4548] +id = 4548 +startpos = 2 +name = CO-Tower-MdCan +position = 14656, 14784, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4549] +id = 4549 +startpos = 2 +name = CO-Tower-MdCan +position = 15296, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4550] +id = 4550 +startpos = 2 +name = PillBox1 +position = 14656, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4551] +id = 4551 +startpos = 2 +name = PillBox1 +position = 14912, 14528, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4553] +id = 4553 +startpos = 2 +name = CO-Tower-MdCan +position = 13248, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4557] +id = 4557 +startpos = 2 +name = CO-Tower-LtATRkt +position = 13248, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4558] +id = 4558 +startpos = 2 +name = CO-Tower-LtATRkt +position = 12736, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4559] +id = 4559 +startpos = 0 +name = AASite-QuadMg1 +position = 10816, 12224, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4560] +id = 4560 +startpos = 0 +name = WallTower03 +position = 10944, 11840, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4561] +id = 4561 +startpos = 0 +name = PillBox1 +position = 12352, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4562] +id = 4562 +startpos = 0 +name = PillBox1 +position = 11584, 12224, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4563] +id = 4563 +startpos = 0 +name = Sys-SensoTower02 +position = 11456, 12736, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4564] +id = 4564 +startpos = 2 +name = CollectiveWall +position = 12480, 9408, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4565] +id = 4565 +startpos = 2 +name = CollectiveWall +position = 12480, 9536, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4566] +id = 4566 +startpos = 2 +name = CollectiveWall +position = 12480, 9664, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4567] +id = 4567 +startpos = 2 +name = CollectiveWall +position = 12480, 9792, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4568] +id = 4568 +startpos = 2 +name = CollectiveWall +position = 12480, 9920, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4569] +id = 4569 +startpos = 2 +name = CO-Tower-MdCan +position = 12480, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4571] +id = 4571 +startpos = 2 +name = CollectiveWall +position = 12608, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4573] +id = 4573 +startpos = 2 +name = CollectiveWall +position = 12608, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4575] +id = 4575 +startpos = 2 +name = CO-Tower-MdCan +position = 12480, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4576] +id = 4576 +startpos = 2 +name = Sys-CB-Tower01 +position = 12608, 9408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4577] +id = 4577 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12608, 9920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4578] +id = 4578 +startpos = 2 +name = CollectiveWall +position = 12736, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4579] +id = 4579 +startpos = 2 +name = CO-Tower-LtATRkt +position = 12736, 9920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4580] +id = 4580 +startpos = 2 +name = CO-Tower-LtATRkt +position = 12608, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4597] +id = 4597 +startpos = 2 +name = Emplacement-MortarPit01 +position = 10304, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4598] +id = 4598 +startpos = 2 +name = Emplacement-MortarPit01 +position = 10560, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4599] +id = 4599 +startpos = 2 +name = Emplacement-MortarPit01 +position = 10304, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4600] +id = 4600 +startpos = 2 +name = Emplacement-MortarPit01 +position = 10560, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4601] +id = 4601 +startpos = 2 +name = Sys-SensoTower02 +position = 11328, 10176, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4602] +id = 4602 +startpos = 2 +name = PillBox1 +position = 11200, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4603] +id = 4603 +startpos = 2 +name = PillBox4 +position = 11584, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4604] +id = 4604 +startpos = 2 +name = PillBox1 +position = 10176, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4605] +id = 4605 +startpos = 2 +name = PillBox4 +position = 10688, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4709] +id = 4709 +startpos = 0 +name = A0HardcreteMk1Gate +position = 12096, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4711] +id = 4711 +startpos = 0 +name = WallTower06 +position = 12864, 12736, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4712] +id = 4712 +startpos = 0 +name = A0HardcreteMk1Gate +position = 12864, 12864, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4713] +id = 4713 +startpos = 0 +name = A0HardcreteMk1Gate +position = 12864, 12992, 0 +rotation = 16384, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-1.gam b/wrf/cam2/sub2-1.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam2/sub2-1.gam differ diff --git a/wrf/cam2/sub2-1/droid.ini b/wrf/cam2/sub2-1/droid.ini new file mode 100644 index 0000000..e4d6ad0 --- /dev/null +++ b/wrf/cam2/sub2-1/droid.ini @@ -0,0 +1,161 @@ +[droid_372] +id = 372 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 1482, 1216, 0 +rotation = 11105, 0, 0 + +[droid_373] +id = 373 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 1344, 1344, 0 +rotation = 7646, 0, 0 + +[droid_377] +id = 377 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 3008, 1088, 0 +rotation = 0, 0, 0 + +[droid_381] +id = 381 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 1856, 2624, 0 +rotation = 0, 0, 0 + +[droid_837] +id = 837 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6592, 1600, 0 +rotation = 12561, 0, 0 + +[droid_513] +id = 513 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 4168, 3920, 0 +rotation = 0, 0, 0 + +[droid_518] +id = 518 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5804, 4634, 0 +rotation = 0, 0, 0 + +[droid_520] +id = 520 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4278, 4926, 0 +rotation = 7282, 0, 0 + +[droid_524] +id = 524 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 2894, 4272, 0 +rotation = 54977, 0, 0 + +[droid_555] +id = 555 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 3754, 3362, 0 +rotation = 0, 0, 0 + +[droid_556] +id = 556 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 3858, 3092, 0 +rotation = 0, 0, 0 + +[droid_569] +id = 569 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 6720, 3904, 0 +rotation = 0, 0, 0 + +[droid_571] +id = 571 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1844, 5366, 0 +rotation = 0, 0, 0 + +[droid_573] +id = 573 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1938, 5314, 0 +rotation = 0, 0, 0 + +[droid_829] +id = 829 +startpos = 1 +template = CobraSpadeTracks +position = 6336, 1344, 0 +rotation = 26396, 0, 0 + +[droid_830] +id = 830 +startpos = 1 +template = CobraFlameTracks +position = 6464, 1344, 0 +rotation = 56616, 0, 0 + +[droid_831] +id = 831 +startpos = 1 +template = CobraFlameTracks +position = 6336, 1216, 0 +rotation = 8738, 0, 0 + +[droid_832] +id = 832 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6336, 1472, 0 +rotation = 38593, 0, 0 + +[droid_833] +id = 833 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6464, 1472, 0 +rotation = 41142, 0, 0 + +[droid_834] +id = 834 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6592, 1472, 0 +rotation = 47514, 0, 0 + +[droid_835] +id = 835 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6720, 1472, 0 +rotation = 31676, 0, 0 + +[droid_836] +id = 836 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6848, 1472, 0 +rotation = 728, 0, 0 + +[droid_838] +id = 838 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6464, 1216, 0 +rotation = 51154, 0, 0 + diff --git a/wrf/cam2/sub2-1/feature.ini b/wrf/cam2/sub2-1/feature.ini new file mode 100644 index 0000000..703aebc --- /dev/null +++ b/wrf/cam2/sub2-1/feature.ini @@ -0,0 +1,414 @@ +[feature_135] +id = 135 +position = 3520, 5312, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_145] +id = 145 +position = 3520, 6464, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_149] +id = 149 +position = 3520, 6976, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_151] +id = 151 +position = 3520, 7616, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_152] +id = 152 +position = 4160, 6720, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_154] +id = 154 +position = 4160, 6336, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_156] +id = 156 +position = 4672, 6336, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_179] +id = 179 +position = 6144, 6208, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_181] +id = 181 +position = 6848, 7488, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_184] +id = 184 +position = 7680, 7360, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_185] +id = 185 +position = 6848, 6336, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_188] +id = 188 +position = 7296, 6208, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_191] +id = 191 +position = 6336, 7488, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_196] +id = 196 +position = 7040, 5056, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_208] +id = 208 +position = 6592, 4928, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_209] +id = 209 +position = 6208, 5696, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_210] +id = 210 +position = 6208, 5056, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_223] +id = 223 +position = 6208, 4160, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_238] +id = 238 +position = 2560, 2496, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_239] +id = 239 +position = 448, 2880, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_241] +id = 241 +position = 1600, 3520, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_246] +id = 246 +position = 2240, 3520, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_247] +id = 247 +position = 1600, 4160, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_248] +id = 248 +position = 3136, 2496, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_249] +id = 249 +position = 3520, 2880, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_252] +id = 252 +position = 3008, 3520, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_256] +id = 256 +position = 5568, 3520, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_257] +id = 257 +position = 3520, 1984, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_259] +id = 259 +position = 1280, 4032, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_268] +id = 268 +position = 2304, 832, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_273] +id = 273 +position = 1600, 4672, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_274] +id = 274 +position = 4288, 4288, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_277] +id = 277 +position = 7104, 4672, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_279] +id = 279 +position = 7040, 5824, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_282] +id = 282 +position = 2304, 448, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_285] +id = 285 +position = 5568, 1088, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_286] +id = 286 +position = 5184, 1344, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_287] +id = 287 +position = 4160, 1856, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_293] +id = 293 +position = 4160, 1088, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_294] +id = 294 +position = 4160, 2496, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_296] +id = 296 +position = 4160, 576, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_297] +id = 297 +position = 4480, 1600, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_307] +id = 307 +position = 1216, 5440, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_309] +id = 309 +position = 2752, 5696, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_310] +id = 310 +position = 2176, 5440, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_313] +id = 313 +position = 3200, 5824, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_458] +id = 458 +position = 5056, 7744, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_459] +id = 459 +position = 4736, 7744, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_469] +id = 469 +position = 5568, 6336, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_470] +id = 470 +position = 5568, 6720, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_479] +id = 479 +position = 5440, 704, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_480] +id = 480 +position = 7488, 1856, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_485] +id = 485 +position = 7296, 3648, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_486] +id = 486 +position = 448, 2496, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_493] +id = 493 +position = 4224, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_497] +id = 497 +position = 4224, 4672, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_530] +id = 530 +position = 2176, 4800, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_564] +id = 564 +position = 3008, 5952, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_565] +id = 565 +position = 3008, 6080, 0 +rotation = 16384, 0, 0 +name = BlueCar + +[feature_566] +id = 566 +position = 2880, 5952, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_577] +id = 577 +position = 1216, 1344, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_578] +id = 578 +position = 1472, 1344, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_579] +id = 579 +position = 1344, 1472, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_748] +id = 748 +position = 2880, 4160, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_749] +id = 749 +position = 4416, 4928, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_788] +id = 788 +position = 576, 3136, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_826] +id = 826 +position = 4160, 3008, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_827] +id = 827 +position = 7360, 7488, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_828] +id = 828 +position = 832, 4672, 0 +rotation = 0, 0, 0 +name = building11 + diff --git a/wrf/cam2/sub2-1/labels.ini b/wrf/cam2/sub2-1/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-1/struct.ini b/wrf/cam2/sub2-1/struct.ini new file mode 100644 index 0000000..01aa6b6 --- /dev/null +++ b/wrf/cam2/sub2-1/struct.ini @@ -0,0 +1,496 @@ +[structure_65] +id = 65 +startpos = 2 +name = CollectiveWall +position = 3392, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_66] +id = 66 +startpos = 2 +name = CollectiveWall +position = 3392, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_67] +id = 67 +startpos = 2 +name = CollectiveWall +position = 3392, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_76] +id = 76 +startpos = 2 +name = CollectiveWall +position = 2880, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_77] +id = 77 +startpos = 2 +name = CollectiveWall +position = 2752, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_104] +id = 104 +startpos = 2 +name = CollectiveWall +position = 3136, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_105] +id = 105 +startpos = 2 +name = CollectiveWall +position = 3264, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_115] +id = 115 +startpos = 2 +name = CollectiveWall +position = 3392, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_594] +id = 594 +startpos = 2 +name = CO-Tower-MdCan +position = 2624, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_596] +id = 596 +startpos = 2 +name = CO-Tower-MdCan +position = 3392, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_607] +id = 607 +startpos = 2 +name = Sys-SensoTower02 +position = 3008, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_699] +id = 699 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_700] +id = 700 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6592, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_703] +id = 703 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6720, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_704] +id = 704 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_706] +id = 706 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_707] +id = 707 +startpos = 2 +name = Sys-SensoTower02 +position = 5824, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_732] +id = 732 +startpos = 2 +name = Sys-SensoTower02 +position = 1088, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_736] +id = 736 +startpos = 2 +name = Sys-CB-Tower01 +position = 6336, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_739] +id = 739 +startpos = 2 +name = CO-Tower-LtATRkt +position = 5952, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_751] +id = 751 +startpos = 1 +name = WreckedTransporter +position = 6720, 1216, 0 +rotation = 21845, 0, 0 +modules = 0 + +[structure_756] +id = 756 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4416, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_771] +id = 771 +startpos = 2 +name = CO-Tower-LtATRkt +position = 5184, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_774] +id = 774 +startpos = 2 +name = PillBox4 +position = 4032, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_775] +id = 775 +startpos = 2 +name = PillBox3 +position = 1088, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_776] +id = 776 +startpos = 2 +name = PillBox3 +position = 1728, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_777] +id = 777 +startpos = 2 +name = PillBox3 +position = 1600, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_778] +id = 778 +startpos = 2 +name = PillBox3 +position = 704, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_779] +id = 779 +startpos = 2 +name = PillBox3 +position = 2112, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_780] +id = 780 +startpos = 2 +name = CO-Tower-MG3 +position = 960, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_782] +id = 782 +startpos = 2 +name = PillBox3 +position = 576, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_783] +id = 783 +startpos = 2 +name = PillBox3 +position = 2240, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_785] +id = 785 +startpos = 2 +name = CO-Tower-MdCan +position = 3392, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_789] +id = 789 +startpos = 2 +name = PillBox5 +position = 960, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_790] +id = 790 +startpos = 2 +name = PillBox5 +position = 960, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_791] +id = 791 +startpos = 2 +name = PillBox5 +position = 1728, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_792] +id = 792 +startpos = 2 +name = PillBox5 +position = 1728, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_795] +id = 795 +startpos = 2 +name = PillBox5 +position = 5312, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_796] +id = 796 +startpos = 2 +name = CO-Tower-MdCan +position = 3008, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_797] +id = 797 +startpos = 2 +name = CO-Tower-MdCan +position = 3392, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_798] +id = 798 +startpos = 2 +name = CO-Tower-MG3 +position = 5824, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_799] +id = 799 +startpos = 2 +name = CO-Tower-MG3 +position = 6336, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_800] +id = 800 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6464, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_804] +id = 804 +startpos = 2 +name = CO-Tower-LtATRkt +position = 5696, 7488, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_805] +id = 805 +startpos = 2 +name = CO-Tower-LtATRkt +position = 7488, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_807] +id = 807 +startpos = 2 +name = A0TankTrap +position = 3648, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_808] +id = 808 +startpos = 2 +name = A0TankTrap +position = 3648, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_809] +id = 809 +startpos = 2 +name = A0TankTrap +position = 3648, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_810] +id = 810 +startpos = 2 +name = A0TankTrap +position = 3648, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_811] +id = 811 +startpos = 2 +name = A0TankTrap +position = 3904, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_812] +id = 812 +startpos = 2 +name = A0TankTrap +position = 4032, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_813] +id = 813 +startpos = 2 +name = A0TankTrap +position = 4160, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_814] +id = 814 +startpos = 2 +name = A0TankTrap +position = 4800, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_815] +id = 815 +startpos = 2 +name = A0TankTrap +position = 4800, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_816] +id = 816 +startpos = 2 +name = A0TankTrap +position = 4800, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_817] +id = 817 +startpos = 2 +name = A0TankTrap +position = 4800, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_818] +id = 818 +startpos = 2 +name = A0TankTrap +position = 4800, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_819] +id = 819 +startpos = 2 +name = A0TankTrap +position = 4928, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_820] +id = 820 +startpos = 2 +name = A0TankTrap +position = 5056, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_821] +id = 821 +startpos = 2 +name = A0TankTrap +position = 5184, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_822] +id = 822 +startpos = 2 +name = A0TankTrap +position = 5312, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_823] +id = 823 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4032, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-2.gam b/wrf/cam2/sub2-2.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam2/sub2-2.gam differ diff --git a/wrf/cam2/sub2-2/droid.ini b/wrf/cam2/sub2-2/droid.ini new file mode 100644 index 0000000..bda8970 --- /dev/null +++ b/wrf/cam2/sub2-2/droid.ini @@ -0,0 +1,91 @@ +[droid_473] +id = 473 +startpos = 2 +template = CO-M-Rocket-HvyA-T-Track +position = 5184, 1472, 0 +rotation = 0, 0, 0 + +[droid_441] +id = 441 +startpos = 2 +template = Cyb-Chain-GROUND +position = 5440, 1472, 0 +rotation = 0, 0, 0 + +[droid_431] +id = 431 +startpos = 2 +template = CO-M-Sensor-T +position = 5312, 1600, 0 +rotation = 0, 0, 0 + +[droid_439] +id = 439 +startpos = 2 +template = Cyb-Chain-GROUND +position = 5568, 1472, 0 +rotation = 0, 0, 0 + +[droid_566] +id = 566 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5696, 1344, 0 +rotation = 0, 0, 0 + +[droid_435] +id = 435 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 5440, 1344, 0 +rotation = 0, 0, 0 + +[droid_502] +id = 502 +startpos = 2 +template = CO-M-Con-T +position = 1110, 959, 0 +rotation = 0, 0, 0 + +[droid_565] +id = 565 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5184, 1344, 0 +rotation = 0, 0, 0 + +[droid_582] +id = 582 +startpos = 2 +template = CO-M-Rocket-HvyA-T-Track +position = 5696, 1472, 0 +rotation = 0, 0, 0 + +[droid_567] +id = 567 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5568, 1344, 0 +rotation = 0, 0, 0 + +[droid_569] +id = 569 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5312, 1344, 0 +rotation = 0, 0, 0 + +[droid_438] +id = 438 +startpos = 2 +template = Cyb-Chain-GROUND +position = 5312, 1472, 0 +rotation = 0, 0, 0 + +[droid_581] +id = 581 +startpos = 2 +template = CO-H-Command-Track +position = 5568, 1600, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-2/feature.ini b/wrf/cam2/sub2-2/feature.ini new file mode 100644 index 0000000..ce1a150 --- /dev/null +++ b/wrf/cam2/sub2-2/feature.ini @@ -0,0 +1,510 @@ +[feature_2] +id = 2 +position = 4544, 3008, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_6] +id = 6 +position = 4160, 2624, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_10] +id = 10 +position = 4608, 3392, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_14] +id = 14 +position = 6400, 7744, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_23] +id = 23 +position = 5120, 6336, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_26] +id = 26 +position = 6144, 3904, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_30] +id = 30 +position = 5504, 4416, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_39] +id = 39 +position = 5696, 3904, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_90] +id = 90 +position = 5184, 7232, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_93] +id = 93 +position = 5440, 6208, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_94] +id = 94 +position = 5760, 6720, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_96] +id = 96 +position = 5184, 7616, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_100] +id = 100 +position = 3904, 7232, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_103] +id = 103 +position = 3840, 6720, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_104] +id = 104 +position = 2112, 6592, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_106] +id = 106 +position = 4480, 6848, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_111] +id = 111 +position = 2688, 7616, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_114] +id = 114 +position = 2688, 6336, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_115] +id = 115 +position = 2112, 7360, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_116] +id = 116 +position = 1728, 5824, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_119] +id = 119 +position = 704, 7616, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_120] +id = 120 +position = 1344, 7488, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_122] +id = 122 +position = 1280, 7104, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_123] +id = 123 +position = 448, 6592, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_125] +id = 125 +position = 3264, 832, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_126] +id = 126 +position = 4544, 1344, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_127] +id = 127 +position = 4032, 832, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_128] +id = 128 +position = 2752, 1728, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_129] +id = 129 +position = 2752, 1344, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_130] +id = 130 +position = 3648, 832, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_131] +id = 131 +position = 4416, 832, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_132] +id = 132 +position = 4544, 1728, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_136] +id = 136 +position = 4672, 6464, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_137] +id = 137 +position = 4480, 7232, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_145] +id = 145 +position = 2112, 3264, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_146] +id = 146 +position = 2944, 4416, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_148] +id = 148 +position = 3520, 4288, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_149] +id = 149 +position = 3264, 4288, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_150] +id = 150 +position = 3712, 4672, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_151] +id = 151 +position = 2944, 4672, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_154] +id = 154 +position = 768, 3904, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_156] +id = 156 +position = 448, 3904, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_162] +id = 162 +position = 2112, 3904, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_163] +id = 163 +position = 3136, 3904, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_165] +id = 165 +position = 2752, 3904, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_167] +id = 167 +position = 4544, 4032, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_169] +id = 169 +position = 3840, 3392, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_170] +id = 170 +position = 2112, 2752, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_172] +id = 172 +position = 3968, 4288, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_178] +id = 178 +position = 5184, 3264, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_179] +id = 179 +position = 6208, 2496, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_186] +id = 186 +position = 7104, 1984, 0 +rotation = 60075, 0, 0 +name = Crane + +[feature_187] +id = 187 +position = 6464, 1856, 0 +rotation = 43691, 0, 0 +name = Crane + +[feature_188] +id = 188 +position = 6336, 1088, 0 +rotation = 27307, 0, 0 +name = Crane + +[feature_189] +id = 189 +position = 5248, 960, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_190] +id = 190 +position = 5248, 1216, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_192] +id = 192 +position = 5248, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_194] +id = 194 +position = 5632, 960, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_195] +id = 195 +position = 5632, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_196] +id = 196 +position = 5632, 1216, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_239] +id = 239 +position = 4544, 2368, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_240] +id = 240 +position = 6336, 3264, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_247] +id = 247 +position = 3392, 4928, 0 +rotation = 49152, 0, 0 +name = Crane + +[feature_252] +id = 252 +position = 7104, 960, 0 +rotation = 5461, 0, 0 +name = Crane + +[feature_254] +id = 254 +position = 5952, 448, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_255] +id = 255 +position = 6208, 448, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_264] +id = 264 +position = 5632, 3392, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_265] +id = 265 +position = 3008, 1600, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_278] +id = 278 +position = 2368, 4672, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_280] +id = 280 +position = 3904, 576, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_287] +id = 287 +position = 4160, 1728, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_292] +id = 292 +position = 2368, 6976, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_293] +id = 293 +position = 3904, 6848, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_294] +id = 294 +position = 3776, 6848, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_295] +id = 295 +position = 3520, 7744, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_506] +id = 506 +position = 4992, 4416, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_515] +id = 515 +position = 6016, 6848, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_590] +id = 590 +position = 1728, 960, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_591] +id = 591 +position = 1600, 832, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_592] +id = 592 +position = 1600, 704, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_593] +id = 593 +position = 1856, 960, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_594] +id = 594 +position = 1600, 960, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_603] +id = 603 +position = 3904, 6464, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_604] +id = 604 +position = 3136, 7360, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_605] +id = 605 +position = 2752, 7232, 0 +rotation = 0, 0, 0 +name = building2 + diff --git a/wrf/cam2/sub2-2/labels.ini b/wrf/cam2/sub2-2/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-2/struct.ini b/wrf/cam2/sub2-2/struct.ini new file mode 100644 index 0000000..c90021c --- /dev/null +++ b/wrf/cam2/sub2-2/struct.ini @@ -0,0 +1,1176 @@ +[structure_197] +id = 197 +startpos = 2 +name = CollectiveWall +position = 6208, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_198] +id = 198 +startpos = 2 +name = CollectiveWall +position = 6080, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_199] +id = 199 +startpos = 2 +name = CollectiveWall +position = 5824, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_200] +id = 200 +startpos = 2 +name = CollectiveWall +position = 5952, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_202] +id = 202 +startpos = 2 +name = CollectiveWall +position = 5568, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_203] +id = 203 +startpos = 2 +name = CollectiveWall +position = 5312, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_204] +id = 204 +startpos = 2 +name = CollectiveWall +position = 5440, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_205] +id = 205 +startpos = 2 +name = CollectiveWall +position = 5184, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_206] +id = 206 +startpos = 2 +name = CollectiveWall +position = 5056, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_207] +id = 207 +startpos = 2 +name = CollectiveWall +position = 5056, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_209] +id = 209 +startpos = 2 +name = CollectiveWall +position = 5056, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_213] +id = 213 +startpos = 2 +name = CollectiveWall +position = 5056, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_214] +id = 214 +startpos = 2 +name = CollectiveWall +position = 5056, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_215] +id = 215 +startpos = 2 +name = CollectiveWall +position = 5056, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_216] +id = 216 +startpos = 2 +name = CollectiveWall +position = 5184, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_217] +id = 217 +startpos = 2 +name = CollectiveWall +position = 5440, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_218] +id = 218 +startpos = 2 +name = CollectiveWall +position = 5568, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_219] +id = 219 +startpos = 2 +name = CollectiveWall +position = 5696, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_220] +id = 220 +startpos = 2 +name = CollectiveWall +position = 5824, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_221] +id = 221 +startpos = 2 +name = CollectiveWall +position = 5952, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_222] +id = 222 +startpos = 2 +name = CollectiveWall +position = 6080, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_231] +id = 231 +startpos = 2 +name = CollectiveWall +position = 5312, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_235] +id = 235 +startpos = 2 +name = CollectiveWall +position = 6592, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_237] +id = 237 +startpos = 2 +name = A0LightFactory +position = 5824, 1728, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_258] +id = 258 +startpos = 2 +name = CollectiveWall +position = 6464, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_298] +id = 298 +startpos = 2 +name = A0CommandCentreCO +position = 5376, 1792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_300] +id = 300 +startpos = 2 +name = CollectiveWall +position = 2112, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_302] +id = 302 +startpos = 2 +name = CollectiveWall +position = 1984, 448, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_303] +id = 303 +startpos = 2 +name = CollectiveWall +position = 2112, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_304] +id = 304 +startpos = 2 +name = CollectiveWall +position = 2112, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_305] +id = 305 +startpos = 2 +name = CollectiveWall +position = 2112, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_314] +id = 314 +startpos = 2 +name = CollectiveWall +position = 1600, 2112, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_325] +id = 325 +startpos = 2 +name = CollectiveCWall +position = 1856, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_334] +id = 334 +startpos = 2 +name = CollectiveWall +position = 1728, 2112, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_335] +id = 335 +startpos = 2 +name = CollectiveWall +position = 1472, 2112, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_336] +id = 336 +startpos = 2 +name = CollectiveWall +position = 1344, 1984, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_341] +id = 341 +startpos = 2 +name = CollectiveWall +position = 576, 2112, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_345] +id = 345 +startpos = 2 +name = A0CommandCentreCO +position = 512, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_350] +id = 350 +startpos = 2 +name = CollectiveWall +position = 1472, 1856, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_351] +id = 351 +startpos = 2 +name = CollectiveWall +position = 576, 1856, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_352] +id = 352 +startpos = 2 +name = CollectiveWall +position = 448, 1984, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_356] +id = 356 +startpos = 2 +name = CollectiveWall +position = 704, 1984, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_360] +id = 360 +startpos = 2 +name = A0ComDroidControl +position = 1792, 1152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_367] +id = 367 +startpos = 2 +name = A0ResearchFacility +position = 1792, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_378] +id = 378 +startpos = 2 +name = A0PowerGenerator +position = 512, 1408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_382] +id = 382 +startpos = 2 +name = A0LightFactory +position = 1216, 576, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_387] +id = 387 +startpos = 2 +name = CollectiveCWall +position = 2112, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_444] +id = 444 +startpos = 2 +name = A0TankTrap +position = 704, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_445] +id = 445 +startpos = 2 +name = A0TankTrap +position = 832, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_446] +id = 446 +startpos = 2 +name = A0TankTrap +position = 1216, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_447] +id = 447 +startpos = 2 +name = A0TankTrap +position = 1344, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_448] +id = 448 +startpos = 2 +name = A0TankTrap +position = 1472, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_450] +id = 450 +startpos = 2 +name = A0TankTrap +position = 1600, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_451] +id = 451 +startpos = 2 +name = A0TankTrap +position = 1728, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_452] +id = 452 +startpos = 2 +name = A0TankTrap +position = 1728, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_453] +id = 453 +startpos = 2 +name = A0TankTrap +position = 1728, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_454] +id = 454 +startpos = 2 +name = A0TankTrap +position = 1728, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_455] +id = 455 +startpos = 2 +name = A0TankTrap +position = 1728, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_456] +id = 456 +startpos = 2 +name = A0TankTrap +position = 576, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_457] +id = 457 +startpos = 2 +name = A0TankTrap +position = 448, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_458] +id = 458 +startpos = 2 +name = A0TankTrap +position = 448, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_459] +id = 459 +startpos = 2 +name = A0TankTrap +position = 448, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_460] +id = 460 +startpos = 2 +name = A0TankTrap +position = 448, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_461] +id = 461 +startpos = 2 +name = A0TankTrap +position = 448, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_470] +id = 470 +startpos = 2 +name = CollectiveCWall +position = 6720, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_471] +id = 471 +startpos = 2 +name = CollectiveCWall +position = 6208, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_476] +id = 476 +startpos = 2 +name = CollectiveCWall +position = 448, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_479] +id = 479 +startpos = 2 +name = CollectiveWall +position = 1600, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_480] +id = 480 +startpos = 2 +name = CollectiveWall +position = 1728, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_481] +id = 481 +startpos = 2 +name = CollectiveWall +position = 1856, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_484] +id = 484 +startpos = 2 +name = CollectiveWall +position = 2112, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_485] +id = 485 +startpos = 2 +name = CollectiveWall +position = 1984, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_486] +id = 486 +startpos = 2 +name = CO-Tower-MG3 +position = 1472, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_487] +id = 487 +startpos = 2 +name = CO-Tower-MG3 +position = 704, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_488] +id = 488 +startpos = 2 +name = CO-Tower-MdCan +position = 448, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_489] +id = 489 +startpos = 2 +name = CO-Tower-MdCan +position = 1600, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_492] +id = 492 +startpos = 2 +name = CollectiveWall +position = 2112, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_493] +id = 493 +startpos = 2 +name = CollectiveCWall +position = 1856, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_497] +id = 497 +startpos = 2 +name = PillBox5 +position = 832, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_498] +id = 498 +startpos = 2 +name = PillBox5 +position = 1216, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_499] +id = 499 +startpos = 2 +name = PillBox5 +position = 2112, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_500] +id = 500 +startpos = 2 +name = PillBox5 +position = 2624, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_501] +id = 501 +startpos = 2 +name = PillBox5 +position = 2624, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_503] +id = 503 +startpos = 2 +name = CO-Tower-HvATRkt +position = 3136, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_504] +id = 504 +startpos = 2 +name = Sys-SensoTower02 +position = 1984, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_519] +id = 519 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_520] +id = 520 +startpos = 2 +name = CO-WallTower-HvCan +position = 5696, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_523] +id = 523 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_524] +id = 524 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_525] +id = 525 +startpos = 2 +name = CO-WallTower-HvCan +position = 448, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_526] +id = 526 +startpos = 2 +name = CO-WallTower-HvCan +position = 704, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_527] +id = 527 +startpos = 2 +name = CO-WallTower-HvCan +position = 704, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_528] +id = 528 +startpos = 2 +name = CO-WallTower-HvCan +position = 1344, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_529] +id = 529 +startpos = 2 +name = CO-WallTower-HvCan +position = 1344, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_530] +id = 530 +startpos = 2 +name = CO-WallTower-HvCan +position = 1856, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_531] +id = 531 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_532] +id = 532 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_534] +id = 534 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1344, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_539] +id = 539 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5184, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_540] +id = 540 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5440, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_541] +id = 541 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5184, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_542] +id = 542 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5440, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_543] +id = 543 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5696, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_544] +id = 544 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5696, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_545] +id = 545 +startpos = 2 +name = Emplacement-MortarPit02 +position = 4928, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_546] +id = 546 +startpos = 2 +name = Emplacement-MortarPit02 +position = 4928, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_547] +id = 547 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5440, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_548] +id = 548 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5440, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_549] +id = 549 +startpos = 2 +name = Sys-CB-Tower01 +position = 6336, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_550] +id = 550 +startpos = 2 +name = Sys-CB-Tower01 +position = 6336, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_551] +id = 551 +startpos = 2 +name = Sys-SensoTower01 +position = 5952, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_552] +id = 552 +startpos = 2 +name = Sys-SensoTower01 +position = 5184, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_553] +id = 553 +startpos = 2 +name = Sys-CB-Tower01 +position = 1856, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_556] +id = 556 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5440, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_557] +id = 557 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5184, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_560] +id = 560 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4032, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_561] +id = 561 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4416, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_564] +id = 564 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_570] +id = 570 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1472, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_571] +id = 571 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1728, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_572] +id = 572 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1600, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_575] +id = 575 +startpos = 2 +name = CO-Tower-MG3 +position = 832, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_576] +id = 576 +startpos = 2 +name = CO-Tower-MG3 +position = 1216, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_583] +id = 583 +startpos = 2 +name = Sys-CB-Tower01 +position = 5568, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_584] +id = 584 +startpos = 2 +name = CO-Tower-MG3 +position = 4032, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_586] +id = 586 +startpos = 2 +name = CO-Tower-HvATRkt +position = 4032, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_587] +id = 587 +startpos = 2 +name = PillBox5 +position = 3136, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_588] +id = 588 +startpos = 2 +name = PillBox5 +position = 2624, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_589] +id = 589 +startpos = 2 +name = CO-Tower-MG3 +position = 2624, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_595] +id = 595 +startpos = 2 +name = CO-Tower-HvATRkt +position = 704, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_596] +id = 596 +startpos = 2 +name = CO-Tower-HvATRkt +position = 1344, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_597] +id = 597 +startpos = 2 +name = A0RepairCentre3 +position = 1216, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_598] +id = 598 +startpos = 2 +name = CollectiveCWall +position = 6336, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_600] +id = 600 +startpos = 2 +name = CollectiveWall +position = 5056, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_602] +id = 602 +startpos = 2 +name = CollectiveCWall +position = 5056, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_606] +id = 606 +startpos = 2 +name = Sys-SensoTower02 +position = 1728, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_607] +id = 607 +startpos = 2 +name = PillBox1 +position = 1472, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_608] +id = 608 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1472, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_609] +id = 609 +startpos = 2 +name = Emplacement-MortarPit02 +position = 576, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_610] +id = 610 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5056, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_611] +id = 611 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5056, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_612] +id = 612 +startpos = 2 +name = A0HardcreteMk1Gate +position = 2112, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_613] +id = 613 +startpos = 2 +name = A0HardcreteMk1Gate +position = 2112, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_614] +id = 614 +startpos = 2 +name = A0HardcreteMk1Gate +position = 960, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_615] +id = 615 +startpos = 2 +name = A0HardcreteMk1Gate +position = 1088, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_616] +id = 616 +startpos = 2 +name = CollectiveWall +position = 832, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_617] +id = 617 +startpos = 2 +name = CollectiveWall +position = 1216, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-5.gam b/wrf/cam2/sub2-5.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam2/sub2-5.gam differ diff --git a/wrf/cam2/sub2-5/droid.ini b/wrf/cam2/sub2-5/droid.ini new file mode 100644 index 0000000..efdf4b4 --- /dev/null +++ b/wrf/cam2/sub2-5/droid.ini @@ -0,0 +1,364 @@ +[droid_459] +id = 459 +startpos = 2 +template = CO-M-Sensor-T +position = 1472, 3776, 0 +rotation = 0, 0, 0 + +[droid_460] +id = 460 +startpos = 2 +template = CO-M-ROTMG-T +position = 1472, 3904, 0 +rotation = 0, 0, 0 + +[droid_461] +id = 461 +startpos = 2 +template = CO-M-ROTMG-T +position = 1600, 3904, 0 +rotation = 0, 0, 0 + +[droid_462] +id = 462 +startpos = 2 +template = CO-M-ROTMG-T +position = 1600, 3776, 0 +rotation = 0, 0, 0 + +[droid_463] +id = 463 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1472, 3264, 0 +rotation = 0, 0, 0 + +[droid_464] +id = 464 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1600, 3264, 0 +rotation = 0, 0, 0 + +[droid_465] +id = 465 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1472, 3392, 0 +rotation = 0, 0, 0 + +[droid_466] +id = 466 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1600, 3392, 0 +rotation = 0, 0, 0 + +[droid_469] +id = 469 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1472, 2752, 0 +rotation = 0, 0, 0 + +[droid_470] +id = 470 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1600, 2752, 0 +rotation = 0, 0, 0 + +[droid_471] +id = 471 +startpos = 2 +template = CO-M-LTAT-Hover +position = 6848, 2752, 0 +rotation = 0, 0, 0 + +[droid_472] +id = 472 +startpos = 2 +template = CO-M-LTAT-Hover +position = 6976, 2752, 0 +rotation = 0, 0, 0 + +[droid_473] +id = 473 +startpos = 2 +template = CO-M-LTAT-Hover +position = 6720, 2880, 0 +rotation = 0, 0, 0 + +[droid_474] +id = 474 +startpos = 2 +template = CO-M-LTAT-Hover +position = 6592, 2880, 0 +rotation = 0, 0, 0 + +[droid_475] +id = 475 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3264, 6336, 0 +rotation = 0, 0, 0 + +[droid_476] +id = 476 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3264, 6464, 0 +rotation = 0, 0, 0 + +[droid_477] +id = 477 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3392, 6464, 0 +rotation = 0, 0, 0 + +[droid_478] +id = 478 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3392, 6336, 0 +rotation = 0, 0, 0 + +[droid_480] +id = 480 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3134, 4798, 0 +rotation = 0, 0, 0 + +[droid_481] +id = 481 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 3264, 3520, 0 +rotation = 0, 0, 0 + +[droid_482] +id = 482 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 3392, 3520, 0 +rotation = 0, 0, 0 + +[droid_486] +id = 486 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4416, 1600, 0 +rotation = 49152, 0, 0 + +[droid_487] +id = 487 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4416, 1728, 0 +rotation = 49152, 0, 0 + +[droid_488] +id = 488 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4288, 1600, 0 +rotation = 49152, 0, 0 + +[droid_489] +id = 489 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4288, 1728, 0 +rotation = 49152, 0, 0 + +[droid_493] +id = 493 +startpos = 2 +template = CO-M-ROTMG-T +position = 1472, 1088, 0 +rotation = 0, 0, 0 + +[droid_494] +id = 494 +startpos = 2 +template = CO-M-ROTMG-T +position = 1600, 1088, 0 +rotation = 0, 0, 0 + +[droid_502] +id = 502 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 7360, 3264, 0 +rotation = 0, 0, 0 + +[droid_600] +id = 600 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3006, 4792, 0 +rotation = 0, 0, 0 + +[droid_603] +id = 603 +startpos = 2 +template = Cyb-Chain-GROUND +position = 2624, 3776, 0 +rotation = 0, 0, 0 + +[droid_604] +id = 604 +startpos = 2 +template = Cyb-Chain-GROUND +position = 2752, 3776, 0 +rotation = 0, 0, 0 + +[droid_606] +id = 606 +startpos = 2 +template = Cyb-Chain-GROUND +position = 2624, 3648, 0 +rotation = 0, 0, 0 + +[droid_607] +id = 607 +startpos = 2 +template = Cyb-Chain-GROUND +position = 2752, 3648, 0 +rotation = 0, 0, 0 + +[droid_608] +id = 608 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4672, 3648, 0 +rotation = 0, 0, 0 + +[droid_609] +id = 609 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4800, 3776, 0 +rotation = 0, 0, 0 + +[droid_610] +id = 610 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4927, 3649, 0 +rotation = 0, 0, 0 + +[droid_612] +id = 612 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4800, 3648, 0 +rotation = 0, 0, 0 + +[droid_617] +id = 617 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 4800, 6848, 0 +rotation = 0, 0, 0 + +[droid_618] +id = 618 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 4928, 6976, 0 +rotation = 0, 0, 0 + +[droid_619] +id = 619 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5952, 5824, 0 +rotation = 0, 0, 0 + +[droid_620] +id = 620 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 6336, 6720, 0 +rotation = 0, 0, 0 + +[droid_621] +id = 621 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3520, 7616, 0 +rotation = 0, 0, 0 + +[droid_627] +id = 627 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3524, 7740, 0 +rotation = 0, 0, 0 + +[droid_628] +id = 628 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3392, 7616, 0 +rotation = 0, 0, 0 + +[droid_629] +id = 629 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3392, 7744, 0 +rotation = 0, 0, 0 + +[droid_630] +id = 630 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3264, 7616, 0 +rotation = 0, 0, 0 + +[droid_631] +id = 631 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3264, 7744, 0 +rotation = 0, 0, 0 + +[droid_647] +id = 647 +startpos = 2 +template = CO-H-HPVCannon-Tracks +position = 5952, 654, 0 +rotation = 0, 0, 0 + +[droid_652] +id = 652 +startpos = 2 +template = CO-H-HPVCannon-Tracks +position = 6252, 1868, 0 +rotation = 0, 0, 0 + +[droid_655] +id = 655 +startpos = 2 +template = CO-M-ROTMG-T +position = 6104, 1028, 0 +rotation = 0, 0, 0 + +[droid_656] +id = 656 +startpos = 2 +template = CO-M-ROTMG-T +position = 6552, 1098, 0 +rotation = 0, 0, 0 + +[droid_657] +id = 657 +startpos = 2 +template = CO-H-HPVCannon-Tracks +position = 1532, 2998, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-5/feature.ini b/wrf/cam2/sub2-5/feature.ini new file mode 100644 index 0000000..07f1c47 --- /dev/null +++ b/wrf/cam2/sub2-5/feature.ini @@ -0,0 +1,672 @@ +[feature_105] +id = 105 +position = 4864, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_106] +id = 106 +position = 4224, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_108] +id = 108 +position = 4864, 5568, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_109] +id = 109 +position = 4224, 5568, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_110] +id = 110 +position = 4224, 5824, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_121] +id = 121 +position = 3712, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_123] +id = 123 +position = 3712, 5824, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_127] +id = 127 +position = 3648, 7360, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_131] +id = 131 +position = 3584, 6976, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_132] +id = 132 +position = 3008, 6720, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_133] +id = 133 +position = 2496, 6720, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_137] +id = 137 +position = 1984, 6080, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_141] +id = 141 +position = 3008, 5184, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_143] +id = 143 +position = 2752, 5184, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_144] +id = 144 +position = 3008, 5440, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_146] +id = 146 +position = 2752, 5440, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_147] +id = 147 +position = 2944, 5824, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_148] +id = 148 +position = 2944, 6080, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_149] +id = 149 +position = 1856, 6720, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_150] +id = 150 +position = 576, 6720, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_151] +id = 151 +position = 576, 7488, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_152] +id = 152 +position = 1216, 5568, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_156] +id = 156 +position = 704, 5568, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_162] +id = 162 +position = 1344, 5184, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_163] +id = 163 +position = 4352, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_165] +id = 165 +position = 4352, 2752, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_166] +id = 166 +position = 4416, 3392, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_168] +id = 168 +position = 4032, 3392, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_171] +id = 171 +position = 3648, 3392, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_177] +id = 177 +position = 4096, 2880, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_180] +id = 180 +position = 3584, 2752, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_181] +id = 181 +position = 3584, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_186] +id = 186 +position = 4160, 2752, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_187] +id = 187 +position = 3904, 2752, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_192] +id = 192 +position = 3008, 2496, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_203] +id = 203 +position = 1792, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_205] +id = 205 +position = 1792, 2496, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_206] +id = 206 +position = 3072, 3264, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_207] +id = 207 +position = 3072, 3520, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_209] +id = 209 +position = 704, 1984, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_210] +id = 210 +position = 1216, 1984, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_211] +id = 211 +position = 1216, 2368, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_212] +id = 212 +position = 1280, 2752, 0 +rotation = 0, 0, 0 +name = BarbTechRuin + +[feature_213] +id = 213 +position = 1280, 3008, 0 +rotation = 0, 0, 0 +name = BarbTechRuin + +[feature_222] +id = 222 +position = 4032, 5184, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_223] +id = 223 +position = 3904, 1600, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_224] +id = 224 +position = 3648, 576, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_227] +id = 227 +position = 2112, 704, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_228] +id = 228 +position = 2112, 1216, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_230] +id = 230 +position = 3072, 1472, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_231] +id = 231 +position = 1216, 1216, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_233] +id = 233 +position = 2880, 704, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_239] +id = 239 +position = 704, 1344, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_247] +id = 247 +position = 6720, 7232, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_248] +id = 248 +position = 7872, 7616, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_249] +id = 249 +position = 7104, 7616, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_254] +id = 254 +position = 3904, 3264, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_258] +id = 258 +position = 2752, 1344, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_260] +id = 260 +position = 4544, 5312, 0 +rotation = 60075, 0, 0 +name = Crane + +[feature_265] +id = 265 +position = 1216, 7616, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_266] +id = 266 +position = 576, 3264, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_271] +id = 271 +position = 2368, 2880, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_283] +id = 283 +position = 7424, 6912, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_284] +id = 284 +position = 7104, 6848, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_287] +id = 287 +position = 7744, 7104, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_288] +id = 288 +position = 3712, 6080, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_290] +id = 290 +position = 7104, 6336, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_292] +id = 292 +position = 7360, 6592, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_293] +id = 293 +position = 7616, 6592, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_295] +id = 295 +position = 3264, 4928, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_299] +id = 299 +position = 1344, 1600, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_302] +id = 302 +position = 4928, 3392, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_303] +id = 303 +position = 4928, 3136, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_344] +id = 344 +position = 6208, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_345] +id = 345 +position = 6336, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_352] +id = 352 +position = 7040, 960, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_353] +id = 353 +position = 7040, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_354] +id = 354 +position = 7040, 1216, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_355] +id = 355 +position = 7040, 1344, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_484] +id = 484 +position = 3904, 1472, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_485] +id = 485 +position = 4032, 1472, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_532] +id = 532 +position = 7744, 1600, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_534] +id = 534 +position = 7360, 1088, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_535] +id = 535 +position = 7360, 704, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_537] +id = 537 +position = 6336, 1728, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_538] +id = 538 +position = 6080, 1728, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_541] +id = 541 +position = 4544, 1472, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_542] +id = 542 +position = 3648, 1472, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_544] +id = 544 +position = 3136, 1856, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_545] +id = 545 +position = 2496, 1856, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_546] +id = 546 +position = 3648, 1856, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_547] +id = 547 +position = 4544, 1856, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_548] +id = 548 +position = 1728, 1856, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_551] +id = 551 +position = 1728, 2624, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_552] +id = 552 +position = 1728, 3392, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_553] +id = 553 +position = 2752, 5696, 0 +rotation = 42780, 0, 0 +name = Crane + +[feature_554] +id = 554 +position = 1728, 5440, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_555] +id = 555 +position = 1728, 6208, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_557] +id = 557 +position = 3520, 6208, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_558] +id = 558 +position = 3520, 5184, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_559] +id = 559 +position = 3520, 5696, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_560] +id = 560 +position = 6848, 6080, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_561] +id = 561 +position = 3520, 3776, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_562] +id = 562 +position = 3520, 3264, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_563] +id = 563 +position = 3520, 2624, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_564] +id = 564 +position = 1728, 832, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_566] +id = 566 +position = 4480, 5504, 0 +rotation = 0, 0, 0 +name = OldFactory + +[feature_567] +id = 567 +position = 2432, 5632, 0 +rotation = 0, 0, 0 +name = OldFactory + +[feature_568] +id = 568 +position = 2432, 6016, 0 +rotation = 0, 0, 0 +name = OldFactory + +[feature_571] +id = 571 +position = 4544, 5824, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_580] +id = 580 +position = 6720, 1728, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_670] +id = 670 +position = 2752, 3264, 0 +rotation = 0, 0, 0 +name = building1 + diff --git a/wrf/cam2/sub2-5/labels.ini b/wrf/cam2/sub2-5/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-5/struct.ini b/wrf/cam2/sub2-5/struct.ini new file mode 100644 index 0000000..f190dca --- /dev/null +++ b/wrf/cam2/sub2-5/struct.ini @@ -0,0 +1,1592 @@ +[structure_2] +id = 2 +startpos = 2 +name = CollectiveWall +position = 5440, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3] +id = 3 +startpos = 2 +name = CollectiveWall +position = 5440, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_9] +id = 9 +startpos = 2 +name = CollectiveWall +position = 5440, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_10] +id = 10 +startpos = 2 +name = CollectiveWall +position = 5568, 1472, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_11] +id = 11 +startpos = 2 +name = CollectiveWall +position = 5696, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_12] +id = 12 +startpos = 2 +name = CollectiveWall +position = 5696, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_14] +id = 14 +startpos = 2 +name = CollectiveWall +position = 5696, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_19] +id = 19 +startpos = 2 +name = CollectiveWall +position = 6336, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_20] +id = 20 +startpos = 2 +name = CollectiveWall +position = 6464, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_21] +id = 21 +startpos = 2 +name = CollectiveWall +position = 6592, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_22] +id = 22 +startpos = 2 +name = CollectiveWall +position = 6720, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_23] +id = 23 +startpos = 2 +name = CollectiveWall +position = 6848, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_24] +id = 24 +startpos = 2 +name = CollectiveWall +position = 6976, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 2 +name = CollectiveWall +position = 7104, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_39] +id = 39 +startpos = 2 +name = CollectiveWall +position = 5568, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_41] +id = 41 +startpos = 2 +name = CollectiveWall +position = 5696, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_42] +id = 42 +startpos = 2 +name = CollectiveWall +position = 5568, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_45] +id = 45 +startpos = 2 +name = CollectiveWall +position = 5568, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_46] +id = 46 +startpos = 2 +name = CollectiveWall +position = 5696, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_47] +id = 47 +startpos = 2 +name = CollectiveWall +position = 6208, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_52] +id = 52 +startpos = 2 +name = CollectiveCWall +position = 6464, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_56] +id = 56 +startpos = 2 +name = CollectiveWall +position = 6464, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_58] +id = 58 +startpos = 2 +name = CollectiveCWall +position = 6464, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_59] +id = 59 +startpos = 2 +name = CollectiveWall +position = 6592, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_60] +id = 60 +startpos = 2 +name = CollectiveWall +position = 6720, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_61] +id = 61 +startpos = 2 +name = CollectiveWall +position = 6848, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_62] +id = 62 +startpos = 2 +name = CollectiveWall +position = 6976, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_63] +id = 63 +startpos = 2 +name = CollectiveWall +position = 7104, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_67] +id = 67 +startpos = 2 +name = CollectiveCWall +position = 7232, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_69] +id = 69 +startpos = 2 +name = CollectiveWall +position = 7232, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_72] +id = 72 +startpos = 2 +name = CollectiveWall +position = 7232, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_79] +id = 79 +startpos = 2 +name = CollectiveCWall +position = 6080, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_81] +id = 81 +startpos = 2 +name = CollectiveWall +position = 5696, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_82] +id = 82 +startpos = 2 +name = CollectiveWall +position = 5568, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_83] +id = 83 +startpos = 2 +name = CollectiveWall +position = 5568, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_84] +id = 84 +startpos = 2 +name = CollectiveWall +position = 6208, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_85] +id = 85 +startpos = 2 +name = CollectiveWall +position = 6208, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_86] +id = 86 +startpos = 2 +name = CollectiveWall +position = 5696, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_88] +id = 88 +startpos = 2 +name = CollectiveCWall +position = 6080, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_89] +id = 89 +startpos = 2 +name = CollectiveCWall +position = 5824, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_91] +id = 91 +startpos = 2 +name = CollectiveWall +position = 5568, 5184, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_92] +id = 92 +startpos = 2 +name = CollectiveWall +position = 5568, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_93] +id = 93 +startpos = 2 +name = CollectiveWall +position = 5696, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_94] +id = 94 +startpos = 2 +name = CollectiveWall +position = 5696, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_95] +id = 95 +startpos = 2 +name = CollectiveWall +position = 6208, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_96] +id = 96 +startpos = 2 +name = CollectiveWall +position = 6208, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_219] +id = 219 +startpos = 2 +name = CollectiveWall +position = 7360, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_305] +id = 305 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_306] +id = 306 +startpos = 2 +name = CO-WallTower-HvCan +position = 6080, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_309] +id = 309 +startpos = 2 +name = CollectiveWall +position = 5440, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_310] +id = 310 +startpos = 2 +name = CO-WallTower-HvCan +position = 5440, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_311] +id = 311 +startpos = 2 +name = CO-WallTower-HvCan +position = 5696, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_312] +id = 312 +startpos = 2 +name = CO-WallTower-HvCan +position = 5440, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_313] +id = 313 +startpos = 2 +name = CO-WallTower-HvCan +position = 5440, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_314] +id = 314 +startpos = 2 +name = CO-WallTower-HvCan +position = 7488, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_315] +id = 315 +startpos = 2 +name = CO-WallTower-HvCan +position = 7744, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_319] +id = 319 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_320] +id = 320 +startpos = 2 +name = CollectiveCWall +position = 6080, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_322] +id = 322 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_323] +id = 323 +startpos = 2 +name = CO-WallTower-HvCan +position = 5568, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_324] +id = 324 +startpos = 2 +name = CO-WallTower-HvCan +position = 5568, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_325] +id = 325 +startpos = 2 +name = CO-WallTower-HvCan +position = 5568, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_326] +id = 326 +startpos = 2 +name = CO-WallTower-HvCan +position = 5568, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_327] +id = 327 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_328] +id = 328 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_331] +id = 331 +startpos = 2 +name = CollectiveWall +position = 5824, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_332] +id = 332 +startpos = 2 +name = CollectiveWall +position = 5952, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_333] +id = 333 +startpos = 2 +name = CollectiveWall +position = 6080, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_334] +id = 334 +startpos = 2 +name = Sys-SensoTower02 +position = 5696, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_335] +id = 335 +startpos = 2 +name = Sys-SensoTower02 +position = 5696, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_336] +id = 336 +startpos = 2 +name = CO-WallTower-HvCan +position = 5440, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_346] +id = 346 +startpos = 2 +name = CO-Tower-HvFlame +position = 5568, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_347] +id = 347 +startpos = 2 +name = CO-Tower-HvFlame +position = 5568, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_356] +id = 356 +startpos = 2 +name = PillBox1 +position = 1344, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_357] +id = 357 +startpos = 2 +name = PillBox1 +position = 1728, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_358] +id = 358 +startpos = 2 +name = CO-Tower-HvFlame +position = 960, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_359] +id = 359 +startpos = 2 +name = CO-Tower-HvFlame +position = 2112, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_372] +id = 372 +startpos = 2 +name = CollectiveWall +position = 3648, 2240, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_373] +id = 373 +startpos = 2 +name = CollectiveWall +position = 3520, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_375] +id = 375 +startpos = 2 +name = CO-WallTower-HvCan +position = 3520, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_376] +id = 376 +startpos = 2 +name = CO-WallTower-HvCan +position = 3520, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_377] +id = 377 +startpos = 2 +name = CO-WallTower-HvCan +position = 3520, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_378] +id = 378 +startpos = 2 +name = CO-WallTower-HvCan +position = 3520, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_379] +id = 379 +startpos = 2 +name = CollectiveWall +position = 3776, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_380] +id = 380 +startpos = 2 +name = CollectiveWall +position = 3904, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_381] +id = 381 +startpos = 2 +name = CollectiveWall +position = 4032, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_383] +id = 383 +startpos = 2 +name = CollectiveWall +position = 4288, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_384] +id = 384 +startpos = 2 +name = CollectiveWall +position = 4416, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_385] +id = 385 +startpos = 2 +name = CO-WallTower-HvCan +position = 4672, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_386] +id = 386 +startpos = 2 +name = CollectiveWall +position = 4544, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_387] +id = 387 +startpos = 2 +name = CollectiveWall +position = 3520, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_388] +id = 388 +startpos = 2 +name = CollectiveWall +position = 3648, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_389] +id = 389 +startpos = 2 +name = CollectiveWall +position = 3776, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_390] +id = 390 +startpos = 2 +name = CollectiveWall +position = 3904, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_391] +id = 391 +startpos = 2 +name = CollectiveWall +position = 4032, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_392] +id = 392 +startpos = 2 +name = CollectiveWall +position = 4160, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_393] +id = 393 +startpos = 2 +name = CollectiveWall +position = 4288, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_395] +id = 395 +startpos = 2 +name = CO-WallTower-HvCan +position = 4416, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_399] +id = 399 +startpos = 2 +name = CO-WallTower-HvCan +position = 4416, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_402] +id = 402 +startpos = 2 +name = CO-Tower-HvATRkt +position = 4672, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_403] +id = 403 +startpos = 2 +name = CollectiveWall +position = 4800, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_404] +id = 404 +startpos = 2 +name = CO-WallTower-HvCan +position = 4160, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_406] +id = 406 +startpos = 2 +name = A0LightFactory +position = 6208, 576, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_408] +id = 408 +startpos = 2 +name = A0CyborgFactory +position = 6592, 640, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_409] +id = 409 +startpos = 2 +name = A0CyborgFactory +position = 6848, 640, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_410] +id = 410 +startpos = 2 +name = A0ComDroidControl +position = 7424, 2048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_411] +id = 411 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5696, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_414] +id = 414 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_415] +id = 415 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_417] +id = 417 +startpos = 2 +name = CO-WallTower-HvCan +position = 7232, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_418] +id = 418 +startpos = 2 +name = CollectiveWall +position = 6336, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_419] +id = 419 +startpos = 2 +name = CollectiveWall +position = 6208, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_421] +id = 421 +startpos = 2 +name = A0RepairCentre3 +position = 3904, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_426] +id = 426 +startpos = 2 +name = A0CommandCentreCO +position = 7296, 3456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_428] +id = 428 +startpos = 2 +name = CollectiveWall +position = 3520, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_433] +id = 433 +startpos = 2 +name = CO-WallTower-HvCan +position = 7744, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_434] +id = 434 +startpos = 2 +name = CollectiveWall +position = 7232, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_435] +id = 435 +startpos = 2 +name = CO-WallTower-HvCan +position = 7104, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_436] +id = 436 +startpos = 2 +name = CollectiveWall +position = 7360, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_437] +id = 437 +startpos = 2 +name = CollectiveWall +position = 7104, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_438] +id = 438 +startpos = 2 +name = CollectiveWall +position = 7104, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_439] +id = 439 +startpos = 2 +name = CollectiveWall +position = 7104, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_440] +id = 440 +startpos = 2 +name = CollectiveWall +position = 7232, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_441] +id = 441 +startpos = 2 +name = CollectiveWall +position = 7360, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_443] +id = 443 +startpos = 2 +name = CO-WallTower-HvCan +position = 7104, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_445] +id = 445 +startpos = 2 +name = CollectiveWall +position = 7744, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_446] +id = 446 +startpos = 2 +name = CollectiveWall +position = 7744, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_447] +id = 447 +startpos = 2 +name = CollectiveWall +position = 7744, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_448] +id = 448 +startpos = 2 +name = CO-WallTower-HvCan +position = 7744, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_507] +id = 507 +startpos = 2 +name = CO-WallTower-HvCan +position = 7232, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_511] +id = 511 +startpos = 2 +name = NuclearReactor +position = 7040, 1664, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_515] +id = 515 +startpos = 2 +name = A0BaBaPowerGenerator +position = 6336, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_527] +id = 527 +startpos = 2 +name = A0PowerGenerator +position = 7040, 2048, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_529] +id = 529 +startpos = 2 +name = A0BaBaPowerGenerator +position = 6208, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_539] +id = 539 +startpos = 2 +name = A0BaBaPowerGenerator +position = 6080, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_576] +id = 576 +startpos = 2 +name = CoolingTower +position = 6592, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_577] +id = 577 +startpos = 2 +name = CoolingTower +position = 6720, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_578] +id = 578 +startpos = 2 +name = CoolingTower +position = 6592, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_579] +id = 579 +startpos = 2 +name = CoolingTower +position = 6720, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_682] +id = 682 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7616, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_582] +id = 582 +startpos = 2 +name = AASite-QuadMg1 +position = 7488, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_583] +id = 583 +startpos = 2 +name = AASite-QuadMg1 +position = 7488, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_584] +id = 584 +startpos = 2 +name = AASite-QuadMg1 +position = 5568, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_585] +id = 585 +startpos = 2 +name = AASite-QuadMg1 +position = 5696, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_586] +id = 586 +startpos = 2 +name = AASite-QuadMg1 +position = 5696, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_587] +id = 587 +startpos = 2 +name = AASite-QuadMg1 +position = 5568, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_588] +id = 588 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_589] +id = 589 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_590] +id = 590 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_591] +id = 591 +startpos = 2 +name = AASite-QuadMg1 +position = 4672, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_592] +id = 592 +startpos = 2 +name = AASite-QuadMg1 +position = 7488, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_593] +id = 593 +startpos = 2 +name = AASite-QuadMg1 +position = 7488, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_594] +id = 594 +startpos = 2 +name = AASite-QuadMg1 +position = 5696, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_595] +id = 595 +startpos = 2 +name = AASite-QuadMg1 +position = 6080, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_596] +id = 596 +startpos = 2 +name = AASite-QuadMg1 +position = 6080, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_597] +id = 597 +startpos = 2 +name = AASite-QuadMg1 +position = 6080, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_598] +id = 598 +startpos = 2 +name = AASite-QuadMg1 +position = 6080, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_599] +id = 599 +startpos = 2 +name = AASite-QuadMg1 +position = 5696, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_614] +id = 614 +startpos = 2 +name = AASite-QuadMg1 +position = 4416, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_615] +id = 615 +startpos = 2 +name = AASite-QuadMg1 +position = 4160, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_616] +id = 616 +startpos = 2 +name = AASite-QuadMg1 +position = 4288, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_633] +id = 633 +startpos = 2 +name = AASite-QuadMg1 +position = 4800, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_634] +id = 634 +startpos = 2 +name = AASite-QuadMg1 +position = 3904, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_635] +id = 635 +startpos = 2 +name = Sys-SensoTower02 +position = 3904, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_636] +id = 636 +startpos = 2 +name = AASite-QuadMg1 +position = 3776, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_637] +id = 637 +startpos = 2 +name = AASite-QuadMg1 +position = 3904, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_638] +id = 638 +startpos = 2 +name = PillBox6 +position = 3648, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_639] +id = 639 +startpos = 2 +name = PillBox6 +position = 3136, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_640] +id = 640 +startpos = 2 +name = PillBox6 +position = 2496, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_641] +id = 641 +startpos = 2 +name = PillBox6 +position = 3904, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_642] +id = 642 +startpos = 2 +name = PillBox6 +position = 3904, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_643] +id = 643 +startpos = 2 +name = PillBox6 +position = 2496, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_644] +id = 644 +startpos = 2 +name = AASite-QuadMg1 +position = 3136, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_645] +id = 645 +startpos = 2 +name = AASite-QuadMg1 +position = 2752, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_646] +id = 646 +startpos = 2 +name = CollectiveWall +position = 4928, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_658] +id = 658 +startpos = 2 +name = A0VtolPad +position = 7104, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_659] +id = 659 +startpos = 2 +name = A0VtolPad +position = 7232, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_660] +id = 660 +startpos = 2 +name = A0VtolPad +position = 6720, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_661] +id = 661 +startpos = 2 +name = A0VtolPad +position = 6720, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_662] +id = 662 +startpos = 2 +name = CollectiveCWall +position = 6080, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_663] +id = 663 +startpos = 2 +name = CollectiveCWall +position = 5696, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_664] +id = 664 +startpos = 2 +name = CollectiveCWall +position = 5696, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_665] +id = 665 +startpos = 2 +name = CollectiveCWall +position = 7232, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_666] +id = 666 +startpos = 2 +name = CollectiveCWall +position = 7488, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_667] +id = 667 +startpos = 2 +name = CollectiveCWall +position = 7488, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_668] +id = 668 +startpos = 2 +name = CollectiveCWall +position = 5824, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_669] +id = 669 +startpos = 2 +name = CollectiveCWall +position = 5824, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_671] +id = 671 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3520, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_672] +id = 672 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3520, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_673] +id = 673 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5696, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_674] +id = 674 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5696, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_675] +id = 675 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6464, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_676] +id = 676 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7232, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_677] +id = 677 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5952, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_678] +id = 678 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5952, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_679] +id = 679 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5952, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_680] +id = 680 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5952, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_681] +id = 681 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7616, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_683] +id = 683 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7616, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-6.gam b/wrf/cam2/sub2-6.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam2/sub2-6.gam differ diff --git a/wrf/cam2/sub2-6/droid.ini b/wrf/cam2/sub2-6/droid.ini new file mode 100644 index 0000000..3ab94a4 --- /dev/null +++ b/wrf/cam2/sub2-6/droid.ini @@ -0,0 +1,385 @@ +[droid_529] +id = 529 +startpos = 2 +template = CO-M-ROTMG-T +position = 5696, 2880, 0 +rotation = 0, 0, 0 + +[droid_397] +id = 397 +startpos = 2 +template = CO-H-RotCan-Track +position = 2624, 3648, 0 +rotation = 0, 0, 0 + +[droid_398] +id = 398 +startpos = 2 +template = CO-H-RotCan-Track +position = 2752, 3648, 0 +rotation = 0, 0, 0 + +[droid_399] +id = 399 +startpos = 2 +template = CO-H-RotCan-Track +position = 7360, 1857, 0 +rotation = 0, 0, 0 + +[droid_400] +id = 400 +startpos = 2 +template = CO-H-RotCan-Track +position = 7359, 1729, 0 +rotation = 0, 0, 0 + +[droid_401] +id = 401 +startpos = 2 +template = CO-H-RotCan-Track +position = 7488, 1728, 0 +rotation = 0, 0, 0 + +[droid_402] +id = 402 +startpos = 2 +template = CO-M-ROTMG-T +position = 1600, 4672, 0 +rotation = 0, 0, 0 + +[droid_403] +id = 403 +startpos = 2 +template = CO-M-ROTMG-T +position = 1727, 4673, 0 +rotation = 0, 0, 0 + +[droid_407] +id = 407 +startpos = 2 +template = CO-M-ROTMG-T +position = 6336, 4288, 0 +rotation = 0, 0, 0 + +[droid_408] +id = 408 +startpos = 2 +template = CO-M-ROTMG-T +position = 6464, 4160, 0 +rotation = 0, 0, 0 + +[droid_410] +id = 410 +startpos = 2 +template = CO-M-ROTMG-T +position = 5184, 1984, 0 +rotation = 0, 0, 0 + +[droid_411] +id = 411 +startpos = 2 +template = CO-M-Sensor-T +position = 2368, 3008, 0 +rotation = 0, 0, 0 + +[droid_412] +id = 412 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 2624, 2880, 0 +rotation = 0, 0, 0 + +[droid_413] +id = 413 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 2496, 2880, 0 +rotation = 0, 0, 0 + +[droid_414] +id = 414 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 2240, 2880, 0 +rotation = 0, 0, 0 + +[droid_415] +id = 415 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 2368, 2880, 0 +rotation = 0, 0, 0 + +[droid_416] +id = 416 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 2368, 2752, 0 +rotation = 0, 0, 0 + +[droid_417] +id = 417 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 2369, 2624, 0 +rotation = 0, 0, 0 + +[droid_418] +id = 418 +startpos = 2 +template = CO-H-RotCan-Track +position = 2660, 3130, 0 +rotation = 0, 0, 0 + +[droid_419] +id = 419 +startpos = 2 +template = CO-H-RotCan-Track +position = 2368, 3136, 0 +rotation = 0, 0, 0 + +[droid_420] +id = 420 +startpos = 2 +template = CO-H-RotCan-Track +position = 2112, 3136, 0 +rotation = 0, 0, 0 + +[droid_421] +id = 421 +startpos = 2 +template = CO-H-RotCan-Track +position = 1225, 1238, 0 +rotation = 0, 0, 0 + +[droid_430] +id = 430 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 1728, 1088, 0 +rotation = 0, 0, 0 + +[droid_431] +id = 431 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 1600, 1088, 0 +rotation = 0, 0, 0 + +[droid_433] +id = 433 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 1600, 1344, 0 +rotation = 0, 0, 0 + +[droid_434] +id = 434 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 1728, 1344, 0 +rotation = 0, 0, 0 + +[droid_437] +id = 437 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 6977, 2752, 0 +rotation = 0, 0, 0 + +[droid_438] +id = 438 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 7232, 2752, 0 +rotation = 0, 0, 0 + +[droid_439] +id = 439 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 7104, 3008, 0 +rotation = 0, 0, 0 + +[droid_440] +id = 440 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 6592, 1984, 0 +rotation = 0, 0, 0 + +[droid_441] +id = 441 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 6592, 1088, 0 +rotation = 0, 0, 0 + +[droid_442] +id = 442 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 7232, 1216, 0 +rotation = 0, 0, 0 + +[droid_443] +id = 443 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 3136, 0 +rotation = 0, 0, 0 + +[droid_444] +id = 444 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 3136, 0 +rotation = 0, 0, 0 + +[droid_445] +id = 445 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6720, 3136, 0 +rotation = 0, 0, 0 + +[droid_456] +id = 456 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 6976, 7488, 0 +rotation = 0, 0, 0 + +[droid_457] +id = 457 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7104, 7488, 0 +rotation = 0, 0, 0 + +[droid_458] +id = 458 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7104, 7360, 0 +rotation = 0, 0, 0 + +[droid_459] +id = 459 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 6976, 7360, 0 +rotation = 0, 0, 0 + +[droid_460] +id = 460 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7232, 7360, 0 +rotation = 0, 0, 0 + +[droid_496] +id = 496 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1216, 1728, 0 +rotation = 0, 0, 0 + +[droid_497] +id = 497 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1216, 1856, 0 +rotation = 0, 0, 0 + +[droid_498] +id = 498 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1344, 1856, 0 +rotation = 0, 0, 0 + +[droid_499] +id = 499 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1344, 1728, 0 +rotation = 0, 0, 0 + +[droid_500] +id = 500 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 960, 2240, 0 +rotation = 0, 0, 0 + +[droid_501] +id = 501 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1728, 1856, 0 +rotation = 0, 0, 0 + +[droid_514] +id = 514 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 6976, 7228, 0 +rotation = 0, 0, 0 + +[droid_515] +id = 515 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7106, 7238, 0 +rotation = 0, 0, 0 + +[droid_516] +id = 516 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7226, 7232, 0 +rotation = 0, 0, 0 + +[droid_517] +id = 517 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 6972, 7604, 0 +rotation = 0, 0, 0 + +[droid_518] +id = 518 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 7226, 7486, 0 +rotation = 0, 0, 0 + +[droid_519] +id = 519 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 1594, 1474, 0 +rotation = 0, 0, 0 + +[droid_520] +id = 520 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 1732, 1472, 0 +rotation = 0, 0, 0 + +[droid_521] +id = 521 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1342, 1092, 0 +rotation = 0, 0, 0 + +[droid_522] +id = 522 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1336, 954, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-6/feature.ini b/wrf/cam2/sub2-6/feature.ini new file mode 100644 index 0000000..e0f7ae2 --- /dev/null +++ b/wrf/cam2/sub2-6/feature.ini @@ -0,0 +1,240 @@ +[feature_1] +id = 1 +position = 1984, 1472, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_6] +id = 6 +position = 4544, 1600, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_8] +id = 8 +position = 2112, 3392, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_13] +id = 13 +position = 4224, 6464, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_14] +id = 14 +position = 4672, 6592, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_16] +id = 16 +position = 5120, 7488, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_23] +id = 23 +position = 5184, 5696, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_24] +id = 24 +position = 4160, 4800, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_25] +id = 25 +position = 5440, 2752, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_26] +id = 26 +position = 6464, 1472, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_32] +id = 32 +position = 6208, 3392, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_33] +id = 33 +position = 7424, 3264, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_34] +id = 34 +position = 7488, 3520, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_77] +id = 77 +position = 960, 6336, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_85] +id = 85 +position = 4416, 4288, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_86] +id = 86 +position = 4480, 3520, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_93] +id = 93 +position = 1984, 4800, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_95] +id = 95 +position = 2880, 6464, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_106] +id = 106 +position = 5440, 4160, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_107] +id = 107 +position = 5760, 4288, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_108] +id = 108 +position = 5760, 4672, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_109] +id = 109 +position = 5952, 5312, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_110] +id = 110 +position = 960, 4544, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_111] +id = 111 +position = 832, 4544, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_112] +id = 112 +position = 1088, 4672, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_113] +id = 113 +position = 1472, 3904, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_114] +id = 114 +position = 576, 3392, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_119] +id = 119 +position = 2624, 960, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_120] +id = 120 +position = 3136, 960, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_121] +id = 121 +position = 4800, 960, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_124] +id = 124 +position = 7872, 960, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_131] +id = 131 +position = 6976, 5440, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_132] +id = 132 +position = 5056, 7104, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_133] +id = 133 +position = 4032, 7104, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_134] +id = 134 +position = 1472, 7104, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_135] +id = 135 +position = 2112, 7104, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_136] +id = 136 +position = 2880, 5696, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_137] +id = 137 +position = 5184, 3904, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_142] +id = 142 +position = 896, 4096, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_508] +id = 508 +position = 2688, 3520, 0 +rotation = 0, 0, 0 +name = building10 + diff --git a/wrf/cam2/sub2-6/labels.ini b/wrf/cam2/sub2-6/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-6/struct.ini b/wrf/cam2/sub2-6/struct.ini new file mode 100644 index 0000000..e1caa5d --- /dev/null +++ b/wrf/cam2/sub2-6/struct.ini @@ -0,0 +1,1712 @@ +[structure_523] +id = 523 +startpos = 2 +name = A0VtolPad +position = 7360, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_143] +id = 143 +startpos = 2 +name = CollectiveWall +position = 6336, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_146] +id = 146 +startpos = 2 +name = CO-WallTower-RotCan +position = 6336, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_147] +id = 147 +startpos = 2 +name = CO-WallTower-RotCan +position = 6336, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_148] +id = 148 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_149] +id = 149 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_150] +id = 150 +startpos = 2 +name = CollectiveWall +position = 6080, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_152] +id = 152 +startpos = 2 +name = CO-WallTower-RotCan +position = 7488, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_153] +id = 153 +startpos = 2 +name = CO-WallTower-RotCan +position = 6720, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_154] +id = 154 +startpos = 2 +name = CollectiveWall +position = 6848, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_155] +id = 155 +startpos = 2 +name = CollectiveWall +position = 7360, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_156] +id = 156 +startpos = 2 +name = CO-WallTower-HvCan +position = 6976, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_157] +id = 157 +startpos = 2 +name = CO-WallTower-HvCan +position = 7232, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_161] +id = 161 +startpos = 2 +name = CollectiveCWall +position = 576, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_162] +id = 162 +startpos = 2 +name = CollectiveWall +position = 576, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_163] +id = 163 +startpos = 2 +name = CollectiveWall +position = 576, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_164] +id = 164 +startpos = 2 +name = CollectiveWall +position = 576, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_165] +id = 165 +startpos = 2 +name = CollectiveWall +position = 832, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_166] +id = 166 +startpos = 2 +name = CollectiveWall +position = 960, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_167] +id = 167 +startpos = 2 +name = CollectiveWall +position = 1088, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_168] +id = 168 +startpos = 2 +name = CollectiveWall +position = 1216, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_169] +id = 169 +startpos = 2 +name = CollectiveWall +position = 1344, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_170] +id = 170 +startpos = 2 +name = CollectiveWall +position = 1472, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_171] +id = 171 +startpos = 2 +name = CollectiveWall +position = 1600, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_172] +id = 172 +startpos = 2 +name = CollectiveWall +position = 1728, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_173] +id = 173 +startpos = 2 +name = CollectiveWall +position = 1856, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_174] +id = 174 +startpos = 2 +name = CollectiveWall +position = 1984, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_175] +id = 175 +startpos = 2 +name = CollectiveWall +position = 576, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_177] +id = 177 +startpos = 2 +name = CollectiveWall +position = 576, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_178] +id = 178 +startpos = 2 +name = CollectiveWall +position = 576, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_181] +id = 181 +startpos = 2 +name = CollectiveWall +position = 1600, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_182] +id = 182 +startpos = 2 +name = CollectiveWall +position = 1728, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_183] +id = 183 +startpos = 2 +name = CollectiveWall +position = 1856, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_184] +id = 184 +startpos = 2 +name = CollectiveWall +position = 1984, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_185] +id = 185 +startpos = 2 +name = CollectiveWall +position = 2112, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_186] +id = 186 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_187] +id = 187 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_188] +id = 188 +startpos = 2 +name = CO-WallTower-HvCan +position = 1472, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_190] +id = 190 +startpos = 2 +name = CollectiveWall +position = 1472, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_191] +id = 191 +startpos = 2 +name = CollectiveWall +position = 1472, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_192] +id = 192 +startpos = 2 +name = CollectiveWall +position = 960, 1600, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_193] +id = 193 +startpos = 2 +name = CollectiveWall +position = 576, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_195] +id = 195 +startpos = 2 +name = CO-WallTower-HvCan +position = 1472, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_196] +id = 196 +startpos = 2 +name = CO-WallTower-HvCan +position = 1088, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_197] +id = 197 +startpos = 2 +name = A0CommandCentreCO +position = 896, 896, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_198] +id = 198 +startpos = 2 +name = A0TankTrap +position = 2112, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_199] +id = 199 +startpos = 2 +name = A0TankTrap +position = 2112, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_200] +id = 200 +startpos = 2 +name = A0TankTrap +position = 2112, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_201] +id = 201 +startpos = 2 +name = A0TankTrap +position = 2112, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_202] +id = 202 +startpos = 2 +name = GuardTower6 +position = 1856, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_203] +id = 203 +startpos = 2 +name = GuardTower6 +position = 1856, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_204] +id = 204 +startpos = 2 +name = GuardTower5 +position = 1856, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_205] +id = 205 +startpos = 2 +name = GuardTower5 +position = 1856, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_207] +id = 207 +startpos = 2 +name = A0TankTrap +position = 2752, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_208] +id = 208 +startpos = 2 +name = A0TankTrap +position = 2880, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_209] +id = 209 +startpos = 2 +name = A0TankTrap +position = 3008, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_210] +id = 210 +startpos = 2 +name = A0TankTrap +position = 3136, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_211] +id = 211 +startpos = 2 +name = A0TankTrap +position = 3136, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_212] +id = 212 +startpos = 2 +name = PillBox6 +position = 3008, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_213] +id = 213 +startpos = 2 +name = PillBox6 +position = 3008, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_214] +id = 214 +startpos = 2 +name = A0CyborgFactory +position = 1728, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_215] +id = 215 +startpos = 2 +name = A0CyborgFactory +position = 1472, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_217] +id = 217 +startpos = 2 +name = CollectiveWall +position = 7360, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_221] +id = 221 +startpos = 2 +name = CollectiveWall +position = 6848, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_222] +id = 222 +startpos = 2 +name = CollectiveWall +position = 6848, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_223] +id = 223 +startpos = 2 +name = CollectiveWall +position = 6848, 1472, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_227] +id = 227 +startpos = 2 +name = CollectiveWall +position = 6848, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_228] +id = 228 +startpos = 2 +name = CollectiveWall +position = 6976, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_229] +id = 229 +startpos = 2 +name = CollectiveWall +position = 7104, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_230] +id = 230 +startpos = 2 +name = CollectiveWall +position = 7232, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_231] +id = 231 +startpos = 2 +name = CollectiveWall +position = 7360, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_232] +id = 232 +startpos = 2 +name = CollectiveWall +position = 7488, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_233] +id = 233 +startpos = 2 +name = CollectiveWall +position = 7616, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_235] +id = 235 +startpos = 2 +name = CollectiveWall +position = 7744, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_236] +id = 236 +startpos = 2 +name = CollectiveWall +position = 7744, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_237] +id = 237 +startpos = 2 +name = CollectiveWall +position = 7744, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_238] +id = 238 +startpos = 2 +name = CollectiveWall +position = 7744, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_239] +id = 239 +startpos = 2 +name = CollectiveWall +position = 7744, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_240] +id = 240 +startpos = 2 +name = CollectiveWall +position = 7744, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_243] +id = 243 +startpos = 2 +name = CO-WallTower-RotCan +position = 6848, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_244] +id = 244 +startpos = 2 +name = CO-WallTower-RotCan +position = 6848, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_245] +id = 245 +startpos = 2 +name = CollectiveWall +position = 6848, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_246] +id = 246 +startpos = 2 +name = CO-WallTower-RotCan +position = 6848, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_247] +id = 247 +startpos = 2 +name = CO-WallTower-RotCan +position = 7744, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_248] +id = 248 +startpos = 2 +name = CollectiveWall +position = 7744, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_249] +id = 249 +startpos = 2 +name = CollectiveWall +position = 7744, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_252] +id = 252 +startpos = 2 +name = CO-WallTower-RotCan +position = 7744, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_253] +id = 253 +startpos = 2 +name = CO-WallTower-RotCan +position = 7488, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_254] +id = 254 +startpos = 2 +name = CO-WallTower-RotCan +position = 6848, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_256] +id = 256 +startpos = 2 +name = CO-WallTower-RotCan +position = 7232, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_257] +id = 257 +startpos = 2 +name = CO-WallTower-RotCan +position = 6976, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_258] +id = 258 +startpos = 2 +name = CollectiveWall +position = 6848, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_259] +id = 259 +startpos = 2 +name = CollectiveWall +position = 6848, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_260] +id = 260 +startpos = 2 +name = A0ComDroidControl +position = 6528, 1792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_261] +id = 261 +startpos = 2 +name = A0LightFactory +position = 7488, 960, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_263] +id = 263 +startpos = 2 +name = A0PowerGenerator +position = 7552, 1408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_267] +id = 267 +startpos = 2 +name = A0TankTrap +position = 6720, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_268] +id = 268 +startpos = 2 +name = A0TankTrap +position = 6720, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_269] +id = 269 +startpos = 2 +name = A0TankTrap +position = 6720, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_270] +id = 270 +startpos = 2 +name = A0TankTrap +position = 6848, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_271] +id = 271 +startpos = 2 +name = A0TankTrap +position = 6976, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_273] +id = 273 +startpos = 2 +name = A0TankTrap +position = 7232, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_274] +id = 274 +startpos = 2 +name = A0TankTrap +position = 7360, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_275] +id = 275 +startpos = 2 +name = A0TankTrap +position = 7488, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_276] +id = 276 +startpos = 2 +name = A0TankTrap +position = 7488, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_277] +id = 277 +startpos = 2 +name = A0TankTrap +position = 7488, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_282] +id = 282 +startpos = 2 +name = CO-Tower-HvFlame +position = 6848, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_283] +id = 283 +startpos = 2 +name = CO-Tower-HvFlame +position = 7360, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_284] +id = 284 +startpos = 2 +name = CollectiveWall +position = 2240, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_285] +id = 285 +startpos = 2 +name = CollectiveWall +position = 2240, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_286] +id = 286 +startpos = 2 +name = CollectiveWall +position = 2240, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_288] +id = 288 +startpos = 2 +name = CollectiveWall +position = 2368, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_290] +id = 290 +startpos = 2 +name = CollectiveWall +position = 2624, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_291] +id = 291 +startpos = 2 +name = CollectiveWall +position = 2752, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_296] +id = 296 +startpos = 2 +name = CollectiveWall +position = 2240, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_297] +id = 297 +startpos = 2 +name = CollectiveWall +position = 2368, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_299] +id = 299 +startpos = 2 +name = CollectiveWall +position = 2624, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_300] +id = 300 +startpos = 2 +name = CollectiveWall +position = 2752, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_302] +id = 302 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_303] +id = 303 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_304] +id = 304 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_305] +id = 305 +startpos = 2 +name = CollectiveWall +position = 3264, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_306] +id = 306 +startpos = 2 +name = CollectiveWall +position = 3392, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_308] +id = 308 +startpos = 2 +name = CollectiveWall +position = 3776, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_309] +id = 309 +startpos = 2 +name = CollectiveWall +position = 3904, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_311] +id = 311 +startpos = 2 +name = CollectiveWall +position = 3904, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_312] +id = 312 +startpos = 2 +name = CollectiveWall +position = 3904, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_316] +id = 316 +startpos = 2 +name = CollectiveWall +position = 3264, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_317] +id = 317 +startpos = 2 +name = CollectiveWall +position = 3392, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_319] +id = 319 +startpos = 2 +name = CollectiveWall +position = 3776, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_320] +id = 320 +startpos = 2 +name = CollectiveWall +position = 3904, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_321] +id = 321 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_322] +id = 322 +startpos = 2 +name = CO-WallTower-RotCan +position = 2240, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_323] +id = 323 +startpos = 2 +name = CO-WallTower-RotCan +position = 2496, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_324] +id = 324 +startpos = 2 +name = CO-WallTower-RotCan +position = 2240, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_325] +id = 325 +startpos = 2 +name = CO-WallTower-RotCan +position = 2496, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_326] +id = 326 +startpos = 2 +name = CollectiveWall +position = 2368, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_327] +id = 327 +startpos = 2 +name = CollectiveWall +position = 2368, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_328] +id = 328 +startpos = 2 +name = CO-WallTower-HvCan +position = 2496, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_329] +id = 329 +startpos = 2 +name = CO-WallTower-HvCan +position = 2496, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_330] +id = 330 +startpos = 2 +name = CollectiveWall +position = 2496, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_331] +id = 331 +startpos = 2 +name = CollectiveWall +position = 2496, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_332] +id = 332 +startpos = 2 +name = CO-WallTower-RotCan +position = 3648, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_333] +id = 333 +startpos = 2 +name = CO-WallTower-RotCan +position = 3904, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_334] +id = 334 +startpos = 2 +name = CO-WallTower-RotCan +position = 3648, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_335] +id = 335 +startpos = 2 +name = CO-WallTower-RotCan +position = 3648, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_336] +id = 336 +startpos = 2 +name = CO-WallTower-RotCan +position = 3904, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_337] +id = 337 +startpos = 2 +name = CO-WallTower-RotCan +position = 3648, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_338] +id = 338 +startpos = 2 +name = CollectiveWall +position = 3648, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_339] +id = 339 +startpos = 2 +name = CollectiveWall +position = 3776, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_340] +id = 340 +startpos = 2 +name = CollectiveWall +position = 3776, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_341] +id = 341 +startpos = 2 +name = CollectiveWall +position = 3648, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_342] +id = 342 +startpos = 2 +name = CollectiveWall +position = 2880, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_343] +id = 343 +startpos = 2 +name = CollectiveWall +position = 3008, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_344] +id = 344 +startpos = 2 +name = CollectiveWall +position = 3136, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_345] +id = 345 +startpos = 2 +name = CO-WallTower-HvCan +position = 2880, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_346] +id = 346 +startpos = 2 +name = CO-WallTower-HvCan +position = 3136, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_351] +id = 351 +startpos = 2 +name = CO-WallTower-RotCan +position = 2880, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_352] +id = 352 +startpos = 2 +name = CollectiveWall +position = 3008, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_353] +id = 353 +startpos = 2 +name = CO-WallTower-RotCan +position = 3136, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_355] +id = 355 +startpos = 2 +name = A0CyborgFactory +position = 2624, 4224, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_365] +id = 365 +startpos = 2 +name = Emplacement-Howitzer105 +position = 2368, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_366] +id = 366 +startpos = 2 +name = Emplacement-Howitzer105 +position = 2368, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_367] +id = 367 +startpos = 2 +name = Emplacement-Howitzer105 +position = 3776, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_368] +id = 368 +startpos = 2 +name = Emplacement-Howitzer105 +position = 3776, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_369] +id = 369 +startpos = 2 +name = CO-Tower-HvFlame +position = 3776, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_371] +id = 371 +startpos = 2 +name = CO-Tower-HvFlame +position = 2368, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_380] +id = 380 +startpos = 2 +name = PillBox4 +position = 2240, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_381] +id = 381 +startpos = 2 +name = PillBox4 +position = 3776, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_446] +id = 446 +startpos = 2 +name = CollectiveWall +position = 832, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_447] +id = 447 +startpos = 2 +name = CO-WallTower-HvCan +position = 576, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_449] +id = 449 +startpos = 2 +name = UplinkCentre +position = 896, 1280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_450] +id = 450 +startpos = 2 +name = CollectiveWall +position = 704, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_451] +id = 451 +startpos = 2 +name = CollectiveWall +position = 704, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_452] +id = 452 +startpos = 2 +name = Sys-SensoTower02 +position = 704, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_453] +id = 453 +startpos = 2 +name = Sys-SensoTower02 +position = 704, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_454] +id = 454 +startpos = 2 +name = Sys-SensoTower02 +position = 1088, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_455] +id = 455 +startpos = 2 +name = Sys-SensoTower02 +position = 1088, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_468] +id = 468 +startpos = 2 +name = CO-WallTower-HvCan +position = 3648, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_469] +id = 469 +startpos = 2 +name = CollectiveWall +position = 3648, 5056, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_471] +id = 471 +startpos = 2 +name = CO-WallTower-HvCan +position = 2496, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_472] +id = 472 +startpos = 2 +name = CollectiveWall +position = 2496, 5056, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_473] +id = 473 +startpos = 2 +name = A0LightFactory +position = 2752, 4800, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_474] +id = 474 +startpos = 2 +name = A0LightFactory +position = 3392, 4800, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_479] +id = 479 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_480] +id = 480 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_481] +id = 481 +startpos = 2 +name = AASite-QuadMg1 +position = 2496, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_482] +id = 482 +startpos = 2 +name = AASite-QuadMg1 +position = 2496, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_483] +id = 483 +startpos = 2 +name = AASite-QuadMg1 +position = 3264, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_484] +id = 484 +startpos = 2 +name = AASite-QuadMg1 +position = 2368, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_485] +id = 485 +startpos = 2 +name = AASite-QuadMg1 +position = 3776, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_486] +id = 486 +startpos = 2 +name = AASite-QuadMg1 +position = 1216, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_487] +id = 487 +startpos = 2 +name = AASite-QuadMg1 +position = 1088, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_488] +id = 488 +startpos = 2 +name = AASite-QuadMg1 +position = 704, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_489] +id = 489 +startpos = 2 +name = AASite-QuadMg1 +position = 960, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_490] +id = 490 +startpos = 2 +name = AASite-QuadMg1 +position = 1600, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_492] +id = 492 +startpos = 2 +name = CollectiveWall +position = 2496, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_493] +id = 493 +startpos = 2 +name = CollectiveWall +position = 3648, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_494] +id = 494 +startpos = 2 +name = CollectiveWall +position = 3520, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_495] +id = 495 +startpos = 2 +name = CollectiveWall +position = 3520, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_502] +id = 502 +startpos = 2 +name = A0RepairCentre3 +position = 6080, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_509] +id = 509 +startpos = 2 +name = PillBox4 +position = 2752, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_510] +id = 510 +startpos = 2 +name = PillBox4 +position = 2880, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_511] +id = 511 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2752, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_512] +id = 512 +startpos = 2 +name = CO-Tower-LtATRkt +position = 3136, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_513] +id = 513 +startpos = 2 +name = CO-Tower-LtATRkt +position = 3392, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_524] +id = 524 +startpos = 2 +name = A0VtolPad +position = 7488, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_530] +id = 530 +startpos = 2 +name = A0HardcreteMk1Gate +position = 2880, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_531] +id = 531 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3136, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_532] +id = 532 +startpos = 2 +name = A0HardcreteMk1Gate +position = 1216, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_533] +id = 533 +startpos = 2 +name = A0HardcreteMk1Gate +position = 1344, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_534] +id = 534 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7104, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_535] +id = 535 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7104, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_536] +id = 536 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6848, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-7.gam b/wrf/cam2/sub2-7.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam2/sub2-7.gam differ diff --git a/wrf/cam2/sub2-7/droid.ini b/wrf/cam2/sub2-7/droid.ini new file mode 100644 index 0000000..8f0da82 --- /dev/null +++ b/wrf/cam2/sub2-7/droid.ini @@ -0,0 +1,175 @@ +[droid_567] +id = 567 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2112, 2986, 0 +rotation = 0, 0, 0 + +[droid_472] +id = 472 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 3264, 5952, 0 +rotation = 0, 0, 0 + +[droid_587] +id = 587 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 2112, 1216, 0 +rotation = 0, 0, 0 + +[droid_568] +id = 568 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2242, 2990, 0 +rotation = 0, 0, 0 + +[droid_433] +id = 433 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2106, 2806, 0 +rotation = 0, 0, 0 + +[droid_434] +id = 434 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2238, 2808, 0 +rotation = 0, 0, 0 + +[droid_435] +id = 435 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2356, 2806, 0 +rotation = 0, 0, 0 + +[droid_445] +id = 445 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 1216, 2368, 0 +rotation = 0, 0, 0 + +[droid_446] +id = 446 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 1344, 2368, 0 +rotation = 0, 0, 0 + +[droid_447] +id = 447 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 1600, 2368, 0 +rotation = 0, 0, 0 + +[droid_448] +id = 448 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 1796, 2368, 0 +rotation = 0, 0, 0 + +[droid_449] +id = 449 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 1728, 704, 0 +rotation = 0, 0, 0 + +[droid_450] +id = 450 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 2112, 960, 0 +rotation = 0, 0, 0 + +[droid_569] +id = 569 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2368, 2988, 0 +rotation = 0, 0, 0 + +[droid_452] +id = 452 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1984, 1216, 0 +rotation = 0, 0, 0 + +[droid_456] +id = 456 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5083, 862, 0 +rotation = 0, 0, 0 + +[droid_457] +id = 457 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5056, 1216, 0 +rotation = 0, 0, 0 + +[droid_458] +id = 458 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5186, 1214, 0 +rotation = 0, 0, 0 + +[droid_459] +id = 459 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5312, 1216, 0 +rotation = 0, 0, 0 + +[droid_460] +id = 460 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 4800, 832, 0 +rotation = 0, 0, 0 + +[droid_461] +id = 461 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 4682, 1474, 0 +rotation = 0, 0, 0 + +[droid_463] +id = 463 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 6336, 6848, 0 +rotation = 0, 0, 0 + +[droid_464] +id = 464 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 6464, 6848, 0 +rotation = 0, 0, 0 + +[droid_465] +id = 465 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 6208, 6848, 0 +rotation = 0, 0, 0 + +[droid_471] +id = 471 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 3264, 6720, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-7/feature.ini b/wrf/cam2/sub2-7/feature.ini new file mode 100644 index 0000000..0591a14 --- /dev/null +++ b/wrf/cam2/sub2-7/feature.ini @@ -0,0 +1,354 @@ +[feature_234] +id = 234 +position = 448, 7232, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_235] +id = 235 +position = 960, 7616, 0 +rotation = 49152, 0, 0 +name = Pylon + +[feature_236] +id = 236 +position = 576, 7744, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_240] +id = 240 +position = 1344, 7488, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_242] +id = 242 +position = 2880, 7616, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_243] +id = 243 +position = 3904, 7232, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_246] +id = 246 +position = 5824, 7616, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_247] +id = 247 +position = 6208, 7360, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_249] +id = 249 +position = 7488, 6848, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_250] +id = 250 +position = 6912, 7552, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_251] +id = 251 +position = 7616, 7360, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_252] +id = 252 +position = 5312, 6848, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_253] +id = 253 +position = 4288, 6592, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_256] +id = 256 +position = 5312, 6464, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_257] +id = 257 +position = 7616, 6080, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_261] +id = 261 +position = 6976, 3520, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_263] +id = 263 +position = 7488, 1728, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_264] +id = 264 +position = 7744, 1344, 0 +rotation = 0, 0, 0 +name = Crane + +[feature_265] +id = 265 +position = 4160, 3520, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_266] +id = 266 +position = 4288, 3392, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_269] +id = 269 +position = 4288, 4160, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_270] +id = 270 +position = 3520, 4032, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_271] +id = 271 +position = 3136, 4160, 0 +rotation = 16384, 0, 0 +name = Pickup + +[feature_272] +id = 272 +position = 3648, 3520, 0 +rotation = 62805, 0, 0 +name = Crane + +[feature_274] +id = 274 +position = 3584, 3776, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_276] +id = 276 +position = 3776, 5312, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_283] +id = 283 +position = 4544, 5312, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_284] +id = 284 +position = 3136, 4800, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_287] +id = 287 +position = 4992, 4800, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_291] +id = 291 +position = 4800, 4800, 0 +rotation = 27307, 0, 0 +name = Crane + +[feature_292] +id = 292 +position = 4928, 5184, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_296] +id = 296 +position = 4672, 4800, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_297] +id = 297 +position = 1344, 4544, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_298] +id = 298 +position = 2880, 3520, 0 +rotation = 36409, 0, 0 +name = Crane + +[feature_300] +id = 300 +position = 2752, 3648, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_301] +id = 301 +position = 3008, 3648, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_302] +id = 302 +position = 3008, 3904, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_309] +id = 309 +position = 960, 3776, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_317] +id = 317 +position = 1536, 3392, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_318] +id = 318 +position = 1408, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_319] +id = 319 +position = 1664, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_321] +id = 321 +position = 1536, 2624, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_328] +id = 328 +position = 1472, 2240, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_333] +id = 333 +position = 1984, 1984, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_337] +id = 337 +position = 3136, 1600, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_339] +id = 339 +position = 3648, 1856, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_343] +id = 343 +position = 3136, 1088, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_345] +id = 345 +position = 3264, 704, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_356] +id = 356 +position = 7232, 3008, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_357] +id = 357 +position = 7360, 2112, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_367] +id = 367 +position = 4288, 5056, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_498] +id = 498 +position = 7424, 1600, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_564] +id = 564 +position = 1344, 6720, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_565] +id = 565 +position = 1600, 5952, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_566] +id = 566 +position = 3776, 4672, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_577] +id = 577 +position = 4928, 3648, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_584] +id = 584 +position = 1472, 4032, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_289] +id = 289 +position = 4992, 5056, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_290] +id = 290 +position = 4992, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + diff --git a/wrf/cam2/sub2-7/labels.ini b/wrf/cam2/sub2-7/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-7/struct.ini b/wrf/cam2/sub2-7/struct.ini new file mode 100644 index 0000000..f5daed9 --- /dev/null +++ b/wrf/cam2/sub2-7/struct.ini @@ -0,0 +1,2056 @@ +[structure_4] +id = 4 +startpos = 2 +name = CollectiveWall +position = 704, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_5] +id = 5 +startpos = 2 +name = CollectiveWall +position = 960, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_6] +id = 6 +startpos = 2 +name = CollectiveWall +position = 1088, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_7] +id = 7 +startpos = 2 +name = CollectiveWall +position = 1216, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_8] +id = 8 +startpos = 2 +name = CollectiveWall +position = 1344, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_9] +id = 9 +startpos = 2 +name = CollectiveWall +position = 1344, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_10] +id = 10 +startpos = 2 +name = CollectiveWall +position = 1344, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_11] +id = 11 +startpos = 2 +name = CollectiveWall +position = 1344, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_18] +id = 18 +startpos = 2 +name = CollectiveWall +position = 1216, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_19] +id = 19 +startpos = 2 +name = CollectiveWall +position = 1088, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 2 +name = CollectiveWall +position = 832, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_26] +id = 26 +startpos = 2 +name = CollectiveWall +position = 832, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_27] +id = 27 +startpos = 2 +name = CollectiveWall +position = 832, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_28] +id = 28 +startpos = 2 +name = CollectiveWall +position = 832, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_32] +id = 32 +startpos = 2 +name = A0CommandCentreCO +position = 1024, 1664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_33] +id = 33 +startpos = 2 +name = CollectiveWall +position = 832, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_34] +id = 34 +startpos = 2 +name = CollectiveWall +position = 832, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_35] +id = 35 +startpos = 2 +name = CollectiveWall +position = 832, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_36] +id = 36 +startpos = 2 +name = CollectiveWall +position = 832, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_37] +id = 37 +startpos = 2 +name = CollectiveWall +position = 832, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_39] +id = 39 +startpos = 2 +name = CollectiveWall +position = 960, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_42] +id = 42 +startpos = 2 +name = CollectiveWall +position = 4032, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_43] +id = 43 +startpos = 2 +name = CollectiveWall +position = 4160, 1728, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_44] +id = 44 +startpos = 2 +name = CollectiveWall +position = 4032, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_45] +id = 45 +startpos = 2 +name = CollectiveWall +position = 4032, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_46] +id = 46 +startpos = 2 +name = CollectiveWall +position = 4032, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_49] +id = 49 +startpos = 2 +name = CollectiveWall +position = 4544, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_50] +id = 50 +startpos = 2 +name = CollectiveWall +position = 4672, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_51] +id = 51 +startpos = 2 +name = CollectiveWall +position = 4800, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_53] +id = 53 +startpos = 2 +name = CollectiveCWall +position = 4928, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_54] +id = 54 +startpos = 2 +name = CollectiveWall +position = 5056, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_55] +id = 55 +startpos = 2 +name = CollectiveWall +position = 5184, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_56] +id = 56 +startpos = 2 +name = CollectiveWall +position = 5312, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_58] +id = 58 +startpos = 2 +name = CollectiveWall +position = 5440, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_61] +id = 61 +startpos = 2 +name = CollectiveWall +position = 4416, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_64] +id = 64 +startpos = 2 +name = CollectiveWall +position = 5568, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_65] +id = 65 +startpos = 2 +name = CollectiveWall +position = 5568, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_70] +id = 70 +startpos = 2 +name = CollectiveWall +position = 5568, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_71] +id = 71 +startpos = 2 +name = CollectiveWall +position = 4800, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_72] +id = 72 +startpos = 2 +name = CollectiveWall +position = 4928, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_73] +id = 73 +startpos = 2 +name = CollectiveWall +position = 5056, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_74] +id = 74 +startpos = 2 +name = CollectiveWall +position = 5184, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_75] +id = 75 +startpos = 2 +name = CollectiveWall +position = 5312, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_76] +id = 76 +startpos = 2 +name = CollectiveWall +position = 5440, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_77] +id = 77 +startpos = 2 +name = CollectiveWall +position = 4672, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_78] +id = 78 +startpos = 2 +name = CollectiveWall +position = 4544, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_79] +id = 79 +startpos = 2 +name = CollectiveWall +position = 4416, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_80] +id = 80 +startpos = 2 +name = CollectiveWall +position = 5568, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_84] +id = 84 +startpos = 2 +name = CollectiveWall +position = 5696, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_85] +id = 85 +startpos = 2 +name = CollectiveWall +position = 5824, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_86] +id = 86 +startpos = 2 +name = CollectiveWall +position = 5952, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_88] +id = 88 +startpos = 2 +name = CollectiveWall +position = 5696, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_89] +id = 89 +startpos = 2 +name = CollectiveWall +position = 5824, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_90] +id = 90 +startpos = 2 +name = CollectiveWall +position = 5952, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_91] +id = 91 +startpos = 2 +name = CollectiveWall +position = 6080, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_99] +id = 99 +startpos = 2 +name = CollectiveWall +position = 4288, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_101] +id = 101 +startpos = 2 +name = CollectiveWall +position = 4288, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_102] +id = 102 +startpos = 2 +name = CollectiveWall +position = 4160, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_106] +id = 106 +startpos = 2 +name = CollectiveWall +position = 6208, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_107] +id = 107 +startpos = 2 +name = CO-Tower-HvATRkt +position = 4416, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_108] +id = 108 +startpos = 2 +name = CO-Tower-MG3 +position = 4416, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_109] +id = 109 +startpos = 2 +name = CO-Tower-MG3 +position = 4416, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_110] +id = 110 +startpos = 2 +name = Sys-SensoTower02 +position = 4416, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_111] +id = 111 +startpos = 2 +name = CollectiveWall +position = 4416, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_112] +id = 112 +startpos = 2 +name = A0CyborgFactory +position = 4672, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_114] +id = 114 +startpos = 2 +name = CO-Tower-RotMG +position = 5440, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_116] +id = 116 +startpos = 2 +name = CO-Tower-RotMG +position = 4160, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_122] +id = 122 +startpos = 2 +name = CollectiveWall +position = 6336, 4160, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_127] +id = 127 +startpos = 2 +name = CollectiveWall +position = 6208, 4160, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_130] +id = 130 +startpos = 2 +name = CollectiveWall +position = 6080, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_131] +id = 131 +startpos = 2 +name = CollectiveWall +position = 6080, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_157] +id = 157 +startpos = 2 +name = CollectiveWall +position = 6848, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_158] +id = 158 +startpos = 2 +name = CollectiveWall +position = 6976, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_160] +id = 160 +startpos = 2 +name = CollectiveWall +position = 7488, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_161] +id = 161 +startpos = 2 +name = CollectiveWall +position = 7488, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_162] +id = 162 +startpos = 2 +name = CollectiveWall +position = 7488, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_163] +id = 163 +startpos = 2 +name = CollectiveWall +position = 7488, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_164] +id = 164 +startpos = 2 +name = CollectiveWall +position = 7488, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_165] +id = 165 +startpos = 2 +name = CollectiveWall +position = 7488, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_166] +id = 166 +startpos = 2 +name = CollectiveWall +position = 7104, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_174] +id = 174 +startpos = 2 +name = CollectiveWall +position = 6464, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_175] +id = 175 +startpos = 2 +name = CollectiveWall +position = 6720, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_176] +id = 176 +startpos = 2 +name = CollectiveWall +position = 7232, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_177] +id = 177 +startpos = 2 +name = CollectiveWall +position = 7360, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_178] +id = 178 +startpos = 2 +name = CollectiveWall +position = 7488, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_179] +id = 179 +startpos = 2 +name = CollectiveWall +position = 7488, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_180] +id = 180 +startpos = 2 +name = CollectiveWall +position = 7488, 5440, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_181] +id = 181 +startpos = 2 +name = CollectiveWall +position = 7488, 5568, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_184] +id = 184 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6336, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_185] +id = 185 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6208, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_186] +id = 186 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6848, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_188] +id = 188 +startpos = 2 +name = CollectiveWall +position = 6080, 6592, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_189] +id = 189 +startpos = 2 +name = CollectiveWall +position = 6080, 6720, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_190] +id = 190 +startpos = 2 +name = CollectiveWall +position = 6080, 6848, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_192] +id = 192 +startpos = 2 +name = CollectiveWall +position = 6080, 6976, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_193] +id = 193 +startpos = 2 +name = CollectiveWall +position = 6208, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_194] +id = 194 +startpos = 2 +name = CollectiveWall +position = 6336, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_195] +id = 195 +startpos = 2 +name = CollectiveWall +position = 6464, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_196] +id = 196 +startpos = 2 +name = CollectiveWall +position = 6592, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_198] +id = 198 +startpos = 2 +name = CollectiveWall +position = 6976, 6464, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_199] +id = 199 +startpos = 2 +name = CollectiveWall +position = 6976, 6592, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_200] +id = 200 +startpos = 2 +name = CollectiveWall +position = 6976, 6720, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_201] +id = 201 +startpos = 2 +name = CollectiveWall +position = 6976, 6848, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_202] +id = 202 +startpos = 2 +name = CollectiveWall +position = 6976, 6976, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_205] +id = 205 +startpos = 2 +name = CollectiveWall +position = 6848, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_206] +id = 206 +startpos = 2 +name = CollectiveWall +position = 6720, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_209] +id = 209 +startpos = 2 +name = A0LightFactory +position = 7104, 4544, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_210] +id = 210 +startpos = 2 +name = A0CyborgFactory +position = 6720, 6656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_212] +id = 212 +startpos = 2 +name = CollectiveWall +position = 2880, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_213] +id = 213 +startpos = 2 +name = CollectiveWall +position = 3008, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_214] +id = 214 +startpos = 2 +name = CollectiveWall +position = 3136, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_215] +id = 215 +startpos = 2 +name = CollectiveWall +position = 3264, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_217] +id = 217 +startpos = 2 +name = CollectiveWall +position = 3136, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_218] +id = 218 +startpos = 2 +name = CollectiveWall +position = 3264, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_221] +id = 221 +startpos = 2 +name = CollectiveWall +position = 3392, 6720, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_222] +id = 222 +startpos = 2 +name = CollectiveWall +position = 3392, 6592, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_223] +id = 223 +startpos = 2 +name = CollectiveWall +position = 3392, 6464, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_225] +id = 225 +startpos = 2 +name = CollectiveWall +position = 3392, 5952, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_230] +id = 230 +startpos = 2 +name = CO-Tower-MG3 +position = 2880, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_231] +id = 231 +startpos = 2 +name = CO-Tower-MG3 +position = 3008, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_232] +id = 232 +startpos = 2 +name = A0PowerGenerator +position = 768, 2432, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_258] +id = 258 +startpos = 2 +name = CollectiveWall +position = 7488, 5056, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_369] +id = 369 +startpos = 2 +name = CollectiveWall +position = 832, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_370] +id = 370 +startpos = 2 +name = CollectiveWall +position = 704, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_371] +id = 371 +startpos = 2 +name = CollectiveWall +position = 576, 2368, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_372] +id = 372 +startpos = 2 +name = CollectiveWall +position = 576, 2240, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_373] +id = 373 +startpos = 2 +name = CollectiveWall +position = 576, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_374] +id = 374 +startpos = 2 +name = CollectiveWall +position = 576, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_382] +id = 382 +startpos = 2 +name = CollectiveCWall +position = 576, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_383] +id = 383 +startpos = 2 +name = CO-WallTower-HvCan +position = 576, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_384] +id = 384 +startpos = 2 +name = CollectiveWall +position = 1088, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_385] +id = 385 +startpos = 2 +name = CollectiveWall +position = 1216, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_386] +id = 386 +startpos = 2 +name = CollectiveWall +position = 1344, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_387] +id = 387 +startpos = 2 +name = CollectiveWall +position = 1600, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_389] +id = 389 +startpos = 2 +name = CollectiveWall +position = 1728, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_391] +id = 391 +startpos = 2 +name = CollectiveWall +position = 2240, 2368, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_393] +id = 393 +startpos = 2 +name = CollectiveWall +position = 2240, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_395] +id = 395 +startpos = 2 +name = CollectiveWall +position = 2240, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_396] +id = 396 +startpos = 2 +name = CollectiveWall +position = 2240, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_397] +id = 397 +startpos = 2 +name = CollectiveWall +position = 2240, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_399] +id = 399 +startpos = 2 +name = CollectiveWall +position = 2240, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_400] +id = 400 +startpos = 2 +name = CollectiveWall +position = 2240, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_401] +id = 401 +startpos = 2 +name = CollectiveWall +position = 2240, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_402] +id = 402 +startpos = 2 +name = CollectiveWall +position = 2240, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_404] +id = 404 +startpos = 2 +name = CollectiveWall +position = 1472, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_405] +id = 405 +startpos = 2 +name = CollectiveWall +position = 1600, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_406] +id = 406 +startpos = 2 +name = CollectiveWall +position = 1728, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_407] +id = 407 +startpos = 2 +name = CollectiveWall +position = 1856, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_408] +id = 408 +startpos = 2 +name = CollectiveWall +position = 1984, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_409] +id = 409 +startpos = 2 +name = CollectiveWall +position = 2112, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_410] +id = 410 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_411] +id = 411 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_412] +id = 412 +startpos = 2 +name = CO-WallTower-HvCan +position = 1856, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_413] +id = 413 +startpos = 2 +name = CollectiveWall +position = 576, 2496, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_414] +id = 414 +startpos = 2 +name = CollectiveWall +position = 576, 2624, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_415] +id = 415 +startpos = 2 +name = A0CyborgFactory +position = 2112, 1536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_416] +id = 416 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_417] +id = 417 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_418] +id = 418 +startpos = 2 +name = A0LightFactory +position = 1088, 704, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_426] +id = 426 +startpos = 2 +name = CO-Tower-RotMG +position = 2880, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_428] +id = 428 +startpos = 2 +name = CO-Tower-RotMG +position = 2880, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_429] +id = 429 +startpos = 2 +name = PillBox3 +position = 2496, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_436] +id = 436 +startpos = 2 +name = A0VTolFactory1 +position = 1984, 704, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_443] +id = 443 +startpos = 2 +name = A0VtolPad +position = 1344, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_444] +id = 444 +startpos = 2 +name = A0VtolPad +position = 1600, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_462] +id = 462 +startpos = 2 +name = A0VtolPad +position = 6208, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_466] +id = 466 +startpos = 2 +name = Emplacement-RotMor +position = 6848, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_467] +id = 467 +startpos = 2 +name = Emplacement-RotMor +position = 6848, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_469] +id = 469 +startpos = 2 +name = Emplacement-RotMor +position = 6848, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_470] +id = 470 +startpos = 2 +name = Emplacement-RotMor +position = 6848, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_473] +id = 473 +startpos = 2 +name = P0-AASite-SAM1 +position = 2112, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_474] +id = 474 +startpos = 2 +name = AASite-QuadMg1 +position = 1984, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_475] +id = 475 +startpos = 2 +name = AASite-QuadMg1 +position = 960, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_476] +id = 476 +startpos = 2 +name = AASite-QuadMg1 +position = 2112, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_477] +id = 477 +startpos = 2 +name = P0-AASite-SAM1 +position = 704, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_478] +id = 478 +startpos = 2 +name = P0-AASite-SAM1 +position = 5056, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_479] +id = 479 +startpos = 2 +name = P0-AASite-SAM1 +position = 5184, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_480] +id = 480 +startpos = 2 +name = AASite-QuadMg1 +position = 4800, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_481] +id = 481 +startpos = 2 +name = P0-AASite-SAM1 +position = 4288, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_482] +id = 482 +startpos = 2 +name = P0-AASite-SAM1 +position = 6464, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_483] +id = 483 +startpos = 2 +name = P0-AASite-SAM1 +position = 6464, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_484] +id = 484 +startpos = 2 +name = P0-AASite-SAM1 +position = 5824, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_485] +id = 485 +startpos = 2 +name = P0-AASite-SAM1 +position = 5952, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_486] +id = 486 +startpos = 2 +name = AASite-QuadMg1 +position = 5952, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_487] +id = 487 +startpos = 2 +name = AASite-QuadMg1 +position = 6592, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_488] +id = 488 +startpos = 2 +name = AASite-QuadMg1 +position = 6592, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_489] +id = 489 +startpos = 2 +name = AASite-QuadMg1 +position = 6720, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_490] +id = 490 +startpos = 2 +name = AASite-QuadMg1 +position = 6848, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_491] +id = 491 +startpos = 2 +name = P0-AASite-SAM1 +position = 6848, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_492] +id = 492 +startpos = 2 +name = P0-AASite-SAM1 +position = 6848, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_493] +id = 493 +startpos = 2 +name = P0-AASite-SAM1 +position = 3264, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_494] +id = 494 +startpos = 2 +name = P0-AASite-SAM1 +position = 3264, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_495] +id = 495 +startpos = 2 +name = AASite-QuadMg1 +position = 3136, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_496] +id = 496 +startpos = 2 +name = AASite-QuadMg1 +position = 3264, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_501] +id = 501 +startpos = 2 +name = CollectiveCWall +position = 1344, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_502] +id = 502 +startpos = 2 +name = CollectiveCWall +position = 832, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_503] +id = 503 +startpos = 2 +name = CO-WallTower-RotCan +position = 1344, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_504] +id = 504 +startpos = 2 +name = CO-WallTower-RotCan +position = 832, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_505] +id = 505 +startpos = 2 +name = CO-WallTower-RotCan +position = 1344, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_506] +id = 506 +startpos = 2 +name = CO-WallTower-RotCan +position = 1344, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_507] +id = 507 +startpos = 2 +name = CO-WallTower-RotCan +position = 2240, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_508] +id = 508 +startpos = 2 +name = CO-WallTower-RotCan +position = 2240, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_509] +id = 509 +startpos = 2 +name = CollectiveWall +position = 2240, 2240, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_510] +id = 510 +startpos = 2 +name = CollectiveWall +position = 960, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_511] +id = 511 +startpos = 2 +name = CollectiveWall +position = 1472, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_512] +id = 512 +startpos = 2 +name = CollectiveWall +position = 832, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_513] +id = 513 +startpos = 2 +name = CollectiveCWall +position = 4416, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_516] +id = 516 +startpos = 2 +name = CollectiveCWall +position = 4416, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_518] +id = 518 +startpos = 2 +name = CollectiveCWall +position = 4928, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_519] +id = 519 +startpos = 2 +name = CollectiveCWall +position = 5568, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_520] +id = 520 +startpos = 2 +name = CollectiveCWall +position = 5568, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_521] +id = 521 +startpos = 2 +name = CollectiveCWall +position = 5568, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_522] +id = 522 +startpos = 2 +name = CollectiveCWall +position = 5568, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_525] +id = 525 +startpos = 2 +name = CO-WallTower-HvCan +position = 4032, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_526] +id = 526 +startpos = 2 +name = CO-WallTower-RotCan +position = 4032, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_527] +id = 527 +startpos = 2 +name = CO-WallTower-RotCan +position = 4032, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_528] +id = 528 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_529] +id = 529 +startpos = 2 +name = CO-WallTower-RotCan +position = 6336, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_530] +id = 530 +startpos = 2 +name = CollectiveCWall +position = 7488, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_531] +id = 531 +startpos = 2 +name = CO-WallTower-RotCan +position = 7360, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_532] +id = 532 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_533] +id = 533 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_534] +id = 534 +startpos = 2 +name = CO-WallTower-RotCan +position = 6976, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_535] +id = 535 +startpos = 2 +name = CO-WallTower-RotCan +position = 6976, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_536] +id = 536 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_537] +id = 537 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_538] +id = 538 +startpos = 2 +name = CO-WallTower-RotCan +position = 6464, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_539] +id = 539 +startpos = 2 +name = CO-WallTower-RotCan +position = 6720, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_540] +id = 540 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_541] +id = 541 +startpos = 2 +name = CO-WallTower-HvCan +position = 6720, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_542] +id = 542 +startpos = 2 +name = CO-WallTower-HvCan +position = 7488, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_543] +id = 543 +startpos = 2 +name = CollectiveWall +position = 6080, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_544] +id = 544 +startpos = 2 +name = CO-WallTower-HvCan +position = 2752, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_545] +id = 545 +startpos = 2 +name = CO-WallTower-HvCan +position = 3008, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_546] +id = 546 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_547] +id = 547 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_548] +id = 548 +startpos = 2 +name = CO-WallTower-RotCan +position = 3392, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_549] +id = 549 +startpos = 2 +name = CO-WallTower-RotCan +position = 3392, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_570] +id = 570 +startpos = 2 +name = A0VtolPad +position = 1600, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_571] +id = 571 +startpos = 2 +name = A0VtolPad +position = 1344, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_572] +id = 572 +startpos = 2 +name = A0VtolPad +position = 1856, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_573] +id = 573 +startpos = 2 +name = A0VtolPad +position = 6464, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_574] +id = 574 +startpos = 2 +name = A0VtolPad +position = 4672, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_575] +id = 575 +startpos = 2 +name = A0VtolPad +position = 4928, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_576] +id = 576 +startpos = 2 +name = A0VtolPad +position = 5184, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_578] +id = 578 +startpos = 2 +name = Emplacement-Howitzer150 +position = 960, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_579] +id = 579 +startpos = 2 +name = Emplacement-Howitzer150 +position = 960, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_580] +id = 580 +startpos = 2 +name = Emplacement-Howitzer150 +position = 960, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_581] +id = 581 +startpos = 2 +name = Sys-SensoTower02 +position = 832, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_582] +id = 582 +startpos = 2 +name = Sys-CB-Tower01 +position = 1088, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_586] +id = 586 +startpos = 2 +name = Emplacement-Howitzer150 +position = 1984, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_588] +id = 588 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3392, 6208, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_589] +id = 589 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6592, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_590] +id = 590 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4032, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_591] +id = 591 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5568, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_592] +id = 592 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5568, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_593] +id = 593 +startpos = 2 +name = A0HardcreteMk1Gate +position = 2240, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-8.gam b/wrf/cam2/sub2-8.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam2/sub2-8.gam differ diff --git a/wrf/cam2/sub2-8/droid.ini b/wrf/cam2/sub2-8/droid.ini new file mode 100644 index 0000000..a2b4965 --- /dev/null +++ b/wrf/cam2/sub2-8/droid.ini @@ -0,0 +1,238 @@ +[droid_204] +id = 204 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 6080, 3776, 0 +rotation = 0, 0, 0 + +[droid_205] +id = 205 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 5952, 3776, 0 +rotation = 0, 0, 0 + +[droid_206] +id = 206 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 6208, 3776, 0 +rotation = 0, 0, 0 + +[droid_207] +id = 207 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 6208, 3648, 0 +rotation = 0, 0, 0 + +[droid_208] +id = 208 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 6080, 3648, 0 +rotation = 0, 0, 0 + +[droid_209] +id = 209 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1088, 2496, 0 +rotation = 0, 0, 0 + +[droid_210] +id = 210 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1344, 2624, 0 +rotation = 0, 0, 0 + +[droid_211] +id = 211 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1216, 2752, 0 +rotation = 0, 0, 0 + +[droid_212] +id = 212 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 2752, 2752, 0 +rotation = 0, 0, 0 + +[droid_213] +id = 213 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 3008, 2880, 0 +rotation = 0, 0, 0 + +[droid_229] +id = 229 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7360, 960, 0 +rotation = 0, 0, 0 + +[droid_230] +id = 230 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7360, 1088, 0 +rotation = 0, 0, 0 + +[droid_231] +id = 231 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7475, 1109, 0 +rotation = 0, 0, 0 + +[droid_232] +id = 232 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7360, 832, 0 +rotation = 0, 0, 0 + +[droid_233] +id = 233 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7488, 832, 0 +rotation = 0, 0, 0 + +[droid_234] +id = 234 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7616, 832, 0 +rotation = 0, 0, 0 + +[droid_242] +id = 242 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1088, 6720, 0 +rotation = 0, 0, 0 + +[droid_246] +id = 246 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1088, 6848, 0 +rotation = 0, 0, 0 + +[droid_247] +id = 247 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1216, 6848, 0 +rotation = 0, 0, 0 + +[droid_248] +id = 248 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1342, 6699, 0 +rotation = 0, 0, 0 + +[droid_249] +id = 249 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 6974, 4288, 0 +rotation = 0, 0, 0 + +[droid_250] +id = 250 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7114, 4302, 0 +rotation = 0, 0, 0 + +[droid_266] +id = 266 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 7362, 4150, 0 +rotation = 0, 0, 0 + +[droid_255] +id = 255 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7360, 4288, 0 +rotation = 0, 0, 0 + +[droid_256] +id = 256 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 6976, 4672, 0 +rotation = 0, 0, 0 + +[droid_258] +id = 258 +startpos = 2 +template = CO-M-LTAT-Hover +position = 704, 2368, 0 +rotation = 0, 0, 0 + +[droid_259] +id = 259 +startpos = 2 +template = CO-M-LTAT-Hover +position = 832, 2112, 0 +rotation = 0, 0, 0 + +[droid_260] +id = 260 +startpos = 2 +template = CO-M-LTAT-Hover +position = 576, 2496, 0 +rotation = 0, 0, 0 + +[droid_261] +id = 261 +startpos = 2 +template = CO-M-Con-T +position = 832, 2240, 0 +rotation = 0, 0, 0 + +[droid_262] +id = 262 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 1346, 6590, 0 +rotation = 0, 0, 0 + +[droid_263] +id = 263 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 1086, 6596, 0 +rotation = 0, 0, 0 + +[droid_264] +id = 264 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 1214, 6720, 0 +rotation = 0, 0, 0 + +[droid_265] +id = 265 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 7494, 4288, 0 +rotation = 0, 0, 0 + +[droid_278] +id = 278 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7232, 4416, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-8/feature.ini b/wrf/cam2/sub2-8/feature.ini new file mode 100644 index 0000000..d6054bc --- /dev/null +++ b/wrf/cam2/sub2-8/feature.ini @@ -0,0 +1,180 @@ +[feature_30] +id = 30 +position = 7488, 1984, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_37] +id = 37 +position = 4224, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_38] +id = 38 +position = 3968, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_42] +id = 42 +position = 6976, 1856, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_43] +id = 43 +position = 7104, 1856, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_44] +id = 44 +position = 6976, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_45] +id = 45 +position = 7104, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_48] +id = 48 +position = 2048, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_52] +id = 52 +position = 2048, 1472, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_53] +id = 53 +position = 2496, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_54] +id = 54 +position = 2368, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_55] +id = 55 +position = 2368, 1856, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_56] +id = 56 +position = 2496, 1856, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_57] +id = 57 +position = 2048, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_58] +id = 58 +position = 2048, 1728, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_61] +id = 61 +position = 3712, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_62] +id = 62 +position = 3456, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_63] +id = 63 +position = 7296, 448, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_64] +id = 64 +position = 7040, 448, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_71] +id = 71 +position = 1600, 6464, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_82] +id = 82 +position = 1984, 6592, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_84] +id = 84 +position = 960, 7104, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_85] +id = 85 +position = 2368, 7104, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_86] +id = 86 +position = 6336, 4544, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_87] +id = 87 +position = 6848, 3776, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_88] +id = 88 +position = 6848, 3264, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_89] +id = 89 +position = 6720, 4416, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_90] +id = 90 +position = 7040, 4160, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_92] +id = 92 +position = 7040, 4544, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_183] +id = 183 +position = 7488, 704, 0 +rotation = 32768, 0, 0 +name = Crane + diff --git a/wrf/cam2/sub2-8/labels.ini b/wrf/cam2/sub2-8/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-8/struct.ini b/wrf/cam2/sub2-8/struct.ini new file mode 100644 index 0000000..cade76f --- /dev/null +++ b/wrf/cam2/sub2-8/struct.ini @@ -0,0 +1,1184 @@ +[structure_1] +id = 1 +startpos = 2 +name = CollectiveWall +position = 3520, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2] +id = 2 +startpos = 2 +name = CollectiveWall +position = 3648, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3] +id = 3 +startpos = 2 +name = CollectiveWall +position = 4288, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4] +id = 4 +startpos = 2 +name = CollectiveWall +position = 4416, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_11] +id = 11 +startpos = 2 +name = CollectiveWall +position = 7488, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_12] +id = 12 +startpos = 2 +name = CollectiveWall +position = 6976, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_13] +id = 13 +startpos = 2 +name = CollectiveWall +position = 6848, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_14] +id = 14 +startpos = 2 +name = CollectiveWall +position = 6848, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_15] +id = 15 +startpos = 2 +name = CollectiveWall +position = 6848, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_16] +id = 16 +startpos = 2 +name = CollectiveWall +position = 6848, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_17] +id = 17 +startpos = 2 +name = CollectiveWall +position = 6848, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_21] +id = 21 +startpos = 2 +name = CollectiveWall +position = 6848, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_22] +id = 22 +startpos = 2 +name = CollectiveWall +position = 6848, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 2 +name = CollectiveWall +position = 6848, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_27] +id = 27 +startpos = 2 +name = CollectiveWall +position = 6848, 448, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_28] +id = 28 +startpos = 2 +name = CollectiveWall +position = 6848, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_97] +id = 97 +startpos = 2 +name = CO-WallTower-HvCan +position = 704, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_98] +id = 98 +startpos = 2 +name = CO-WallTower-HvCan +position = 1216, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_99] +id = 99 +startpos = 2 +name = CollectiveWall +position = 832, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_100] +id = 100 +startpos = 2 +name = CollectiveWall +position = 960, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_101] +id = 101 +startpos = 2 +name = CollectiveWall +position = 1088, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_102] +id = 102 +startpos = 2 +name = CO-Tower-HvFlame +position = 960, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_103] +id = 103 +startpos = 2 +name = CO-Tower-HvATRkt +position = 1472, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_104] +id = 104 +startpos = 2 +name = CO-Tower-HvATRkt +position = 1728, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_105] +id = 105 +startpos = 2 +name = Sys-SensoTower02 +position = 1856, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_106] +id = 106 +startpos = 2 +name = CO-WallTower-RotCan +position = 4544, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_107] +id = 107 +startpos = 2 +name = CO-WallTower-RotCan +position = 4160, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_108] +id = 108 +startpos = 2 +name = CO-WallTower-RotCan +position = 3392, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_109] +id = 109 +startpos = 2 +name = CO-WallTower-RotCan +position = 3776, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_110] +id = 110 +startpos = 2 +name = A0TankTrap +position = 3392, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_111] +id = 111 +startpos = 2 +name = A0TankTrap +position = 3520, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_112] +id = 112 +startpos = 2 +name = A0TankTrap +position = 3648, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_113] +id = 113 +startpos = 2 +name = A0TankTrap +position = 3776, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_115] +id = 115 +startpos = 2 +name = A0TankTrap +position = 3776, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_116] +id = 116 +startpos = 2 +name = A0TankTrap +position = 3776, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_117] +id = 117 +startpos = 2 +name = A0TankTrap +position = 3776, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_118] +id = 118 +startpos = 2 +name = A0TankTrap +position = 4160, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_119] +id = 119 +startpos = 2 +name = A0TankTrap +position = 4160, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_120] +id = 120 +startpos = 2 +name = A0TankTrap +position = 4160, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_121] +id = 121 +startpos = 2 +name = A0TankTrap +position = 4160, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_122] +id = 122 +startpos = 2 +name = A0TankTrap +position = 4288, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_123] +id = 123 +startpos = 2 +name = A0TankTrap +position = 4416, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_124] +id = 124 +startpos = 2 +name = A0TankTrap +position = 4544, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_125] +id = 125 +startpos = 2 +name = A0TankTrap +position = 4672, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_126] +id = 126 +startpos = 2 +name = A0TankTrap +position = 4800, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_127] +id = 127 +startpos = 2 +name = A0TankTrap +position = 4928, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_128] +id = 128 +startpos = 2 +name = A0TankTrap +position = 4800, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_131] +id = 131 +startpos = 2 +name = CO-Tower-HvFlame +position = 3648, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_132] +id = 132 +startpos = 2 +name = CO-Tower-HvFlame +position = 3648, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_133] +id = 133 +startpos = 2 +name = CO-Tower-HvFlame +position = 4288, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_134] +id = 134 +startpos = 2 +name = CO-Tower-HvFlame +position = 4288, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_135] +id = 135 +startpos = 2 +name = CO-WallTower-RotCan +position = 3904, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_136] +id = 136 +startpos = 2 +name = CO-WallTower-RotCan +position = 4416, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_137] +id = 137 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_138] +id = 138 +startpos = 2 +name = CO-WallTower-HvCan +position = 4416, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_139] +id = 139 +startpos = 2 +name = CollectiveWall +position = 3904, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_140] +id = 140 +startpos = 2 +name = CollectiveWall +position = 3904, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_141] +id = 141 +startpos = 2 +name = CollectiveWall +position = 3904, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_142] +id = 142 +startpos = 2 +name = CollectiveWall +position = 3904, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_143] +id = 143 +startpos = 2 +name = CollectiveWall +position = 3904, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_144] +id = 144 +startpos = 2 +name = CollectiveWall +position = 4416, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_145] +id = 145 +startpos = 2 +name = CollectiveWall +position = 4416, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_146] +id = 146 +startpos = 2 +name = CollectiveWall +position = 4416, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_147] +id = 147 +startpos = 2 +name = CollectiveWall +position = 4416, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_148] +id = 148 +startpos = 2 +name = CollectiveWall +position = 4416, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_149] +id = 149 +startpos = 2 +name = CollectiveWall +position = 4032, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_150] +id = 150 +startpos = 2 +name = CollectiveWall +position = 4288, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_151] +id = 151 +startpos = 2 +name = CollectiveWall +position = 4032, 4416, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_152] +id = 152 +startpos = 2 +name = CollectiveWall +position = 4288, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_153] +id = 153 +startpos = 2 +name = Sys-SensoTower02 +position = 4032, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_154] +id = 154 +startpos = 2 +name = Sys-SensoTower02 +position = 4288, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_155] +id = 155 +startpos = 2 +name = A0CyborgFactory +position = 4288, 3840, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_156] +id = 156 +startpos = 2 +name = P0-AASite-SAM1 +position = 4032, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_157] +id = 157 +startpos = 2 +name = P0-AASite-SAM1 +position = 4032, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_158] +id = 158 +startpos = 2 +name = AASite-QuadMg1 +position = 4032, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_159] +id = 159 +startpos = 2 +name = AASite-QuadMg1 +position = 4288, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_160] +id = 160 +startpos = 2 +name = A0TankTrap +position = 3648, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_161] +id = 161 +startpos = 2 +name = A0TankTrap +position = 3648, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_162] +id = 162 +startpos = 2 +name = A0TankTrap +position = 3776, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_163] +id = 163 +startpos = 2 +name = A0TankTrap +position = 3904, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_164] +id = 164 +startpos = 2 +name = A0TankTrap +position = 4032, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_165] +id = 165 +startpos = 2 +name = A0TankTrap +position = 4288, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_166] +id = 166 +startpos = 2 +name = A0TankTrap +position = 4416, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_167] +id = 167 +startpos = 2 +name = A0TankTrap +position = 4544, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_168] +id = 168 +startpos = 2 +name = A0TankTrap +position = 4672, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_169] +id = 169 +startpos = 2 +name = A0TankTrap +position = 4672, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_170] +id = 170 +startpos = 2 +name = A0TankTrap +position = 4672, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_171] +id = 171 +startpos = 2 +name = A0TankTrap +position = 4672, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_172] +id = 172 +startpos = 2 +name = CO-Tower-HvFlame +position = 3904, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_173] +id = 173 +startpos = 2 +name = CO-Tower-HvFlame +position = 4416, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_176] +id = 176 +startpos = 2 +name = PillBox6 +position = 4032, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_177] +id = 177 +startpos = 2 +name = PillBox6 +position = 4288, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_178] +id = 178 +startpos = 2 +name = CO-WallTower-HvCan +position = 6848, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_179] +id = 179 +startpos = 2 +name = CO-WallTower-HvCan +position = 7104, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_180] +id = 180 +startpos = 2 +name = CO-WallTower-HvCan +position = 7360, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_181] +id = 181 +startpos = 2 +name = CO-WallTower-HvCan +position = 7616, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_184] +id = 184 +startpos = 2 +name = CO-WallTower-HvCan +position = 6848, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_185] +id = 185 +startpos = 2 +name = CO-WallTower-HvCan +position = 6848, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_186] +id = 186 +startpos = 2 +name = A0TankTrap +position = 6592, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_187] +id = 187 +startpos = 2 +name = A0TankTrap +position = 6592, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_188] +id = 188 +startpos = 2 +name = A0TankTrap +position = 6592, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_189] +id = 189 +startpos = 2 +name = A0TankTrap +position = 6592, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_190] +id = 190 +startpos = 2 +name = A0TankTrap +position = 6720, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_191] +id = 191 +startpos = 2 +name = A0TankTrap +position = 6848, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_192] +id = 192 +startpos = 2 +name = A0TankTrap +position = 6976, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_193] +id = 193 +startpos = 2 +name = A0TankTrap +position = 7488, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_194] +id = 194 +startpos = 2 +name = A0TankTrap +position = 7616, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_195] +id = 195 +startpos = 2 +name = A0TankTrap +position = 7744, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_196] +id = 196 +startpos = 2 +name = A0TankTrap +position = 7872, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_197] +id = 197 +startpos = 2 +name = A0TankTrap +position = 7872, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_198] +id = 198 +startpos = 2 +name = A0TankTrap +position = 7872, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_199] +id = 199 +startpos = 2 +name = PillBox4 +position = 7104, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_200] +id = 200 +startpos = 2 +name = PillBox4 +position = 7360, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_201] +id = 201 +startpos = 2 +name = CO-WallTower-RotCan +position = 6976, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_202] +id = 202 +startpos = 2 +name = CO-WallTower-RotCan +position = 7488, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_203] +id = 203 +startpos = 2 +name = CO-WallTower-RotCan +position = 6720, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_214] +id = 214 +startpos = 2 +name = Emplacement-RotMor +position = 2880, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_215] +id = 215 +startpos = 2 +name = Emplacement-RotMor +position = 3008, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_216] +id = 216 +startpos = 2 +name = Emplacement-RotMor +position = 2880, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_217] +id = 217 +startpos = 2 +name = Emplacement-RotMor +position = 3008, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_218] +id = 218 +startpos = 2 +name = AASite-QuadMg1 +position = 2752, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_219] +id = 219 +startpos = 2 +name = AASite-QuadMg1 +position = 3136, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_220] +id = 220 +startpos = 2 +name = A0LightFactory +position = 3648, 1600, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_221] +id = 221 +startpos = 2 +name = A0LightFactory +position = 4288, 1600, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_226] +id = 226 +startpos = 2 +name = A0VTolFactory1 +position = 7488, 1472, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_228] +id = 228 +startpos = 2 +name = A0VtolPad +position = 7488, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_235] +id = 235 +startpos = 2 +name = A0CommandCentreCO +position = 1792, 1408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_236] +id = 236 +startpos = 2 +name = A0PowerGenerator +position = 5248, 1920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_237] +id = 237 +startpos = 2 +name = P0-AASite-SAM1 +position = 5184, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_238] +id = 238 +startpos = 2 +name = P0-AASite-SAM1 +position = 5568, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_239] +id = 239 +startpos = 2 +name = AASite-QuadMg1 +position = 5440, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_240] +id = 240 +startpos = 2 +name = CO-WallTower-RotCan +position = 5696, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_241] +id = 241 +startpos = 2 +name = CO-WallTower-RotCan +position = 5696, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_267] +id = 267 +startpos = 2 +name = A0VtolPad +position = 7232, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_268] +id = 268 +startpos = 2 +name = A0VtolPad +position = 7488, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_269] +id = 269 +startpos = 2 +name = A0VtolPad +position = 7232, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_273] +id = 273 +startpos = 2 +name = Sys-CB-Tower01 +position = 7744, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_274] +id = 274 +startpos = 2 +name = Sys-SensoTower02 +position = 7744, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_275] +id = 275 +startpos = 2 +name = Emplacement-RotHow +position = 6976, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_276] +id = 276 +startpos = 2 +name = Emplacement-RotHow +position = 7104, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_277] +id = 277 +startpos = 2 +name = Emplacement-RotHow +position = 7232, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_279] +id = 279 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6848, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_280] +id = 280 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6848, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_281] +id = 281 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4160, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_282] +id = 282 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4160, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_283] +id = 283 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4032, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_284] +id = 284 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3904, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_285] +id = 285 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7232, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-d.gam b/wrf/cam2/sub2-d.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam2/sub2-d.gam differ diff --git a/wrf/cam2/sub2-d/droid.ini b/wrf/cam2/sub2-d/droid.ini new file mode 100644 index 0000000..fa11eab --- /dev/null +++ b/wrf/cam2/sub2-d/droid.ini @@ -0,0 +1,84 @@ +[droid_4178] +id = 4178 +startpos = 2 +template = CO-M-Con-T +position = 4266, 4416, 0 +rotation = 50426, 0, 0 + +[droid_4177] +id = 4177 +startpos = 2 +template = CO-M-Con-T +position = 5296, 4018, 0 +rotation = 11287, 0, 0 + +[droid_4176] +id = 4176 +startpos = 2 +template = CO-M-Con-T +position = 4276, 5816, 0 +rotation = 0, 0, 0 + +[droid_2464] +id = 2464 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 5184, 4160, 0 +rotation = 0, 0, 0 + +[droid_2465] +id = 2465 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 5374, 4865, 0 +rotation = 0, 0, 0 + +[droid_2466] +id = 2466 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 4160, 4800, 0 +rotation = 0, 0, 0 + +[droid_2467] +id = 2467 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 4001, 5431, 0 +rotation = 0, 0, 0 + +[droid_2468] +id = 2468 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 3264, 4032, 0 +rotation = 0, 0, 0 + +[droid_2470] +id = 2470 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4032, 3392, 0 +rotation = 0, 0, 0 + +[droid_2471] +id = 2471 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4160, 3392, 0 +rotation = 0, 0, 0 + +[droid_2473] +id = 2473 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4672, 6592, 0 +rotation = 0, 0, 0 + +[droid_2474] +id = 2474 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4800, 6592, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-d/feature.ini b/wrf/cam2/sub2-d/feature.ini new file mode 100644 index 0000000..2ca0a95 --- /dev/null +++ b/wrf/cam2/sub2-d/feature.ini @@ -0,0 +1,216 @@ +[feature_1030] +id = 1030 +position = 1984, 320, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1141] +id = 1141 +position = 832, 7488, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1142] +id = 1142 +position = 1216, 4800, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1775] +id = 1775 +position = 6592, 6848, 0 +rotation = 60075, 0, 0 +name = Crane + +[feature_1776] +id = 1776 +position = 7872, 6720, 0 +rotation = 5461, 0, 0 +name = Crane + +[feature_1777] +id = 1777 +position = 7680, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_1779] +id = 1779 +position = 7360, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_1780] +id = 1780 +position = 5568, 7488, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1789] +id = 1789 +position = 7104, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_1793] +id = 1793 +position = 3264, 7104, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_1803] +id = 1803 +position = 1728, 7616, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1804] +id = 1804 +position = 1728, 6976, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1805] +id = 1805 +position = 1728, 6208, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1806] +id = 1806 +position = 1728, 4800, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1808] +id = 1808 +position = 1728, 3520, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1809] +id = 1809 +position = 1728, 2880, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1810] +id = 1810 +position = 1728, 2240, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1811] +id = 1811 +position = 1728, 1472, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1817] +id = 1817 +position = 1728, 4160, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1834] +id = 1834 +position = 7616, 3520, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1835] +id = 1835 +position = 7616, 2880, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1836] +id = 1836 +position = 7616, 2240, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1837] +id = 1837 +position = 7616, 1472, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1838] +id = 1838 +position = 7616, 832, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1859] +id = 1859 +position = 7296, 2944, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_1944] +id = 1944 +position = 1792, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_1956] +id = 1956 +position = 7232, 2496, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1957] +id = 1957 +position = 7104, 3648, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_1963] +id = 1963 +position = 6592, 7104, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_1965] +id = 1965 +position = 6848, 4928, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_1966] +id = 1966 +position = 2624, 1600, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_2457] +id = 2457 +position = 4672, 5824, 0 +rotation = 8192, 0, 0 +name = Crane + +[feature_2458] +id = 2458 +position = 4416, 5568, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_2459] +id = 2459 +position = 4544, 5568, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_2460] +id = 2460 +position = 4544, 5696, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4209] +id = 4209 +position = 960, 6592, 0 +rotation = 0, 0, 0 +name = building1 + diff --git a/wrf/cam2/sub2-d/labels.ini b/wrf/cam2/sub2-d/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-d/struct.ini b/wrf/cam2/sub2-d/struct.ini new file mode 100644 index 0000000..f9ead4d --- /dev/null +++ b/wrf/cam2/sub2-d/struct.ini @@ -0,0 +1,1768 @@ +[structure_2356] +id = 2356 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2359] +id = 2359 +startpos = 2 +name = CO-WallTower-HvCan +position = 4416, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2375] +id = 2375 +startpos = 2 +name = CO-WallTower-HvCan +position = 4544, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2376] +id = 2376 +startpos = 2 +name = CO-WallTower-HvCan +position = 4928, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2377] +id = 2377 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4544, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2378] +id = 2378 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4928, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2407] +id = 2407 +startpos = 2 +name = CO-WallTower-HvCan +position = 4288, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2411] +id = 2411 +startpos = 2 +name = CO-WallTower-HvCan +position = 4672, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2412] +id = 2412 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2413] +id = 2413 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2414] +id = 2414 +startpos = 2 +name = A0CommandCentreCO +position = 3968, 4864, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2415] +id = 2415 +startpos = 2 +name = A0ComDroidControl +position = 3584, 4352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2416] +id = 2416 +startpos = 2 +name = A0PowerGenerator +position = 4480, 4352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2419] +id = 2419 +startpos = 2 +name = A0CyborgFactory +position = 3520, 3712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2432] +id = 2432 +startpos = 2 +name = Sys-SensoTower02 +position = 2880, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2433] +id = 2433 +startpos = 2 +name = Sys-SensoTower02 +position = 6464, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2438] +id = 2438 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6592, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2439] +id = 2439 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6848, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4333] +id = 4333 +startpos = 2 +name = CollectiveWall +position = 2752, 5696, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2447] +id = 2447 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2752, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4332] +id = 4332 +startpos = 2 +name = CollectiveWall +position = 2752, 5568, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2449] +id = 2449 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2880, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2450] +id = 2450 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4032, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2452] +id = 2452 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5952, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2453] +id = 2453 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6464, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2455] +id = 2455 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6464, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2456] +id = 2456 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2953] +id = 2953 +startpos = 2 +name = Emplacement-MortarPit02 +position = 2880, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2954] +id = 2954 +startpos = 2 +name = Emplacement-MortarPit02 +position = 2880, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2955] +id = 2955 +startpos = 2 +name = Emplacement-MortarPit02 +position = 3136, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2956] +id = 2956 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2957] +id = 2957 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2958] +id = 2958 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2959] +id = 2959 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2960] +id = 2960 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6592, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2961] +id = 2961 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2980] +id = 2980 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4226] +id = 4226 +startpos = 2 +name = CollectiveWall +position = 3904, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3034] +id = 3034 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3047] +id = 3047 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3054] +id = 3054 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3055] +id = 3055 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4348] +id = 4348 +startpos = 2 +name = CollectiveWall +position = 5824, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3063] +id = 3063 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3075] +id = 3075 +startpos = 2 +name = CO-WallTower-HvCan +position = 4288, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3089] +id = 3089 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3099] +id = 3099 +startpos = 2 +name = CO-WallTower-HvCan +position = 5184, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3120] +id = 3120 +startpos = 2 +name = CO-WallTower-HvCan +position = 6592, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4347] +id = 4347 +startpos = 2 +name = CollectiveWall +position = 5824, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4283] +id = 4283 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5440, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4282] +id = 4282 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5056, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3223] +id = 3223 +startpos = 1 +name = UplinkCentre +position = 4480, 4864, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4261] +id = 4261 +startpos = 2 +name = CollectiveCWall +position = 3776, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4158] +id = 4158 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2880, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4172] +id = 4172 +startpos = 2 +name = Sys-SensoTower02 +position = 6336, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4173] +id = 4173 +startpos = 2 +name = Sys-SensoTower02 +position = 3008, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4174] +id = 4174 +startpos = 2 +name = A0ResearchFacility +position = 4096, 5632, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_4179] +id = 4179 +startpos = 2 +name = CO-Tower-RotMG +position = 3904, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4180] +id = 4180 +startpos = 2 +name = CO-Tower-RotMG +position = 4288, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4181] +id = 4181 +startpos = 2 +name = CO-Tower-HvFlame +position = 3776, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4182] +id = 4182 +startpos = 2 +name = CO-Tower-HvFlame +position = 4416, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4183] +id = 4183 +startpos = 2 +name = Sys-CB-Tower01 +position = 2752, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4184] +id = 4184 +startpos = 2 +name = Sys-CB-Tower01 +position = 6336, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4185] +id = 4185 +startpos = 2 +name = AASite-QuadBof +position = 6336, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4186] +id = 4186 +startpos = 2 +name = AASite-QuadBof +position = 6336, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4187] +id = 4187 +startpos = 2 +name = AASite-QuadBof +position = 3136, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4188] +id = 4188 +startpos = 2 +name = AASite-QuadBof +position = 3520, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4189] +id = 4189 +startpos = 2 +name = AASite-QuadBof +position = 3520, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4227] +id = 4227 +startpos = 2 +name = CollectiveWall +position = 4288, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4191] +id = 4191 +startpos = 2 +name = AASite-QuadBof +position = 4288, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4192] +id = 4192 +startpos = 2 +name = AASite-QuadBof +position = 2752, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4193] +id = 4193 +startpos = 2 +name = AASite-QuadBof +position = 3008, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4194] +id = 4194 +startpos = 2 +name = AASite-QuadBof +position = 5568, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4262] +id = 4262 +startpos = 2 +name = CollectiveCWall +position = 4416, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4196] +id = 4196 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 3392, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4197] +id = 4197 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 3392, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4198] +id = 4198 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 3520, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4199] +id = 4199 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 3520, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4343] +id = 4343 +startpos = 2 +name = Emplacement-Howitzer105 +position = 4032, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4342] +id = 4342 +startpos = 2 +name = Emplacement-Howitzer105 +position = 4160, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4341] +id = 4341 +startpos = 2 +name = Emplacement-Howitzer105 +position = 4160, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4340] +id = 4340 +startpos = 2 +name = Emplacement-Howitzer105 +position = 4032, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4210] +id = 4210 +startpos = 2 +name = A0LightFactory +position = 5568, 4416, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4211] +id = 4211 +startpos = 2 +name = A0LightFactory +position = 4928, 4416, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4212] +id = 4212 +startpos = 2 +name = A0LightFactory +position = 4928, 3776, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4213] +id = 4213 +startpos = 2 +name = A0LightFactory +position = 5568, 3776, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4222] +id = 4222 +startpos = 2 +name = CollectiveWall +position = 4544, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4223] +id = 4223 +startpos = 2 +name = CollectiveWall +position = 4416, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4224] +id = 4224 +startpos = 2 +name = CollectiveWall +position = 4160, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4225] +id = 4225 +startpos = 2 +name = CollectiveWall +position = 4032, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4228] +id = 4228 +startpos = 2 +name = CollectiveWall +position = 4672, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4229] +id = 4229 +startpos = 2 +name = CollectiveWall +position = 4672, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4230] +id = 4230 +startpos = 2 +name = CollectiveWall +position = 4672, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4231] +id = 4231 +startpos = 2 +name = CollectiveWall +position = 4672, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4232] +id = 4232 +startpos = 2 +name = CollectiveWall +position = 4672, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4233] +id = 4233 +startpos = 2 +name = CollectiveWall +position = 4672, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4234] +id = 4234 +startpos = 2 +name = CollectiveCWall +position = 4416, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4235] +id = 4235 +startpos = 2 +name = CollectiveCWall +position = 4416, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4236] +id = 4236 +startpos = 2 +name = CollectiveCWall +position = 3776, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4237] +id = 4237 +startpos = 2 +name = CollectiveCWall +position = 3776, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4238] +id = 4238 +startpos = 2 +name = CO-WallTower-HvCan +position = 4288, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4239] +id = 4239 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4240] +id = 4240 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4241] +id = 4241 +startpos = 2 +name = CollectiveWall +position = 3776, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4242] +id = 4242 +startpos = 2 +name = CollectiveWall +position = 3776, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4243] +id = 4243 +startpos = 2 +name = CollectiveWall +position = 3776, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4244] +id = 4244 +startpos = 2 +name = CollectiveWall +position = 3776, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4245] +id = 4245 +startpos = 2 +name = CollectiveWall +position = 3776, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4246] +id = 4246 +startpos = 2 +name = CollectiveWall +position = 3776, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4247] +id = 4247 +startpos = 2 +name = CollectiveWall +position = 3776, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4248] +id = 4248 +startpos = 2 +name = CollectiveWall +position = 4416, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4249] +id = 4249 +startpos = 2 +name = CollectiveWall +position = 4544, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4250] +id = 4250 +startpos = 2 +name = CO-WallTower-HvCan +position = 4672, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4251] +id = 4251 +startpos = 2 +name = CollectiveWall +position = 3776, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4252] +id = 4252 +startpos = 2 +name = CollectiveWall +position = 3776, 3648, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4253] +id = 4253 +startpos = 2 +name = CollectiveWall +position = 3776, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4254] +id = 4254 +startpos = 2 +name = CollectiveWall +position = 3776, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4255] +id = 4255 +startpos = 2 +name = CollectiveWall +position = 3776, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4256] +id = 4256 +startpos = 2 +name = CollectiveWall +position = 3776, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4257] +id = 4257 +startpos = 2 +name = CollectiveWall +position = 4416, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4258] +id = 4258 +startpos = 2 +name = CollectiveWall +position = 4416, 3648, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4259] +id = 4259 +startpos = 2 +name = CollectiveCWall +position = 4416, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4260] +id = 4260 +startpos = 2 +name = CollectiveCWall +position = 4416, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4263] +id = 4263 +startpos = 2 +name = CollectiveWall +position = 4544, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4264] +id = 4264 +startpos = 2 +name = CollectiveWall +position = 4672, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4265] +id = 4265 +startpos = 2 +name = CollectiveWall +position = 4800, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4266] +id = 4266 +startpos = 2 +name = CollectiveWall +position = 4928, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4267] +id = 4267 +startpos = 2 +name = CollectiveWall +position = 5568, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4268] +id = 4268 +startpos = 2 +name = CollectiveWall +position = 5696, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4269] +id = 4269 +startpos = 2 +name = CollectiveWall +position = 4672, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4270] +id = 4270 +startpos = 2 +name = CollectiveWall +position = 4544, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4271] +id = 4271 +startpos = 2 +name = CollectiveWall +position = 4928, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4272] +id = 4272 +startpos = 2 +name = CollectiveWall +position = 4800, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4273] +id = 4273 +startpos = 2 +name = CollectiveWall +position = 5056, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4274] +id = 4274 +startpos = 2 +name = CollectiveWall +position = 5184, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4275] +id = 4275 +startpos = 2 +name = CollectiveWall +position = 5440, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4276] +id = 4276 +startpos = 2 +name = CollectiveWall +position = 5312, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4277] +id = 4277 +startpos = 2 +name = CollectiveWall +position = 5568, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4278] +id = 4278 +startpos = 2 +name = CollectiveWall +position = 5696, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4279] +id = 4279 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4280] +id = 4280 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5056, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4281] +id = 4281 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5440, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4284] +id = 4284 +startpos = 2 +name = CollectiveWall +position = 4800, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4285] +id = 4285 +startpos = 2 +name = CollectiveWall +position = 4928, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4286] +id = 4286 +startpos = 2 +name = CollectiveWall +position = 5568, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4287] +id = 4287 +startpos = 2 +name = CollectiveWall +position = 5696, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4288] +id = 4288 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4289] +id = 4289 +startpos = 2 +name = CollectiveWall +position = 5824, 3648, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4290] +id = 4290 +startpos = 2 +name = CollectiveWall +position = 5824, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4291] +id = 4291 +startpos = 2 +name = CollectiveWall +position = 5824, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4292] +id = 4292 +startpos = 2 +name = CollectiveWall +position = 5824, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4293] +id = 4293 +startpos = 2 +name = CollectiveWall +position = 5824, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4294] +id = 4294 +startpos = 2 +name = CollectiveWall +position = 5824, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4295] +id = 4295 +startpos = 2 +name = CollectiveWall +position = 5824, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4296] +id = 4296 +startpos = 2 +name = CollectiveWall +position = 5824, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4297] +id = 4297 +startpos = 2 +name = CollectiveWall +position = 5824, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4298] +id = 4298 +startpos = 2 +name = CollectiveWall +position = 5824, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4299] +id = 4299 +startpos = 2 +name = CollectiveWall +position = 5824, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4300] +id = 4300 +startpos = 2 +name = CollectiveWall +position = 5824, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4301] +id = 4301 +startpos = 2 +name = CollectiveWall +position = 5824, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4302] +id = 4302 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4303] +id = 4303 +startpos = 2 +name = CO-WallTower-HvCan +position = 3136, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4304] +id = 4304 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4305] +id = 4305 +startpos = 2 +name = CO-WallTower-HvCan +position = 3136, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4306] +id = 4306 +startpos = 2 +name = CollectiveWall +position = 3648, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4307] +id = 4307 +startpos = 2 +name = CollectiveWall +position = 3520, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4308] +id = 4308 +startpos = 2 +name = CollectiveWall +position = 3520, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4309] +id = 4309 +startpos = 2 +name = CollectiveWall +position = 3648, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4310] +id = 4310 +startpos = 2 +name = CO-Tower-HvATRkt +position = 2752, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4311] +id = 4311 +startpos = 2 +name = CollectiveCWall +position = 2752, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4312] +id = 4312 +startpos = 2 +name = CollectiveWall +position = 3008, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4313] +id = 4313 +startpos = 2 +name = CollectiveWall +position = 2880, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4314] +id = 4314 +startpos = 2 +name = CollectiveWall +position = 3008, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4315] +id = 4315 +startpos = 2 +name = CollectiveWall +position = 2880, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4316] +id = 4316 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4317] +id = 4317 +startpos = 2 +name = CollectiveWall +position = 3648, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4318] +id = 4318 +startpos = 2 +name = CollectiveWall +position = 3520, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4319] +id = 4319 +startpos = 2 +name = CollectiveWall +position = 3008, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4320] +id = 4320 +startpos = 2 +name = CollectiveWall +position = 2880, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4321] +id = 4321 +startpos = 2 +name = CO-Tower-HvATRkt +position = 2752, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4322] +id = 4322 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4323] +id = 4323 +startpos = 2 +name = CO-WallTower-HvCan +position = 3136, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4324] +id = 4324 +startpos = 2 +name = CollectiveWall +position = 3776, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4325] +id = 4325 +startpos = 2 +name = CollectiveWall +position = 3776, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4326] +id = 4326 +startpos = 2 +name = CollectiveWall +position = 3776, 5440, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4327] +id = 4327 +startpos = 2 +name = CollectiveWall +position = 3776, 5568, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4328] +id = 4328 +startpos = 2 +name = CollectiveWall +position = 3776, 5696, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4329] +id = 4329 +startpos = 2 +name = CollectiveWall +position = 2752, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4330] +id = 4330 +startpos = 2 +name = CollectiveWall +position = 2752, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4331] +id = 4331 +startpos = 2 +name = CollectiveWall +position = 2752, 5440, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4334] +id = 4334 +startpos = 2 +name = CollectiveWall +position = 2752, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4335] +id = 4335 +startpos = 2 +name = CollectiveWall +position = 2752, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4336] +id = 4336 +startpos = 2 +name = CollectiveWall +position = 2752, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4337] +id = 4337 +startpos = 2 +name = CollectiveWall +position = 2752, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4338] +id = 4338 +startpos = 2 +name = CollectiveWall +position = 2752, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4339] +id = 4339 +startpos = 2 +name = CollectiveWall +position = 2752, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4344] +id = 4344 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4345] +id = 4345 +startpos = 2 +name = CollectiveWall +position = 3776, 5952, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4346] +id = 4346 +startpos = 2 +name = CollectiveWall +position = 3776, 6080, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4349] +id = 4349 +startpos = 2 +name = CollectiveCWall +position = 5824, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4350] +id = 4350 +startpos = 2 +name = CollectiveCWall +position = 5696, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4351] +id = 4351 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4353] +id = 4353 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4354] +id = 4354 +startpos = 2 +name = CollectiveWall +position = 5568, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4355] +id = 4355 +startpos = 2 +name = CollectiveWall +position = 5440, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4356] +id = 4356 +startpos = 2 +name = CollectiveWall +position = 5312, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4357] +id = 4357 +startpos = 2 +name = CollectiveWall +position = 5184, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4358] +id = 4358 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5312, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4359] +id = 4359 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5184, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4360] +id = 4360 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5312, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4361] +id = 4361 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5184, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4362] +id = 4362 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4160, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4363] +id = 4363 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4032, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4364] +id = 4364 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3264, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4365] +id = 4365 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3264, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4366] +id = 4366 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3264, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4367] +id = 4367 +startpos = 2 +name = CO-Tower-RotMG +position = 4544, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4368] +id = 4368 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4544, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4369] +id = 4369 +startpos = 2 +name = CO-Tower-LtATRkt +position = 3648, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4370] +id = 4370 +startpos = 2 +name = CO-Tower-RotMG +position = 4800, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4371] +id = 4371 +startpos = 2 +name = CO-Tower-RotMG +position = 5696, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam3/cam3-4.gam b/wrf/cam3/cam3-4.gam new file mode 100644 index 0000000..c79504f Binary files /dev/null and b/wrf/cam3/cam3-4.gam differ diff --git a/wrf/cam3/cam3-4/labels.ini b/wrf/cam3/cam3-4/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/cam3-4/ttypes.ttp b/wrf/cam3/cam3-4/ttypes.ttp new file mode 100644 index 0000000..b35b048 Binary files /dev/null and b/wrf/cam3/cam3-4/ttypes.ttp differ diff --git a/wrf/cam3/cam3a.gam b/wrf/cam3/cam3a.gam new file mode 100644 index 0000000..ec5e3d1 Binary files /dev/null and b/wrf/cam3/cam3a.gam differ diff --git a/wrf/cam3/cam3a/droid.ini b/wrf/cam3/cam3a/droid.ini new file mode 100644 index 0000000..4f9159f --- /dev/null +++ b/wrf/cam3/cam3a/droid.ini @@ -0,0 +1,189 @@ +[droid_1018] +id = 1018 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 7102, 12580, 0 +rotation = 4187, 0, 0 + +[droid_1016] +id = 1016 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 7236, 12716, 0 +rotation = 1820, 0, 0 + +[droid_1017] +id = 1017 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 7232, 12610, 0 +rotation = 4005, 0, 0 + +[droid_192] +id = 192 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 2262, 12562, 0 +rotation = 0, 0, 0 + +[droid_193] +id = 193 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 2405, 12561, 0 +rotation = 0, 0, 0 + +[droid_194] +id = 194 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 2286, 12753, 0 +rotation = 0, 0, 0 + +[droid_195] +id = 195 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 2414, 12719, 0 +rotation = 0, 0, 0 + +[droid_339] +id = 339 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 1216, 14656, 0 +rotation = 0, 0, 0 + +[droid_340] +id = 340 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 1344, 14656, 0 +rotation = 0, 0, 0 + +[droid_342] +id = 342 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 1344, 14528, 0 +rotation = 0, 0, 0 + +[droid_347] +id = 347 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 4544, 15168, 0 +rotation = 0, 0, 0 + +[droid_349] +id = 349 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 4544, 15296, 0 +rotation = 0, 0, 0 + +[droid_354] +id = 354 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 4032, 13632, 0 +rotation = 0, 0, 0 + +[droid_355] +id = 355 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 3904, 13632, 0 +rotation = 0, 0, 0 + +[droid_356] +id = 356 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3904, 13760, 0 +rotation = 0, 0, 0 + +[droid_357] +id = 357 +startpos = 3 +template = NX-M-Rail2-Hover +position = 4032, 13760, 0 +rotation = 0, 0, 0 + +[droid_377] +id = 377 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 7108, 11576, 0 +rotation = 54613, 0, 0 + +[droid_378] +id = 378 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6338, 11972, 0 +rotation = 10923, 0, 0 + +[droid_393] +id = 393 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 2624, 14912, 0 +rotation = 34953, 0, 0 + +[droid_395] +id = 395 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 2624, 15040, 0 +rotation = 32950, 0, 0 + +[droid_402] +id = 402 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 2112, 8896, 0 +rotation = 0, 0, 0 + +[droid_403] +id = 403 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 2240, 8896, 0 +rotation = 0, 0, 0 + +[droid_414] +id = 414 +startpos = 3 +template = NX-M-Rail2-Hover +position = 5180, 9791, 0 +rotation = 0, 0, 0 + +[droid_415] +id = 415 +startpos = 3 +template = NX-M-Rail2-Hover +position = 5058, 9766, 0 +rotation = 0, 0, 0 + +[droid_417] +id = 417 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 4128, 9922, 0 +rotation = 0, 0, 0 + +[droid_420] +id = 420 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 4122, 9770, 0 +rotation = 0, 0, 0 + +[droid_1015] +id = 1015 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 7116, 12730, 0 +rotation = 64080, 0, 0 + diff --git a/wrf/cam3/cam3a/feature.ini b/wrf/cam3/cam3a/feature.ini new file mode 100644 index 0000000..748ea45 --- /dev/null +++ b/wrf/cam3/cam3a/feature.ini @@ -0,0 +1,180 @@ +[feature_91] +id = 91 +position = 6976, 9024, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_205] +id = 205 +position = 1920, 10880, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_206] +id = 206 +position = 1920, 11136, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_207] +id = 207 +position = 2176, 11008, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_208] +id = 208 +position = 2432, 11136, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_209] +id = 209 +position = 2176, 11264, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_210] +id = 210 +position = 2176, 10624, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_211] +id = 211 +position = 2240, 11456, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_212] +id = 212 +position = 1856, 11328, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_213] +id = 213 +position = 1856, 10688, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_214] +id = 214 +position = 1728, 11072, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_215] +id = 215 +position = 1984, 10688, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_216] +id = 216 +position = 1728, 10944, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_217] +id = 217 +position = 2240, 10816, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1000] +id = 1000 +position = 7616, 14016, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1001] +id = 1001 +position = 7616, 13376, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1023] +id = 1023 +position = 7488, 9024, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1024] +id = 1024 +position = 7360, 9280, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1025] +id = 1025 +position = 7488, 9280, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1026] +id = 1026 +position = 7488, 9152, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1027] +id = 1027 +position = 1216, 8768, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1028] +id = 1028 +position = 1088, 8768, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1029] +id = 1029 +position = 2112, 15424, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1030] +id = 1030 +position = 1984, 15552, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1031] +id = 1031 +position = 1984, 15424, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1032] +id = 1032 +position = 2112, 15552, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_1078] +id = 1078 +position = 7360, 10432, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1120] +id = 1120 +position = 6976, 11456, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1193] +id = 1193 +position = 576, 14912, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1621] +id = 1621 +position = 1088, 8896, 0 +rotation = 0, 0, 0 +name = OilResource + diff --git a/wrf/cam3/cam3a/labels.ini b/wrf/cam3/cam3a/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/cam3a/struct.ini b/wrf/cam3/cam3a/struct.ini new file mode 100644 index 0000000..0e930cd --- /dev/null +++ b/wrf/cam3/cam3a/struct.ini @@ -0,0 +1,792 @@ +[structure_15] +id = 15 +startpos = 3 +name = NEXUSWall +position = 1984, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1] +id = 1 +startpos = 3 +name = NEXUSWall +position = 1856, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2] +id = 2 +startpos = 3 +name = NEXUSWall +position = 2240, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3] +id = 3 +startpos = 3 +name = NEXUSWall +position = 2368, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4] +id = 4 +startpos = 3 +name = NEXUSWall +position = 3008, 15552, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_5] +id = 5 +startpos = 3 +name = NEXUSWall +position = 3136, 15424, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_6] +id = 6 +startpos = 3 +name = NEXUSWall +position = 3136, 15296, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_7] +id = 7 +startpos = 3 +name = NEXUSWall +position = 3136, 15168, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_8] +id = 8 +startpos = 3 +name = NEXUSWall +position = 3136, 14784, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_9] +id = 9 +startpos = 3 +name = NEXUSWall +position = 3136, 14656, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_10] +id = 10 +startpos = 3 +name = NEXUSWall +position = 2880, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_11] +id = 11 +startpos = 3 +name = NEXUSWall +position = 3008, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_12] +id = 12 +startpos = 3 +name = NEXUSWall +position = 3136, 14528, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_13] +id = 13 +startpos = 3 +name = NEXUSWall +position = 3136, 14400, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_14] +id = 14 +startpos = 3 +name = NEXUSCWall +position = 1728, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_21] +id = 21 +startpos = 3 +name = NEXUSWall +position = 5952, 8128, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_22] +id = 22 +startpos = 3 +name = NEXUSWall +position = 5952, 9152, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_24] +id = 24 +startpos = 3 +name = NEXUSWall +position = 5952, 8256, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 3 +name = NEXUSWall +position = 5952, 8384, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_65] +id = 65 +startpos = 3 +name = NEXUSCWall +position = 1472, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_66] +id = 66 +startpos = 3 +name = NEXUSWall +position = 1728, 9152, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_67] +id = 67 +startpos = 3 +name = NEXUSWall +position = 1600, 9152, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_68] +id = 68 +startpos = 3 +name = NEXUSWall +position = 2496, 9152, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_69] +id = 69 +startpos = 3 +name = NEXUSWall +position = 2624, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_70] +id = 70 +startpos = 3 +name = NEXUSCWall +position = 2752, 9024, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_71] +id = 71 +startpos = 3 +name = NEXUSWall +position = 2880, 8896, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_72] +id = 72 +startpos = 3 +name = NEXUSWall +position = 2880, 8768, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_74] +id = 74 +startpos = 3 +name = NEXUSCWall +position = 2880, 8640, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_75] +id = 75 +startpos = 3 +name = NEXUSWall +position = 2368, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_76] +id = 76 +startpos = 3 +name = NEXUSWall +position = 1856, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_88] +id = 88 +startpos = 3 +name = A0CyborgFactory +position = 6592, 8576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_92] +id = 92 +startpos = 3 +name = A0ResourceExtractor +position = 6976, 9024, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_95] +id = 95 +startpos = 3 +name = Sys-NX-SensorTower +position = 1088, 12992, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_96] +id = 96 +startpos = 3 +name = NEXUSWall +position = 2880, 15552, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_97] +id = 97 +startpos = 3 +name = NEXUSCWall +position = 2752, 15552, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_164] +id = 164 +startpos = 3 +name = NX-Tower-ATMiss +position = 6720, 9024, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_169] +id = 169 +startpos = 3 +name = NEXUSWall +position = 5952, 9024, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_170] +id = 170 +startpos = 3 +name = A0CommandCentreNE +position = 1152, 15616, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_184] +id = 184 +startpos = 3 +name = NX-Tower-ATMiss +position = 2368, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_185] +id = 185 +startpos = 3 +name = NX-Tower-ATMiss +position = 2880, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_187] +id = 187 +startpos = 3 +name = A0CyborgFactory +position = 2880, 14848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_203] +id = 203 +startpos = 3 +name = NX-Tower-Rail1 +position = 1600, 12352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_240] +id = 240 +startpos = 3 +name = A0CyborgFactory +position = 1472, 8704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_334] +id = 334 +startpos = 3 +name = A0PowerGenerator +position = 7296, 9088, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_337] +id = 337 +startpos = 3 +name = P0-AASite-SAM1 +position = 1856, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_893] +id = 893 +startpos = 3 +name = P0-AASite-SAM1 +position = 1472, 12864, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_894] +id = 894 +startpos = 3 +name = P0-AASite-SAM1 +position = 1344, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_895] +id = 895 +startpos = 3 +name = P0-AASite-SAM1 +position = 832, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_896] +id = 896 +startpos = 3 +name = P0-AASite-SAM1 +position = 2240, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_899] +id = 899 +startpos = 3 +name = P0-AASite-SAM1 +position = 6336, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_902] +id = 902 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 1088, 9408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_904] +id = 904 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 960, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_978] +id = 978 +startpos = 3 +name = NX-Tower-ATMiss +position = 1728, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1004] +id = 1004 +startpos = 3 +name = A0ResourceExtractor +position = 7616, 14016, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1005] +id = 1005 +startpos = 3 +name = A0ResourceExtractor +position = 7616, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1008] +id = 1008 +startpos = 3 +name = A0ResearchFacility +position = 1152, 14848, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1009] +id = 1009 +startpos = 3 +name = A0ResearchFacility +position = 1792, 8704, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1014] +id = 1014 +startpos = 3 +name = Sys-NX-CBTower +position = 960, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1044] +id = 1044 +startpos = 3 +name = NX-WallTower-Rail2 +position = 3136, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1045] +id = 1045 +startpos = 3 +name = NX-WallTower-Rail2 +position = 3136, 15552, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1046] +id = 1046 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 2240, 15552, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1047] +id = 1047 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 2240, 15424, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1048] +id = 1048 +startpos = 3 +name = Sys-NX-SensorTower +position = 2240, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1049] +id = 1049 +startpos = 3 +name = Sys-NX-CBTower +position = 2112, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1050] +id = 1050 +startpos = 3 +name = P0-AASite-SAM1 +position = 7232, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1054] +id = 1054 +startpos = 3 +name = P0-AASite-SAM1 +position = 2496, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1059] +id = 1059 +startpos = 3 +name = A0CyborgFactory +position = 704, 15232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1063] +id = 1063 +startpos = 3 +name = A0LightFactory +position = 704, 14400, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_1076] +id = 1076 +startpos = 3 +name = P0-AASite-SAM1 +position = 1216, 14144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1079] +id = 1079 +startpos = 3 +name = A0ResourceExtractor +position = 7360, 10432, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1080] +id = 1080 +startpos = 3 +name = NX-Tower-Rail1 +position = 1728, 9024, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1081] +id = 1081 +startpos = 3 +name = NEXUSCWall +position = 1472, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1082] +id = 1082 +startpos = 3 +name = NEXUSCWall +position = 1984, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1083] +id = 1083 +startpos = 3 +name = NEXUSCWall +position = 2240, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1084] +id = 1084 +startpos = 3 +name = NEXUSCWall +position = 2752, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1085] +id = 1085 +startpos = 3 +name = NEXUSCWall +position = 2880, 9024, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1087] +id = 1087 +startpos = 3 +name = NEXUSCWall +position = 5952, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1088] +id = 1088 +startpos = 3 +name = NEXUSCWall +position = 5952, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1089] +id = 1089 +startpos = 3 +name = NEXUSCWall +position = 5952, 8896, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1090] +id = 1090 +startpos = 3 +name = NX-Tower-Rail1 +position = 2496, 9024, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1091] +id = 1091 +startpos = 3 +name = NX-Tower-Rail1 +position = 3008, 8640, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1092] +id = 1092 +startpos = 3 +name = NX-Tower-Rail1 +position = 6080, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1093] +id = 1093 +startpos = 3 +name = NX-Tower-Rail1 +position = 6080, 8256, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1094] +id = 1094 +startpos = 3 +name = NEXUSWall +position = 3136, 15040, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1095] +id = 1095 +startpos = 3 +name = NEXUSWall +position = 2112, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1098] +id = 1098 +startpos = 3 +name = Sys-NX-SensorTower +position = 1216, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1121] +id = 1121 +startpos = 3 +name = A0ResourceExtractor +position = 6976, 11456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1122] +id = 1122 +startpos = 3 +name = P0-AASite-SAM1 +position = 3648, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1123] +id = 1123 +startpos = 3 +name = P0-AASite-SAM1 +position = 3648, 14528, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1124] +id = 1124 +startpos = 3 +name = P0-AASite-SAM1 +position = 2880, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1194] +id = 1194 +startpos = 3 +name = A0ResourceExtractor +position = 576, 14912, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1622] +id = 1622 +startpos = 3 +name = A0ResourceExtractor +position = 1088, 8896, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1623] +id = 1623 +startpos = 3 +name = NEXUSCWall +position = 2752, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1624] +id = 1624 +startpos = 3 +name = NEXUSCWall +position = 2496, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1625] +id = 1625 +startpos = 3 +name = NEXUSWall +position = 3136, 14912, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1626] +id = 1626 +startpos = 3 +name = A0HardcreteMk1Gate +position = 5952, 8640, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1627] +id = 1627 +startpos = 3 +name = A0HardcreteMk1Gate +position = 5952, 8768, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1628] +id = 1628 +startpos = 3 +name = A0HardcreteMk1Gate +position = 2112, 9152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1629] +id = 1629 +startpos = 3 +name = A0HardcreteMk1Gate +position = 2624, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam3/cam3b.gam b/wrf/cam3/cam3b.gam new file mode 100644 index 0000000..dc3214f Binary files /dev/null and b/wrf/cam3/cam3b.gam differ diff --git a/wrf/cam3/cam3b/droid.ini b/wrf/cam3/cam3b/droid.ini new file mode 100644 index 0000000..f1278d5 --- /dev/null +++ b/wrf/cam3/cam3b/droid.ini @@ -0,0 +1,322 @@ +[droid_268] +id = 268 +startpos = 3 +template = NX-M-Rail2-Hover +position = 2756, 4026, 0 +rotation = 37319, 0, 0 + +[droid_269] +id = 269 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3778, 4034, 0 +rotation = 5461, 0, 0 + +[droid_270] +id = 270 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3398, 3652, 0 +rotation = 34953, 0, 0 + +[droid_271] +id = 271 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 3260, 3654, 0 +rotation = 41324, 0, 0 + +[droid_272] +id = 272 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 3782, 4160, 0 +rotation = 62623, 0, 0 + +[droid_273] +id = 273 +startpos = 3 +template = NX-M-Strike-Hover +position = 2618, 4028, 0 +rotation = 39504, 0, 0 + +[droid_1633] +id = 1633 +startpos = 1 +template = Cyb-Rocket-GROUND +position = 2240, 1344, 0 +rotation = 54067, 0, 0 + +[droid_1634] +id = 1634 +startpos = 1 +template = Cyb-Rocket-GROUND +position = 2368, 960, 0 +rotation = 22027, 0, 0 + +[droid_1635] +id = 1635 +startpos = 1 +template = Cyb-Rocket-GROUND +position = 2368, 576, 0 +rotation = 2549, 0, 0 + +[droid_327] +id = 327 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 704, 5952, 0 +rotation = 0, 0, 0 + +[droid_328] +id = 328 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 832, 5952, 0 +rotation = 0, 0, 0 + +[droid_329] +id = 329 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 1088, 5952, 0 +rotation = 0, 0, 0 + +[droid_330] +id = 330 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 1216, 5952, 0 +rotation = 0, 0, 0 + +[droid_331] +id = 331 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 832, 5824, 0 +rotation = 0, 0, 0 + +[droid_367] +id = 367 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6582, 6940, 0 +rotation = 0, 0, 0 + +[droid_369] +id = 369 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 6700, 7088, 0 +rotation = 0, 0, 0 + +[droid_372] +id = 372 +startpos = 3 +template = NX-M-Rail2-Hover +position = 6190, 6244, 0 +rotation = 0, 0, 0 + +[droid_373] +id = 373 +startpos = 3 +template = NX-M-Rail2-Hover +position = 6080, 6208, 0 +rotation = 0, 0, 0 + +[droid_434] +id = 434 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 960, 4672, 0 +rotation = 0, 0, 0 + +[droid_437] +id = 437 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 1088, 4800, 0 +rotation = 0, 0, 0 + +[droid_438] +id = 438 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 960, 4928, 0 +rotation = 0, 0, 0 + +[droid_441] +id = 441 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 1088, 5056, 0 +rotation = 0, 0, 0 + +[droid_442] +id = 442 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 960, 5184, 0 +rotation = 0, 0, 0 + +[droid_1158] +id = 1158 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6268, 5638, 0 +rotation = 47696, 0, 0 + +[droid_1159] +id = 1159 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6376, 5718, 0 +rotation = 47878, 0, 0 + +[droid_1160] +id = 1160 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6516, 5788, 0 +rotation = 50608, 0, 0 + +[droid_1164] +id = 1164 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6346, 5984, 0 +rotation = 47878, 0, 0 + +[droid_1165] +id = 1165 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6194, 5782, 0 +rotation = 50608, 0, 0 + +[droid_1171] +id = 1171 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 3372, 6824, 0 +rotation = 0, 0, 0 + +[droid_1172] +id = 1172 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 3626, 7044, 0 +rotation = 0, 0, 0 + +[droid_1176] +id = 1176 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 3066, 7270, 0 +rotation = 0, 0, 0 + +[droid_1177] +id = 1177 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 3366, 7392, 0 +rotation = 0, 0, 0 + +[droid_1178] +id = 1178 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 3408, 7702, 0 +rotation = 0, 0, 0 + +[droid_1628] +id = 1628 +startpos = 1 +template = Cyb-RotMG-GROUND +position = 1984, 1344, 0 +rotation = 11651, 0, 0 + +[droid_1629] +id = 1629 +startpos = 1 +template = Cyb-RotMG-GROUND +position = 1856, 1344, 0 +rotation = 49334, 0, 0 + +[droid_1630] +id = 1630 +startpos = 1 +template = Cyb-RotMG-GROUND +position = 1856, 1088, 0 +rotation = 53339, 0, 0 + +[droid_1631] +id = 1631 +startpos = 1 +template = Cyb-RotMG-GROUND +position = 1600, 1344, 0 +rotation = 28035, 0, 0 + +[droid_1632] +id = 1632 +startpos = 1 +template = Cyb-Rocket-GROUND +position = 1600, 704, 0 +rotation = 18204, 0, 0 + +[droid_1636] +id = 1636 +startpos = 1 +template = PythonHvyCnTrks +position = 1216, 1856, 0 +rotation = 11287, 0, 0 + +[droid_1637] +id = 1637 +startpos = 1 +template = PythonHvyCnTrks +position = 1088, 2752, 0 +rotation = 15110, 0, 0 + +[droid_1638] +id = 1638 +startpos = 1 +template = CobraMedCnTrks +position = 2368, 2368, 0 +rotation = 8010, 0, 0 + +[droid_1639] +id = 1639 +startpos = 1 +template = CobraMedCnTrks +position = 2240, 2112, 0 +rotation = 61531, 0, 0 + +[droid_1640] +id = 1640 +startpos = 1 +template = CobraMedCnTrks +position = 2112, 2368, 0 +rotation = 62259, 0, 0 + +[droid_1641] +id = 1641 +startpos = 1 +template = CobraLtA-Thalftrack +position = 1472, 1984, 0 +rotation = 46785, 0, 0 + +[droid_1642] +id = 1642 +startpos = 1 +template = CobraLtA-Thalftrack +position = 1984, 2112, 0 +rotation = 29309, 0, 0 + +[droid_1643] +id = 1643 +startpos = 1 +template = CobraLtA-Thalftrack +position = 1728, 2368, 0 +rotation = 56616, 0, 0 + diff --git a/wrf/cam3/cam3b/feature.ini b/wrf/cam3/cam3b/feature.ini new file mode 100644 index 0000000..1bfb0d1 --- /dev/null +++ b/wrf/cam3/cam3b/feature.ini @@ -0,0 +1,6 @@ +[feature_139] +id = 139 +position = 1728, 704, 0 +rotation = 0, 0, 0 +name = OilResource + diff --git a/wrf/cam3/cam3b/labels.ini b/wrf/cam3/cam3b/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/cam3c.gam b/wrf/cam3/cam3c.gam new file mode 100644 index 0000000..8d3ea63 Binary files /dev/null and b/wrf/cam3/cam3c.gam differ diff --git a/wrf/cam3/cam3c/droid.ini b/wrf/cam3/cam3c/droid.ini new file mode 100644 index 0000000..74dfbff --- /dev/null +++ b/wrf/cam3/cam3c/droid.ini @@ -0,0 +1,182 @@ +[droid_1306] +id = 1306 +startpos = 0 +template = Cyb-RotMG-GROUND +position = 716, 19282, 0 +rotation = 35499, 0, 0 + +[droid_1307] +id = 1307 +startpos = 0 +template = Cyb-RotMG-GROUND +position = 894, 19286, 0 +rotation = 38775, 0, 0 + +[droid_1308] +id = 1308 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 1860, 18624, 0 +rotation = 54795, 0, 0 + +[droid_536] +id = 536 +startpos = 0 +template = P0CobraMedCnTrks +position = 1028, 19280, 0 +rotation = 39504, 0, 0 + +[droid_540] +id = 540 +startpos = 0 +template = P0CobraMedCnTrks +position = 988, 19150, 0 +rotation = 32768, 0, 0 + +[droid_541] +id = 541 +startpos = 0 +template = P0CobraMedCnTrks +position = 840, 19152, 0 +rotation = 37319, 0, 0 + +[droid_740] +id = 740 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6976, 18368, 0 +rotation = 8010, 0, 0 + +[droid_741] +id = 741 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 7104, 18368, 0 +rotation = 10923, 0, 0 + +[droid_747] +id = 747 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6976, 21312, 0 +rotation = 44055, 0, 0 + +[droid_748] +id = 748 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 7104, 21312, 0 +rotation = 36591, 0, 0 + +[droid_1218] +id = 1218 +startpos = 1 +template = P0cam3CobCONTrk +position = 2116, 23234, 0 +rotation = 47696, 0, 0 + +[droid_1219] +id = 1219 +startpos = 1 +template = P0cam3CobCONTrk +position = 1086, 23486, 0 +rotation = 32222, 0, 0 + +[droid_1289] +id = 1289 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 6970, 18506, 0 +rotation = 55524, 0, 0 + +[droid_1290] +id = 1290 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 7108, 18506, 0 +rotation = 9830, 0, 0 + +[droid_1292] +id = 1292 +startpos = 3 +template = NX-M-Link-Hover +position = 6986, 18258, 0 +rotation = 0, 0, 0 + +[droid_1293] +id = 1293 +startpos = 3 +template = NX-M-Link-Hover +position = 6856, 21178, 0 +rotation = 45147, 0, 0 + +[droid_1294] +id = 1294 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 6970, 21190, 0 +rotation = 59164, 0, 0 + +[droid_1297] +id = 1297 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 7098, 21204, 0 +rotation = 2185, 0, 0 + +[droid_1298] +id = 1298 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 7114, 18620, 0 +rotation = 0, 0, 0 + +[droid_1299] +id = 1299 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 6974, 18626, 0 +rotation = 0, 0, 0 + +[droid_1300] +id = 1300 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 6968, 21066, 0 +rotation = 45693, 0, 0 + +[droid_1301] +id = 1301 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 7072, 21078, 0 +rotation = 23666, 0, 0 + +[droid_1302] +id = 1302 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 1350, 20538, 0 +rotation = 56798, 0, 0 + +[droid_1303] +id = 1303 +startpos = 3 +template = NX-Cyb-Rail1-JUMP +position = 1482, 20884, 0 +rotation = 47514, 0, 0 + +[droid_1304] +id = 1304 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 1594, 18498, 0 +rotation = 54795, 0, 0 + +[droid_1305] +id = 1305 +startpos = 0 +template = Cyb-RotMG-GROUND +position = 684, 19014, 0 +rotation = 27307, 0, 0 + diff --git a/wrf/cam3/cam3c/feature.ini b/wrf/cam3/cam3c/feature.ini new file mode 100644 index 0000000..05d932c --- /dev/null +++ b/wrf/cam3/cam3c/feature.ini @@ -0,0 +1,516 @@ +[feature_716] +id = 716 +position = 6336, 24128, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_717] +id = 717 +position = 6208, 24000, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_718] +id = 718 +position = 6208, 24128, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_719] +id = 719 +position = 6208, 24384, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_720] +id = 720 +position = 6080, 23872, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_721] +id = 721 +position = 6720, 24512, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_722] +id = 722 +position = 6592, 24384, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_723] +id = 723 +position = 6464, 24512, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_724] +id = 724 +position = 6656, 24192, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_725] +id = 725 +position = 6912, 24448, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_848] +id = 848 +position = 1728, 23616, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_849] +id = 849 +position = 1472, 23616, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1202] +id = 1202 +position = 960, 23232, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1204] +id = 1204 +position = 960, 23488, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1257] +id = 1257 +position = 7616, 23232, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1259] +id = 1259 +position = 6464, 23104, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1497] +id = 1497 +position = 2368, 20416, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1498] +id = 1498 +position = 2560, 20480, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_1499] +id = 1499 +position = 2112, 20416, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1500] +id = 1500 +position = 2752, 19520, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1501] +id = 1501 +position = 2752, 19776, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1502] +id = 1502 +position = 2624, 19776, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1503] +id = 1503 +position = 3008, 19648, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1504] +id = 1504 +position = 832, 20672, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1505] +id = 1505 +position = 640, 20608, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_1506] +id = 1506 +position = 3968, 22912, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_1507] +id = 1507 +position = 4160, 22976, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1508] +id = 1508 +position = 3776, 22848, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1509] +id = 1509 +position = 3648, 22720, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1510] +id = 1510 +position = 4032, 23104, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1511] +id = 1511 +position = 4672, 22720, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1512] +id = 1512 +position = 4544, 22720, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1513] +id = 1513 +position = 5056, 23872, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1514] +id = 1514 +position = 4992, 23552, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_1515] +id = 1515 +position = 5248, 23424, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_1516] +id = 1516 +position = 5184, 23616, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1517] +id = 1517 +position = 4800, 23744, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1518] +id = 1518 +position = 4672, 23488, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1519] +id = 1519 +position = 4800, 23488, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1520] +id = 1520 +position = 4672, 23360, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1522] +id = 1522 +position = 4544, 23232, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1523] +id = 1523 +position = 4416, 23232, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1524] +id = 1524 +position = 4352, 23424, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_1526] +id = 1526 +position = 4736, 24064, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_1527] +id = 1527 +position = 3584, 24064, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_1528] +id = 1528 +position = 3776, 23872, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1529] +id = 1529 +position = 4032, 24000, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1530] +id = 1530 +position = 4032, 24256, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1531] +id = 1531 +position = 4288, 24256, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1532] +id = 1532 +position = 4416, 23744, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1533] +id = 1533 +position = 2816, 23680, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_1534] +id = 1534 +position = 2816, 23936, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_1535] +id = 1535 +position = 3072, 23808, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_1536] +id = 1536 +position = 2752, 24128, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1537] +id = 1537 +position = 2624, 24128, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1538] +id = 1538 +position = 2624, 23360, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1539] +id = 1539 +position = 6528, 21632, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_1540] +id = 1540 +position = 6720, 21440, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1541] +id = 1541 +position = 6848, 21568, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1542] +id = 1542 +position = 6592, 21056, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1543] +id = 1543 +position = 7616, 21312, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1544] +id = 1544 +position = 7744, 21312, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1545] +id = 1545 +position = 7872, 21184, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1546] +id = 1546 +position = 5568, 18112, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1547] +id = 1547 +position = 5760, 18688, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_1548] +id = 1548 +position = 5888, 18432, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_1549] +id = 1549 +position = 6080, 18752, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1550] +id = 1550 +position = 5440, 18496, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1551] +id = 1551 +position = 5440, 18368, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1552] +id = 1552 +position = 5568, 18240, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1553] +id = 1553 +position = 5824, 18112, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1554] +id = 1554 +position = 5184, 18624, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_1555] +id = 1555 +position = 1472, 17472, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1556] +id = 1556 +position = 1664, 17408, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_1557] +id = 1557 +position = 1856, 17472, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1558] +id = 1558 +position = 2304, 17664, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_1559] +id = 1559 +position = 1600, 17088, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1565] +id = 1565 +position = 1792, 19840, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_1566] +id = 1566 +position = 1792, 19456, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_1567] +id = 1567 +position = 1984, 19648, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1568] +id = 1568 +position = 2112, 19520, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1569] +id = 1569 +position = 2112, 19136, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1570] +id = 1570 +position = 1728, 20032, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1571] +id = 1571 +position = 1472, 20032, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1572] +id = 1572 +position = 1344, 20160, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_1573] +id = 1573 +position = 2368, 20160, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + diff --git a/wrf/cam3/cam3c/game.map b/wrf/cam3/cam3c/game.map new file mode 100644 index 0000000..c58d318 Binary files /dev/null and b/wrf/cam3/cam3c/game.map differ diff --git a/wrf/cam3/cam3c/labels.ini b/wrf/cam3/cam3c/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/cam3c/ttypes.ttp b/wrf/cam3/cam3c/ttypes.ttp new file mode 100644 index 0000000..b35b048 Binary files /dev/null and b/wrf/cam3/cam3c/ttypes.ttp differ diff --git a/wrf/cam3/cam3d.gam b/wrf/cam3/cam3d.gam new file mode 100644 index 0000000..30b1ef8 Binary files /dev/null and b/wrf/cam3/cam3d.gam differ diff --git a/wrf/cam3/cam3d/game.map b/wrf/cam3/cam3d/game.map new file mode 100644 index 0000000..bac54c6 Binary files /dev/null and b/wrf/cam3/cam3d/game.map differ diff --git a/wrf/cam3/cam3d/labels.ini b/wrf/cam3/cam3d/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/cam3d/ttypes.ttp b/wrf/cam3/cam3d/ttypes.ttp new file mode 100644 index 0000000..b35b048 Binary files /dev/null and b/wrf/cam3/cam3d/ttypes.ttp differ diff --git a/wrf/cam3/sub3-1.gam b/wrf/cam3/sub3-1.gam new file mode 100644 index 0000000..dd1feb1 Binary files /dev/null and b/wrf/cam3/sub3-1.gam differ diff --git a/wrf/cam3/sub3-1/droid.ini b/wrf/cam3/sub3-1/droid.ini new file mode 100644 index 0000000..6814414 --- /dev/null +++ b/wrf/cam3/sub3-1/droid.ini @@ -0,0 +1,133 @@ +[droid_510] +id = 510 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3264, 5440, 0 +rotation = 0, 0, 0 + +[droid_511] +id = 511 +startpos = 3 +template = NX-M-Rail2-Hover +position = 7516, 4996, 0 +rotation = 0, 0, 0 + +[droid_518] +id = 518 +startpos = 3 +template = NX-M-Rail2-Hover +position = 4800, 4160, 0 +rotation = 0, 0, 0 + +[droid_739] +id = 739 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 5948, 2104, 0 +rotation = 52247, 0, 0 + +[droid_758] +id = 758 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 1216, 3008, 0 +rotation = 0, 0, 0 + +[droid_759] +id = 759 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 1472, 3008, 0 +rotation = 0, 0, 0 + +[droid_765] +id = 765 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6722, 1816, 0 +rotation = 51701, 0, 0 + +[droid_766] +id = 766 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6710, 1954, 0 +rotation = 50608, 0, 0 + +[droid_816] +id = 816 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 3026, 6714, 0 +rotation = 12197, 0, 0 + +[droid_817] +id = 817 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 3154, 6714, 0 +rotation = 5461, 0, 0 + +[droid_818] +id = 818 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 3154, 6842, 0 +rotation = 2367, 0, 0 + +[droid_819] +id = 819 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 3026, 6842, 0 +rotation = 9284, 0, 0 + +[droid_820] +id = 820 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 1992, 6729, 0 +rotation = 52429, 0, 0 + +[droid_821] +id = 821 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 1992, 6985, 0 +rotation = 52429, 0, 0 + +[droid_836] +id = 836 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3392, 5312, 0 +rotation = 0, 0, 0 + +[droid_837] +id = 837 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3392, 5440, 0 +rotation = 0, 0, 0 + +[droid_866] +id = 866 +startpos = 3 +template = NX-M-Rail2-Hover +position = 6080, 1984, 0 +rotation = 0, 0, 0 + +[droid_867] +id = 867 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 6080, 1856, 0 +rotation = 0, 0, 0 + +[droid_883] +id = 883 +startpos = 3 +template = NX-M-Rail2-Hover +position = 4928, 4160, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam3/sub3-1/feature.ini b/wrf/cam3/sub3-1/feature.ini new file mode 100644 index 0000000..b48dfe7 --- /dev/null +++ b/wrf/cam3/sub3-1/feature.ini @@ -0,0 +1,630 @@ +[feature_303] +id = 303 +position = 1664, 4800, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_304] +id = 304 +position = 1664, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_347] +id = 347 +position = 1600, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_348] +id = 348 +position = 1984, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_349] +id = 349 +position = 1856, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_351] +id = 351 +position = 1984, 4544, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_352] +id = 352 +position = 1984, 4800, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_353] +id = 353 +position = 1856, 4544, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_354] +id = 354 +position = 1856, 4800, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_355] +id = 355 +position = 1088, 4800, 0 +rotation = 32768, 0, 0 +name = Crane + +[feature_358] +id = 358 +position = 960, 5312, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_359] +id = 359 +position = 1088, 5312, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_576] +id = 576 +position = 640, 1408, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_577] +id = 577 +position = 896, 1408, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_578] +id = 578 +position = 2048, 1920, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_579] +id = 579 +position = 1856, 2112, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_580] +id = 580 +position = 1984, 1472, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_581] +id = 581 +position = 1792, 1920, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_582] +id = 582 +position = 2176, 2176, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_583] +id = 583 +position = 2368, 2112, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_584] +id = 584 +position = 2240, 2368, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_585] +id = 585 +position = 1792, 2560, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_586] +id = 586 +position = 1728, 2752, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_587] +id = 587 +position = 1792, 2304, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_588] +id = 588 +position = 1984, 2496, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_589] +id = 589 +position = 832, 3136, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_591] +id = 591 +position = 1088, 3392, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_594] +id = 594 +position = 704, 3648, 0 +rotation = 0, 0, 0 +name = LogCabin2 + +[feature_598] +id = 598 +position = 1088, 3648, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_600] +id = 600 +position = 2560, 3712, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_601] +id = 601 +position = 2816, 3712, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_602] +id = 602 +position = 2624, 3904, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_603] +id = 603 +position = 2496, 3904, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_604] +id = 604 +position = 1856, 5952, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_606] +id = 606 +position = 3264, 5696, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_607] +id = 607 +position = 3200, 4736, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_608] +id = 608 +position = 2944, 4736, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_609] +id = 609 +position = 3200, 4480, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_610] +id = 610 +position = 3264, 4928, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_611] +id = 611 +position = 2880, 4544, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_614] +id = 614 +position = 5504, 6528, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_615] +id = 615 +position = 5504, 6272, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_616] +id = 616 +position = 5696, 6464, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_617] +id = 617 +position = 5312, 6080, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_618] +id = 618 +position = 6208, 7488, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_619] +id = 619 +position = 6528, 6784, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_620] +id = 620 +position = 6336, 6976, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_621] +id = 621 +position = 7040, 6784, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_622] +id = 622 +position = 7616, 6464, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_623] +id = 623 +position = 5696, 6080, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_625] +id = 625 +position = 5952, 6848, 0 +rotation = 0, 0, 0 +name = LogCabin4 + +[feature_626] +id = 626 +position = 5824, 7488, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_628] +id = 628 +position = 7104, 3392, 0 +rotation = 0, 0, 0 +name = LogCabin5 + +[feature_629] +id = 629 +position = 7104, 3136, 0 +rotation = 0, 0, 0 +name = LogCabin3 + +[feature_630] +id = 630 +position = 7360, 3392, 0 +rotation = 0, 0, 0 +name = LogCabin2 + +[feature_631] +id = 631 +position = 7616, 3264, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_635] +id = 635 +position = 7360, 3136, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_636] +id = 636 +position = 6784, 3200, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_637] +id = 637 +position = 7168, 2304, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_638] +id = 638 +position = 7552, 2432, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_639] +id = 639 +position = 7616, 2880, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_640] +id = 640 +position = 7232, 2752, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_641] +id = 641 +position = 5632, 3072, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_642] +id = 642 +position = 5952, 3264, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_643] +id = 643 +position = 5248, 3456, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_644] +id = 644 +position = 5440, 3392, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_645] +id = 645 +position = 4992, 2944, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_646] +id = 646 +position = 5056, 3136, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_647] +id = 647 +position = 4288, 2240, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_649] +id = 649 +position = 7680, 2048, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_650] +id = 650 +position = 7616, 1600, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_654] +id = 654 +position = 7744, 1472, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_655] +id = 655 +position = 7360, 1856, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_657] +id = 657 +position = 3072, 2048, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_658] +id = 658 +position = 2816, 2048, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_659] +id = 659 +position = 3264, 2368, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_660] +id = 660 +position = 3008, 2240, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_661] +id = 661 +position = 3648, 576, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_662] +id = 662 +position = 2752, 448, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_663] +id = 663 +position = 3968, 1408, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_664] +id = 664 +position = 704, 1856, 0 +rotation = 0, 0, 0 +name = LogCabin4 + +[feature_666] +id = 666 +position = 704, 2112, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_667] +id = 667 +position = 1088, 2880, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_669] +id = 669 +position = 1088, 1344, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_670] +id = 670 +position = 1088, 576, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_671] +id = 671 +position = 896, 5056, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_672] +id = 672 +position = 896, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_673] +id = 673 +position = 896, 4928, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_674] +id = 674 +position = 2432, 7552, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_675] +id = 675 +position = 2496, 7232, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_676] +id = 676 +position = 2944, 7680, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_677] +id = 677 +position = 2752, 7744, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_712] +id = 712 +position = 5888, 3072, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_824] +id = 824 +position = 4864, 7552, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_825] +id = 825 +position = 4608, 7168, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_826] +id = 826 +position = 4096, 5376, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_827] +id = 827 +position = 4160, 5696, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_828] +id = 828 +position = 4416, 5312, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_829] +id = 829 +position = 3840, 7424, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_830] +id = 830 +position = 3328, 6016, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_831] +id = 831 +position = 3136, 6208, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_832] +id = 832 +position = 4416, 6208, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_833] +id = 833 +position = 4544, 6080, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_834] +id = 834 +position = 4416, 7360, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_835] +id = 835 +position = 4800, 6976, 0 +rotation = 0, 0, 0 +name = Tree3 + diff --git a/wrf/cam3/sub3-1/labels.ini b/wrf/cam3/sub3-1/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/sub3-1/struct.ini b/wrf/cam3/sub3-1/struct.ini new file mode 100644 index 0000000..89a03b4 --- /dev/null +++ b/wrf/cam3/sub3-1/struct.ini @@ -0,0 +1,872 @@ +[structure_1] +id = 1 +startpos = 3 +name = NEXUSWall +position = 2240, 7360, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2] +id = 2 +startpos = 3 +name = NEXUSWall +position = 2240, 7488, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3] +id = 3 +startpos = 3 +name = NEXUSWall +position = 2240, 7616, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_5] +id = 5 +startpos = 3 +name = NEXUSWall +position = 2240, 7232, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_8] +id = 8 +startpos = 3 +name = NEXUSWall +position = 2240, 7104, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_9] +id = 9 +startpos = 3 +name = NEXUSWall +position = 2240, 6592, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_17] +id = 17 +startpos = 3 +name = NEXUSWall +position = 960, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_18] +id = 18 +startpos = 3 +name = NEXUSWall +position = 832, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_19] +id = 19 +startpos = 3 +name = NEXUSWall +position = 704, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_23] +id = 23 +startpos = 3 +name = NEXUSWall +position = 1600, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_24] +id = 24 +startpos = 3 +name = NEXUSWall +position = 1728, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 3 +name = NEXUSWall +position = 1984, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_26] +id = 26 +startpos = 3 +name = NEXUSWall +position = 2112, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_27] +id = 27 +startpos = 3 +name = NEXUSWall +position = 1856, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_30] +id = 30 +startpos = 3 +name = NEXUSWall +position = 1088, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_34] +id = 34 +startpos = 3 +name = NEXUSWall +position = 2240, 6464, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_35] +id = 35 +startpos = 3 +name = NEXUSWall +position = 2240, 6208, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_36] +id = 36 +startpos = 3 +name = NEXUSWall +position = 576, 6080, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_37] +id = 37 +startpos = 3 +name = NEXUSWall +position = 2240, 6336, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_225] +id = 225 +startpos = 3 +name = NEXUSCWall +position = 2240, 7744, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_229] +id = 229 +startpos = 3 +name = A0CyborgFactory +position = 1600, 6400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_248] +id = 248 +startpos = 3 +name = A0LightFactory +position = 1600, 7104, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_251] +id = 251 +startpos = 3 +name = A0CyborgFactory +position = 1856, 6400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_278] +id = 278 +startpos = 3 +name = NX-CruiseSite +position = 576, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_293] +id = 293 +startpos = 3 +name = UplinkCentre +position = 768, 7040, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_420] +id = 420 +startpos = 3 +name = NX-WallTower-Rail2 +position = 2240, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_680] +id = 680 +startpos = 3 +name = A0CommandCentreNE +position = 640, 6400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_686] +id = 686 +startpos = 3 +name = NX-CruiseSite +position = 960, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_733] +id = 733 +startpos = 3 +name = NX-CruiseSite +position = 576, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_735] +id = 735 +startpos = 3 +name = NX-CruiseSite +position = 960, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_776] +id = 776 +startpos = 3 +name = NX-WallTower-Rail2 +position = 2240, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_779] +id = 779 +startpos = 3 +name = NX-WallTower-Rail2 +position = 2240, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_782] +id = 782 +startpos = 3 +name = NX-WallTower-Rail2 +position = 1216, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_785] +id = 785 +startpos = 3 +name = NX-WallTower-Rail2 +position = 1472, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_802] +id = 802 +startpos = 3 +name = P0-AASite-SAM1 +position = 2752, 7232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_803] +id = 803 +startpos = 3 +name = P0-AASite-SAM1 +position = 2752, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_804] +id = 804 +startpos = 3 +name = P0-AASite-SAM1 +position = 2752, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_805] +id = 805 +startpos = 3 +name = P0-AASite-SAM1 +position = 2240, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_806] +id = 806 +startpos = 3 +name = P0-AASite-SAM1 +position = 1600, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_807] +id = 807 +startpos = 3 +name = P0-AASite-SAM1 +position = 960, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_808] +id = 808 +startpos = 3 +name = P0-AASite-SAM1 +position = 1216, 7232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_809] +id = 809 +startpos = 3 +name = P0-AASite-SAM1 +position = 1216, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_811] +id = 811 +startpos = 3 +name = P0-AASite-SAM1 +position = 6336, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_812] +id = 812 +startpos = 3 +name = P0-AASite-SAM1 +position = 6080, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_813] +id = 813 +startpos = 3 +name = P0-AASite-SAM1 +position = 5824, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_814] +id = 814 +startpos = 3 +name = P0-AASite-SAM1 +position = 5056, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_815] +id = 815 +startpos = 3 +name = P0-AASite-SAM1 +position = 4416, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_822] +id = 822 +startpos = 3 +name = Emplacement-PulseLaser +position = 832, 7488, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_823] +id = 823 +startpos = 3 +name = Emplacement-PulseLaser +position = 960, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_838] +id = 838 +startpos = 3 +name = P0-AASite-SAM1 +position = 7872, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_839] +id = 839 +startpos = 3 +name = P0-AASite-SAM1 +position = 7360, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_840] +id = 840 +startpos = 3 +name = P0-AASite-SAM1 +position = 7488, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_841] +id = 841 +startpos = 3 +name = P0-AASite-SAM1 +position = 6848, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_842] +id = 842 +startpos = 3 +name = P0-AASite-SAM1 +position = 6592, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_843] +id = 843 +startpos = 3 +name = P0-AASite-SAM1 +position = 6336, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_844] +id = 844 +startpos = 3 +name = P0-AASite-SAM1 +position = 5696, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_845] +id = 845 +startpos = 3 +name = P0-AASite-SAM1 +position = 4928, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_846] +id = 846 +startpos = 3 +name = P0-AASite-SAM1 +position = 5440, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_848] +id = 848 +startpos = 3 +name = P0-AASite-SAM1 +position = 4288, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_851] +id = 851 +startpos = 3 +name = P0-AASite-SAM1 +position = 7232, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_852] +id = 852 +startpos = 3 +name = P0-AASite-SAM1 +position = 7360, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_853] +id = 853 +startpos = 3 +name = P0-AASite-SAM1 +position = 7872, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_854] +id = 854 +startpos = 3 +name = P0-AASite-SAM1 +position = 4416, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_855] +id = 855 +startpos = 3 +name = Emplacement-PulseLaser +position = 4544, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_856] +id = 856 +startpos = 3 +name = Emplacement-PulseLaser +position = 3136, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_857] +id = 857 +startpos = 3 +name = NX-Tower-ATMiss +position = 4928, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_858] +id = 858 +startpos = 3 +name = NX-Tower-ATMiss +position = 3008, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_859] +id = 859 +startpos = 3 +name = NX-Tower-ATMiss +position = 4544, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_860] +id = 860 +startpos = 3 +name = Emplacement-PulseLaser +position = 2112, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_861] +id = 861 +startpos = 3 +name = Emplacement-PulseLaser +position = 2112, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_862] +id = 862 +startpos = 3 +name = Emplacement-PulseLaser +position = 5312, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_863] +id = 863 +startpos = 3 +name = Emplacement-PulseLaser +position = 3904, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_864] +id = 864 +startpos = 3 +name = NX-Tower-ATMiss +position = 1216, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_865] +id = 865 +startpos = 3 +name = NX-Tower-ATMiss +position = 1472, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_868] +id = 868 +startpos = 3 +name = NX-Tower-ATMiss +position = 3520, 7616, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_869] +id = 869 +startpos = 3 +name = NX-Tower-ATMiss +position = 4288, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_870] +id = 870 +startpos = 3 +name = Emplacement-PulseLaser +position = 4032, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_871] +id = 871 +startpos = 3 +name = Emplacement-PulseLaser +position = 3392, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_872] +id = 872 +startpos = 3 +name = Emplacement-PulseLaser +position = 1472, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_873] +id = 873 +startpos = 3 +name = NX-Tower-ATMiss +position = 2240, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_874] +id = 874 +startpos = 3 +name = Emplacement-PulseLaser +position = 1216, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_875] +id = 875 +startpos = 3 +name = Emplacement-PulseLaser +position = 2240, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_876] +id = 876 +startpos = 3 +name = Emplacement-PulseLaser +position = 1600, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_878] +id = 878 +startpos = 3 +name = Sys-SensoTower02 +position = 4032, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_879] +id = 879 +startpos = 3 +name = Sys-SensoTower02 +position = 1984, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_880] +id = 880 +startpos = 3 +name = Sys-SensoTower02 +position = 3648, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_918] +id = 918 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 3520, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_917] +id = 917 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 4800, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_884] +id = 884 +startpos = 3 +name = NX-Tower-ATMiss +position = 5056, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_885] +id = 885 +startpos = 3 +name = Emplacement-PulseLaser +position = 4032, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_887] +id = 887 +startpos = 3 +name = NX-Tower-ATMiss +position = 2880, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_892] +id = 892 +startpos = 3 +name = Sys-NX-CBTower +position = 4416, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_919] +id = 919 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 1216, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_899] +id = 899 +startpos = 3 +name = NX-WallTower-Rail2 +position = 4288, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_900] +id = 900 +startpos = 3 +name = NX-WallTower-Rail2 +position = 4416, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_901] +id = 901 +startpos = 3 +name = NX-WallTower-Rail2 +position = 4288, 7616, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_902] +id = 902 +startpos = 3 +name = NX-WallTower-Rail2 +position = 4160, 7488, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_903] +id = 903 +startpos = 3 +name = Emplacement-PulseLaser +position = 4544, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_904] +id = 904 +startpos = 3 +name = Sys-NX-CBTower +position = 3520, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_910] +id = 910 +startpos = 3 +name = PillBox1 +position = 3776, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_911] +id = 911 +startpos = 3 +name = PillBox1 +position = 1600, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_913] +id = 913 +startpos = 3 +name = PillBox1 +position = 3264, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_914] +id = 914 +startpos = 3 +name = A0HardcreteMk1Gate +position = 1344, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_915] +id = 915 +startpos = 3 +name = A0HardcreteMk1Gate +position = 2240, 6848, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_916] +id = 916 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 2880, 7488, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_920] +id = 920 +startpos = 3 +name = NX-Emp-MultiArtMiss-Pit +position = 7232, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_921] +id = 921 +startpos = 3 +name = NX-Emp-MultiArtMiss-Pit +position = 7360, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_922] +id = 922 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 4288, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_923] +id = 923 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 4544, 2112, 0 +rotation = 0, 0, 0 +modules = 0 +