Whools Version History ---------------------- 04-Nov-97 ...well, I have almost finished work on the game, at least it is already in a distributable state. Today is the first day I started using a "correct" version bumping via "BumpRev", and I also decided to write a version history file - and all that after already 1 year of working on this project :-) 05-Nov-97 Fixed a bug with the cheat input routine that had appeared when I had replaced the IDCMP_RAWKEY/_VANILLAKEY use by only _RAWKEY + keymap.library MapRawKey. 06-Nov-97 Increased the delay between the steps of the screen shaking effect of the mine explosion. 09-Nov-97 Now opening Screen and Window with OpenScreenTagList/OpenWindowTagList, resp. Screen's initial colors 0 and 1 are now black, the SCREENQUIET flag is set and the SA_ShowTitle tag is set to FALSE, so the screen title or gadgets won't flicker anymore on opening the screen. WA_RptQueue is now set to 0, so I could throw out the "forget IEQUALIFIER_REPEAT messages" code. We will simply never get any repeat messages anymore. Fine thing. 10-Nov-97 Pointer's initial colors (17,18,19) set to black now, too... Stopped usin' BumpRev for version enumeration; it's too unflexible IMHO (just imagine I would have started using BumpRev right from the beginning of development... the version number would be astronomically high at this time %-) 13-Nov-97 Reduced flickering of scrolling map at the beginning of each level once more. Now scrolling 3 pixels each cycle with a delay of 19000 mics. Still is very ugly if Workbench is open on my good ol' B2000 with 68k only, but the only way to get rid of it completely would be a Forbid() - hope I'll find another solution. - BTW, I'm still waitin' for the new gfx from Phil, hope his computer will be OK soon... 14-Nov-97 Got a letter from A. Knötig this morning, who told me that I had to wait for an answer for such a long time cuz he hadn't received an answer from Phil Wilkinson up to the last week. He says Mr. Wilkinson wants the game to be "more complete"... Did some internal improvement to the "render_text" routine: Now understands a more flexible argument array with "normal" null-terminated strings instead of the fixed length. Made a game intro which puts up a small text (I WANNA TELL YOU A STORY...). I'd like to build a "complete" story onto that, which is continued after each level/stage/chapter. Re-introduced RMB fire. 15-Nov-97 Created a variable called "font_nestcnt" which counts how often load_font has been called without free_font. load_font won't load the font if font_nestcnt is other than 0, and free_font won't remove it if font_nestcnt is still greater than 0 after decrementing. This technique is comparable to the OpenLibrary open count concept. Task priority is set high now while shaking the screen, too. "Re-removed" the story, temporarily replaced it by "A 5TH DIMENSION SOFTWARE GAME". Wrote a useful subroutine called "wait_ports" which allows to wait for messages from multiple ports at a time just as comfortable as for 1 port (using WaitPort()). wait_click_timeout timing is now done via timer.device, which is _MUCH_ more precise and machine speed-independent than IDCMP_INTUITICKS. Removed a superfluous "bsr fetch_msg" in wait_click (I wonder why this command hadn't caused a bug?!!). The VBLANK (second) ticker is stopped now when the game is paused. Added a Forbid()/Permit() pair to wait_ports. Changed the intro text again, this time to "THIS IS AN INCOMPLETE DEMO VERSION". Now ALL colors are set to black at startup, using a dynamically created array. Changed the default hiscores. Fixed a minor bug in "bindec" that occured when the number to convert was 0 and caused the 0 to be left- justified even if BINDECF_LEFTJUSTIFY was not set (I encountered this bug when I set Bill Gates' score to 0... ;-). I think I should rewrite the bindec routine and make it more modular. 18-Nov-97 Level number, number of whools to shoot and password are now displayed together on one screen. Fixed some minor bugs in wait_ports and made it a little bit smaller. 19-Nov-97 Fixed a timer.device-related bug in the screen shaking routines, which had indirectly caused some clicks to be ignored by wait_click_timeout. 22-Nov-97 Making use of IOF_QUICK now in audio.device handling (may take a few less cycles). 23-Nov-97 Started developing a level editor (was Alfred Knoetig's suggestion, though I already had the idead myself...). 25-Nov-97 Did some work on the level editor. Made a minor change to the program's cleanup/exit code. 27-Nov-97 Did some work on the level editor. 29-Nov-97 Did some work on the level editor. Coded a new subroutine pair "alloc/free _rastport" which provides an easy means of allocating complete and usable RastPorts. "allocbitmap" supports BMx_CLEAR now. 30-Nov-97 Fixed 2 :-( bugs in "allocbitmap"'s BMx_CLEAR support routine, and included support for memory allocation failures in the same subroutine (which I simply had forgotten). Again, did some work on the level editor; will be complete and usable soon (maybe this night...?). Did some branch optimizations by hand (just for fun :-). 01-Dec-97 Added friend BitMap support to alloc_rastport. Was easy - just had to delete one command ;-). 03-Dec-97 Did some more branch optimizations by hand. Removed my "nop subroutine", replaced it by branching to local labels (.ret). "do_buttons" accepts NULL function pointers now; has the same effect as providing a pointer to an rts. And again, I did some work on the level editor, which I want to be in a presentable state when I release the demo... It's now possible to really edit the level, not just to look at the map (well, at least it should be possible. Doesn't work correctly at this time - *sigh*...). 04-Dec-97 We just had midnight, and I've found the bug in the level edit routines. Now it's REALLY possible to edit the level (though there's no way to PLAY it currently). Did some small optimizations (mostly move/moveq stuff and branches). When started from CLI, the program puts out a small text now. Changed qualifier key handling a little bit. 05-Dec-97 Implented support for a "global vector" in do_buttons, i. e. a vector that is called for any valid click. Useful for "click" sounds and the like. 06-Dec-97 Expanded the "THIS IS AN INCOMPLETE DEMO VERSION!" text with a list of planned features. Fixed a bug in init_level (start direction was wrong). 07-Dec-97 Started implenting joystick support (only internal things are done yet). 08-Dec-97 Joystick/joypad implentation works. Fine option for CD32 users :-). Changed fetch_msg: It now waits for a message from the gameport device or from our windows IDCMP and is able to fetch both types of inputs. Recomposed main msg loop, is more modular now (uses more subroutines instead of in-line code). 09-Dec-97 "kill_all_msg" flushes gameport buffers now, too. 10-Dec-97 Sent the final demo version to A. K., which has only have 3 levels, no cheats and another "won pic". THIS IS THE FIRST VERSION RELEASED TO THE PUBLIC!!! Now I'll continue developing the full version, starting with removing the demo stuff (text screens etc.) and with some minor optimizations... 12-Dec-97 Minor change to level editor: Map field is only drawn on click if the type is different from the current. 13-Dec-97 It's now possible to edit the map in the level editor by holding the mouse button down. Optimized my "sound engine"; the "audio pending" flags that took a byte each are now replaced by one flag byte with bit flags. 14-Dec-97 Added "Save And Exit" button to the level editor (though it currently has no effect). 17-Dec-97 If the game is started on December, 24th, a small text ("MERRY CHRISTMAS!") shows up at start. 24-Dec-97 The small gag from 17-Dec-97 seems to work ;-). Wrote a new macro "ADDSCOR" which I now use for incrementing score; it takes care of MAXSCORE. 29-Dec-97 Included a new options pic with buttons for difficulty and for the level editor. Started splitting up source. Found & fixed a bug in allocbitmap (graphics.library version had been tested in a wrong way... oops! That's in the demo ;-). 03-Jan-98 In the recent days, I continued splitting up the code into several generally usable object modules and started writing autodocs for those functions. Fixed some minor bugs and wrote some new subroutines, but nothing that's really notable in the game. When the priority is set back after increasing it, it is really set _back_ to the old value, and not to the default value (0). 04-Jan-98 Again some smaller changes and modulization. 05-Jan-98 Again... 06-Jan-98 Fixed a bug in the leveleditor "clear" subroutine, which ran into the "move up" subroutine by accident (forgot an rts). 07-Jan-98 Difficulty level is now selectable (though the choice has no effect on the game yet). 09-Jan-98 Editor level is now selectable, too (but the choice has now effect either). It's possible to start normal game level 1 from the options pic by pressing the fire button now. 10-Jan-98 The editor levels can now be loaded and saved. They're stored in "data/levels". You can't select the empty field in the level editor anymore, you must use the right mouse button to delete fields. 11-Jan-98 Fixed a bug that caused the whools to stop moving when you tried to beam to an occupied field. Replaced sound of weapon 3 by a new one. Think it sounds better. 13-Jan-98 Changed the sound of weapon 3 a little bit (echo etc.). 16-Jan-98 You can now play the custom levels. 17-Jan-98 Load/free_snd uses alloc/free_file now. 18-Jan-98 The change from yesterday didn't work - does now. 21-Jan-98 The resources allocated for the main game would not be freed after a won custom game - fixed. 24-Jan-98 The sound replay and audio.device opening/allocating functions are now in an external object module (sound.o).