end of an era      ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- changes: - rscadd: "Removes the Crew Armory." - rscadd: "Removes the Leviathan." - rscadd: "Updates mapmerge2 tool with most current tg version." MATT'S EDIT: For whoever is reading, the Leviathan and the Crew Armoury are being removed to try and lower the Horizon's passive militarization a bit. We're going to try playing without the crew armoury, but in case security stomps are unbearable and Ops can't properly fulfill the role of "giving people guns", then ERTs will likely end up being readded. There will be an IC explanation given for the Leviathan's removal. The crew armoury one will probably be a straight retcon. --------- Co-authored-by: DreamySkrell <>
Map Merger
The Map Merger is a collection of scripts that keep this repository's maps in a format which is easier to track in Git and less likely to cause merge conflicts. When merge conflicts do occur, it can sometimes resolve them.
For detailed troubleshooting instructions and other tips, visit the Map Merger wiki article.
Installation
To install the Git hooks, open the tools/hooks/ folder and double-click
Install.bat. Linux users run tools/hooks/install.sh.
Manual Use
If using a Git GUI which is not compatible with the hooks:
- Before committing, double-click
Run Before Committing.bat - When a merge has map conflicts, double-click
Resolve Map Conflicts.bat
The console will show whether the operation succeeded.
For more details, see the Map Merger wiki article.
What Map Merging Is
The "map merge" operation describes the process of rewriting a map file written by the DreamMaker map editor to A) use a format more amenable to Git's conflict resolution and B) differ in the least amount textually from the previous version of the map while maintaining all the actual changes. It requires an old version of the map to use as a reference and a new version of the map which contains the desired changes.
Map Merge 2 adds multi-Z support, automatic handling of key overflow, better merge conflict prevention, and a real merge conflict resolver.
Code Structure
Frontend scripts are meant to be run directly. They obey the environment
variables TGM to set whether files are saved in TGM (1) or DMM (0) format,
and MAPROOT to determine where maps are kept. By default, TGM is used and
the map root is autodetected. Each script may either prompt for the desired map
or be run with command-line parameters indicating which maps to act on. The
scripts include:
convert.pyfor converting maps to and from the TGM format. Used bytgm2dmm.batanddmm2tgm.bat.mapmerge.pyfor running the map merge on map backups saved byPrepare Maps.bat. Used bymapmerge.bat
Implementation modules:
dmm.pyincludes the map reader and writer.mapmerge.pyincludes the implementation of the map merge operation.frontend.pyincludes the common code for the frontend scripts.
precommit.py is run by the Git hooks if installed, and merges the new
version of any map saved in the index (git added) with the old version stored
in Git when run.