IntroMaker v1.0 --------------- by NiKoDeMoS midctf@quakemania.com http://www.quakemania.com/midctf/ IntroMaker is a "processor" of macro directives for generating intro messages in QuakeC. Currently, IntroMaker expects a configuration file called "intro.cfg" to design the intros. This file is sort of a "command file" which instructs the compiler to generate the intro code. There are several functions currently available, and will be many more the final release. IntroMaker currently outputs the file "intro.qc". To invoke the intro, simply link "intro.qc" in "progs.src" before "client.qc" then add a call to Intro() in PutClientInServer(). To get an example intro.qc, simply type "intro" at the command line. IntroMaker takes two command line parameters: -config <configname> specifies an alternate config file name. Any extensions must be included. -outfile <outfilename> specifies an alternate file to output to. Any extensions must be included. Example: To use demo.cfg as the input file and generate server.qc, type intro -config demo.cfg -outfile server.qc IntroMaker has very basic error checking. It does not expand the entire line, gathering only the information that it needs. Be careful when designing statements. A sample .cfg file is included. IntroMaker was designed using gnu-win32. Therefore, the DOS and Linux based executables are from the same, exact, unmodified source. All numbers must be in the form xx.xx. At least one leading zero is required, so .1 should be 0.1. All text must be enclosed in quotes. Special characters are supported, so "type \"help\" for help" is a valid text string. Any lines that don't begin with $ are ignored. Any text after a command's parm list is exhausted will be ignored. The following commands are recognized. [optional] <required> $start [showfor] [delay] This sets up the start of the intro. Every file must have one of these. [showfor] sets how long the first message will be displayed [delay] sets how long before the first message is displayed Defaults are 3.0 for show time and 0.1 for delay. $showfor <showfor> <showfor> sets the amount of time for the next message to be displayed. This does not apply to the next $showtext but rather allows the next $showtext to set up for the subsequent $showtext or $end. $delay <delay> <delay> sets the delay between the next $showtext and the subsequent $showtext and/or $end. $settext "<text>" <text> sets the next message to be displayed $showtext [showfor] [delay] This command will display the current text. It also sets up the amount of time and pause between the next message to be displayed. You can optionally set these values. Please note that the [showfor] time pertains to the next message, not the current one! [showfor] sets the amount of time the next message will be displayed [delay] sets the delay between this and the next message $pan <dir> <type> <frames> <time> This will introduce a "pan" effect. The text will scroll on/off the screen. <dir> specifies the direction: L for left, R for right. <type> specifies the type: I for in, O for out (O will leave you with a blank screen at the end). <frames> specifies how many frames to show. The less frames, and the jerkier your "pan" effect. There must be less frames than the length of the text. <time> specifies the time it will take to complete. For a framerate of 30ps, you would specify 30 frames and 1 second. This is NOT recommended, you should definitely play with these values until you get the desired result. Example: scroll all the way across the screen $pan L I 30 3 $pan L O 30 3 Example: scroll onto screen, then back off $pan L I 30 3 $pan R O 30 3 SPECIAL NOTES: $end is an implied $showtext, so if you wish to complete your intro with a $pan command, make sure to $settext " " before the $end so it doesn't display anything. $implode <frames> <time> This will implode (collapse to the center) the current text. <frames> is the number of frames to use. This must be no greater than half the characters of text. <time> is the time it should take to complete the implosion. $explode <frames> <time> This will explode (expand from the center) the current text. <frames> is the number of frames to use. This must be no greater than half the characters of text. <time> is the time it should take to complete the explosion. $end End controls the end of the intro. Please note that the code is generated to display the last message for the time specified. This command implies a special $showtext for the last message to be shown. Because of this, the following syntax is correct: $start 3.0 0.1 $settext "test" $end This will show "test" after a 0.1 delay for 3.0 seconds and then remove itself. Please note the following: $start 3.0 0.1 $settext "test" $showtext $showfor 2.0 $delay 1.0 $settext "test2" $end Will NOT show the last text for 2 seconds. It will show it for 3. The settings always apply to the message generated after the next $showtext (in this case, the $end is an implied $showtext). The correct setting would be this: $start 3.0 0.1 $settext "test" $showfor 2.0 $delay 1.0 $showtext $settext "test2" $end The start sets up the times for the first message. The subsequent $showfor and $delay set the time for the next message after the $showtext, in this case the $end. Some examples have been included. Please send any feedback to midctf@quakemania.com Thanks! NiKoDeMoS