As mentioned in the post below, the AGI Power Pack is now available for use. The 'prize' for completing the demo game is a link to the location of the actual Power Pack source files. (It's not really hidden- you could probably find it online if you really want it, but I thought it would be fun to make it a bit of a puzzle hunt to start with.)
If you decide you want to write a game using the Power Pack, it is super easy to implement. Just drop the logic source file that matches your target AGI version into your AGI game and call it from logic 0 as the very first thing when your game starts. Once that's done, all the features of the Power Pack instantly become available!
Writing code to use the Power Pack features is easy when using WinAGI. Code snippets make adding new commands just as easy as adding regular AGI commands. And the extra features of the resource editors and tools make writing AGI games much simpler, whether using the Power Pack or not!
The biggest enhancements in the Power Pack include:
- adds mouse support! including ability to load custom cursors, automatic support for menus, inventory selection screen, and save/restore screens; also supports 'click-to-move' control of ego
- adds sound board and MIDI support! automatically detects presence of Sound Blaster or compatible sound board and MIDI device to provide four-channel sound support
- moves logic message text to a separate memory segment, freeing up heap memory for non-text resources
- modifies 'graphics' and 'text.screen' commands to allow displaying eighty columns of text, in addition to the default forty column modes normally used by AGI
- adds a new 'auto-cycle' feature that will stop/start cycling an object when it stops/starts moving, whether due to changing its direction value, or if it hits an obstacle
- MAJOR enhancements to the trace function; the window can be repositioned anywhere on the screen; variables and flags can be viewed and modified while the tracer is active; the output is better formatted to make it easier to read
Additional features include:
- modify the character printing functions to allow use of extended characters in graphics and text modes, regardless of color
- adds a new function to allow setting message box colors (foreground, background and border) to any combination of colors
- modifies the color attributes and text printing functions so text will print with any combination of foreground and background colors on the graphics screen
- adds support for custom status lines; variables and flags can be designated to 'watch' to determine when to do an update
- adds new command to allow changing the mode of the string compare function in the compare.strings test command between binary (all characters match exactly), text (case is ignored but all other characters match exactly) or AGI (the default where case is ignored, and white space and several separator characters are ignored)
- adds many new string manipulation functions, including strLen, strCopy, strConcat, strLeft, strRight, strMid, strTrim, strInstr, strFormat, str2byte, hex2byte, byte2hex, strUpper, strLower
- adds new bitwise math functions (or, and, xor, not, shr, shl)
- adds new commands to change the color palette, and also fading the display in/out for really cool graphics effects
- adds new commands that let you change message text, menu text and inventory item text dynamically
- adds new function that allows sending picture draw commands to the screen after the picture is displayed
- adds new commands to load and play sounds by variable, and also to discard sounds
- adds ability create/read/write/delete data files using string values
- adds support for words in WORDS.TOK to start with non-letters, and also for words to contain extended characters
- modifies 'clear.text.rect' and 'clear.lines' commands so that the color that is passed is used, instead of just using black or white; by passing negative values, the region is scrolled up instead of being cleared
- modifies 'set.text.attributes' command to allow passing colors by variable, and to allow "pushing" and "popping" the current attributes to make it easier to manage color changes
- modifies the 'get.num' command so it ignores non-numeric key presses
- adds new command to allow setting the input line text programmatically
- adds new command to allow changing internal clock to trigger 60 times a second, instead of 20, allowing more precise control over movement and cycle timing
- adds a command to create a countdown timer feature to help create accurate time triggered events and actions
- adds new command to copy the current input line or the previous input line to a string
- adds new functions to get the priority and visual colors for any coordinate location on the screen
- adds functions to allow retrieval of current date/time
- adds new function to poll the shift, ctrl and alt keys, allowing greater control over keyboard events
- adds new test command to check if a coordinate is occupied by a pixel of a given screen object
- adds new format option for message text that allows access to messages in any loaded logic resource
- adds new command to temporarily hide all screen objects on the picture display
- adds new command to allow pausing the internal game clock while the game is still running
The Power Pack source files contain a ton of comments that explain in great detail how to use each of the features. You can also examine the source code for the Demo game for additional insight as to how to use the Power Pack to give your games a powerful boost.
And you can always drop me a line here, either in the forums, or by PM if you have any questions or comments.
I want to believe that the AGI community isn't completely dead, and that this effort might inspire at least one more quality fan made game. Help me AGI Community, you're my only hope...