Maraiah/doc/data/1-terminal.md

7.5 KiB

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