Cauldron2D.GameMaker.General (Cauldron2D.GameMaker v0.2.1)

Copy Markdown View Source

The GEN8 chunk: what the game is called, the window it opens, the order of its rooms, and which generation of GameMaker built it.

format is what every other reader branches on:

  • :gms1 — GameMaker: Studio 1, whose rooms have backgrounds and tiles
  • :gms2 — GameMaker Studio 2 before 2.3, whose rooms have layers
  • :gms2_3 — 2.3 and after, which adds sequences to rooms and scripts as functions

bytecode is the version of the compiled code the file was written for, and steam_app_id is 0 for a game not on Steam.

Summary

Functions

The GEN8 chunk at at, its format told apart with the help of the file's chunks.

Types

format()

@type format() :: :gms1 | :gms2 | :gms2_3

t()

@type t() :: %Cauldron2D.GameMaker.General{
  bytecode: non_neg_integer(),
  config: String.t() | nil,
  display_name: String.t(),
  file_name: String.t() | nil,
  format: format(),
  fps: number() | nil,
  name: String.t(),
  room_order: [non_neg_integer()],
  steam_app_id: non_neg_integer(),
  version:
    {non_neg_integer(), non_neg_integer(), non_neg_integer(), non_neg_integer()},
  window: {non_neg_integer(), non_neg_integer()}
}

Functions

read(data, at, chunks)

The GEN8 chunk at at, its format told apart with the help of the file's chunks.