* Use portable Python for map merge hooks, other tools (#55658)
* Add .dmm merge driver (#55699)
This is kind of a prototype. It only fully handles a few situations,
and doesn't produce particularly easy-to-read conflict markers when it
fails. I hope that it can be useful at least some of the time, can be
improved over time, and that the lessons learned can influence a future
interactive GUI conflict resolver (integrated into StrongDMM?). In the
worst case, one can fall back to the tried and true "manually re-do one
side's changes" strategy.
**Automatic use**: In `tools/hooks/`, run `Install.bat`
**Manual use**, for Git GUIs that don't run merge drivers: while a
merge is in progress, in `tools/mapmerge2/`, double-click `Resolve Map
Conflicts.bat`
This PR also removes the error-prone "Prepare Maps.bat" /
"mapmerge.bat" workflow. Those who aren't using the hooks should
instead use `Run Before Committing.bat` before committing. First-time
contributors who opened a PR without map merging can be advised to run
`I Forgot To Map Merge.bat`.
* Fix loose double-quot in tradership_faction.dmm
Co-authored-by: Tad Hardesty <tad@platymuus.com>
* Fix quote handling in dmi.py script and add it to CI (#53669)
* Handle escape sequences in .dmi metadata
* Improve dmi.py self-test functionality
* Add dmi self-test to CI
* Install requirements for CI
* Fix quote handling in dmi.py script and add it to CI
Co-authored-by: Tad Hardesty <tad@platymuus.com>
* great googly moogly it's all gone to shit
* Fixed geneticist ID, moved in job list
* This is what I get for not building
* Fixed HUD sprite
* Finalized move to R&D code areas and updated sprites
* Mapping fixes on Meta
* Boxstation's turn and some Meta fixes
* Fixing map conflicts
* Moves genetics to science
SQUASHED:
great googly moogly it's all gone to shit
Fixed geneticist ID, moved in job list
This is what I get for not building
Fixed HUD sprite
Finalized move to R&D code areas and updated sprites
Mapping fixes on Meta
Boxstation's turn and some Meta fixes
Fixing map conflicts
* lmao travis
* okay you can pass travis this time
* DeltaStation changes
* lmao access bullshit
* Kilo also a few code/sprite fixes
* Pubbystation
* Removed gondolas because people hate fun
About The Pull Request
repaths clothing/under to be more sane
Also fixed a couple of bugs relating to pathing being incorrect, and modified a couple of bad descriptions and names
Also adds a map path updating script, which also helps show the full repath.
Why It's Good For The Game
improves maintainability, makes mapping easier, stages for a clothing dmi split
Changelog
cl
refactor: repathed all under clothing, keep an eye out for errors
/cl
Had to touch a lot of maps because their directions were wrong in the icons
file, so when I changed those every map that had these needed updating. I've
added a script called cornersfix to mapmerge2/map_scripts for downstream
servers.
* Converts all colored plasteel tiles to turf decals.
* Removes now deprecated floor icons and paths.
* Hotfixes on three maps.
* Moves script to its own folder.
* Fixes wild west.
* Fixes holodeck
* Fixes eye rape bug.
* Fixes meta and lavaland biodome ruin having some missing textures.
Fixes a major mapping error introduced in #39816 and adds handling to the map merger to prevent it from happening again.
Keys need to be ordered movables, then turf(s), then area, otherwise our map reader acts weird. In-game this manifests as floor being placed in the dirt's underlays, such that after floor is crowbarred to plating the floor is still visually present (this is how I noticed the problem).
Fixes#39888.
Some map files still have stacked turfs. Our map reader supports this but it tends to cause other problems (e.g. atmos) so I'll try to look at those in the future.
X=$(find _maps -name '*.dmm'); tools/hooks/python.sh -m convert $X
It hooks into git as a merge driver and automatically runs with merges.
It prints a log of what it did, and if any specific states are
conflicted it indicates them and does not mark the merge as successful.
The conflicting icon can then be opened in DreamMaker and the
conflicting states resolved there.
Key benefits of the new mapmerge include: multi-Z support, effective
reuse of deleted keys, automatic handling of key overflow, and utilizing
a git pre-commit hook to eliminate the need to run batch files manually.