WAR Addon Review

    Future of Libs, API, UI, addons...

    This thread has been posted here:

    Future of Libs, API, UI, addons... at warhammeralliance

    [code]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)[/code]

    I would add that the LibCustomAPI can itself load as disabled, compat, or unsafe. It will always load disabled if there was not a clean exit by the interface. It will load in unsafe if the user hits a dialogue confirmation that both the lib and all other addons will now be running in unsafe mode. The lib must be run in safe mode to run any other addons in safe mode OR to disable any addons on load.

    Personally I think that this or something like it is medium to high priority as a necessary lib for developers who want to hook the default API functions. I await all comments and suggestions.

    http://code.google.com/u/peterkirby/

    Loaded to code.google.com because it, unllike curseforge, allows projects with no files to be visible to the world. Viva vaporware!

    WAR 1.0.2 client live

    WAR client patch 1.0.2 is live. You can read the patch notes.

    You can also discuss this with other developers on thewarwiki ... I've already uploaded a ZIP file with all the changed interface.myp files in their 1.0.2 versions, linked from the wiki. It was created with easymyp 1.2 and kdiff3 for Windows.

    Note to users: uninstall all your addons, then install them in bunches of 5 or 10. When you find a bunch that breaks your client (crash to desktop), uninstall that bunch and install them individually. When you find the culprit addon, report the bug on the bug ticket tracker of the addon's project.

    Note to developers: immediately test all your addons. Look to the changed interface.myp files for clues on how to update them to be compatible with 1.0.2.

    WAR Addon Review contributor lineup

    If you have been added as a contributor, please create a "test" post through your myblogs page in your Curse profile. If you are not a contributor yet and would like to be, contact BotanicalPuppets. Note that your blog posts will show up in the "WAR Addon Review" feed and also the "recent posts" of each other blog post... just not the "BotanicalPuppets default blog" page.

    Test post

    Posted Oct 09, 2008 by wobin
    Filed in WAR Addon Review

    Do not panic, this is merely a test of the emergency blogging system

     

    If this were a real emergency, I'd probably be sitting down at my computer telling you about how worried I was and stuff about the emergency.

     

    Since this is only a test, please remain calm.

    War Addon Review blog started

    This blog is intended for the developers of popular addons to give significant updates both on the addons they've created and other ones that are coming out. Any developer who would like to contribute may request to be added to this blog. Users may contribute too, just ask to be added to the community blog. Once you've been added, use your Curse profile blogs page to add new posts.