SCI CHANGES & UPDATES
S C I C H A N G E S & U P D A T E S | |
------------------------------------------ | |
in reverse chronological order | |
------------------------------ | |
The following is a list of changes made to system modules since 2/2/92, | |
the date of the documentation given to Larry Scott by Brian K. Hughes. | |
8/23/93 Brian K. Hughes | |
KERNEL.SH | |
Added the fileCopy subfunction to the FileIO call. | |
8/16/93 Brian K. Hughes | |
LOGGER.SC | |
Added the Reproducible field for SFTracs and eliminated far text. | |
6/18/93 Brian K. Hughes | |
MESSAGER.SC | |
Cleared the oneOnly, killed, and caller properties in the sayFormat | |
method. Failure to do this resulted in the caller not being cleared | |
when a new Cue was made, hence all Cues created by the Messager from | |
the sayFormat method had the same caller as the last one Created by | |
the say method. | |
6/9/93 Brian K. Hughes | |
KERNEL.SH | |
Added the RemapToGray and RemapToPctGray functions to the ColorRemap | |
call. | |
6/1/93 Brian K. Hughes | |
LOGGER.SC | |
Adjusted the output of some of the fields so that the SFTracs program | |
will recognize them. Also added a Reproducible field for SFTracs. | |
5/13/93 Brian K. Hughes | |
KERNEL.SH | |
Added Martin's ColorRemap calls. | |
3/2/93 Brian K. Hughes | |
KERNEL.SH | |
Added subfunction entries for (DoAudio Queue) and (DoSync QueueSync). | |
2/26/93 Mark Wilden | |
FILE.SC | |
KERNEL.SH | |
A rename method was added to class File to allow renaming of files. A | |
new kernel entry for (FileIO fileRename) was also added. | |
*2/19/93 Brian K. Hughes | |
USER.SC | |
If the event is claimed after going to the iconbar, we return out of User | |
doit: with a TRUE value. | |
EGO.SC | |
We no longer look at events in the handleEvent method if the user cannot | |
control. Ego's script will still get events first, however. | |
CONV.SC | |
In the MessageObj's showSelf method, the talker (whoSays) is first checked | |
for a value of -1, indicating a "comment" talker. In this case, the caller | |
is cued immediately and no other action is taken. | |
Also, if the message is not found we no longer exit the game. | |
INSET.SC | |
Added explicit return values to the handleEvent method, since the calling | |
object is expecing them (q.v. 1/11/93, GAME.SC). | |
SAVE.SC | |
When changing the directory, the size of the input field adjusts to the | |
size of the current directory plus enough space for "\MMMMMMMM". This | |
both A) fixes a bug where the directory name was too long and the extra text | |
trashed memory, and B) allows the user to change the directory down to | |
further levels. | |
Also, all usages of Print are now clones, which avoids changing Print's | |
default font that the game may have set. | |
TALKER.SC | |
The position of the text for viewInPrint talkers was adjusted by the width | |
of the icon to prevent the text from showing over the icon. | |
SYSTEM.SC | |
The dispose method of class Script now resets the seconds, cycles, and ticks | |
properties to 0. | |
1/27/93 Brian K. Hughes | |
SOUND.SC | |
The mute method of Sound was using mMUTE as the command to MidiSend, whereas | |
the command is actually mCONTROLLER with a parameter of mMUTE. | |
1/22/93 Brian K. Hughes | |
SYSTEM.SH | |
Added define for module QSOUND back. It was removed because it was thought | |
to be obsolete. Since then a genuine need has arisen for it. | |
INVENT.SC | |
The default value for the modNum property of InvItem has been changed from | |
0 to -1. This makes InvItems more consistent with Feature and makes it | |
possible to use module 0 for the messages. The module will be changed to | |
the current room if the value is -1. | |
SOUND.SC | |
The play method used to call the init method unconditionally, which added | |
the sound to the sounds list and inited the C sound object. Due to time | |
issues, the init is now called only if the sound is not already on the | |
sounds list. | |
1/22/93 Brian K. Hughes [Tester] | |
TESTMENU.SC | |
Setting an actor's step size now calls his setStep method instead of just | |
setting the individual properties. This eliminates the bug wherein pressing | |
escape would set the step size to -1, because the setStep method treats a -1 | |
as a "no op". | |
1/22/93 Brian K. Hughes | |
LOGGER.SC | |
SYSTEM.SH | |
TALKER.SC | |
Removed the cdAudio global. Instead, the expression (& msgType CD_MSG) | |
is used. | |
TALKER.SC | |
The gameTime is reset in the Narrator's init to compensate for times when | |
disk access eats some of the talker's ticks, making it dispose too soon. | |
[Robert W. Lindsley] | |
The wait cursor is displayed if the user does not have a mouse | |
or if the message is a non-modeless CD message. The game's volume is also | |
saved and lowered during CD messages. | |
KERNEL.SH | |
Kernel entry #135 was added for SetQuitStr. This call takes a near string | |
as its only parameter, and displays this string on the screen when the | |
interpreter exits. | |
1/20/93 Brian K. Hughes | |
INVENT.SC | |
Claimed the event if the OK button was selected. | |
1/11/93 Brian K. Hughes | |
GAME.SC | |
Messager's sayNext method return 0 in the accumulator if the message was | |
not CD_MSG. This caused Region's doVerb to return 0, which left the event | |
unclaimed, which caused a fall-through default message to be displayed | |
immediately after a room's message. Region's doVerb now returns an explicit | |
value instead of relying on Messager's return value. | |
1/8/93 Brian K. Hughes | |
INTRFACE.SC | |
Code in Dialog's handleEvent method to convert direction events (as would | |
be produced by the joystick) to keyDown/Arrow events had been erroneously | |
removed. Joysticks in dialogs work correctly now. | |
1/7/93 Robert W. Lindsley | |
SCALETO.SC | |
Changed the ScaleTo class to be real-time. | |
12/30/92 Brian K. Hughes | |
MESSAGER.SC | |
TALKER.SC | |
Messager and Narrator classes are now fully audio-compatable. Messager | |
makes use of the new (Message MsgKey) kernel call, which retrieves the | |
current message pointers from the kernel and stores them into an array, | |
which Messager allocates off heap. The array is then passed to Narrator's | |
startAudio method, via the say method. This gives the audial talkers the | |
information they need for mouth syncs and such, without requiring special | |
calls for audio messages. The message file is used as an index for audio, | |
in that only after the message has been found does the code ask for the | |
current pointers. | |
Narrator's startAudio method now accepts as its only parameter the address | |
of the message key array (still allocated off heap). | |
KERNEL.SH | |
Added an entry for the (Message MsgKey) call. | |
12/18/92 Brian K. Hughes | |
USER.SC | |
If sortedFeatures was FALSE, the event never got sent to addToPics. | |
EGO.SC | |
The approachObj bit in ego's state property is now set TRUE in his init. | |
This way, ego will always try to approach objects by default. | |
12/8/92 Brian K. Hughes | |
USER.SC | |
The (User input?) was deleted from the list of conditions by which pMouse | |
would get an event. This means that the cursor may be moved with the | |
arrow keys during handsOff. This was important for being able to use the | |
interactive text. | |
PMOUSE.SC | |
The check for the existence of an iconbar and whether the curIcon was the | |
walk icon was removed from PseudoMouse's handleEvent. If the event was | |
a walk, User handles it appropriately before pMouse ever gets a shot. In | |
addition, this bug would not allow the cursor to be moved using the arrow | |
keys if it was the walk cursor (see above change to USER.SC). | |
FEATURE.SC | |
Added an setOnMeCheck method that will set the onMeCheck property correctly, | |
according to identifying type. The syntax is: | |
(obj setOnMeCheck: type args) | |
where 'type' is one of ftrDefault (onMe if in nsRect), ftrPolygon (onMe if | |
in polygon), or ftrControl (onMe if on control color). 'args' will be the | |
object ID of a polygon for ftrPolygon type, and multiple control color | |
defines for ftrControl type. ftrDefault type takes no other arguments. | |
In addition to setting the onMeCheck property, setOnMeCheck also manages | |
the onMeIsControl bit in the state property. This bit eliminates the bug | |
caused when a bit map of controls is the same as the address of an object | |
or $6789 (ftrDefault). | |
The onMe method was rearranged slightly to better evaluate the three types | |
of checks, and the onMeIsControl bit was checked for ftrControl type. | |
Also, a new state bit, approachObj, is checked to see if ego should approach | |
objects. If the bit is not set, ego will not approach, regardless of the | |
objects' approachVerbs. | |
SYSTEM.SH | |
Added defines for ftrPolygon and ftrControl, and state bit defines for | |
onMeIsControl and approachObj. | |
12/7/92 Brian K. Hughes | |
ACTOR.SC | |
The ignoreBlocks method attempted to delete items from the blocks list | |
without first checking to ensure that the blocks global points to an | |
object. Hence, invoking ignoreBlocks without having invoked observeBlocks | |
would result in a PMachine NAO $0. | |
GAME.SC | |
The call to GetCWD in Game's play method has been removed. The interpreter | |
now fills in the curSaveDir buffer with the default directory, which may | |
not necessary be the current working directory. | |
12/1/92 Brian K. Hughes | |
INTRFACE.SC | |
Removed MapKeyToDir in DText handleEvent (not needed). Also, made event | |
global instead of local to check the rectangles. | |
PRINT.SC | |
Clones of Print are now stored in temps so that the &rest won't screw up | |
the stack. | |
11/10/92 Brian K. Hughes | |
INTRFACE.SC | |
Called super's handleEvent from DText handleEvent to insure that the return | |
value gets set just as it would if DText had no handleEvent. Also reset | |
the event type to nullEvt and claimed to FALSE so that the dialog will not | |
go away if the event is within a rectangle. | |
PRINT.SC | |
All procedures (Prints, Printf, GetInput) now clone Print instead of using | |
the class. | |
11/6/92 Brian K. Hughes, Robert W. Lindsley, Mark Wilden | |
GAME.SC | |
Class Game's doit: method now disposes of a modelessDialog if it runs | |
out of time. This allows modelessDialogs to time out the same way modal | |
dialogs do. | |
Class Game's replay: method now sets the wait cursor only if user can't | |
input AND user can't control. | |
INTRFACE.SC | |
Added support for interactive text in DText class. This required adding a | |
handleEvent method that checks to see if the event is within any rectangles | |
created in the text. If so, the doit method of a global piece of code | |
(pointed to by the textCode global) is called and passed the rectangle | |
number (0 relative). If there is no code, DText will ignore the rectangles. | |
SYSTEM.SH | |
Added the textCode global, which points to a piece of code to handle | |
interactive text response. | |
11/5/92 Brian K. Hughes | |
FLAGS.SC | |
A bug in the way in which the array was being accessed in the setSize | |
method was fixed. | |
GROOPER.SC | |
If the client's loop was fixed, the doit: method of GradualLooper was | |
bailing out before it's caller was set, preventing the caller from being | |
cued. | |
11/2/92 Mark Wilden | |
FILE.SC | |
The writeString method now returns TRUE if no error condition exists, | |
and FALSE if an error occured during file (or printer) access. | |
10/29/92 Brian K. Hughes | |
INVENT.SC | |
A bug was fixed whereby the select: method of the Inventory's okButton | |
was getting called twice. This meant that the user had to click twice | |
on the button to get out of inventory. | |
10/28/92 Brian K. Hughes (from Bob Fischbach) | |
GAME.SC | |
Added passing &rest to handsOffCode and handsOnCode. | |
10/27/92 Robert W. Lindsley | |
ICONBAR.SC | |
If the user does not have a mouse, the cursor is changed to the INVIS_CURSOR | |
when displaying a help message. The cursor is returned to normal upon | |
dispose of the message. | |
No-click help is unaffected. | |
10/26/92 Brian K. Hughes (from Cynthia Hardin) | |
ACTOR.SC | |
A small fix was made to the inRect: method that made the bottom and right | |
of the rectangle inclusive. If the point in question is on the bottom or | |
right edge, it will now return TRUE (in the rectangle). | |
MESSAGER.SC | |
The talkerList property was removed, and instead of creating a dynamic | |
Set to hold the talkers' ID's an instance of Set is now used. This allows | |
us to override the Set's dispose method to pass along Messager's dispose- | |
WhenDone property. | |
If the Messager's disposeWhenDone is TRUE, the talkers will be "put to bed" | |
after a sequence of messages is complete. If FALSE, they will stay on the | |
screen. This can be useful when a sequence must be performed manually via | |
a script, but you do not want the talkers to go away (flash) between | |
messages. | |
10/26/92 Brian K. Hughes | |
TUTORIAL.SC | |
ICONBAR.SC | |
INVENT.SC | |
SYSTEM.SH | |
Added Tutorial class. Tutorial is a kind of Script that is meant to | |
be put on the game. It allows the programmer to specify icon items that | |
the user is required to select for the script to continue. There are three | |
methods that the programmer will use: | |
changeState: used as in a normal script | |
waitFor: used to specify which icon item is the 'trigger' | |
report: used to display messages in the 'wrong' case | |
As long as the user does the actions specified by the Tutorial, the Tutorial | |
will cue right along, just as a normal script would. If the user makes a | |
wrong choice, the Tutorial can be made to display negative reinforcement | |
messages. The main advantage of the Tutorial class is that it uses the | |
existing IconBar and Inventory. | |
Here is a sample Tutorial: | |
(instance rm100Help of Tutorial | |
(method (report objOrVerb) | |
(++ numTries) <- a property! | |
(switchto state | |
( | |
(switch numTries | |
(1 (messager say: HELP NULL NOT_WALK 1) | |
(2 (messager say: HELP NULL NOT_WALK 2) | |
(else (messager say: HELP NULL NOT_WALK 3) | |
) | |
) | |
( | |
; We will get handed either the incorrect object or | |
; the incorrect verb | |
(if (IsObject objOrVerb) | |
(switch numTries | |
(1 (messager say: HELP NULL NOT_EGO 1) | |
(2 (messager say: HELP NULL NOT_EGO 2) | |
(else (messager say: HELP NULL NOT_EGO 3) | |
) | |
else | |
(switch numTries | |
(1 (messager say: HELP NULL NOT_DO 1) | |
(2 (messager say: HELP NULL NOT_DO 2) | |
(else (messager say: HELP NULL NOT_DO 3) | |
) | |
) | |
) | |
) | |
) | |
(method (changeState newState &tmp [str 50]) | |
(switchto (= state newState) | |
( | |
(self waitFor: | |
(theIconBar at: walkIcon) NULL {Click on the walk icon} | |
) | |
) | |
( | |
(Message MsgGet HELP NULL PROMPT 1 @str) | |
(self waitFor: ego DO @str) | |
) | |
) | |
) | |
) | |
10/23/92 Brian K. Hughes | |
INTRFACE.SC | |
Code was added both in Dialog and DItem to make the highlighting feature | |
follow the mouse. This prevents the problem caused when a user moves | |
the highlight to a control using the keys, them moves the mouse over a | |
second control and presses ENTER. Under the old system, the first | |
control would be selected, but now the highlight will follow the mouse | |
to the second control and it will be selected by pressing ENTER. | |
RANGEOSC.SC | |
RangeOsc class. Syntax is: | |
(prop setCycle: RangeOsc howMany firstCel lastCel caller) | |
Additional information is listed at the top of the file. | |
GAME.SC | |
Added handsOffCode and handsOnCode properties and handsOff and handsOn | |
methods to class Game. The methods simply alter user control and, in | |
the case of handsOff, kill ego's mover. The methods are setup to check | |
the properties first and, if the property holds an address to an object, | |
call that object's doit: method instead of the default functionality. | |
For example, a specific room might require that some icons be disabled | |
on handsOff. An instance of code in that room could be attached to the | |
Game's handsOffCode property, and that code will get it's doit: called | |
instead of the default handsOff method's code. | |
10/20/92 Brian K. Hughes | |
REGPATH.SC | |
For whatever reason, this file was not included in the system when it | |
was upgraded in February '92. In addition to the original RegionPath | |
class, the ability to reverse the motion through the points was added | |
by Randy MacNeill. | |
10/16/92 Brian K. Hughes | |
FEATURE.SC | |
WRITEFTR.SC | |
SYSTEM.SH | |
A new method, setName, and a new property, state, was added to Feature | |
class. The setName method can be used to change the name of the feature, | |
dynamically allocating space for it off the heap. A new bit, dynamicName, | |
is set in the state property to indicate dynamic name allocation. The | |
dispose method checks this bit to determine if the name needs to be de- | |
allocated. | |
The Feature Writer takes advantage of this new naming ability to allow | |
users to create features, attach message parameters to them, and have | |
them remain active in the game after the Feature Writer has been disposed. | |
10/14/92 Brian K. Hughes | |
ICONBAR.SC | |
The hide method now checks to ensure that the helpIconItem is an | |
object before trying to turn off its translator bit. This prevents | |
PMachine NAO's in games that do not have help icons in their iconbars. | |
10/7/92 Brian K. Hughes | |
GAME.SC | |
The conditional compile directives were changed to follow the new | |
format (i.e. #ifdef instead of IF). | |
SYNC.SC | |
The random loop in MouthSync's doit: method to cover for a sync cel | |
that was invalid has been removed. We can assume that the sync will | |
give MouthSync a valid cel number, so there is no need to check for | |
range violation and generate a random number, which process involved | |
several additional messages and a kernel call. | |
10/6/92 Brian K. Hughes | |
KERNEL.SH | |
Entries were added for two new kernel calls, ShowMovie (#133) and | |
SetVideoMode (#134). | |
INVENT.SC | |
The ESC key now produces the same result as clicking the mouse on | |
the OK button. | |
9/23/92 Brian K. Hughes | |
ICONBAR.SC | |
The iconbar did not transfer the message property of the curIcon (or | |
curInvIcon) to the event properly if the event was a keyDown/ENTER. | |
GAME.SC | |
Changed references to the Sounds list (from change of 9/16/92) to refer | |
to the sounds global instead. | |
ACTOR.SC | |
In addition to checking the noStepScale bit in the scaleSignal, Actor's doit | |
now also checks to see that the actor is scaling before trying to adjust its | |
stepSize. | |
TALKER.SC | |
Added full audio support for talkers. | |
Also added the ability to control the length of time a talker talks by | |
modifying the value of the textSpeed global. This global can be linked to | |
a slider to let the user control the talker time. | |
MESSAGER.SC | |
The oneOnly property now gets set to TRUE in the sayFormat method, which | |
will prevent the messager from calling the sayNext method after the message | |
is done. | |
FLAGS.SC | |
The array property is checked in the init method now, and if it is non-zero | |
the flags will not reallocate new space. Similarly, the array property is | |
reset to 0 in the dispose method. | |
INVENT.SC | |
The nsTop property of IconItem, which defaults to -1, is now set to 0 in the | |
drawInvWindow method of Inventory, just prior to determining its final | |
position. This prevents the top row of pixels in the IconItem's cel from | |
being overwritten by the window itself. | |
9/16/92 Brian K. Hughes | |
GAME.SC | |
The Sounds list was misspelled several places, leading to confusion | |
between it and the Sound class. | |
9/10/92 Brian K. Hughes | |
GAME.SC | |
Game's doit: method now exits early if a fastCast exists after the call | |
to Animate. This would indicate that a talker has been initiated from | |
someone's doit, and that next cycle the game will lock itself into the | |
fastCast processing loop. Exiting the doit method early prevents the | |
user from getting a doit, which can lead to unexpected results if there | |
is an event waiting in the queue. | |
MESSAGER.SC | |
The Messager now passes messager parameters to Talker, which will use them | |
ONLY if the message has an audio component. This allows the talker to pass | |
the parameters along to the DoAudio call. For non-audio talkers, the extra | |
parameters are ignored. | |
Note: This does not enable you to use the talker independent of Messager. | |
PRINT.SC | |
Print's font now defaults to the userFont for each item that uses a font. | |
This prevents having to specify (Print font: userFont) in the game's init | |
method. | |
Also removed some debug code from addTitle. | |
SYSTEM.SH | |
A complete list of resource type defines was added, using a new naming | |
convention. Resource type defines will now be prefixed with 'RES_' to | |
differentiate them from other defines. The original list has been left | |
in for backward compatability, but will be removed shortly. | |
SYNC.SC | |
Various small changes, mostly by Dan Carver. | |
Largest change (and most significant) is that the syncs are now identified | |
by standard message parameters instead of message number. | |
9/2/92 Brian K. Hughes | |
ACTOR.SC | |
Modified all the code that sets the scaleSignal to make sure it ORs the | |
appropriate information into the existing scaleSignal, instead of just | |
assigning the property to the new value. This insures that any other bits | |
set in the scaleSignal (like noStepScale) will be preserved. | |
GAME.SC | |
The doit method of game is now exited if there is a fastCast after the call | |
to Animate. | |
This fixes a very obscure bug, in which a call to Messager say: | |
originated from the doit of a cast member. After the call to Animate, there | |
will be a fastCast (because the talker created it), yet the game's doit: is | |
still not done with the current cycle. At the end of the cycle the doit | |
method of User is called, which polls for a new event. If there is an event | |
waiting, new processes with new messages may be spawned even though there is | |
a fastCast waiting. | |
This fix is obsolete as soon as the new versions of Talker and Messager (no | |
fastCast!) are checked in. | |
8/31/92 Brian K. Hughes | |
ACTOR.SC | |
Moved the (avoider doit:) code outside the cond in which the (mover doit:) | |
code resides in Actor. The actor's avoider now gets a shot regardless of | |
whether or not the actor has a mover. | |
A new scaleSignal bit, noStepScale, was added. If this bit is on, the actor | |
will not recalculate its stepSize each doit. | |
SYSTEM.SH | |
Added the define for noStepScale and the define for the FLAGS module. | |
SOUND.SC | |
The mute method of Sound was changed to allow a single channel to be muted. | |
In addition, the same code (MidiSend) is now used in a loop to mute all | |
channels, allowing us to remove the MuteSound procedure from MIDI.S. The | |
format for the mute method is now: | |
(sound mute: trueOrFalse [channel]) | |
If 'channel' is not specified, the mute/unmute operation will be applied to | |
all channels. | |
8/25/92 Brian K. Hughes | |
MESSAGER.SC | |
In Messager's sayFormat method, &rest was not being passed to the | |
FindFormatLen procedure and Format kernel call, thus only the first argument | |
passed was being formatted into the control string. | |
8/21/92 Brian K. Hughes | |
SYSTEM.SC | |
The EventHandler class was checking for (event claimed?) instead of | |
(evtClone claimed?) as one of the conditions for dropping out of the loop. | |
Also, made sure to dispose of cloned event before returning. | |
PAVOID.SC | |
Made sure blocker has a mover property before trying to access it. This bug | |
caused PAvoider to PMachine if the object blocking ego was not an Actor or | |
subclass of Actor. | |
8/21/92 Brian K. Hughes | |
FEATURE.SC | |
EGO.SC | |
Made the handleEvent method actually claim the event instead of just return | |
a TRUE if the event should be claimed. (Reverse of change made 7/31/92) | |
8/21/92 Brian K. Hughes | |
POLYEDIT.SC | |
References to currentPalette, an obsolete global, have been removed. | |
8/20/92 Brian K. Hughes | |
ICONBAR.SC | |
The iconbar now references the loop used for the current inventory item with | |
no modifiers. The code used to always add 1 to the loop number because it | |
assumed a specific order to loops in the inventory view. | |
The gameTime global variable is now updated inside the iconbar's doit loop. | |
This ensures that talkers and other real-time objects launched from the | |
iconbar (or subclass) will set their timings correctly. | |
A bug was fixed wherein if the iconbar's curInvIcon is 0 the iconbar will | |
not try to reference its type or message. | |
8/19/92 Brian K. Hughes | |
GAME.SC | |
Removed subtitleLang and parseLang properties and setSpeed, checkAni, and | |
setFeatures methods from Game. Also removed locales list and RoomControls. | |
Also, the code throughout the module has been straightened up, made more | |
consistent in form, and comments added or updated. | |
SYSTEM.SC | |
Made the EventHandler class clone its event before sending it to its | |
elements. This avoids the problem of one of the elements executing a | |
((user curEvent?) new:) and wiping out the EventHandler's event. | |
SIGHT.SC | |
A reference to egoBlindSpot, an obsolete global, has been removed. | |
INSET.SC | |
References to currentPalette, an obsolete global, have been removed. | |
ACTOR.SC | |
Removed palette property and isExtra method from View, and findPosn method | |
from Actor. Also removed the call to SetNowSeen in Prop's doit. | |
SYSTEM.SH | |
Removed obsolete module defines, including: AVOIDER, SORTCOPY, TEXTRA, | |
MOUSER, QSCRIPT, TIMEDCUE, QSOUND, LASTLINK, PRINTD, PCYCLE, LANGUAGE. | |
Also removed obsolete global variables, including: speed, showStyle, locales, | |
aniThreshold, sortedFeatures, egoBlindSpot, demoDialogTime, currentPalette, | |
and theMenuBar. | |
Also set the default for msgType to be TEXT_MSG. | |
8/18/92 Brian K. Hughes | |
DOOR.SC | |
Door now uses module pointed to by modNum property instead of DOOR define. | |
If modNum property is -1 (default), it is set to curRoomNum. | |
8/17/92 Brian K. Hughes | |
DLGEDIT.SC | |
POLYEDIT.SC | |
WRITEFTR.SC | |
TALKER.SC | |
Replaced setting the title property in Print directly with invocations of | |
the addTitle method. Doing otherwise will cause an error because Print | |
assumes that the title property contains a pointer to allocated heap. | |
TALKER.SC | |
The ability to pass message parameters directly to a talker has been | |
removed. The code was built originally to provide some measure of backward | |
compatability, which is no longer necessary. The say: method of Narrator | |
and Talker now takes a single argument, which will be a buffer (for text | |
messages) and probably an audio number for audio messages. | |
MESSAGER.SC | |
As above, all code that passed message parameters to a talker was removed. | |
Also, error messages were made more clear and the findTalker method now | |
returns the narrator by default, after displaying a warning message. | |
8/14/92 Brian K. Hughes | |
MESSAGER.SC | |
The oldIconBarState was not being set in the sayFormat method, as in the say | |
method. | |
8/14/92 Brian K. Hughes | |
ICONBAR.SC | |
Code was added to the hide method to turn off the TRANSLATOR bit in the | |
helpIconItem's signal. This fixes a bug wherein the helpIconItem was still | |
active when entering the iconbar if it was not used before exiting the last | |
time. This only happened if the NOCLICKHELP bit was not set in the iconbar. | |
8/12/92 Brian K. Hughes | |
PRINT.SC | |
A new procedure, FindFormatLen, was added. Given a control string and its | |
parameters, FindFormatLen will return the number of bytes that the formatted | |
string will require (at maximum). | |
The addTextF method of Print was modified to make use of this procedure. | |
The addition of this procedure means that it is no longer required to pass | |
a pre-defined buffer to either Printf or addTextF. | |
8/12/92 Brian K. Hughes | |
MESSAGER.SC | |
The sayFormat method was altered to make use of the new FindFormatLen | |
procedure, instead of repeating the same code. | |
8/12/92 Brian K. Hughes | |
USER.SC | |
Code was added for speech support. First, User checks for the existence of | |
a speechHandler, and if so lets it handle the event. Otherwise, the event | |
is processed according to its type and message. | |
Also, a check for (user canControl) was removed from the cond for direction | |
events; if user can't control, only ego needs to know. This bug made it | |
impossible to move the cursor using the keyboard if the user did not have | |
control, even if it was not a walk cursor. | |
8/12/92 Brian K. Hughes | |
ICONBAR.SC | |
The findIcon method only checked as many elements of the IconBar as the | |
number of parameters you passed. It now checks all elements of the list. | |
8/12/92 Brian K. Hughes (from Chad Bye) | |
KERNEL.SH | |
Obsolete kernel functions were commented out. These include Parse, Said, | |
SetSynonym, ShowObjs, and StrSplit. | |
New kernel functions were added, including: AssertPalette, TextColors, | |
TextFonts, Record, and PlayBack. | |
8/12/92 Brian K. Hughes | |
PAVOID.SC | |
If there are no obstacles in the current room, then the avoider's client's | |
mover would have no obstacles. This condition was not handled in PAvoider's | |
doit. The code now creates a list for the mover's obstacles if there is | |
none and places the new polygon into it. The first doit cycle wherein the | |
PAvoider's client is > 20 pixels away from the blocker, the list is disposed | |
to prevent frags. | |
8/12/92 Brian K. Hughes (from Martin Peters) | |
MOTION.SC | |
The initial value of cycleCnt for cyclers was changed from | |
(- gameTime cycleSpeed) to gameTime. This forces the cycler to wait for | |
a time equal to the client's cycleSpeed before cycling the first time. | |
This bug caused the first cel of an animation loop to be skipped over | |
very fast. | |
8/12/92 Brian K. Hughes | |
GAME.SC | |
A call to the obsolete kernel call SetSynonyms was removed. | |
8/11/92 Brian K. Hughes | |
LOGGER.SC | |
The 3-character QA initials field was changed to an 8-character login name. | |
This is to facilitate the new bug reporting system from Dynamix. | |
8/11/92 Brian K. Hughes | |
FILE.SC | |
The name property had been redefined and set to 0, which caused instances | |
of the File class to become invisible in the object list. This property | |
definition was removed, allowing the name to default to the class name. | |
8/10/92 Brian K. Hughes | |
PRINT.SC | |
Added an addTitle method, which takes the following forms: | |
(Print addTitle: @buffer) | |
(Print addTitle: noun verb case sequence module) | |
8/10/92 Brian K. Hughes | |
DLGEDIT.SC | |
Window title can now be expressed as message parameters, as well as a | |
literal string. DialogEditor now writes title to SCI file. | |
8/10/92 Brian K. Hughes | |
SCALETO.SC | |
A new class, ScaleTo, has been added to the system. ScaleTo scales its | |
client from its current size to the specified size over a period of time. | |
Usage of the ScaleTo class is: | |
(object setScale: ScaleTo newSize [caller]) | |
8/10/92 Brian K. Hughes | |
MESSAGER.SC | |
TALKER.SC | |
Checks were added to ensure that theIconBar points to an object before | |
making references to it. | |
8/10/92 Brian K. Hughes | |
STOPWALK.SC | |
Code in the doit method that killed the client's mover was removed. This | |
code was not necessary for StopWalk to work correctly, and in fact made it | |
impossible to have a StopWalk cycler and Follow/PFollow mover on an actor | |
at the same time. | |
8/10/92 Brian K. Hughes | |
MESSAGER.SC | |
The ability to say a range of sequences has been added to the say method. | |
The parameter format for the say method is now: | |
(messager say: noun [verb [case [sequence [caller [module]]]]]) | |
(messager say: noun [verb [case [fromSequence toSequence [caller [module]]]]]) | |
(messager say: NEXT [caller]) | |
A frag caused by not deallocating heap space in sayFormat was fixed. | |
8/07/92 Brian K. Hughes | |
POLYEDIT.SC | |
The PolygonEditor now handles editing polygons on the altPolyList. They | |
are read into the editor as normal polygons, but a new property called | |
srcList will be set to indicate that the polygons come from the altPolyList. | |
The polygons can be distinguished by different colored lines in the control | |
screen, but as yet they are the same color on the visual screen. This is | |
due to the fact that different palettes yield unpredictable colors. | |
8/07/92 Brian K. Hughes | |
PCHASE.SC | |
The init methods of the PChase and PFollow classes was modified to call the | |
super's with variable parameters, depending on the number of parameters | |
passed to the init. This allows the re-initing of the mover done at each | |
node and when step size changes to still use the existing path without | |
adjustements. The most common manifestation of this bug was the tendency | |
for the chasing actor to cut through polygons. | |
8/03/92 Brian K. Hughes | |
TALKER.SC | |
The cueVal property of Narrator was never being reset to 0, causing a talker | |
that had been cancelled with the right mouse (or ESC) to continue to display | |
only the first message in a series. The cueVal is now reset to NULL in the | |
Narrator's dispose. | |
8/03/92 Brian K. Hughes | |
GAME.SC | |
MESSAGER.SC | |
ICONBAR.SC | |
SYSTEM.SH | |
A new class, Cue, was created for the purposes of delayed cuing. Global 18, | |
cuees, may be used as a pointer to a set that contains Cue clones. At the | |
beginning of each Game doit and IconBar doit cycle, the list is checked and | |
a doit: message is sent to each of its members. The doit: of Cue simply | |
cues the cuee, with a register and cuer as arguments. | |
This system allows Messager to cue its client after the stack has returned. | |
The problem was that Messager could cue a script, which could call Messager | |
again, without allowing the original talker to dispose correctly. | |
7/31/92 Brian K. Hughes | |
ACTOR.SC (from Dave Artis) | |
Changes were made to the order and nature of the step size calculations in | |
Actor's doit: method. These changes help reduce integer overflow problems | |
and keep the actor from spinning or "getting stuck" at very small sizes. | |
FEATURE.SC | |
EGO.SC | |
A temporary variable was added to the handleEvent methods to hold the return | |
value. Simply returning (event claimed?) is no longer reliable, since the | |
events used in the IconBar, GameControls, and Inventory are no longer | |
clones. This new variable ensures a proper return value from the handle- | |
Event method regardless of the current condition of uEvt. | |
7/28/92 Brian K. Hughes | |
FEATURE.SC | |
If no argument is passed to a feature's facingMe: method, the actor to face | |
is assumed to be ego. The method will now return TRUE if this is the case | |
AND ego is not in the cast. This prevents bugs caused by ego trying to face | |
even though he's not in the cast. | |
7/27/92 Brian K. Hughes | |
ICONBAR.SC | |
INVENT.SC | |
GCONTROL.SC | |
USER.SC | |
The new: method of uEvt (in USER.SC) was overridden to simply poll for a new | |
event record, not actually create a clone. The IconBar class and its sub- | |
classes were modified to use ((user curEvent?) new:) instead of (Event new:). | |
This reduces the liklihood of errors caused by the constant creation and | |
destruction of dynamic events. In addition, (user curEvent?) now always | |
points to the current event. | |
7/24/92 Brian K. Hughes | |
RANDCYC.SC | |
TALKER.SC | |
The old RandCycle class from RANDCYC.SC was replaced with the RTRandCycle | |
class from TALKER.SC. This brings RandCycle up to real-time. In addition, | |
a new property called "reset" has been added to RandCycle which, if true, | |
will set the client's cel to 0 upon init and cycleDone. Talkers use this | |
feature. The parameter list for RandCycle is now: | |
(prop setCycle: RandCycle timeToCycle [caller [resetOrNot]]) | |
7/24/92 Brian K. Hughes (from Kevin Ray/Oliver Brelsford) | |
EGO.SC | |
Overrode the facingMe method to always return TRUE. This prevents ego from | |
turning around when the player clicks on him in an attempt to face himself. | |
7/23/92 Brian K. Hughes | |
USER.SC | |
EGO.SC | |
ACTOR.SC | |
The Ego class was split out of USER.SC into its own module, EGO.SC. In | |
addition, the setSpeed of Ego was moved into the Actor class. | |
7/22/92 Brian K. Hughes | |
GAME.SC | |
In Game's replay method, the style used to redraw the pic is changed to | |
PLAIN if it was originally one of the scrolling styles, or if it contained | |
either HMIRROR or VMIRROR. Since the default style for a room is -1, this | |
change prevents mirrored pictures from drawing unmirrored and scrolling | |
pictures from scrolling in from nowhere. | |
7/21/92 Brian K. Hughes | |
ICONBAR.SC | |
A change that was forgotten in the work done on 7/08/92. The IconBar now | |
sets the cursor to ARROW_CURSOR before calling the doit, not normalCursor. | |
7/20/92 Brian K. Hughes | |
MESSAGER.SC | |
TALKER.SC | |
A new method, sayFormat, was added to Messager. The sayFormat method | |
takes the following syntax: | |
(messager sayFormat: talkerDefine @controlString formatParams [caller]) | |
It will format the string into a buffer of the appropriate size, then pass | |
the string to the talker. The say: method of Narrator was modified to | |
handle a single argument (a string pointer). Typical uses would be: | |
(messager sayFormat: GATE_GUARD {How are you, %s?} @egoName self) | |
(messager sayFormat: SALESMAN {That will be %d dollars for the %s.} | |
(theItem cost?) | |
(theItem name?) | |
) | |
Note that the talker define is required, since the messager will not be | |
getting the message from a message file. The (Message MsgGet) kernel call | |
will return the talker number. | |
7/20/92 Brian K. Hughes | |
MESSAGER.SC | |
Removed the one-cycle delay before disposing; messager used to put | |
itself on theDoits list, then dispose next cycle. Messager now just | |
disposes directly, when necessary. | |
Also code added 4/08/92 (q.v.) to ignore messages whose talkers are -1 | |
will be checked in now. | |
7/10/92 Brian K. Hughes | |
PATH.SC | |
In the init method, properties are set only if arguments are passed. | |
This prevents properties from getting set to the next available garbage | |
on the stack when the Path is inited with no arguments (such as from | |
Actor's setStep method). | |
7/09/92 Brian K. Hughes | |
INVENT.SC | |
The advanceCurIcon method was removed, allowing the IconBar's default | |
method to be used. The method was over-ridden to allow the user to select | |
the help icon by cycling through the icons. The removal was done in order | |
to make the IconBar and its subclasses consistent. | |
POLYPATH.SC | |
SYSTEM.SH | |
A new global, altPolyList (95), was defined to hold a pointer to a list of | |
alternate polygons. PolyPath was modified to check this list in addition | |
to the room's obstacles list. The function of PolyPath is now: | |
1) Generate an optimized path, using the room's obstacles list | |
2) Get the next target point in the path | |
3) Generate an unoptimized path to this point, using the altPolyList | |
4) If the returned end point is not the same as the point from step 2, | |
the original path is blocked by an alt poly; therefore, insert | |
an end-of-path marker ($7777) at this point | |
5) If not end-of-path, go to step 2 | |
This change allows us to have a second list of polygons without requiring | |
that they be merged into the room's obstacles list. Alt polys are highly | |
useful with Doors (see below). | |
DOOR.SC | |
This is a new class. It is based on similar Door classes by Al Lowe and | |
the Iceman group. | |
By default, Doors create a alt polygon around them to keep actors from | |
walking through them. When the door opens, the alt poly is taken off the | |
altPolyList, allowing free passage. When the door closes, it puts its alt | |
poly back on the altPolyList. This has two major advantages: | |
1) There is no way an actor can be "chicken-walked" around a door's | |
control color block by being repositioned inside the room's poly | |
2) Since control color blocks are eliminated, room's polygons can be made | |
much closer to diagonally positioned doors | |
Door doco is forthcoming. | |
TALKER.SC | |
Code was added to hide the cursor (set to INVIS_CURSOR) when a talker comes | |
up, but only if the player has no mouse. This prevents the wait cursor (or | |
similarly-large cursor-like object) from hiding the text. | |
Also, the time that a talker's mouth moves was lengthened by 33%. | |
7/08/92 Brian K. Hughes | |
GAME.SC | |
The code in the replay method of Game that sets the cursor was expanded to | |
allow for a handsOff condition. This ensures that the wait cursor will be | |
displayed if restoring a game that was saved during handsOff. | |
Code was added to the save & restore methods of Game that will check for to | |
see if the current save directory is valid, and if not ask for a new path. | |
The code will loop until a valid path is entered. | |
FEATURE.SC | |
In the handleEvent method, if we determine we will not approach the feature, | |
we now call facingMe before calling the changeState method of CueObj. This | |
allows ego to face the object before we invoke the doVerb. | |
The facingMe method now skips the actual facing code (in the notFacing | |
method) if the sightAngle is equal to the feature default ($6789). | |
GCONTROL.SC | |
Removed obsolete references to helpStr, replacing them with the equivelant | |
checks using helpVerb. Also, used Print with a set width and font instead | |
of the previous Format/Prints usage. | |
ICONBAR.SC | |
Upon exiting the iconbar code, the cursor is now set to the waitCursor if | |
the player does not have input and control. | |
When checking for a keyDown in the dispatchEvent method, the code was still | |
using the old (icon select:) methodology instead of the new | |
(if (icon select:) (icon doit:)) methodology. | |
The Print statement that displays the help message was made better looking. | |
INTRFACE.SC | |
Optimized use of event's properties by using temp variables. | |
LOGGER.SC | |
Reformatted the Print displays so that they are better spaced. | |
PRINT.SC | |
Added an optional fourth parameter to the GetInput procedure that specifies | |
a font other than the default SYSFONT. | |
SAVE.SC (changes by Gary Kamigawachi) | |
All text now resides in the message file. Dialogs pull messages for text, | |
button text, titles, etc. | |
STOPWALK.SC | |
Oddly enough, when the client begins to walk and is using a single view for | |
both walking and stop loops, there was no code to set his loop correctly for | |
walking. It was left up to the setHeading/setDirection code to handle this, | |
which caused occasional "pirouetting". | |
USER.SC | |
Checks were added to ensure that the player has control (user canControl:) | |
before processing direction events, and that the player has input (user | |
canInput:) before processing keyDown and mouseDown events. These checks | |
had gotten deleted erroneously during the first revision of User. | |
7/08/92 Brian K. Hughes | |
KERNEL.SH | |
The enum PALVARYNEWTIME was added to the PalVary entry. | |
7/02/92 Brian K. Hughes | |
ACTOR.SC | |
Fixed a bug in the match code of Prop setScale. The new (clone) scaler | |
was being improperly created, resulting in various errors. | |
Also, moved code that set the actors step sizes (Actor doit:) to before | |
the mover's re-init. This ensures that the InitBresen code will have | |
the proper step size values to work with. The mover is now only re-inited | |
if it decends from MoveTo or PolyPath. | |
6/05/92 Brian K. Hughes | |
SAVE.SC | |
Adjusted positions of yes/no buttons in the dialog for confirming the | |
deletion of a save game. | |
6/04/92 Brian K. Hughes | |
SAVE.SC | |
Escape key now produces a -1, not 0. Changed the code in SRDialog to | |
look for the right return value. | |
6/04/92 Brian K. Hughes | |
GAME.SC | |
Added Mark Hood's fix for addToObstaclesCode for addToPics. A logic error | |
caused addToPics to never create polygons around themselves. | |
Moved buttons in error dialogs down so it doesn't appear over the text. | |
In class Region method dispose, there is code to check for a timer | |
attached to the region and dispose of it. Since Timer dispose: doesn't | |
remove it from the timers list, the timer's delete: method is now | |
called as well. | |
5/28/92 Brian K. Hughes | |
KERNEL.SH | |
Added new kernel call ResCheck, which will allow the programmer to | |
verify the existence of a resource without loading it. | |
Added a fifth function to PalVary, PALVARYTARGET, which allows the | |
programmer to insert a custom color into the target palette. More doco | |
is forthcoming in the systems group report. | |
5/28/92 Brian K. Hughes | |
USER.SC | |
Conditioned whether pMouse gets dirStop events by whether the event | |
type is a keyDown. This fixed a bug wherein the joystick never produced | |
dirStop events, making it impossible to stop the cursor with the joystick. | |
5/28/92 Brian K. Hughes | |
ICONBAR.SC | |
In the noClickHelp method, the temporary event was not being disposed if | |
the noClickHelp was terminated by clicking on the help icon again. If it | |
was terminated in any other way, the dispatchEvent method will dispose the | |
event, as before. | |
5/11/92 Brian K. Hughes | |
SYSTEM.SC | |
ICONBAR.SC | |
isMemberOf now returns TRUE if the object in question is an instance | |
of or the actual class being compared. This fixed the bug in IconBar | |
wherein IconBar was mysteriously not a member of IconBar. | |
5/11/92 Brian K. Hughes | |
PRINT.SC | |
INTRFACE.SC | |
Prints with no active items will now return FALSE if the ESCAPE key was | |
pressed and TRUE if the ENTER key was pressed. | |
5/09/92 Brian K. Hughes | |
SAVE.SC | |
Made sure the current directory shows up in the edit box when asking | |
for a new save game directory. This got deleted in the conversion to | |
the new Print object. | |
5/06/92 Brian K. Hughes | |
ICONBAR.SC | |
Removed the kludge for testing whether or not to localize the event in | |
the noClickHelp method (q.v. 2/26/92). The isMemberOf method of Object | |
is functioning normally now (see below) so the kludge is not necessary. | |
5/06/92 Brian K. Hughes | |
SYSTEM.SC | |
Changed the isMemberOf method of class Object to also return TRUE if | |
the object tested is equal to the class tested against. For example, | |
(IconBar isMemberOf: IconBar) will return TRUE. | |
4/30/92 Brian K. Hughes | |
STOPWALK.SC | |
Added a (super doit:) in StopWalk doit so that an actor who is stopped | |
and has a separate stopped view will still cycle. If you don't want | |
the actor to cycle, you can reduce each of the stopped loops to one cel. | |
Having an entire stopped loop of cels can be useful in situations such | |
as ego standing holding a moving animal. | |
4/30/92 Brian K. Hughes | |
GAME.SC | |
GCONTROL.SC | |
Added two properties, panelObj and panelSelector, to class Game. Also | |
added some code in the doit method of Game that checks the panelObj | |
property and, if set, sends a 'panelSelector' message to panelObj. This | |
change allows a major heap-saving feature, which is that the control | |
panel can now be contained in an external module, called in when it is | |
used, and unloaded from memory BEFORE the user's action takes place. | |
For example, in Laura Bow II the control panel requires about 1300 bytes | |
of heap. If the save button is pressed, the panelObj and panelSelector | |
properties of Game are set to theGame and #save, respectively, and the | |
control panel is unloaded from memory, regaining the 1300 bytes. At the | |
beginning of the next doit, the panelObj and panelSelector properties are | |
evaluated and the save dialog is brought up, which requires about 1600 | |
bytes of heap. The result is that saving the game requires only 1600 | |
bytes maximum instead of 2900 bytes. | |
The game's panelObj and panelSelector properties are now set in the | |
ControlIcon's doit method. | |
4/30/92 Brian K. Hughes | |
PRINT.SC | |
Fixed bug in addIcon whereby parameters were being used even if no values | |
were passed. | |
4/30/92 Brian K. Hughes | |
ACTOR.SC | |
The step size calculations in Actor's doit method for scaling actors has | |
been readjusted. The old calculation rounded off, while the new calculation | |
rounds to the nearest integer. This creates a much more realistic look for | |
a scaling actor. | |
4/23/92 Brian K. Hughes | |
FEATURE.SC | |
GAME.SC | |
Changed default modNum in Feature and Region from 0 to -1 to allow use | |
of message file number 0 as an object's default. | |
4/19/92 Brian K. Hughes | |
ACTOR.SC | |
Made sure to turn off the viewAdded bit of an addToPic's signal when it | |
is deleted from the addToPics list. This way, if the view is still in | |
memory when it is used again, it won't automatically assume it is intended | |
to be an addToPic again. | |
Added a parameter to Actor's setStep method, leaveOriginal. If a TRUE value | |
is passed in this parameter, the origStep property of Actor will NOT be | |
updated to the new xStep and yStep values. So far, this is used only in | |
Actor's doit method for scaling. | |
4/16/92 Brian K. Hughes | |
WRITEFTR.SC | |
Removed references to PicView. | |
4/16/92 Brian K. Hughes | |
TALKER.SC | |
PRINT.SC | |
Since talkers' Prints are modeless, we can't dispose of the window clone | |
created in the talker's display method immediately after the Print. | |
Instead, the Print's cue method (which gets invoked from its dialog's | |
dispose) gets rid of any windows that are connected to Print. | |
4/15/92 Brian K. Hughes (from Bob Fischbach/Hugh Diedrichs) | |
MESSAGER.SC | |
Removed code that checked for a non-zero fifth parameter to Messager | |
say (the module number), and just checked for a fifth parameter. This | |
allows you to send 0 as a legal module number. | |
4/14/92 Brian K. Hughes | |
GCONTROL.SC | |
ICONBAR.SC | |
Changed the select method of ControlItem to a doit, which gets called | |
from the dispatchEvent method of IconBar (or subclass thereof). This | |
allows the select to determine actions to be taken, then the actions | |
to actually happen near the end of the dispatchEvent method, allowing | |
the IconBar (or subclass) to be disposed first. For example, the save | |
icon in the control panel will now allow the control panel to be disposed | |
before the save code is brought in, reducing the amount of heap required | |
to nearly 1/2. | |
4/13/92 Brian K. Hughes | |
PRINT.SC | |
Made sure to set the port back after a modal print. | |
4/11/92 Brian K. Hughes | |
PRINT.SC | |
Reset the window property back to 0 when disposing. This prevents the | |
Print class from trying to pass it along to the dialog again next time. | |
4/11/92 Brian K. Hughes | |
TALKER.SC | |
Removed the restriction that colors wouldn't be set for custom windows. | |
The only danger in this is that completely custom windows (those that | |
draw their own background rectangles) won't change color automatically | |
to match the text background. | |
4/09/92 Brian K. Hughes | |
FEATURE.SC | |
Added a method, initialize, which performs the appropriate feature | |
initializer code. The init method now invokes this method before dealing | |
with adding the feature to the cast or features list. This way, a view | |
may have the appropriate feature initializer code done without having to | |
call the init and add it to a list (useful for views that will become | |
addToPics, see below). | |
ACTOR.SC | |
Removed PicView class. The view class now assumes all functionality of | |
the PicView class. Views may be added to the pic with the addToPic method | |
(as before), but now the view itself is put onto the addToPics list, not | |
the features list (see below). | |
To make a view add itself to the pic automatically upon init, set the | |
"viewAdded" bit in the view's signal, or invoke the addToPic method | |
instead of the init. | |
USER.SC | |
Added the addToPics list to those considered by OnMeAndLowY during the | |
sorted features process. | |
GAME.SC | |
The members of the addToPics list now get deleted on a room change, as | |
well as disposed. | |
4/08/92 Brian K. Hughes | |
PRINT.SC | |
Check the message size to see if the message is actually in the message | |
file, and if not don't try to allocate heap. This prevents a "zero | |
heap allocation request" error. | |
4/08/92 Brian K. Hughes | |
MESSAGER.SC | |
Messager now ignores a message if the return value from the findTalker | |
method is -1. This value can be used to indicate a talker that is used | |
purely for comments in the message file, talkers that perform some other | |
action besides displaying a message, et al. | |
4/08/92 Brian K. Hughes (from Dave Artis/Oliver Brelsford) | |
SCALER.SC | |
Reorganized calculations in init and doit to optimize for speed, while | |
still attempting to retain some of the efficiency. The doit method | |
was modified to make sure the calculations were done even if ego is | |
out of range. Also, the doit is invoked from the init so that the | |
correct parameters are set initially. | |
4/08/92 Brian K. Hughes | |
ACTOR.SC | |
Solidified parameters passed to View and Prop's setScale method and | |
added new functionality. The possible forms of setScale are: | |
View: | |
setScale: (no args) - sets scaleSignal to scalable only | |
setScale: 0 - turns off all scaling | |
setScale: n - sets auto-scaling based on vanishingY | |
and ego's size of 100% at y = 'n' | |
Prop: | |
setScale: obj - sets scaler object (with optional params) | |
setScale: MATCH obj - matches scaling of 'obj' | |
4/06/92 Brian K. Hughes | |
SYSTEM.SH | |
Replaced define RFEATURE with GCONTROL (978). RFeature and RPicView | |
classes are obsolete. GameControls has been split out of SLIDICON and | |
put into GCONTROL. | |
Also, the define NEXT (used with messager) was changed from 0 to -1 so | |
it would not conflict with ALL. | |
4/06/92 Brian K. Hughes | |
ICONBAR.SC | |
In noClickHelp, if the item under the mouse does not have a helpVerb, | |
it will not try to print a help string. | |
4/05/92 Brian K. Hughes (from Hugh Diedrichs) | |
ICONBAR.SC | |
Set the event's message to (| userEvent helpEvent) in IconBar's doit. | |
This allows the normal help to work correctly, as well as the no-click | |
help. | |
4/05/92 Brian K. Hughes (from Hugh Diedrichs) | |
POLYEDIT.SC | |
Used the kernel call DrawPic when erasing lines at the end of the session | |
instead of the room's drawPic method, and added code to redraw overlays | |
and addToPics. | |
4/03/92 Brian K. Hughes | |
ACTOR.SC | |
Move the invocation of (scaler doit:) in Actor's doit method to after | |
the invocation of (mover doit:). This prevents ego from "jumping" or | |
vibrating when he walks and scales. | |
4/03/92 Brian K. Hughes | |
SAVE.SC | |
Adjusted the positions of the YES and NO buttons on the save game delete | |
confirmation Print. | |
4/02/92 Brian K. Hughes | |
TALKER.SC | |
Added color & back properties to Narrator. These properties are used | |
with a clone of the game's systemWindow for displaying talker messages. | |
Note that custom windows (those of type $80) will NOT display the talker's | |
colors. | |
4/02/92 Brian K. Hughes | |
ICONBAR.SC | |
The while loop in the doit method now checks that the state is IB_ACTIVE | |
first, before generating an event. This ensures that, should the state | |
be changed during the process which forces us out of the while loop, we | |
don't get a dynamic event hanging around. | |
4/01/92 Brian K. Hughes | |
PRINT.SC | |
Altered the addText and addButton methods to make use of the new MsgSize | |
kernel call (see below). This eliminates the need for the 1000-byte | |
temporary buffers allocated off heap. | |
4/01/92 Mark Wilden | |
KERNEL.SH | |
Added Message MsgSize function. It is used like this: | |
(= msgSize (Message MsgSize module noun verb case sequence)) | |
and returns the size of the buffer needed to hold the message including | |
the trailing null. Therefore, a blank message will return 1. If the | |
message is not found, the function returns 0. Stage directions, which | |
are normally stripped out when a message is retrieved, are included in | |
the length. | |
4/01/92 Brian K. Hughes | |
TIMER.SC | |
The set60ths method has been changed to setTicks and the real-time | |
calculation in this method has been changed to the correct algorithm. | |
In addition, the parameters for this method have been reversed to make | |
them more intuitive. The format is: | |
(myTimer setTicks: tickValue who2Cue) | |
The ticks will now compensate for tickOffset, set when restoring a game. | |
3/31/92 Brian K. Hughes | |
PRINT.SC | |
In the showSelf method of Print, made the dialog center itself un- | |
conditionally. Then set the x and/or y according to the x and y properties | |
of Print. This insures that if you pass -1 for either coordinate, that | |
coordinate will remain the value produced by centering the window. | |
3/30/92 Brian K. Hughes (from Robert Lindsley) | |
INTRFACE.SC | |
If a dialog had the time property set, the check method was disposing | |
of the dialog but not breaking out of the while loop in the doit method. | |
Check method now just returns TRUE if the dialog is out of time, and | |
lets Print dispose of the dialog normally. | |
3/30/92 Brian K. Hughes | |
ACTOR.SC | |
Made sure to reset the scaler property to 0 in Prop's setScale method, | |
in case we replace a scaler object with simply y-coordinate scaling. | |
3/27/92 Brian K. Hughes | |
ACTOR.SC | |
The setStep method was not setting the xStep and yStep properties if | |
the actor wasn't scaling. If the actor is scaling, the setStep method | |
only sets the origStep property (a packed word: $xxyy), but doesn't set | |
the xStep and yStep because actor's doit does that for us (if scaling). | |
3/27/92 Brian K. Hughes | |
ACTOR.SC | |
Made sure to dispose of a Prop's scaler in the setScale method, even if | |
we're not attaching a new one. Also, set scaler property to 0 when | |
disposing the scaler in Prop's delete. | |
3/27/92 Brian K. Hughes | |
ACTOR.SC | |
SCALER.SC | |
Changed the setScale method of Prop to clone the scaler class passed | |
and pass the rest of the parameters to the scaler's init method. This | |
was patterned after the setMotion method. | |
3/26/92 Brian K. Hughes | |
GAME.SC | |
Changed the vanishingY property of class Game from -30000 to 0, which | |
works better for scaling. | |
3/25/92 Brian K. Hughes (from Randy Mac Neill) | |
INVENT.SC | |
Code was added to the advanceCurIcon method of Inventory to set the | |
curIcon's signal to TRANSLATOR or (~ TRANSLATOR), as required by whether | |
the curIcon is the helpIconItem or not. | |
3/25/92 Brian K. Hughes | |
ICONBAR.SC | |
The cond in the noClickHelp of IconBar was replaced with code that | |
unconditionally disposes a modeless dialog (if any), then displays the | |
new help string. This fixed several bugs with displaying the help. | |
3/25/92 Brian K. Hughes | |
INVENT.SC | |
Added a clause to the cond in Inventory's doit method that checks the | |
fastCast and passes the event to the list if it exists. This way, talkers | |
that display messages as a result of actions taken on an inventory item | |
will get events instead of the normal Inventory doit (which highlights | |
items & such). | |
3/25/92 Brian K. Hughes | |
ACTOR.SC | |
Added code in Prop's delete method to dispose of the scaler object (if | |
any) attached to the Prop (or Actor...). | |
3/19/92 Brian K. Hughes | |
PRINT.SC | |
The addButton: method was altered to allow the font to be passed to | |
the new button. | |
3/17/92 Brian K. Hughes | |
PRINT.SC | |
The showSelf: method of Print has been changed to use the window property | |
of Print for the dialog window. If the window property is NULL, the | |
systemWindow global will be used. | |
3/16/92 Brian K. Hughes | |
ACTOR.SC | |
Added an error message in the setScale method of Prop in case the Y | |
value passed is less than the curRoom's vanishingY. This caused problems | |
because of the resulting negative numbers. | |
In the setStep method of Actor the actor's mover is re-inited if it is a | |
member of Motion now, not MoveTo. Since a class is not a member of itself, | |
this bug caused MoveTos attached to a scaling actor never to be re-inited. | |
3/16/92 Brian K. Hughes | |
STOPWALK.SC | |
Added (self doit:) to the init method. This makes certain that the StopWalk | |
gets a chance to change the actor's view/loop before the actor animates | |
once. This bug was noticable in the way actors would be initially drawn | |
in mid-stride, then change to a standing view one cycle afterwards. | |
3/13/92 Brian K. Hughes | |
FEATURE.SC | |
Changed the approachVerbs method to reset the _approachVerbs property to | |
0 if either no args are passed or the first arg is NULL. | |
3/11/92 Brian K. Hughes | |
CONV.SC | |
Had to save the caller into a temp and do the (super dispose:) before cueing | |
the caller. This prevents starting another Conversation process before the | |
super disposes. | |
3/10/92 Brian K. Hughes | |
DIALOG.SC | |
INTRFACE.SC | |
Added an optional parameter to the dispose method of DText and DButton. If | |
TRUE, it will be assumed that the text property is a pointer to a near | |
string, and not a memory pointer to allocated heap. | |
=--------------------------------------- | |
3/10/92 Brian K. Hughes | |
SAVE.SC | |
Dialogs were converted to use Print. | |
3/09/92 Brian K. Hughes | |
PRINT.SC | |
Made sure to reset x & y to -1 and modeless to FALSE. | |
3/09/92 Brian K. Hughes | |
ACTOR.SC | |
Made sure that the setStep method allows for -1 in either parameter, which | |
keeps the original value. | |
3/07/92 Brian K. Hughes | |
PRINT.SC | |
Added Print to the prints list only if it is modal. Modeless prints do | |
not want to go on the list because the list gets first shot at events, and | |
modeless dialogs are usually handled by other objects who should get the | |
events instead. | |
3/07/92 Brian K. Hughes | |
TALKER.SC | |
Made sure all Prints done from Talker & Narrator's display methods are | |
modeless. This insures that events will get passed to the talker through | |
either the fastCast (if talker is not modeless) or the mouse/keyDownHandler | |
(if the talker is modeless). | |
3/05/92 Brian K. Hughes | |
POLYEDIT.SC | |
WRITEFTR.SC | |
Adjusted all the print buttons & such to be more pleasing to the eye. | |
3/04/92 Brian K. Hughes | |
PRINT.SC | |
Fixed Prints and Printf procedures to not use a clone of Print. Sending | |
a message to (Print new:) was invalidating &rest. | |
Made first property of Print able to contain an object ID or an object | |
number ('n'th item in the dialog). | |
Reset the mode, font, width, caller, title, first, and saveCursor properties | |
in the dispose method so that they have the right values next time. | |
Added saveCursor property - if set TRUE, Print will change cursor to an | |
arrow cursor then restore it to the iconbar's current icon's cursor. | |
Set the width property to 0 to default. This fixes the bug with TextSize | |
not recognizing newlines & such. | |
3/03/92 Brian K. Hughes | |
ACTOR.SC | |
SCALER.SC | |
SYSTEM.SH | |
Removed the 'vm' designation from all scaling defines. Also renamed the | |
'vm_signal' of actor to 'scaleSignal'. | |
3/03/92 Brian K. Hughes | |
SYSTEM.SH | |
PRINTOBJ.SC | |
Changed Print procedure to Prints (print string) and added simple Printf | |
procedure, both of which use Print. Renamed PrintObj to Print (including | |
module & define). As things stand now: | |
PrintObj -> Print = New class | |
Print -> Prints = Procedure to display near strings | |
Printf -> Printf = Procedure to format & display near strings | |
3/03/92 Brian K. Hughes | |
PRINTOBJ.SC | |
Doit method now calls doit method of each dialog item (for cycling icons & | |
such). Also, renamed format method to addTextF. Method now adds text auto- | |
matically after formatting. | |
3/03/92 Brian K. Hughes (from Randy MacNeill) | |
MESSAGER.SC | |
Added a dispose after printing the error message if the talker can't be | |
found in findTalker. This allows the messager to be disposed cleanly and | |
won't leave it's Set hanging around. | |
3/03/92 Brian K. Hughes | |
TALKER.SC | |
Was referencing a parameter not declared in the parameter list in Talker's | |
display method. | |
3/03/92 Brian K. Hughes (from Kevin Ray) | |
INSET.SC | |
Had to reanimate the cast in the hideCast method so that their new z values | |
will be applied. | |
3/03/92 Brian K. Hughes | |
INTRFACE.SC | |
Changed GetInput to use PrintObj. | |
3/03/92 Brian K. Hughes | |
PRINTOBJ.SC | |
Made sure that x and y parameters were set to 0 if not passed to addEdit. | |
3/02/92 Brian K. Hughes | |
ACTOR.SC | |
Changed origXStep and origYStep to just origStep, which is packed. The | |
setStep method will pack the property with the values passed, and the doit | |
method will unpack them for the scaling computations. Also changed the | |
setScale method of Prop to take four additional parameters: frontSize, | |
backSize, frontY, and backY. Now a scaler can be set with: | |
(theActor setScale: Scaler frontSize backSize frontY backY) | |
The setScale method will attach a clone of the scaler object specified to | |
the scaler property of actor. | |
3/02/92 Brian K. Hughes | |
[ Multiple Files ] | |
Converted use of Print, PrintD, Printf to PrintObj. | |
2/27/92 Brian K. Hughes | |
ACTOR.SC | |
Changed default view property in class View to -1. This way, if the | |
programmer forgets to set the view he or she will receive an error | |
"View 65535 not found" instead of trying to load view 0. CD guys say this | |
will solve lots of interruptions due to resource loading. | |
2/27/92 Brian K. Hughes | |
ICONBAR.SC | |
Did away with the newCursor temp var in the handleEvent method and just set | |
the cursor to the curIcon's cursor, regardless of whether it or the | |
curInvItem has changed. This way, if the cursor property of the curIcon is | |
changed, it will be reflected immediately. | |
2/27/92 Brian K. Hughes | |
ACTOR.SC | |
1) Fixed bug in turning off the scaling (in setScale method). Changed | |
OR-ing signal with (~ vmAutoScale) to AND-ing. | |
2) Moved the (mover doit:) code in actor's doit method to above the scaling | |
code. Doing the scaling first sometimes caused PMachine errors. | |
3) Added origXStep and origYStep properties so that the scaling always has a | |
good set from which to calculate the new values. | |
4) The setScale method no longer takes a multiplier to be applied to the | |
maxScale property. The argument now represents the y coordinate at which | |
the view is 100% of its normal size. The maxScale is now calculated, | |
based on a ratio of this y coordinate to the vanishingY of the room. | |
5) Changed the minimum xStep that can be calculated (in the setStep method) | |
from 2 to 1. | |
2/27/92 Brian K. Hughes | |
CONV.SC | |
Bug in MessageObj showSelf. If the sequence of a MessageObj is 0 | |
(indicating that we want all sequences) the Message kernel call should look | |
for sequence 1 for purposes of determining if the messages exist or not. | |
2/27/92 Brian K. Hughes | |
POLYEDIT.SC | |
Changed the name of the polygons file from polygons.999 to 999.pol (where | |
'999' represents the picture number). | |
2/26/92 Brian K. Hughes | |
INVENT.SC | |
Replaced all references to the helpStr property of invItems with code to get | |
the message from a message file. | |
2/26/92 Brian K. Hughes | |
ICONBAR.SC | |
1) Had to save the cursor and signal of the current icon item before calling | |
the item's select method cuz during the select process the item might be | |
disposed. For example, the save button in game controls disposes of the | |
game controls list in it's select method. After that, the save icon is | |
disposed out of memory, so the iconbar's dispatchEvent method can't | |
reference it anymore. | |
2) Added noun, modNum, and helpVerb properties to IconItem and changed the | |
noClickHelp method to get messages from a message file instead of | |
printing a help string. The helpStr property has been removed. | |
3) Fixed bug at top of while loop in the noClickHelp method. It appears | |
that a class is NOT a member of itself. Hence, IconBar was NOT a member | |
of IconBar, which caused the event to be localized. This resulted in | |
A) the event not registering as on an icon if it was within the top 10 | |
pixels on the screen, and B) the text box would flash quickly if the | |
event was within 10 pixels below the bottom of the icon. | |
2/26/92 Brian K. Hughes | |
SLIDICON.SC | |
Added (= window 0) to the hide method of GameControls. In case a control | |
item hides the game controls, this will ensure that the window does not try | |
to dispose again when the game controls are hidden later in the doit method. | |
2/26/92 Brian K. Hughes | |
INSET.SC | |
Instead of reanimating the oldCast in the drawInset method, we reanimate the | |
oldCast in the doit method every cycle, unless hideTheCast is TRUE. Slows | |
insets a bit but it's the only way to insure that the images of the old cast | |
don't get wiped out by text boxes & such. | |
2/26/92 Brian K. Hughes (from Jack Magn‚) | |
PAVOID.SC | |
The MergeAPoly procedure has been replaced by a MergePoly kernel call. | |
2/25/92 Brian K. Hughes | |
TALKER.SC | |
Moved the super dispose in Talker to below the call to hide. This ensures | |
that the talker is fully hidden before the caller gets cued, preventing the | |
"overlapping" of talkers and confusion of underbits. | |
2/25/92 Brian K. Hughes | |
WRITEFTR.SC | |
Commented the code that uses the selector dialog item to pick approach | |
verbs. Since selector items can't read from a file and VERBS.SH is game- | |
specific, the selector can't adjust itself from game to game. | |
When DSelector (or a similar class) can read from a text file, this code | |
will be reinstated. | |
2/25/92 Brian K. Hughes | |
USER.SC | |
In the handleEvent method, if the event is a direction event be sure to | |
check if there IS an iconbar before sending messages to it. | |
2/25/92 Brian K. Hughes | |
ICONBAR.SC | |
Removed code that disposed of the temp variable 'event' at the end of the | |
doit method. The dispatchEvent method already disposes of it and clones | |
that were created in the process of the doit method may end up at the same | |
address. | |
2/24/92 Brian K. Hughes | |
INSET.SC | |
Removed code that saved the old value of useSortedFeatures (can't think why | |
it was put in and it caused a bug!) and re-animated the old cast when an | |
inset gets drawn initially. Since insets normally invalidate the picture | |
we don't want to accidentally obliterate any old cast members on the screen | |
unless the programmer has indicated to do so by settting hideTheCast TRUE. | |
2/24/92 Brian K. Hughes | |
USER.SC | |
Made sure to check user controls before passing a walk event to ego | |
(original functionality that was accidentally removed). | |
2/24/92 Brian K. Hughes | |
GAME.SC | |
Removed explicit Load of CURSOR in save & restore methods. Can't load | |
cursor resources anymore with the new color cursors. | |
2/24/92 Brian K. Hughes | |
TALKER.SC | |
Added a showTitle property (boolean) which, if TRUE, will cause the object's | |
name to be displayed in a title box. | |
2/18/92 Brian K. Hughes | |
MESSAGER.SC | |
The oldIconBarState property was getting set even if we were invoked without | |
being previously disposed. This meant that the oldIconBarState could be set | |
to a DISABLED state if the previous message was interrupted by a new | |
message. To prevent this the oldIconBarState is set only if it is 0. | |
2/15/92 Brian K. Hughes | |
WRITEFTR.SC | |
Updated code using the verbs. Also added code to support approach distance | |
and a few other options, such as letting the approachX and approachY default | |
to the x and y of the object, etc. | |
2/14/92 Brian K. Hughes | |
MESSAGER.SC | |
Made sure the fastCast gets disposed of properly if the conversation is | |
killed (pressed ESC or right-mouse) or if we were displaying one message of | |
a sequence only. | |
2/14/92 Brian K. Hughes | |
TALKER.SC | |
Fixed bug wherein the talker's mouth would keep cycling if you click away | |
the message sooner than the talker expected. If the talker isn't the one | |
talking (ticks are -1) then the handleEvent returns FALSE so the next talker | |
gets a shot at the event. Also, check to see if the event is claimed (by | |
previous member of fastCast list), instead of passing the event to the | |
super. | |
2/13/92 Brian K. Hughes | |
INVENT.SC | |
Fixed bug in call to Message in InvItem's doVerb method. Call was passing | |
NULL for sequence instead of 1. (Note that messager will allow a NULL | |
sequence but not the Message kernel call.) | |
2/13/92 Brian K. Hughes | |
TALKER.SC | |
Made Blink run on real time (it was cycle-based before, which didn't work | |
well) and added a property to Talker called blinkSpeed, which is the number | |
of ticks that will be used as the basis for the Blink cycler. The actual | |
delay between blinks is a random range from (.5 * blinkSpeed) to | |
(1.5 * blinkSpeed). | |
2/12/92 Brian K. Hughes | |
SYSTEM.SC | |
Class Collection now has a new method, called isDuplicate, which determines | |
if an object is already in the list. Each of the add methods (add, | |
addToFront, addToEnd, addAfter) invokes this method and only performs the | |
add if the method returns NULL. For Collection and List, this method simply | |
returns FALSE, since we always want to add, but for class Set, this method | |
returns FALSE only if the set does not already contain the object. Hence, | |
class Set now functions correctly for all the add methods. | |
2/12/92 Brian K. Hughes | |
MESSAGER.SC | |
Made sure each member of the talkerList gets its caller set to 0 before | |
being disposed, then dispose with TRUE rather than the talker's | |
disposeWhenDone property. Also, made sure we weren't sending bogus | |
parameters to the talker's say method from the sayNext method. If the | |
sayNext is invoked from our cue method (at the end of a message), we have | |
no parameters to pass. | |
2/12/92 Brian K. Hughes | |
ICONBAR.SC | |
A line of code that was added to IconBar's handleEvent that returned FALSE | |
if user can't control, was removed again. This was done originally to | |
prevent the ability to middle-click (swap icon) if user can't control. That | |
check has been moved into the code for the middle click. | |
2/10/92 Brian K. Hughes | |
FOLLOW.SC | |
Checked to see if, when the client is within distance and waiting, the angle | |
has changed before trying to set a new angle. This prevents constantly | |
setting the client's heading and invoking the looper every cycle, even if | |
the client is just standing there. | |
2/10/92 Brian K. Hughes | |
INSET.SC | |
Added a style property which determines how the picture will be drawn (if | |
a picture is used). | |
2/10/92 Brian K. Hughes | |
INTRFACE.SC | |
Made ESC return 0 from a dialog with no active items, and any other key | |
returns TRUE. That way we can tell (if we want to) whether the ESC was | |
pressed. | |
2/10/92 Brian K. Hughes | |
SAVE.SC | |
GAME.SC | |
SLIDICON.SC | |
INVENT.SC | |
ICONBAR.SC | |
Removed text and put into message files (where applicable) and converted | |
some far text used in Format statements to near text. | |
2/07/92 Brian K. Hughes | |
TALKER.SC | |
Several changes: | |
1) Added a true Blink class for the eyes | |
2) Gave the fastCast a name so it can be inspected easily in the debugger | |
3) Narrator's startText method now returns the length of the string | |
(useful for Talker's startText method) | |
4) Set a talker's ticks property to -1 if he is done talking, but did not | |
pull them from the fastCast or theDoits list. This way they still | |
cycle the eyes even when they're not talking. | |
5) Made sure the mouth and eyes get set back to cel 0 in the dispose | |
2/06/92 Brian K. Hughes | |
SYSTEM.SH | |
Added global textSpeed (94) which talkers will use to determine the length | |
of time their text should remain on screen. Has no function in CD audio. | |
Note: This global can easily be set by a text speed slider. | |
2/06/92 Brian K. Hughes | |
SCALER.SC | |
New class. Scales its client according to a pair of y values and a pair of | |
percentage multipliers for those y values. | |
2/06/92 Brian K. Hughes | |
POLYEDIT.SC | |
Changed SetCursor kernel calls to invocations of theGame's setCursor. Also | |
set the cursor to ARROW_CURSOR explicitly. | |
2/06/92 Brian K. Hughes | |
FEATURE.SC | |
Was setting a temp variable, theVerb, in the approachVerbs method of class | |
Feature which was unnecessary. | |
2/04/92 Brian K. Hughes | |
USER.SC | |
Added method setSpeed to ego, which sets ego's moveSpeed & cycleSpeed. | |
2/04/92 Brian K. Hughes | |
GAME.SC | |
Move second setCursor call in Game's play method out of the complex message. | |
The system global normalCursor was getting evaluated before the message | |
began, making it impossible to initialize it to a value other than | |
ARROW_CURSOR in the game's init method. This explains why games would get | |
an arrow cursor as soon as the player gets control. | |
Removed egoMoveSpeed property of class Game. | |
2/04/92 Brian K. Hughes | |
MESSAGER.SC | |
Disposing our Set full of talkers on first doit following the end of the | |
last message, not the second doit. | |
2/04/92 Brian K. Hughes | |
FEATURE.SC | |
On recommendation of myself and Mark Hood, backward compatibility is not | |
being preserved. To that effect, the lookStr and description properties | |
have been removed from class Feature. In addition, all references to the | |
invItem parameter of the doVerb method have been removed. Also, the invItem | |
property of CueObj has been removed. | |
2/04/92 Brian K. Hughes | |
FEATURE.SC | |
The approachVerbs method only functions now if there is approachCode AND at | |
least one argument. | |
2/04/92 Brian K. Hughes | |
INSET.SC | |
Made sure the walkHandler is handled correctly. | |
2/04/92 Brian K. Hughes | |
INTRFACE.SC | |
Print now returns 0 if cleared with the ESC key. | |
2/03/92 Brian K. Hughes | |
GAME.SC | |
The modNum property of class Region is now set to the current room if 0. | |
2/03/92 Brian K. Hughes | |
ACTOR.SC | |
Added a setScale method to View class. If FALSE is passed the scaling is | |
disabled for that object. If a positive value is passed it is used as the | |
multiplier for the maxScale property. Also added a setScale method to Prop | |
class that will take a scaler object as a parameter. | |
7/12/91 Chad Bye | |
Palette cycling now supports multiple ranges and multiple speeds. | |
The third argument is now how many system ticks to wait between | |
each palette shift. The sign of the third argument still indicates | |
which direction to cycle. You can (and should) pass all ranges in a | |
single call to Palette. | |
Example: | |
(Palette PALCycle start1 end1 numticks1 start2 end2 numticks2 ...) | |
7/11/91 Mark Wilden | |
There is a new resource type for messages. Messages are the analog | |
in non-CD games of the CD resources, sync and audio. You will need | |
a messages= line in your WHERE file to find them. You'll use the | |
ME program to create them. You'll use a new kernel call | |
(GetMessage moduleNum talkerNum msgNum @buffer) | |
to access them. | |
7/10/91 Chad Bye | |
Added picture mirroring as another option for DrawPic's showStyle. | |
Options such as mirroring or blackout should be ORed with the | |
showStyle. | |
Example: | |
(curRoom drawPic: pic (| IRISIN HMIRROR BLACKOUT)) | |
You can also now save the current palette and restore it later. | |
The kernel call Palette now has functions PALSave and PALRestore. | |
Example: | |
(= savePalette (Palette PALSave)) | |
(Palette PALRestore savePalette) | |
PALSave allocates memory to copy the palette into, and PALRestore | |
disposes this memory. Every time a palette is saved, it must | |
either be restored later or disposed using | |
(Memory MDisposePtr savePalette). | |
6/13/91 Pablo Ghenis | |
Subj: Hunk reporting and requirements | |
Configuration files are now case-insensitive. | |
All configuration files (where, resource.cfg, etc.) must now | |
include a line of the form: | |
minHunk = nk | |
where n is a number between 1 and 1024. This specifies the | |
minimum amount of hunk (in kilobytes) required to run the game. | |
If your minHunk number is too large you will get a "not enough | |
memory" warning, if it is too small then any machine will appear | |
to have enough, and some will crash "out of hunk". | |
To help you determine the correct minHunk, there is a new SCI | |
command line switch "U", which by default will create or append | |
to a file called hunk.use to report hunk usage throughout the | |
game as you play it. The report will include ONLY rooms where | |
hunk usage EXCEEDS the specified minHunk value, so if this never | |
happens then nothing will be reported. This is required for all | |
shipping versions (otherwise they might crash on a machine that | |
barely meets the minHunk requirement.) If you want the report to | |
go to a different file you can specify a file name immediately | |
after the "U", eclosed in double quotes. The "u" switch has been | |
enhanced to work the same way. This option is especially useful | |
when running on read-only media such as CD. | |
Example: | |
G:> scidh -dvu"c:\myres.use"U"c:\myhunk.use" c:\mywhere | |
The recommended procedure is to start with minHunk = 1k and play | |
the game, going straight to the rooms that use the most hunk, | |
then exit. Near the bottom of hunk.use look for the last line | |
that ends in "NEW MAX!", it contains a better value for minHunk. | |
Replace minHunk in your configuration file with this value, | |
delete hunk.use to get a fresh start and run again, until you end | |
up with no hunk.use file after running the game. | |
6/5/91 Eric Hart | |
No one should be using the playBed or changeState methods of | |
Sound any longer. The information needed for 'playBed:' is | |
now contained in the sound files, so simply 'play:' will | |
suffice for every sound. changeState: is no longer needed, | |
because there are three new methods to change the state of | |
a sound object: | |
setVol: newvol | |
setPri: newpri | |
setLoop: newloop | |
No one should be setting the volume, priority, or loop | |
properties directly any longer, but rather you should go | |
through these methods. (thus, there is no need to call a | |
changeState method after you modify these properties) | |
Another big change is the addition of priority information | |
to sound files. Sounds will now automatically set their | |
own priorities, so no application should be setting them | |
manually. In the rare cases that this default must be changed, | |
priority may be overrided by programmers using the setPri: | |
method. This will lock the sound object to the specified | |
priority, regardless of the settings in the sound files, until | |
the fixed priority is released by saying (sound setPri: -1). | |
In a case where the sound file contains no priority information, | |
the current value of the priority property will be used to | |
play the sound regardless whether the priority is fixed or not. | |
Sounds may also now be muted using the mute: method which | |
takes a true or false value. Mute: acts just like pause:, | |
however the sound will continue to be parsed inaudibly until | |
the sound is unmuted by a (sound mute: FALSE). So unlike | |
pause, the sound will continue where it should be, not where | |
it left off. | |
Also a new controller define has been added to system.sh, | |
cMUTE. This provides for muting individual channels of a | |
sound. We used to simply set the volume of channels that | |
we didn't want to play to 0 by using code like: | |
(sound send: 3 cVOLUME 0) | |
But now we may mute them by using: | |
(sound send: 3 cMUTE TRUE) (or false to unMute) | |
The advantage of this over using the cVOLUME way is that | |
the musician may change the volume mix of his sound without | |
the application programmer having to change code, and the | |
channels and voices used by the channel being muted will be | |
freed up for other simultaneous sounds to use. | |
Existing code which uses the playBed and changeState methods, | |
and that manually sets priority will still work for now, but | |
after the products ship that need this compatibility (like | |
KQ5 cd and Jones cd), these methods will be removed. | |
More detailed information on these new methods may be found | |
in the comments in sound.sc on s: | |
3/27/91 Mark Wilden | |
Backquote key brings up debug, in addition to the regular | |
Shift-Shift-Minus. | |
New diagnostic resource cursors, selected by -cXX command line | |
option, where XX represents the type of cursor. | |
This is a decimal bitmapped number where the bits are as follows: | |
Bit 0: Change cursor to disk on disk reads | |
Bit 1: Move cursor to left on disk reads | |
Bit 2: Change cursor to chip icon on ARM read/writes | |
Bit 4: Move cursor up/down on ARM read/writes | |
If you don't specify a -c command line option, there is no cursor | |
diagnostics (thus not interfering with the game's cursor). If | |
you specify -c with no number following, the cursor will be as it | |
was formerly (under -d): changing based on disk and ARM access. | |
3/27/91 Mark Wilden | |
FileSelector added readFiles: method, which must be called separately | |
from init: (which is called at every arrow key!). Added sort property | |
which, if true, sorts the list. | |
12/06/90 Mark Hood & Mark Wilden | |
VIEW.999 is displayed at startup, if it exists. | |
11/30/90 Mark Wilden | |
DrawStatus can now take two optional arguments: foreground and background | |
color, which default to the usual black on white. Note that these colors | |
are indexes into the palette, so vRED is unlikely to be actually red (it | |
will select the 4th element of the current palette). | |
10/23/90 Mark Wilden | |
FileSet was changed to FileSelector. FileSet used to create an array | |
of file names for use in a DSelector. This function is now integrated | |
into a selector. The file was renamed from FILESET.SC to FILESEL.sc. | |
10/11/90 Mark H. | |
A new function selector has been added to MemoryInfo. | |
it is TotalHunk and returns the maximum hunk space that was allocated | |
by sci at startup on a particular machine and configuration. This is to | |
give application programmers the ability to write conditional code based on | |
the size of a certain machine (memory). It is called as: (for example) | |
(Printf "Total Hunk = %d" (MemoryInfo TotalHunk)) | |
and returns the toal hunk in paragraphs. (1 paragraph = 16 bytes). | |
10/10/90 Mark H. | |
The MoveCycle class now respects client cycleSpeed. | |
10/09/90 Mark H. | |
The class PCycle has been added to the system to do palette cycling of | |
Props. It tries to take the place of having many different palette | |
cyclers by watching the parameter list. If one number is passed it | |
acts like a CycleTo cycling from the current palette to the passed palette: | |
(aProp setCycle:PCycle 5) cycles from current palette to palette 5. | |
If two numbers are passed it cycles through the range specified | |
in the proper direction (i.e. first number to second): | |
(aProp setCycle:PCycle 5 2) cycles from palette 5 to palette 2 | |
If three numbers are passed it cycles through this range a number of times: | |
(aProp setCycle:PCycle 5 2 4) cycles from palette 5 to palette 2, | |
4 times. | |
Of course, a caller can be added to any of the above conventions, | |
to cue, as any decent Cycler should. | |
10/01/90 Mark H. | |
The kernel call Lock has been added to lock and unlock resources. | |
This is to allow the application programmer to decide which | |
resources should locked or unlocked. Lock takes three parameters-- | |
Resource type... VOCAB SCRIPT SOUND VIEW etc. | |
Resource ID... number of resource 999 002 etc. | |
Lock or UnLock... TRUE or FALSE to Lock or Unlock. | |
Be carefull!!! If you lock a resource yourself, it'll be in hunk forever, | |
unless you unlock it yourself. Two new functions selectors | |
have been added to the Memory kernel call. They are MReadWord | |
and MWriteWord for referencing and dereferencing addresses. Again, | |
more power, but more responsibility. You are now free to mess up heap | |
and hunk as much as you wish. | |
09/25/90 Mark H. | |
Added Oscillate cycler that will cycle a Props cels forward and | |
then back a given number of times. Changed MoveCyc to take a local array | |
address instead of a bunch of points so that it can handle more points | |
and save wods 'o heap. Removed Features default description and changed | |
handleEvent method to return FALSE if there is no description. Moved WordAt | |
procedure from PolyPath to system.sc since it has been used a lot recently... | |
it will, however be migrated to the kernel shortly. Added Erics changes to | |
sound that should fix the restore problem. Changed Grooper to not dispose | |
oldMover if it is also clients mover. Added global useObstacles that can | |
determine whether or not Ego will use a PolyPath if obstacles are present... | |
same for an Actors setDirection. | |
09/21/90 Mark H. | |
DPath now does an extra doit when reiniting itself to eliminate the | |
pause at the end of each node. Stop updated actors will no longer pop | |
through modeless dialogs when changing their update status. Resource | |
purging now uses a prioritized purging scheme based on resource type | |
instead of just least recently used. This helps to reduce disk thrashing | |
when nearing the edge of Hunk space. To go along with this change, | |
VOCAB and TEXT type resources are now unlocked. You may notice now that | |
a Load will happen when typing a Said or printing text. If you are completely | |
finished with a view in a Room you should use an explicit (UnLoad VIEW xxx) | |
since VIEW resource type is one of the last to go otherwise. | |
09/06/90 Mark H. | |
Actors delete method was changed to ensure that if a View is addToPic'd | |
it will be placed on the features list instead of disposed so that all | |
of your handleEvent/doVerb 's will work. | |
09/05/90 Mark H. | |
A caller property has been added to theDialog class. This has made | |
it possible to allow the Print procedure to take an optional parameter | |
after the #dispose: that is who to cue upon disposal of the modelessDialog. | |
The most useful example of this would probably be written as follows: | |
(instance foo of Script | |
(method (changeState newState) | |
(switch (= state newState) | |
(0 | |
(Print "This is a 5 second modeless dialog" | |
#time:5 | |
#dispose:self | |
) | |
) | |
(1 | |
(Print "I got cued by the dialog itself.") | |
) | |
) | |
); changeState | |
);foo | |
Remember that the dispose method of Dialog has been rewritten | |
to cue caller if present, so other applications may be possible. | |
08/30/90 Mark H. | |
The kernel call Sort has been added to speed up sorted features, | |
however it has been written to be a general purpose sort and thus | |
is available for your everyday sorting needs. . | |
It is used as follows: | |
(Sort unSortedList sortedList scoringCode) | |
where the unSortedList is the list to be sorted, sortedList is an | |
uninstantiated (empty) list where the sorted list is to be placed | |
by the kernel call, and scoringCode is a piece of code that determines | |
the criteria for the sort. The scoringCode's doit should return a | |
number for each object that would determine its relative place in the | |
list. For example if you wished to sort the cast by their height on | |
the screen (their y property) the code would look like this: | |
(instance sortedList of List) | |
(instance yScoreCode of Code | |
(method (doit theObj) | |
(return (theObj y?)) | |
) | |
) | |
(Sort cast sortedList yScoreCode) | |
and sortedList would now contain the cast sorted by their y properties. | |
The Sort algorithm is a simple modified bubble sort. Since most of our | |
applications will have less than a hundred elements this should be | |
close to optimum. | |
BE SURE TO DISPOSE OF THE sortedList!!!! If you do not, you will | |
definitely get hard to trace memory frags. | |
08/21/90 Mark H. | |
Actors setDirection method has been changed to allow ego to turn | |
if an arrow key was hit and he is up against an obstacle. Previously | |
he would ignore the key completely. | |
08/14/90 Mark H. | |
Polygons are here! The Polygon class was added to the system to | |
support Larry's Polygon based avoider. The Polygons are created | |
either manually or with Chad Bye's new Polygon Editor, and added | |
to the obstacle list via the Rooms addObstacle method. The mover | |
PolyPath is where the actual avoider stuff is hidden. It works | |
just like a MoveTo only it will find its way around any polygon | |
in the obstacle list. AddToPics will automatically add a suitable | |
Polygon to the obstacle list when the (addToPics doit:) is called | |
if the addToPics ignrAct bit is not set. The Polygons have also | |
found use in Features onMe method. To do this, redefine the Features | |
onMe method to check if a click was in a surrogate Polygon. The kernel | |
call AvoidPath will check if a given x,y is in a polygon if only these | |
three parameters are passed. | |
Example: | |
(local polyPts = [10 20 50 30 50 100 20 100 5 50]) | |
(instance myPoly of Polygon) | |
(myPoly points:@polyPts, size:5) | |
(instance fooFeat of Feature | |
(method (onMe theObj) | |
(return (AvoidPath (theObj x?)(theObj y?) myPoly)) | |
) | |
) | |
If this starts to get used alot, let me know and I'll automate the | |
process a little better. i.e. a polygon property of Feature. | |
Also, the scads of includes that used to slow down your compiles | |
in system.sh are now in-line with a few exceptions. The following | |
files are NOT included automatically now , and if you're using any | |
of the classes or procedures in their corresponding .sc files, you will | |
now need to explicitly include them. A small price to pay for the speed | |
up in my opinion. | |
The .sh file that will need to be manually included are: | |
cat.sh ;; if you're using the Cat class | |
demo.sh ;; if you're using the Demo Demon | |
namefind.sh ;; if you're using the NameFind procedure | |
count.sh ;; if you're using the Count procedure | |
lastlink.sh ;; if you're using the lastlink procedure | |
gotosaid.sh ;; if you're using the gotosaid mechanisms | |
There were also minor changes to Views (a real isNotHidden method) | |
and the Grooper. Unfortunately, this means that a rebuild is necessary | |
if you use the Grooper. | |
Also, new tools thanks to Doug Oldfield and Mark Wilden and Chad Bye. | |
Doug has made two new cyclers that are in the system for your use. | |
MoveCycle which repositions the client for each cel. (This seems to be | |
the way alot of artists are doing things these days!) This saves the | |
need for a Script that just positions and sets a cel in every state | |
(Hand carved animation). Also RandCycle that just picks cels at random | |
for a specified number of times, or forever. This is useful for mouth | |
animation while talking. Mark Wildon has created a Dialog building tool | |
that can really simplify 90 percent of your everyday dialog needs. It | |
is a procedure called PrintD and is also now in the system. Chad Bye has | |
added an excellent Polygon Editor (and pather for the other avoider) called | |
pather. To invoke it, simply put (MakePath doit:) in the appropriate place | |
in your debug module (or wherever). Documentation for all is coming soon | |
(soon is a relative term), but for now, look at the modules for the | |
programmers own docs. Sorry this is so long, but I have been delinquent | |
at keeping this up to date, and a lot has happened. As always... | |
we're looking for new tools, so let me know if you've made something | |
that is nice and general purpose and fills a gap in our current library. | |
08/04/90 Mark Wilden | |
Added new FileIO functions fileFindFirst, fileFindNext and fileExists. | |
Added Memory function MCopy. | |
08/02/90 Mark Wilden | |
The function selectors for stack usage kernel calls were backwards; | |
i.e. (StackUsage MStackSize) returned the size of the processor | |
stack instead of the PMachine stack. | |
07/09/90 Mark Wilden | |
IBMKBD.DRV and TANDYKBD.DRV were changed. Now the only keyboard | |
event modifiers are when shift keys (including Ctrl and Alt) are | |
pressed. The state of Ins, Caps Lock, etc. as well as differences | |
in certain BIOSs are now ignored. The new drivers are in I:, S: | |
and the tester directory. | |
07/03/90 Mark H. | |
The Feature class now allows the programmer to decide wether or not | |
they would like the proximity checks done if a shift or control click | |
was detected. The define NOCHECKMOUSE should be or'ed with the verb | |
number for the shftClick and contClick properties. | |
(i.e. (theActor shftClick: (| NOCHECKMOUSE verbLook)) | |
Also a bug in the setChecks method was discovered and fixed. | |
The Feature writer now also will allow testing of features created | |
and also allows editing of Features, Views etc that were already in | |
the room. | |
07/02/90 Mark H. | |
Actors code property now gets done even if object is not updating . | |
View and PicView can no longer inherit the dispose method of Feature | |
since Feature's dispose now deletes it from the features list. | |
06/26/90 Mark H. | |
There have been several additions to the interpreter. | |
Memory allocation and deallocation has been added as well as | |
List manipulation functions. Heap memory allocation is handled through | |
the kernel call Memory and has three enumerated function definitions: | |
(= thePointer (Memory MNeedPtr amount)) - | |
requests that "amount" bytes will be allocated and the pointer | |
to the memory is returned to thePointer. If the memory is not | |
available SCI aborts with the all to familiar "Out of Heap Space". | |
(= thePointer (Memory MNewPtr amount)) | |
same as above, but simply returns a null pointer if memory is not | |
available. | |
(Memory MDisposePtr thePointer) | |
Deallocates the memory pointed to by pointer. | |
This function should be used carefully and make sure to deallocate all | |
the memory that you have allocated. List manipulations can now be sped up | |
with the ListOps kernel call. | |
The lines of Code below will speed up the list processing by approximately | |
a factor of four. | |
(method (eachElementDo theSelector) | |
(ListOps LEachElementDo theSelector &rest) | |
) | |
Also available as function definitions are LFirstTrue and LAllTrue. | |
Bob has also put the kernel hooks in for the AIPath from the | |
Chris Iden. More about that later... Stay tuned. | |
06/20/90 Mark Wilden | |
The File class and kernel calls have been changed and added to. In | |
the kernel there is now just one entry point for all file functions: | |
FileIO. An enumerated value is sent to FileIO to indicate the desired | |
function (see kernel.txt or kernel.sh for these values). Several new | |
file functions were added: read and write, which operate on arbitrary | |
data; seek, which moves the file pointer; and unlink, which deletes a | |
file. | |
The File class was changed to reflect these modifications; in | |
particular, the read: and write: methods now refer to raw file | |
access--use readString: and writeString: to read or write zero- | |
terminated strings. | |
06/13/90 Mark H. | |
Added new cycler that takes care of the out of sync walk cycler | |
with moveSpeeds greater than 1. Its called SyncWalk and it is in | |
Motion.sc. Also the need for the rebuild is that user has a property | |
called verbMessager that lets you define your own verb message | |
numbers. This will make more sense when my documentation is finished. | |
06/11/90 Mark H. | |
We have a new system, folks. A rebuild of your game will be | |
necessary if you are using \games\sci\system. After receiving | |
a lot of great input from Bob, Pablo, Corey, Mark W., Chris I., | |
the SQ4 crew and anyone else I forgot to mention, the Feature | |
class has been completely rewritten (again). The documentation | |
is following closely behind, so sometime tomorrow it should be | |
complete. Besides all the stuff added to Feature, User canInput | |
is now a method. This gives you the ability to break on it and | |
also allows redefinition of it to do things with the cursow | |
(or whatever). There is also a setHeading method of Actor | |
that should now always be used. Instead of code like | |
(anActor loop: facingSouth) you should write something like | |
(anActor setHeading: 180). Besides keeping things consistant | |
between an actors heading and his loop, (for those using sorted | |
features), it also fires a looper if one is attached. There is an | |
optional whoCares parameter (like motion and cyclers) that will | |
cue something when the turn is completed. IF ANY BUGS OR | |
INCONSISTANCIES ARE DISCOVERED, PLEASE LET ME KNOW, POST HASTE. | |
If you don't like the way something works don't abandon it!!! | |
Tell me your suggestions and the system will be better for it. | |
There will be much better doco and examples coming soon. | |
For those wanting to get started with the feature writer | |
let me know and I'll step you through. | |
06/04/90 Mark H. | |
The IsOffScreen procedure in sight.sc has been changed due | |
to a bug pointed out by Mark W.. It now correctly used the | |
southEdge define instead of the SCRNHIGH define. 0 is now | |
also considered on screen. | |
05/24/90 Mark H. | |
Added MoveFwd Class. Just pass a distance you want to move | |
and the Actor will move in the direction he is pointing. | |
As usual, either preload the module or dispose of it when | |
you're done to prevent frags. See module movefwd.sc for usage | |
info. | |
05/08/90 Corey | |
Removed initialization of "version" in system.sh, since you | |
can't auto-initialize a global variable to a string pointer. | |
It is now *required* that you have a line such as: | |
(= version {x.yyy____}) | |
(or anything else you want to initialize "version" to) in the | |
(init) method of your room 0 instance of Game. Actually, this | |
was always needed, but simply gave you bad Save games before. | |
Suggested strings are either {x.yyy____} or {x.yyy.zzz} for | |
"incver" compatibility (either can be used for auto-incrementing | |
version number via incver). | |
05/04/90 Mark Wilden & Corey Cole | |
Fixed bugs in "Extra" class when minPause, minCycles, or hesitation zero. | |
Also improved behavior of ExtraEndAndBeginLoop (now allows the pauseCel | |
to be the last cel of the loop). | |
05/03/90 Bob | |
GetTime SYSDATE returns date since 1980. | |
04/02/90 Mark H. | |
The module user.sc has a slight change to fix a bug pointed | |
out by Mark W. and Gary K. If a horizon was non-zero in a room | |
and ego was ignoreHorizon, Then if ego walked above the horizon | |
he could walk east and not change rooms. Also a fix in demo.sc. | |
03/20/90 Larry & Corinna | |
The op. code mod accomodates negative numbers now. | |
03/20/90 Corey | |
Does not save control map if it's not going to draw into it | |
for stop updated actors. | |
03/20/90 Larry & Corinna | |
When get an "Out of heap space" error, if running with the | |
sci debugging on (-d) it goes into the sci debugger then exits. | |
If running without debugging on, it just exits (this is in | |
case a customer runs into this error). | |
01/18/90 Stuart | |
All new and some-what improved sound drivers in system directory. | |
Changed restart controller to return to loop point in sound, | |
instead of beginning of sound. This change should not effect | |
game programmers. | |
01/08/90 Bob | |
Increased required "minimum hunk" available to 320K from 136K. | |
This should not affect anyone during development, and is intended | |
to reduce problems encountered in the field. Please let me know | |
if this change causes problems. | |
12/09/89 Bob | |
Modified GetTime kernel call as follows to provide more functions: | |
(GetTime) - returns low word of 60th second counter (unchanged) | |
(GetTime SYSTIME1) OR (GetTime 1) or (GetTime TRUE) are all | |
equivalent and will return the same value as before, but NOTE | |
the "1" or "TRUE" are the non-prefered forms although the value | |
of SYSTIME1 is also 1. | |
(GetTime SYSTIME2) - returns a 24 hour clock that is limited to | |
2 seconds of resolution. | |
(GetTime SYSDATE) - returns the systems concept of the day it is | |
in a packed YEAR/MONTH/DAY word. | |
The standard system files have been modified to conform to this new | |
functionality. | |
**** | |
For those who have "frozen" systems and NEED new interpreter | |
(required for those groups using LOGGER), changes were needed | |
in system.sc, timer.sc, intrface.sc and kernel.sh | |
**** | |
This change has a great degree of backward compatibility. To ensure | |
that you have no problems, merely GREP for GetTime in all your | |
source file and ensure that IF you passed an argument it was == to | |
1 (ie "1" or TRUE). If this is not the case change each occurrence | |
and recompile. | |
follows some code showing how to use each case. Defines for each | |
function have been placed in KERNEL.SH. | |
; print current 12 hour time as in 01:30:22 (assume PM) | |
(= tm (GetTime SYSTIME1)) | |
; HHHH|MMMM|MMSS|SSSS | |
(Printf | |
"%02d:%02d:%02d" | |
(>> tm 12) | |
(& (>> tm 6) %111111) | |
(& tm %111111) | |
) | |
; print current 24 hour time as in 13:30:22 | |
(= tm (GetTime SYSTIME2)) | |
; HHHH|HMMM|MMMS|SSSS | |
(Printf | |
"%02d:%02d:%02d" | |
(>> tm 11) | |
(& (>> tm 5) %111111) | |
(* (& tm %11111) 2) | |
) | |
; print current DATE as in 12/09/1989 (only good through 1999) | |
; years value is number of years since 1980 | |
(= tm (GetTime SYSDATE)) | |
; YYYY|YYYM|MMMD|DDDD | |
(Printf | |
"%02d/%02d/19%02d" | |
(& (>> tm 5) %1111) | |
(& tm %11111) | |
(+ 80 (>> tm 9)) ; you must add 80 to return value | |
) | |
12/01/89 Stuart: | |
Minor changes to INSTALL.HLP - | |
1. A warning label for the MT-32 | |
2. Changes in the text of Casio help screens | |
11/17/89 Jeff: | |
There is now a "fragment analyser" built into the debugger. It is | |
invoked by 'F' and displays all allocated heap following the first | |
free block. Objects are displayed as usual. Other allocated memory | |
has a code inside angle brackets, followed by the address. The codes | |
are: | |
<l> a list | |
<n> a list node | |
<e> an event | |
<mxxx> module node for module xxx | |
<sxxx> sound node for sound xxx | |
If people don't find this particularly useful, let me know. We don't | |
have the code space to make it more useful, and I'd like to pull it | |
out (reducing interpreter size) if it's not being used. | |
The SC compiler has a new switch (-w) which causes words in the | |