class Crowbar::Rules::WADRule

Overview

Structure-preserving rule for Doom WAD files (IWAD and PWAD). Preserves 12-byte WAD header (identification, lump count, directory offset) and 16-byte directory lump entries (filepos, size, 8-byte ASCII name), while mutating lump directory tables, lump names, and lump data payloads (THINGS coordinates/types, VERTEXES, LINEDEFS, and sound/graphics lumps).

Defined in:

crowbar/rules/wad.cr

Constant Summary

IWAD_MAGIC = Bytes[73, 87, 65, 68]
PWAD_MAGIC = Bytes[80, 87, 65, 68]

Instance Method Summary

Instance methods inherited from class Crowbar::Rule

apply(context : Context, buffer : Buffer) : Bool apply, description : String description, match?(buffer : Buffer) : Bool match?, name : String name, targets(*targets : Symbol) targets, weight : Float64 weight, weight=(weight : Float64) weight=

Constructor methods inherited from class Crowbar::Rule

new(weight : Float64 = 1.0) new

Instance Method Detail

def apply(context : Context, buffer : Buffer) : Bool #
Description copied from class Crowbar::Rule

Applies a structure-preserving transformation to the buffer


def description : String #

def match?(buffer : Buffer) : Bool #
Description copied from class Crowbar::Rule

Checks whether the buffer matches the format handled by this rule


def name : String #

def parse_directory(buffer : Buffer, numlumps : Int32, infotableofs : Int32) : Array(LumpEntry) #