131 lines
3.1 KiB
Plaintext
131 lines
3.1 KiB
Plaintext
|
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>
|
||
|
|