UPDATE: Due to the confluence of a few factors:
1) Major project started on a website of mine. 2) Lack of developer interest expressed in product. 3) Lack of user interest expressed in product.
I've taken this project off of my list of current projects.
In a phrase: lets you have a souped up UI without breaking anything (hopefully fixing stuff!). See the wiki page for more detail on project scope.
In this chart, CustomUI exists as "any CustomAPI-only addon" with a note to other developers to consider strongly deriving from it instead of from the default UI. CustomUI is coded to provide the intended behavior of default UI, with some limited additional exposed API (not existing in default) that will be useful to other modders in further customization of the API.
Requires LibCustomAPI, a standalone library that manages function hooks in Warhammer's API. And here's the pretty chart.
Hook, API, UI, addon... a schema for a WAR library set.
LibHook (general lua library for function inheritance)
| static link
LibCustomAPI (war-specific library for using LibHook against interface/default)
LibCustomAPI LibCustomCompatible* LibCustomAPI modded by
| | | \custom-only
(dynamic link) | (static link) | |
| | |
=any CustomAPI-only addon= =any other addon changing api functions=
Changes the behavior of for normal reasons. this is a way to
the default API or, more implement new behavior or different
importantly, the classes behavior from the default. the user installs
(function tables), which to get this new option or changed doodad.
have no best practices for |
doing without a Lib. Loaded | (conditional execution)
by the user and affects all |
other addons. Most likely if LibCustomAPI is not detected, it will
place to find a "skin" mod use a small statically linked lib for code
or "bugfix" mod, etc. that simulates what should be done, without it.
addon not using any of these libs are affected as follows:
|(happens ONLY on machines where LibCustomAPI is installed)
|>if not hooking the WAR api functions: not affected at all, not directly.
|>if hooking the api functions: will be disabled on first load, with user
settings to attempt two other modes (besides disabled):
* unsafe mode (enable and let it wreak havoc if it may)
(user must find the setting "always run in unsafe mode" for state on reload)
* compat mode (enable but take steps to keep it from breaking lib)
(user will hopefully see no CTD's or broken CustomAPI stuff, although
some stuff in the compat mode addon, especially if not cleanly coded,
will possibly degrade or break...user may choose "this session only"
or "all subsequent sessions" when first setting compat mode)This software does not yet have any version number as it is vaporware.