Birds Bot Manager (BBM) ----------------------- Changelog: 0.03 14/3/2001 ----------------- * Fixed up various warning to compile with the latest release of mingw32 (egcs 2.95.2) 0.04 15/3/2001 ----------------- * Removed some of the changes made in 0.03 so that the code not only compiles, but actually works :-) * Rely on the user getting the "quote-fix" patch to gcc-2.95.2 or else util.cpp will not compile. * When a level change is detected, we send a message (type=BM_MESSAGE, id=LEVEL_CHANGE) to the BotCtl() of each loaded bot class, and then call each active bots BotThink() with a message (type=BM_MESSAGE, id=SHUTDOWN) signalling that the bot is about to be destroyed. 0.05 18/3/2001 ----------------- Lots of changes and bugfixes. These are just a few: * Settled on "BBM" (Birds Bot Manager) as the official name of this beast. * Removed the MOVEMENT_BLOCKED message and replaced it with the DistanceMoved() bot method. * Bots now have their BotThink() called approx every 50ms. * New bot methods MakeDirVectors() and TraceLines() to assist the bot writer * Fixed Makefile dependencies to track header files correctly * The botmanager is now named BBM.dll, not BM.dll * Moved the sample_bot code inside the bbm directory structure 0.06 19/3/2001 ----------------- * Replaced the current button handling code with general button timers. This makes the button-handling methods more consistent, and allows timed button presses. * New directory structure. Now BBM lives in a directory named "bbm" inside the Half-Life directory, and each bot has its own directory inside that. (This means you have to change liblist.gam in each MOD directory to load "../bbm/bbm.dll") Each bot (its DLL and other files) live in a subdirectory of Half-Life/bbm/ that is named after the bot. Now there are no bot-specific files in any MOD directory. All bbm stuff (bots, helper files etc) will now live in Half-Life/bbm/. * Bot naming scheme simplified. The bot class name is now assumed to be the same as the bot library file (omitting the .DLL suffix). The "classname" parameter to BotInit() has gone away. * Added a new API function HUDWPrintf() to allow more flexibility in where/how message(s) are displayed. * Added support for startup config file "bbm.cfg" in the Half-Life\bbm directory, and "autoexec.cfg" files in each bot directory. A sample bbm.cfg file is supplied in src/util. * Removed compile-time DEBUGDIR directive. It is now a "debugfile" entry in the [global] section of bbm.cfg. 0.07 22/3/2001 ----------------- * Added fake files in empty directories to aid Stupid Windows(TM) archivers. * Fixed a bug where loading more than one bot class slowed everything down. * Added ShowMenu() bot method to open a menu on the listensevers display. * Added various methods to CfgFile class to make it able to update and re-write config files. 0.08 23/3/2001 ----------------- * Removed some leftover debug messages * Added support in bbm.cfg for "debuglevel" command to trigger various debug messgaes which used to be controlled at compile time. See BM.h for definitions. * Added initial support for MODs other than counterstrike. The correct mod is now reported to BotInit() [Untested]. * Altered "Damage" messages to remove the coords if the origin of the damage is not in the bots field of view (45 degrees). 0.09 23/3/2001 ----------------- * Changed loading of bots on startup. The bot directory is no longer automatically scanned for bot classes. Only bots named in the [bots] section of bbm.cfg are automatically loaded on startup. * Added the "loadbot" and "unloadbot" console commands for manually loading/unloading a bot class. In theory you can now load a bot class, play for a while, unload it, change & recompile your bot and then use "loadbot" to load it again - all within a single game session. * "unloadbot" kicks all bots of that class off the server before unloading the class DLL. * Added a new BotClass() method "KickAllBots" to implement the two changes listed above here. 0.1 24/3/2001 ----------------- * Moved status from ALPHA to BETA. I think that the API is pretty much complete. * Broke the one "sample" bot up into a collection of sample bots, each one showing part of the API. Added a tutorial page to the BBM website. * Added guard code around all routines that are shared between BBM and the client bot to make sure that the client doesn't accidentally call them. 0.1.1 25/3/2001 ----------------- * Moved Init() earlier to catch the Spawn() calls. * Changed the API for TraceLines() to add the ability to draw them in colour as a debugging aid. * Added new API functions DrawBeam() and VectorsToPitchYaw() * Re-arranged code in BBM to be more internally consistent, and removed some uninitialised code from BBM.LIB so that the bot programmer can't accidentally call it. * Bots lose their vision as a result of ScreenFade messages (e.g. from a FlashBang grenade) for approx 3.5 seconds max. The actual value depends on the Brightness value reported in the ScreenFade message (i.e. how "white" the players screen is made).