Interface Definition

Components of the game’s interfaces - one widget each.


ReadSignedShort

function ReadSignedShort(const data: TByteArray; var offset: Integer): Integer;

Read16Bits reinterpreted as signed, for the interface fields that can be negative.


InterfaceDefinition.Create

function TInterfaceDefinition.Create(id: Integer; const data: TByteArray): TInterfaceDefinition; static;

Decodes an interface component - one widget of the game’s UI.

Unlike most definitions this is not opcode driven: the fields come in a fixed order, and which of them are present depends on IfType. Only the size, type and sprite are kept, but the rest are still read so that the ones after them land in the right place.