Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - watch-out-graham

Pages: [1]
1
Not sure if this has been posted here before or not, but snippets of a more recent version of this doc have been mistakenly published on a few disks :

Leisure Suit Larry v1.0 int. 2.917 360K disk 1

A difference in the first segment, div.v(VAR, VAR), is not in the original document.

Code: (0x010A00-0x010C00) [Select]
he result in the var.

div.v(VAR, VAR)
    Parameters: destination, divisor
    No alternate way to write it in the compiler.
    Divide the first var by the second, leaving the quotient in the
    first var.

lindirectv(VAR, VAR)
    [Written as var1 @= var2]
    Left indirect assignment of vars.  Takes the value in var1 and uses it
    as the var number in which to store the value of var2.  In essence,
    var1 is a 'pointer' to the var for the assignment.  Thus,

        %var        var1        39
        %var        var2        56
        var1 = 27;
   

A difference here, show.pri.screen() is not in the posted document.

Code: (0x011600-0x011800) [Select]
rks
    on white and the picture being overlayed is probably not all white.
    As in draw.pic(), a call to show.pic() is necessary to bring the
    new picture to the foreground screen.

show.pri.screen()
    Show the priority screen, then wait for ENTER or ESC before returning
    to the game.  Generally implemented as a debug action.



------ View actions

load.view(VIEW)
    Load the view whose number is given by the number.

load.view.f(var)
    Load the view whose number is in the var.

discard.view(VI

Code: (0x011A00-0x011C00) [Select]
t.motion(), start.cycling(), normal.cycle(), observe.blocks(),
    observe.horizon(), on.anything(), release.priority(), release.loop(),
    and observe.objects() on the object and sets its direction to 0.

unanimate.all()
    Unanimate all animated objects.  If you're going to draw a second picture
    in a room (using draw.pic() without doing a new.room()) do this first
    to make sure that you don't end up with a number of animated objects
    which you don't want in the new picture.  You'll have to do an
    anima

Code: (0x011E03-0x012000) [Select]

    Erase the object from the screen.  Erased objects do not move or
    interact with drawn objects.

position(OBJECT, NUM, NUM)
    Parameters: object, x coord, y coord.
    Set the position of the object (the lower left corner of its baseline)
    to the (x, y) coords given in the numbers.  x is measured from the right
    edge of the screen, y from the top.  If part of the object will be off
    the screen, if the object is above the horizon and must observe it, or
    if the object's baseline is on a priority lin

Code: (0x014600-0x014800) [Select]
to that corresponding to an object's
    current direction.  A non-moving object (direction = 0) remains in
    its last loop.

set.loop.f(OBJECT, VAR)
    Set the object's loop to that in the var.

fix.loop(OBJECT)
    Fix the object's loop.  It will no longer adjust to the direction
    in which the object is moving.

release.loop(OBJECT)
    Undo a fix.loop().  The object will now face in the direction
    appropriate to its direction.

set.cel(OBJECT, NUM)
    Set the object's cel to that in the number.  Cels

Code: (0x015600-0x015800) [Select]
s is done by
    animate.obj().

end.of.loop(OBJECT, FLAG)
    Reset the flag.  Increment the cel  number at each animation cycle.
    When the last cel of the loop is reached, stop cycling and set the flag.

reverse.cycle(OBJECT)
    Cycle the object from the current cel number to cel 0.  When cel 0
    is reached, start again at the last cel of the current loop.
   
reverse.loop(OBJECT, FLAG)
    Reset the flag.  Decrement the cel number at each animation cycle.
    When    cel 0 is reached, stop cycling and set the fl

Code: (0x017200-0x017400) [Select]
nd background colors for text.  Not all combinations
    will necessarily be supported on all machines.  We will try to
    approximate where we can, but no guarantees.  The colors are:

        0   black
        1   dark blue
        2   dark green
        3   cyan
        4   red
        5   magenta
        6   brown
        7   light grey
        8   dark grey
        9   light blue
        10  light green
        11  light cyan
        12  pink
        13  light magenta
        14  yellow
        15  white

    All combinations will (I believe) be supported on the Atari ST, Amiga,
    and the NEC 9801.
   
    On th

This one is interesting, it contains a small note that the original doesn't on number of screen lines

Code: (0x017600-0x017800) [Select]
  The number is the
    number of figure eights to do.  This will be a no-op on some hardware,
    so don't depend on it.



------ Screen handling

[*  25 lines total

configure.screen(NUM, NUM, NUM)
    Parameters: picture row, input row, status row.
    This call, which should be done as soon as the game starts, sets
    where the various components of the screen are placed.  The first
    number is the CHARACTER row number (starting at zero) for the upper
    left corner of the picture, the second is the row n

Code: (0x017A00-0x017C00) [Select]
ers: string number, message number.
    Copy the message into the string given by the number.

get.string(NUM, MSGNUM, NUM, NUM)
    Parameters: string number, message number, row, column.

    Prints the message as a prompt at the given screen position, then
    allows the user to enter the string for string number NUM.  If the
    row is >24, the message will be printed at the current cursor
    position.

    Since string 0 is the prompt, set the prompt by
        %message    1   "> "
        set.string(0, 1);

    The code to le

Code: (0x017E00-0x018000) [Select]
ilable to all said() tests for the remainder
    of the current logic scan.

get.num(MSGNUM, VAR)
    Prompt the user with the message and get a (purportedly) numeric reply.
    Put the number into var.  If a non-numeric reply is typed, var will
    be 0.



------ Input handling

prevent.input()
    Clear the input line and do not accept input from the user.  Input
    is off at startup.

accept.input()
    Display the input line and accept input from the user.

set.key(NUM, NUM, NUM)
    Parameters: low byte

Code: (0x018600-0x018800) [Select]
        set.key(27, 0, c.pause);            [ESC
        set.key(18, 0, c.rgb.toggle);       [^R
        set.key(16, 0, c.new.prompt);       [^P

        set.key(joy.low.byte, button0, c.doit);
        set.key(joy.low.byte, button1, c.useit);
        set.key(joy.low.byte, button0.dbl, c.lookit);
        set.key(joy.low.byte, button1.dbl, c.status);

    The controller definitions are in 'sysdefs'.  You may map up to
    29 keys.  More than one key may map to a single controller, but
    a single key can't map to more than one controller.

****** Note that the key

Space Quest II v2.0A int. 2.912 360K disk 1

Code: (0x012A00-0x012C00) [Select]
he result in the var.

div.v(VAR, VAR)
    Parameters: destination, divisor
    No alternate way to write it in the compiler.
    Divide the first var by the second, leaving the quotient in the
    first var.

lindirectv(VAR, VAR)
    [Written as var1 @= var2]
    Left indirect assignment of vars.  Takes the value in var1 and uses it
    as the var number in which to store the value of var2.  In essence,
    var1 is a 'pointer' to the var for the assignment.  Thus,

        %var        var1        39
        %var        var2        56
        var1 = 27;
   

Code: (0x013600-0x013800) [Select]
rks
    on white and the picture being overlayed is probably not all white.
    As in draw.pic(), a call to show.pic() is necessary to bring the
    new picture to the foreground screen.

show.pri.screen()
    Show the priority screen, then wait for ENTER or ESC before returning
    to the game.  Generally implemented as a debug action.



------ View actions

load.view(VIEW)
    Load the view whose number is given by the number.

load.view.f(var)
    Load the view whose number is in the var.

discard.view(VI

Code: (0x013A00-0x013C00) [Select]
t.motion(), start.cycling(), normal.cycle(), observe.blocks(),
    observe.horizon(), on.anything(), release.priority(), release.loop(),
    and observe.objects() on the object and sets its direction to 0.

unanimate.all()
    Unanimate all animated objects.  If you're going to draw a second picture
    in a room (using draw.pic() without doing a new.room()) do this first
    to make sure that you don't end up with a number of animated objects
    which you don't want in the new picture.  You'll have to do an
    anima

Code: (0x013E05-0x014000) [Select]
Erase the object from the screen.  Erased objects do not move or
    interact with drawn objects.

position(OBJECT, NUM, NUM)
    Parameters: object, x coord, y coord.
    Set the position of the object (the lower left corner of its baseline)
    to the (x, y) coords given in the numbers.  x is measured from the right
    edge of the screen, y from the top.  If part of the object will be off
    the screen, if the object is above the horizon and must observe it, or
    if the object's baseline is on a priority lin

Code: (0x014601-0x014800) [Select]
to that corresponding to an object's
    current direction.  A non-moving object (direction = 0) remains in
    its last loop.

set.loop.f(OBJECT, VAR)
    Set the object's loop to that in the var.

fix.loop(OBJECT)
    Fix the object's loop.  It will no longer adjust to the direction
    in which the object is moving.

release.loop(OBJECT)
    Undo a fix.loop().  The object will now face in the direction
    appropriate to its direction.

set.cel(OBJECT, NUM)
    Set the object's cel to that in the number.  Cels

Code: (0x015601-0x015800) [Select]
is done by
    animate.obj().

end.of.loop(OBJECT, FLAG)
    Reset the flag.  Increment the cel  number at each animation cycle.
    When the last cel of the loop is reached, stop cycling and set the flag.

reverse.cycle(OBJECT)
    Cycle the object from the current cel number to cel 0.  When cel 0
    is reached, start again at the last cel of the current loop.
   
reverse.loop(OBJECT, FLAG)
    Reset the flag.  Decrement the cel number at each animation cycle.
    When    cel 0 is reached, stop cycling and set the fl

Code: (0x015A01-0x015C00) [Select]
to the number in var.  Reset to 1 by new.room().

step.time(OBJECT, VAR)
    Set the step frequency of the object (the number of animation cycles
    betweeen moves of the object) to the number in var.  Reset to 1 by
    new.room().

move.obj(OBJECT, NUM, NUM, NUM, FLAG)
    Parameters: object, x coord, y coord, step size, flag.
    Reset the flag, then start moving the object to the given (x, y)
    position.  Change the appropriate coordinates by the step size at
    each animation  interval.  If the step size par

Code: (0x015DFF-0x016000) [Select]
    s current
    stepsize.  When the distance to the object is less than the greater
    of the object's stepsize and the specified distance for collision,
    stop the object's motion and set the flag.

wander(OBJECT)
    Start the object wandering in random directions for random distances.

normal.motion(OBJECT)
    Undoes a previous follow.ego(), move.obj(), or wander() before it is
    completed.

set.dir(OBJECT, VAR)
    Set the direction of the object to that in the var.  Note that this
    will not work for ego -

Code: (0x016200-0x016400) [Select]
y one block at a time may be
    set.        * minimum is 3x3
****** How about a number of blocks?

unblock()
    Remove the block set by block().



------ Inventory object actions

get(OBJECT)
    Add the object to ego's inventory.

getf(VAR)
    Add the object whose number is in var to ego's inventory.  Generally
    used for debugging, not in the game.

drop(OBJECT)
    Remove the object from ego's inventory.  The object is now gone forever.

put(OBJECT, VAR)
    Put the number in var into the room number fi

Pages: [1]

SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.043 seconds with 20 queries.