Giter VIP home page Giter VIP logo

auto-mods's Introduction

auto-mods

some data mods, generated programmatically, so they can be recreated automagically for every new patch

We just do everything auto!« - MbL, 2020

Published Mods

Build instructions

Cloning

NOTE: Remember that you need to clone this repository with its submodules!

git clone --recurse-submodules https://github.com/SiegeEngineers/auto-mods.git
cd auto-mods

Installing dependencies

You'll need:

  • cmake
  • gcc, g++
  • libboost-iostreams-dev
  • libboost-program-options
  • zlib
  • lz4

Dependencies

on Ubuntu (e.g. WSL)

sudo apt update
sudo apt install --fix-missing gcc g++ cmake \
libboost-iostreams-dev libboost-program-options-dev \
zlib1g-dev liblz4-dev

on OSX

xcode-select --install #this is to make sure xcode is installed for access to zlib1g-dev and liblz4-dev
brew install cmake
brew install boost
brew install gcc
brew install gdb

Compiling

Inside the repository root use the following commands:

mkdir build
cd build
cmake -DSTATIC_COMPILE=TRUE ..
cmake --build .

Note: You can also run ./scripts/build.sh from the project root.

You should now have an executable create-data-mod in the build folder. Hooray!

Debugging (GDB on Ubuntu)

  1. Ensure gcc tools are installed: sudo apt-get install build-essential gdb

Now we have two debug options:

  1. Debug via GDB on the terminal...
./buildForDebugger.sh  # make sure to run this from the project root
gdb build/create-data-mod
> b main
> run
  1. OR use the VSCode visual debugger, by going to the debug sidebar on the left, and running the (gdb) Build and Launch configuration. This will automatically make a debug build and run it. You can set breakpoints in the visual debugger.

Right now it runs create-data-mod with no parameters. For testing, you can add arguments to .vscode/launch.json in the args parameter.

Usage

Execute the executable without parameters to get usage instructions.

$ ./create-data-mod
Usage: ./create-data-mod <mod-identifier> source.dat target.dat
Where <mod-identifier> is one of the following, or multiple of the following joined by a +:
    community-games
    exploding-villagers
    exploding-villagers-extreme
    exploding-kings
    rewarding-snipes
    flying-dutchman
    kidnap
    no-wall
    random-costs
    random-tech-costs
    random-unit-costs
    teamwork
    x3
    x9
    x256

For example, in order to patch the current dat file with the Flying Dutchman modifications, one might execute

./create-data-mod flying-dutchman ~/aoe/Aoe2DE\ proton/resources/_common/dat/empires2_x2_p1.dat ./empires2_x2_p1.dat

And then use the resulting empires2_x2_p1.dat in the current directory for whatever.

In order to patch the current dat file with the Flying Dutchman modifications AND the Exploding Villagers, execute

./create-data-mod exploding-villagers+flying-dutchman ~/aoe/Aoe2DE\ proton/resources/_common/dat/empires2_x2_p1.dat ./empires2_x2_p1.dat

And then use the resulting empires2_x2_p1.dat in the current directory for whatever.

auto-mods's People

Contributors

hszemi avatar twise2 avatar franciscoda avatar filmcoder avatar simonsan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.