User Tools

Site Tools


formats:zax

CObject Text File

Most of the text data files in Lionheart are text dumps of classes. They are the same general format, so this page should suffice to describe them all.

Purpose:

zax files

textures

surface types (.STY) …?

EBNF specification

(* FIXME: I have not tested this specification, so there are probably errors in it *)
(* FIXME: Dynamic Properties are not handled in this description *)
(* FIXME: DialogTree dash lines are not handled in this description *)
(* FIXME: spurious empty lines and EOLs are not handled as well *)

cobject = classname , [ init_args ] , EOL , cobject_data ;

init_args = "(" , int , { "," , int } , ")" ;

cobject_data = indent, "{" , EOL, ( keyvalue_data | raw_data ) , indent, "}" ;
keyvalue_data = { indent , key , "=" , value , EOL } ;
raw_data = { indent , value , EOL } ;

key = limited string ;
value = string | bool | int | float | cobject ;
indent = { whitespace }

bool = "0" | "1" ;
int = ( [ "-" ] , digit , { digit } ) | limited string ;
float = float decimal | float exponential | limited string ;
float decimal = [ "-" ] , digit , { digit } , "." , digit , { digit } ;
float exponential = float decimal , "e" , [ "-" ] , digit , { digit } ;
string = { printable | whitespace } ;
limited string = keychar | ( keychar , { keychar | whitespace } , keychar } ;
classname = letter , { letter | digit | "-" } ;

EOL = "\r" , "\n" ;
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
whitespace = " " | "\t" ;

(* meaning of these is hopefully clear *)
printable = ? "\041" .. "\176" ? ; 
keychar = ? "\041" .. "\074" ? | ? "\076" .. "\176" ? ; (* probably some other chars except "=" are banned as well *)
letter = ? "A" .. "Z" ? | ? "a" .. "z" ? ;

Classes

Activities/AIs, Actions, …

formats/zax.txt · Last modified: 2010-10-17 21:51 by edheldil