MASCOT REFERENCE GUIDE - rev. 1 (11/22/2000)
Written by the Members of Ferazel's Hacking at (url="http://"http://www.ambrosiasw.com")www.ambrosiasw.com(/url)
Edited by Jodeo
The following notes on Mascot, the Ferazel's Wand World Editor, are submitted by readers and users of the product, posted to the Ferazel's Hacking forum. This information is not from Ambrosia Software, nor should be considered "official" or "sanctioned" in any way, shape, or form. As publicly posted information, the following text is subject to terms of use of Ambrosia Software's web site.
The selection of topics is limited only by what is already available in the forum. The editor has no special knowledge of the program and thus NO QUESTIONS about the program should be sent to him. Corrections or clarifications should be submitted to the post in the forum titled "MASCOT REFERENCE GUIDE - 1ST EDITION". Thanks for giving.
ABOUT "INFO(n)"
All objects have properties, like how far platforms move, what directions cannons point, what treasure chests hold inside, stuff like that. The manual refers to these properties, editable by selecting an object and hitting command-E, by INFO(X) = Y, where X is an integer from 0 to 3 (there are four blanks, and the first one counts as 0, not 1) and Y is what is typed into that text field. Sticking to custom, that's how I refer to how and where one should edit a property.
BUTTONS
To make a button that opens a rock barrier, first create the button on your level, and then create the rock barrier. Click on the button and select Sprite Info and write down the Sprite # (something like #28 of 106). Then click on the barrier and select Sprite Info for it. Enter the sprite number of the button pressed in info(0) of the Rock Barrier sprite. Make the info(0) for the button = 1, because that keeps it pressed down. Otherwise, you'll need to have Ferazel find the means to keep the button down after he leaves (i.e., with a boulder).
CONVERSATIONS - INTRO AND SET-UP
Think of conversations as if (if conditions) then (goto line) else (if conditions isn't true) statements with modifiers. There can be 2 if statements each with 2 modifiers and 2 actions with 2 modifiers for each line. So let's run through the if statements:
Type in the first box:
1: true if player has <arg> coins or more
2: true if player has item of type <arg>
4: true if flag # <arg> is set
5: true if player permflag # <arg> is set to <arg2>
Now in the second box fill in the <arg> numbers. So if I want to check if the player has 30 coins I would type
1 30
...and then the line to go to if this is true. Then down in the second goto box (down after the actions) I would type the the line to goto if the if condition wasn't true.
Now let's define the actions. Type in the # for the action to happen
1: remove <arg> coins
2: give player item of type <arg> <arg2: how many>
(1: silver key, 2: gold key, 3: plat key, 4: magic potion, 5: health potion)
3: remove item of type <arg>
4: set permanent flag # <arg>
5: set player permflag # <arg> to <arg2>
(1, 2, or 3)
8: permanently validate sprite <arg> on level <arg2>
9: destroy this sprite permanently
To continue with our scenario I would type:
1 30
...in the first line of the actions, to remove 30 coins. To give the player 1 silver key I would type
2
...in the first box of the second line and
1
...In the second box and
1
...in the third box.
CONVERSATIONS - WRITING AND SEQUENCING
Now that we can give and take from the player let's create the conversation. The conversation will start at the first line and go to the next line down, unless a goto line is specified*.
When writing your conversations the character speaking must always have the name and picture ID (which you can find by opening the sprites file in ResEdit and selecting PICT resource) written down in the fields next to the conversation. To allow Ferazel to have a choice in what to say press the edit button and type in the possible responses, selecting a goto line for each response.
To have certain things happen before the conversation occurs (such as players remembering you that you came, or setting off a Permflag) use the Pre-Conversation button. Type in your if conditions and goto lines. *It is possible to control what field will be used first when you approach a character In pre-conversation actions (the button on the lower left), specify a goto line X, where X is the field that you want to go to first.
Normally you have to have if conditions in there own conversation fields, because you have selected goto lines to check for things such as coins. To do this in the conversation field type "(coin check)". It doesn't need a character name or pict ID. You can then press the edit button, and type in the if commands and goto lines. After the last line for the conversation, press the edit button, and type 20 in the last goto field of the dialog box. This ends the conversation. Remember that if your conversation branches off into different endings, that each ending has to have that goto line specify 20.
EXIT (LEVEL)
Choose "Level Exit" from the Bonuses menu. The level exit is just a sprite you can move around. To edit where the level exit goes to use place and edit map nodes. Use the links to node fields to type in the level numbers that you can exit to. If your level has multiple exits, you have to edit the level exit sprite. In the info fields type which # of the links to node field it corresponds with. If it doesn't open any new levels on the map type -1 in the info field.
FLAGS
SEE: Perm Flags
MAP - NODES
To get the map nodes to work, DO NOT TYPE THE LEVEL NO.'S IN THE EDIT SPRITE INFO DIALOG BOX FOR THE EXITS OF YOUR LEVELS! The map nodes now work fine. (Check other people's levels. It's the best way to figure out how to do something.) For further reference: 1 progresses to the next level, 2 progresses to the next-connected level in the node, -1 goes back a level. If 1 causes problems, try 0.
MUSIC
The name of the file is set in the level info. To use your own music, make a 22.05Khz Stereo 16Bit IMA 4:1 file, and name it a number. Use ResEdit to set it's creator code to 'Nqst', and it's file type to 'AIFC'. IMA is a type of compression. I suggest you use QuickTime Pro and/or SndSampler to edit your files.
PERM FLAGS
A perm flag is similar to a secret spot. If a spot has a perm flag set for it, you get certain bonuses, by entering it. Later on, you can set actions if you did or didn't enter a certain area. Example: Nimbo yells at you for stealing his money. How does he know that you stole his money? There is a perm flag on the treasure chest. Now perm flag settings are configured in the argument boxes in dialogs, but the specific number, I'm still trying to figure it out. (Perm flags have no readily apparent affect on Ferazel's hair.)
ROPES
Only leather, regular, and chain ropes work.
SCROLLS
If you want scrolls to have spells set info (0) to the spell number (SEE: Spells, below).
SIGNS
The easiest way to edit the text of a sign is to open your level with ResEdit. Create an STR# resource ID 500. Create a new field within 500 for every sign text in your world. Then, in MASCOT (the world/level editor), let the sign's INFO(0) equal the field number (created in ResEdit) with the text in it. I believe it starts with 1.
SPELLS
Here is a complete list of spells:
0: fireball
1: statue
2: ice wall
3: ice wall
4: tree
5: boomerang
6: vblade
7: ice wall- no actual ice wall though
8: density ball*
9: sand storm*
10: energy ball*
11: ice shards*
*no actual function
SPIKES
I think that FG spikes, besides the floor spikes, were taken out of the game, and that's why you don't see spikes sparkle in Ben's levels. I challenge you to find a level in Ben's levels in which he bothered to define ceiling or wall spike FG tiles; in most levels, he omitted those entirely. He always uses retracting spikes sprites, with all infos = 0.
For retracting spikes:
INFO(0): Dunno. It always seems to = 0 in those I've seen.
INFO(1): How long spikes stay up, in ticks.
INFO(2): How long spikes stay down, in ticks.
TILES - DEFINING
'Ferazel can go through walls!' You did not define the purpose of FG and/or BG tiles; if you started a level from scratch rather than copying the info from other levels (as is the norm), nothing is defined. Ferazel has no way of knowing what tiles do unless you tell them what to do. Go to "Define FG Tiles" menu item, and look for the four tiles in which spikes are embedded in the ground. type in the following in this order:
202
(skip the next four tiles, since they aren't spiked)
200
203
201
TILES - BACKGROUND (quoted post by Ben Spees)
"The background pictures are divided up into 128x128 tiles. You can set them to tile correctly across your picture with the "tile pxBack tiles" command. Or, a much easier solution is to Copy Level Info from one of the in-game levels, and paste into your level, then just change the pxBack resource ID."
TILES - CRUNCH
Click on the tile to make it a crunch tile. Keep clicking to select type.
(0) regular
(1) takes 3 hits
(2) takes a fire seed
(3) crunches under your feet
(4) requires the ice pick
(5 and up ) Unassigned (as far as we know)
FG Crunch Dir Mode changes from which direction they can be destroyed from.
TILES - LIQUIDS
Go to the Tiles menu and choose Edit BG tiles. The IDs are:
water = 200
ziridium = 203
acid = 201?
TILES - WIND (quoted post from Ben Spees)
"The Wind Current tiles are changed with the square bracket and backslash keys, if I remember correctly. I know this is cheesy but it was a very quick addition at the time. These sorts of badly-designed parts of the interface are mostly due to last-minute feature additions to the game during the crunch period right before release. Since the editor wasn't originally intended for release, you guys all have to deal with my weird interface now... sorry!"
The + and - keys change direction, followed by a click approximately on the tile where you want the arrow to point. Sometimes it points that way, sometimes it doesn't. "Plus" + seems to signify right, "minus" - left. Then, by moving your mouse into a tile corner, hitting plus or minus ONCE, and clicking, you can refine the arrow's direction pixel-by-pixel. It doesn't act as you want, sometimes.
Tiles > FG Wind Kind Edit Mode Click on where you want your wind tile. You should see an arrow pointing up with a 50. Now say you want a tile to be strength of 60. Press the ) (left bracket) key once. Now click where you want the 60 strength tile. Now maybe you want a 40 strength tile. Press the ( (right bracket) key twice. Click where you want your 40 strength tile. You just have to remember what speed you are at, because you modify the strength before you set down your wind tile. Now you go into FG Wind Dir Edit Mode and holding down the + (plus) key and clicking on the tiles the wind direction will rotate around.
TILES - WORLD WIDTH (quoted post by Ben Spees)
"The white tile problem is caused on the right side of levels that are too wide. There is a maximum width for all levels -- I don't remember the number, but Hangnabit is the widest that a level is allowed to be. If you want to create apparently "wider" levels, you'll need to divide it up vertically and place passages at the end of each row to go down to the next one. (See Fire in the Hole for an example of this.) There is a similar limitation on the vertical height of levels, but people don't usually run into that one."
_MRG - 1st ed.:) Nov. 22, 2000 _
------------------
<`{{{><
(This message has been edited by Jodeo (edited 11-22-2000).)