This repository has been archived on 2021-06-27. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Pradana Aumars 8726f50261 Failed attempt to fix XML parsing: parsing should be done block by block in separate functions to facilitate unit testing 2021-06-12 11:06:21 +02:00
src Failed attempt to fix XML parsing: parsing should be done block by block in separate functions to facilitate unit testing 2021-06-12 11:06:21 +02:00
tests Failed attempt to fix XML parsing: parsing should be done block by block in separate functions to facilitate unit testing 2021-06-12 11:06:21 +02:00
AUTHORS C Redesign 2021-05-15 19:18:42 +02:00
COPYING C Redesign 2021-05-15 19:18:42 +02:00
ChangeLog C Redesign 2021-05-15 19:18:42 +02:00
INSTALL C Redesign 2021-05-15 19:18:42 +02:00
LICENSE C Redesign 2021-05-15 19:18:42 +02:00
Makefile.am C Redesign 2021-05-15 19:18:42 +02:00
NEWS C Redesign 2021-05-15 19:18:42 +02:00
README C Redesign 2021-05-15 19:18:42 +02:00
configure.ac C Redesign 2021-05-15 19:18:42 +02:00
modetw.conf C Redesign 2021-05-15 19:18:42 +02:00

README

modetw (Modifications Manager for Empire: Total War) is a utility tool that helps you manage modifications (mods) in Empire: Total War for GNU/Linux.

Supported features
==================

* All mods will only have latest version
* Mod conflict check
    
Planned features
================

* Multiple mod versions
    
Commands
========

* -c --calibrate
    calibrate the game files for mod installation
* -i --install [mod]
    install a mod
* -u --uninstall [mod]
    uninstall a mod
* -q --query [mod (regexpr)]
    list mods in GitLab
* -l --list (installed mods)
    list ~/.config/etw-lmm/manifest

    A mod installation runs through the following steps:
    1. The game packs that will be installed will be checked for any conflicts. If there is an existing mod installed that is already overtaking an original game pack, the installation cannot continue.
    2. The original game packs will be renamed as "*.backup"
    3. The modified game packs will be installed.
    4. The mod's manifest will be added to the modetw/manifest directory

    A mod uninstallation runs through the following steps:
    1. The modified game packs are deleted.
    2. The original game packs will have ".backup" removed.
    3. The mod's manifest will be deleted.
    
    The list of installed mods are located in the $HOME/.local/modetw/manifest.txt file (text file, listing installed mods with version).

    XMLs of available mods will be packaged in a tar.xz in a FTP server in the same dir as the mods. $HOME/.local/modetw/db directory will hold all XMLs (including installed).

    Specifications
    ==============

    libcurl
    libxml2
    GNU automake
    sed iconv cp rm
    check (only for dev)
    doxygen (only for dev)
    argp - argparse
    Glib conf parsing
    tar

    Project structure
    =================

    main.c
        Contains main function
    
    calibrate.c/h
        Game calibration

    install.c/h
        Handles uninstall as well

    query.c/h
        Queries FTP server for mods

    list.c/h
        Lists installed mods

    exception.c/h
        Exception handler
    
    file_t.c/h
        File type

    md5_t.c/h
        MD5 hash type

    prompt_t.c/h
        Prompt type
    
    Mod structure
    =============

    <mod_name>-<mod_version>.tar.xz
    <mod_name>-<mod_version>.xml
    
    <mod_name>-<mod_version>/
        manifest.xml
        common/
            A.pack
            B.pack
        option/
            <option1_name>/
                C.pack (different contents)
            <option2_name>/
                C.pack

    Manifest XML structure
    ==================
    
    <name></name>
    <description></description>
    <version></version>
    <author></author>
    <author_contact></author_contact>
    <common>
        <pack>
            <name></name>
            <description></description>
            <files>
                <filename></filename>
            </files>
        </pack>
    </common>
    <options>
        <option>
            <directory></directory>
            <name></name>
            <description></description>
            <files>
                <filename></filename>
            </files>
        </option>
    </options>