332 lines
7.5 KiB
Markdown
332 lines
7.5 KiB
Markdown
|
# TERMINAL CODE ###############################################################
|
||
|
|
||
|
The terminal definition format is extremely straightforward. Terminal commands
|
||
|
begin lines and are in the format:
|
||
|
|
||
|
```
|
||
|
#COMMAND_NAME parameters
|
||
|
```
|
||
|
|
||
|
In Forge and Maraiah, commands need not be uppercase. Atque does require all
|
||
|
commands to be uppercase.
|
||
|
|
||
|
Comments also begin lines (they can't be after the beginning of one) and will
|
||
|
disable any text proceeding them. They are formed like:
|
||
|
|
||
|
```
|
||
|
; comment content here
|
||
|
```
|
||
|
|
||
|
Terminals are numbered, and this is used in the map to determine which terminal
|
||
|
to display when a computer is used.
|
||
|
|
||
|
## Blocks ##
|
||
|
|
||
|
### Terminal Blocks ###
|
||
|
|
||
|
The number for the terminal being currently defined is set with the `#TERMINAL`
|
||
|
and `#ENDTERMINAL` commands. These are formed as:
|
||
|
|
||
|
```
|
||
|
#TERMINAL number
|
||
|
#ENDTERMINAL number
|
||
|
```
|
||
|
|
||
|
For example, defining a terminal numbered "1" would be:
|
||
|
|
||
|
```
|
||
|
#TERMINAL 1
|
||
|
|
||
|
; terminal's contents here
|
||
|
|
||
|
#ENDTERMINAL 1
|
||
|
```
|
||
|
|
||
|
### Sections ###
|
||
|
|
||
|
There are four possible sections in a terminal, which are between the
|
||
|
`#TERMINAL` and `#ENDTERMINAL` blocks:
|
||
|
|
||
|
```
|
||
|
#UNFINISHED
|
||
|
#FINISHED
|
||
|
#FAILURE
|
||
|
#SUCCESS
|
||
|
```
|
||
|
|
||
|
These all mark the start of where the terminal will display, depending on the
|
||
|
current status of your mission.
|
||
|
|
||
|
| Name | Will display when |
|
||
|
| ---- | ----------------- |
|
||
|
| `UNFINISHED` | your objective has not been met or no other block exists |
|
||
|
| `FINISHED` | you have succeeded or failed |
|
||
|
| `FAILURE` | you have failed your objective |
|
||
|
| `SUCCESS` | you have succeeded in your objective |
|
||
|
|
||
|
Sections must have an end, which is defined with:
|
||
|
|
||
|
```
|
||
|
#END
|
||
|
```
|
||
|
|
||
|
Between sections may be any amount of regular commands. There are two kinds of
|
||
|
these normal commands: Text commands, and interactive commands.
|
||
|
|
||
|
## Text Commands ##
|
||
|
|
||
|
All text commands may have (but do not require) text following them, which may
|
||
|
be formatted.
|
||
|
|
||
|
Line breaks will break in-game, but unbroken lines will automatically wrap. It
|
||
|
is generally best to just put all of your text onto one line, even if this
|
||
|
destroys your sanity. Use a text editor with line wrapping for this.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#PICT 10007
|
||
|
~text interface terminal malfunction error ~2992dud
|
||
|
|
||
|
welcome to mabmap i am durandal the most pretty ai in ever i made the pfhor ded and won all the everything you should go shoot some things I put here because reasons
|
||
|
```
|
||
|
|
||
|
### Formatting ###
|
||
|
|
||
|
Text effects are designated by a '$' and then one of the following:
|
||
|
|
||
|
| $-code | Effect |
|
||
|
| ------ | ------ |
|
||
|
| `I/i` | enables/disables italic text |
|
||
|
| `B/b` | enables/disables bold text |
|
||
|
| `U/u` | enables/disables underlined text |
|
||
|
| `Cn` | changes the text color, where "n" is a number 0 through 9 |
|
||
|
|
||
|
For more information on colors, see section ENUMERATIONS, Terminal Color.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
$C1$BoOooO$IooOOoo$i$b$C0 ... $C6did I $Uspook$u you?$C0
|
||
|
```
|
||
|
|
||
|
### Text Command Overview ###
|
||
|
|
||
|
Text commands include:
|
||
|
|
||
|
```
|
||
|
#PICT pict_id alignment
|
||
|
#LOGON pict_id
|
||
|
#LOGOFF pict_id
|
||
|
#INFORMATION
|
||
|
#CHECKPOINT goal_id
|
||
|
#BRIEFING level_number
|
||
|
```
|
||
|
|
||
|
### `#PICT` ###
|
||
|
|
||
|
```
|
||
|
#PICT pict_id alignment
|
||
|
```
|
||
|
|
||
|
`#PICT` is the most basic and most used command throughout Marathon 2.
|
||
|
|
||
|
It displays a picture to the specified alignment and text to the other side.
|
||
|
|
||
|
It will:
|
||
|
- Wait for input before proceeding.
|
||
|
- Display 45 characters per line, and display up to 22 lines on one page.
|
||
|
- Display text aligned to the left on the right side of the screen.
|
||
|
|
||
|
If alignment is specified as RIGHT, text is aligned to the right on the left of
|
||
|
the screen. If alignment is specified as CENTER, no text may be displayed, only
|
||
|
an image. If no alignment is specified, it will default to an image on the left
|
||
|
and text on the right.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#PICT 10007
|
||
|
~text interface terminal malfunction error ~2992dud
|
||
|
|
||
|
hellote this is example text from durnadle prettiest ai in ever thank u for reading goodbye
|
||
|
```
|
||
|
|
||
|
### `#LOGON`, `#LOGOFF` ###
|
||
|
|
||
|
```
|
||
|
#LOGON pict_id
|
||
|
#LOGOFF pict_id
|
||
|
```
|
||
|
|
||
|
`#LOGON` and `#LOGOFF` are generally used first and last in a terminal.
|
||
|
|
||
|
These two display a PICT in the middle of the screen and text below the image if
|
||
|
you supply it. They both do things to the screen borders.
|
||
|
|
||
|
They will:
|
||
|
- Automatically continue, an input will interrupt it.
|
||
|
- Only display one line of text, at most 72 characters.
|
||
|
- Display text aligned to the center in the middle of the screen.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#LOGON 1600
|
||
|
<CMND PRAMA &681g1>
|
||
|
; ... content ...
|
||
|
#LOGOFF 1600
|
||
|
ehhg.431.4122//<PFGR ZNE6 &49c2>
|
||
|
```
|
||
|
|
||
|
### `#INFORMATION` ###
|
||
|
|
||
|
```
|
||
|
#INFORMATION
|
||
|
```
|
||
|
|
||
|
`#INFORMATION` will just display text, and is mostly used in Marathon 1.
|
||
|
|
||
|
It will:
|
||
|
- Wait for input before proceeding.
|
||
|
- Display 72 characters per line, and display up to 22 lines on one page.
|
||
|
- Display text aligned to the left on the left side of the screen.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#INFORMATION
|
||
|
you suck at videogames love durandal
|
||
|
p.s. if you don't win i'm erasing your home planet from existence
|
||
|
```
|
||
|
|
||
|
### `#CHECKPOINT` ###
|
||
|
|
||
|
```
|
||
|
#CHECKPOINT goal_id
|
||
|
```
|
||
|
|
||
|
`#CHECKPOINT` may only be used in Marathon 1, unless you're using Aleph One
|
||
|
version 1.1 or higher.
|
||
|
|
||
|
This shows a map centered on the specified goal point, with the goal circled, on
|
||
|
the left of the screen.
|
||
|
|
||
|
The map will only show polygons connected to the polygon the goal is in, so if
|
||
|
you have a separated area where the goal point is, it will only display that. It
|
||
|
will also not display secret areas and any polygons proceeding them.
|
||
|
|
||
|
It will:
|
||
|
- Wait for input before proceeding.
|
||
|
- Display 45 characters per line, and display up to 22 lines on one page.
|
||
|
- Display text aligned to the left on the right side of the screen.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#CHECKPOINT 7
|
||
|
go shoot these things so i can claim this victory as mine forever and tell you about the things that i totally shot for approximately 200 years
|
||
|
```
|
||
|
|
||
|
### `#BRIEFING` ###
|
||
|
|
||
|
```
|
||
|
#BRIEFING level_number
|
||
|
```
|
||
|
|
||
|
BRIEFING may only be used in Marathon 1. It is identical to INFORMATION, but
|
||
|
after you're done reading, it will teleport you to the specified level.
|
||
|
|
||
|
## Interactive Commands ##
|
||
|
|
||
|
Interactive commands are all actions carried out by the game that do not all
|
||
|
effect the active terminal.
|
||
|
|
||
|
### Interactive Command Overview ###
|
||
|
|
||
|
Interactive commands include:
|
||
|
|
||
|
```
|
||
|
#INTERLEVEL TELEPORT level_number
|
||
|
#INTRALEVEL TELEPORT polygon_tag
|
||
|
#TAG tag
|
||
|
#SOUND sound_number
|
||
|
#STATIC duration
|
||
|
```
|
||
|
|
||
|
### `#INTERLEVEL TELEPORT` ###
|
||
|
|
||
|
```
|
||
|
#INTERLEVEL TELEPORT level_number
|
||
|
```
|
||
|
|
||
|
`#INTERLEVEL TELEPORT` exits the terminal and teleports you to the specified
|
||
|
level. If the level number is "256", this ends the game.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#INTERLEVEL TELEPORT 7
|
||
|
```
|
||
|
|
||
|
### `#INTRALEVEL TELEPORT` ###
|
||
|
|
||
|
```
|
||
|
#INTRALEVEL TELEPORT polygon_tag
|
||
|
```
|
||
|
|
||
|
`#INTRALEVEL TELEPORT` exits the terminal and teleports you to the centroid of
|
||
|
the specified polygon within the map.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#INTRALEVEL TELEPORT 77
|
||
|
```
|
||
|
|
||
|
### `#TAG` ###
|
||
|
|
||
|
```
|
||
|
#TAG tag
|
||
|
```
|
||
|
|
||
|
`#TAG` activates all lights and platforms with the specified tag.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#TAG 77
|
||
|
```
|
||
|
|
||
|
### `#SOUND` ###
|
||
|
|
||
|
```
|
||
|
#SOUND sound_number
|
||
|
```
|
||
|
|
||
|
`#SOUND` plays the specified sound from the Sounds file or from the scenario and
|
||
|
then goes to the next level.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#SOUND 77
|
||
|
```
|
||
|
|
||
|
### `#STATIC` ###
|
||
|
|
||
|
```
|
||
|
#STATIC duration
|
||
|
```
|
||
|
|
||
|
`#STATIC` fills the terminal with TV static for the specified duration in
|
||
|
1/30ths seconds. Aleph One only.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```
|
||
|
#STATIC 60
|
||
|
```
|
||
|
|
||
|
<!-- EOF -->
|