Aleph One File compatibility

10
Jul
0

 ”Images” - on Aleph One/SDL this is a data file and not a resource file
    as on the MacOS versions of Aleph One and Marathon, but the file format
    is exactly the same, and compatible across all platforms supported by
    Aleph One/SDL
  “Shapes” - fully compatible across all versions of Aleph One/Marathon 2/
    Marathon Infinity
  “Sounds” - fully compatible across all versions of Aleph One/Marathon 2/
    Marathon Infinity
  Map files - maps without resource forks are fully compatible across all
    versions of Aleph One/Marathon 2/Marathon Infinity; maps with resource
    forks need to be in one of three formats:
      a) data and resource forks in separate files, <name> and <name>.rsrc/
         <name>.resources
      b) an AppleSingle encoded file containing data and resource fork
      c) a MacBinary II encoded file containing data and resource fork
    All of these formats are fully compatible across all platforms supported
    by Aleph One/SDL.
  Saved games - fully compatible across all versions of Aleph One/
    Marathon 2/Marathon Infinity (but the MacOS versions save a small picture
    of the map at the current player’s position in the resource fork of
    saved games, which is not preserved or used by Aleph One/SDL)
  Films - fully compatible across all versions of Aleph One/Marathon 2/
    Marathon Infinity
  “Aleph One Preferences” - platform-specific, not compatible with the MacOS
    versions of Aleph One/Marathon nor across the platforms supported by
    Aleph One/SDL
  Themes - fully compatible across all versions of Aleph One/SDL; the MacOS
    versions of Aleph One and Marathon don’t support themes

What is Aleph One

10
Jul
0

Aleph One is an Open Source 3D first-person shooter game, based on the game
Marathon 2 by Bungie Software. It is set in a Sci-Fi universe dominated by
deviant computer AIs and features a well thought-out plot.

To compile Aleph One/SDL, you need an up-to-date C++ compiler. Using GCC 3.x
should give the best results. Users of pre-ISO C++ compilers need not apply.

Aleph One/SDL supports, but doesn’t require, OpenGL for rendering.

Tagged as:

Types and Mnemonics

10
Jul
0

The string mnemonics listed below can be used for assignment and as arguments to functions. Additionally, Aleph One’s Lua interpreter has been modified so that equality comparisons between userdata types and strings are possible.

For example, this script would move all players on the blue team to the red team:

for p in Players() do
  if p.team == “blue” then
    p.team = “red”
  end
end
And this one would damage all major compilers with 10 points of fusion damage:
for m in Monsters() do
  if m.type == “major compiler” then
    m:damage(10, “fusion”)
  end
end
Each type has a read-only .index field, which represents the game’s internal index:
> =ItemTypes["pistol"].index
1

Each type also has a .mnemonic field, which is handy for finding the mnemonic of a given type:
> =MonsterTypes["major compiler"].class.mnemonic
compiler

You can even use the mnemonic field to customize the mnemonics for your scenario. Note that you can only have one string mnemonic per type index:
> WeaponTypes["fist"].mnemonic = “puncher”
> =WeaponTypes["puncher"].index
0
> =WeaponTypes["fist"]
nil

If you do this, you should customize them all at the beginning of the script. Changing mnemonics mid-game will confuse anyone who tries to read your script, and probably yourself as well!

Sides

10
Jul
0

# Sides
number of sides on the level

Sides()
iterates through all sides on the level

Sides.new(polygon, line) 20080707
creates a new side

side must not already exist

Sides[index]
.control_panel
nil if the side is not a control panel

set to true or false to create/destroy a control panel 20080707

.can_be_destroyed 20080707
whether projectiles destroy this switch

.light_dependent 20080707
switch can only be activated if light > 75%

.only_toggled_by_weapons 20080707
switch can only be toggled by weapons

.permutation
permutation of control panel

.repair 20080707
switch is a repair switch

.type 20080707
type of control panel

.uses_item 20080707
i.e. chip insertion

.primary
.secondary
.transparent
.collection
texture collection

.empty
whether transparent side is empty

transparent side only

setting empty to false is a no-op; set collection and texture_index instead

.light
texture light

.texture_index
texture bitmap index

.texture_x
texture x offset

.texture_y
texture y offset

.transfer_mode
texture transfer mode

:play_sound(sound [, pitch])
play sound coming from this side

.line (read-only)
line this side is attached to

.polygon (read-only)
polygon this side is attached to

:recalculate_type() 20081213
correct the side type (Forge can generate incorrect side types)

.type (read-only) 20080707
type of side

Tagged as:

Scenery

10
Jul
0

# Scenery
maximum number of map objects

Scenery()
iterates through all valid scenery

Scenery.new(x, y, height, polygon, type)
returns a new scenery

Scenery[index]
:damage()
damages scenery

.damaged (read-only)
whether this scenery has been damaged

:delete()
removes scenery from the map

.facing
direction scenery is facing

:play_sound(sound)
play sound coming from this scenery

.polygon (read-only)
polygon the scenery is in

.solid
whether this scenery is solid

.type (read-only)
type of scenery

Tagged as: