Short: *Wonderful magic wand for menus and screenbar* Author: Tomasz Wiszkowski Uploader: Tomasz Wiszkowski Type: util/wb Version: 1.0 Architecture: m68k-amigaos Name: 2b_Spiral Status: *audioware* IMPORTANT NOTES BELOW - = PLEASE READ = - = PLEASE READ = - = PLEASE READ = - INTRODUCTION: So many things have changed, so many wonderful improvements... uhh I am so happy being able to present You my latest invention that I don't know what to start with... You have to see it for yourselves! Fifth release so far! Fifth..? yes, but first THAT nice :) I believe that mostly gfx-card and/or faster machine users will be happy seing this what I see on my screen at the moment.. well, the improvements work also pretty nice on slower machines, so You better check out what You can do :) Few weeks ago I received a mail from spiral user, who felt a bit disappointed, since he thought it will at least place an animated spiral on screenbar. Well, then... if You want an animated spiral, this shall not be a problem now! Just to prove it: I just watch an animated "waterfall" on my screenbar.. it really impresses me 8D. now it is YOUR turn to take care of spiral development! I will of course send updates, but I WANT TO SEE YOU writing at least -one- plugin for it! not really much, is it!? Another step forward is the configuration file. I decided to skip the obsolete and a bit inflexible way and switched to config file. this shall be easier for You and me. Please take a look at example configuration file to see what it can do. CONFIGURATION: there is an easy and flexible way to configure spiral. All You need is just an editor and patience. Configuration file uses some keywords which will be now introduced. Spiral picks default configuration from "ENV:Spiral.config" directory 1. SCREEN This is the most important keyword in config file. spiral will not work if this one is not present. it is the name of public screen which will be patched. 2. BARROUTINE This specified a path to plugin [library] which will be used to render all those beauties You will see on Your screenbar. If not present or equals to "pattern", a simple pattern filling routine will be used 3. MENUROUTINE It is nearly same as barroutine, the difference is: it is not really supported, yet. You may either skip it or set it to pattern. All other things will be ignored. 4. BARPATTERN, MENUPATTERN if 2) and 3) are set to pattern [or omitted], these two point to imges which will be used to fill barlayer and menus respectively 5. AMIGA, LOGO, CHECKMARK0, CHECKMARK1, RADIO0, RADIO1, SUBMENU these seven keywords shall be followed with path to images representing a given thing. Amiga is an Amiga key image, Logo is a screenbar logo a. s. o.. Soon I will probably introduce anims. 6. EXTRAWIDTH, EXTRAHEIGHT these are used for menu rendering and represent extra width and extra height respectively for each menu item 7. LEFTOFFSET, IMAGEOFFSET here You can specify offset between left frame and text/checkimage and between optional checkimage and menu title. Experiment to see what it does exactly. 8. Comments All the comments begin with hash-mark ["#"] PLUGINS: You will find two in current release, these are: 1. aga_waterfall.spiral 2. aga_fire.spiral both were designed for AGA only machines [sorry, I am too poor to buy myself gfxboard]. Both eat config files: 1. ENV:Spiral/AGA_Waterfall.config for waterfall 2. ENV:Spiral/AGA_Fire.config for fire. please, don't blame me that something doesn't look exactly as it should. My demo coding skills aren't THAT impressive ;) But back to topic. Since both config files look same, I won't write separate docs about each. So. 1. COLOUR this is a colour definition. The more times it appears, the better results You may get, but also, I don't think this would have sense to define more than 8 colours. "COLOUR" has to be followed by a single number which represents pen number. Please note that pen declaration order is important! 2. SPEED speed of Your animation. 8 is a good idea for most machines. 2. Comments Comments shall be preceeded with hash-mark ["#"] DEVELOPER INFORMATION: if You are interested in writing plugin for spiral, the rules are very easy. Each plugin is a, uhm, library. Why library? well, it is the most commonly used plugin file in Amiga OS thus I think it is not a bad idea. Moreover, libraries are supported by most Amiga compilers... but back to topic. Spiral uses only three functions of each library: 1. Function at -30(A6) is an init code. Arguments are passed in -. A0 (rastport) -. D0 (width) -. D1 (height) Your plugin has to make entire initialization here [well, unless it is not done in library startup code ;)]. It's really suggested that You do allocations and parsing here. Result of Your function is a delay which will occur between each Render() calls. if You return 0, your render routine will be called only once, at the beginning. 2. Function at -36(A6) is the rendering routine. Argumens passed are exactly same as for Init function (that is: A0 for rastport, D0 for width and D1 for height). You shall do all Your calculations here and blit the results to given rastport. 3. Function at -42(A6) is an exit routine. it does not get any parameters at all Each spiral plugin is recognized by so-called magic value. the magic value is located right after library base, that is at offset 34(A6). You shall place a long 'SPRL' there so that the program knows it is a plugin. Of course, You should do it in libinit code, before OpenLibrary() returns. PLEASE DO REGISTER I have noticed really small interest in spiral from Your side. It means that either I am one of the very few Amiga users on this world, or You are too lazy to send me at least "greetings"... if it keeps going that way [I haven't received even a floppy so far] I will stop the development.. the status hasn't changed so far. It's still audioware and I really hope that You will support software development this cheap way. CDRs and floppies are cheap even here although their prices grow up slowly ;). for shorter files like chip mods etc even email attachment would be appreciated, but please, not too much hehehe :) I still believe that there are at least SOME people who would send me their feedback.. My address: Tomasz Wiszkowski ul. Katowicka 23/4 44-335 Jastrzebie Zdroj POLAND THANKS: I'd like to thank the following persons: - Steven Croy - the only man who discovered betatesting abilities in himself so far ;) Thanks! - Martin Kuchinka - for great mails, support and frienship :) - Thomas Richter - for ideas, clues and help - all the persons who mailed me about spiral - all the artists making music on this world ©2001 Tomasz Wiszkowski / Bla Bla Productions History: 1.0a -. Finally done the menu checking (haven't thought this will be so easy) -. Fixed a bug causing mutual exclusive menus being displayed as checkable -. Introduced configuration file -. Menus and barlayer may use different patterns now -. Fixed bug with birdie -. PLUGIN support for bar layer! 0.31a -. Delayed submenu opening -. Submenu marker -. Fixed several bugs 0.3a -. Introduced graphics markers in menus -. Completely changed the input handling method -. Fixed RMB button behavior -. Fixed several smaller bugs 0.2a -. Introduced menu routines -. Fixed bug with birdie -. Many smaller or bigger bugfixes 0.1a -. Initial release