==== 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, ...