Object ID validation files

Future Syntax - subject to change

object-id-filename1 = class-name [’-’ {printable}] ‘.sk’ ’-’ | ‘~’ ‘ids
object-id-file2 = {ws symbol-literal | raw-object-id} ws
raw-object-id3 = {printable}1-255 end-of-line
class-name = uppercase {alphanumeric}
symbol-literal = '’ {character}0-255'

Object Id validation files provide a list of valid names that can be used by the specified class for object ids – essentially a dictionary. They can be either created by hand or generated by a world editor, the asset pipeline, the game / simulation itself, etc. Their form must follow the syntax as described in the table above. Note that whitespace (ws) includes the possibility of comments so standard SkookumScript comments can be used in the file to describe, label or comment out names.

An object id file should be present if the meta file for a class has object_id_lookup set to true and object_id_validate set to either parse, exist or defer.

More than one object id file can exist for a single class simultaneously – their names will be merged together into a unified list. This allows multiple people, tools, etc. to maintain different lists for the same object id class type without conflict and can also reduce any merge headaches for version control, etc. This also creates a simple mechanism to specify ids that will always be present, that are exceptional cases not generated by other tools, temporary ids used for testing, working ids that will be added at a later stage, etc.

Also see Object Id Identifiers to see how object ids are used in code and Class Meta Files to see the different object id settings for a class.

  1. Starts with the object id class name then optional source/origin tag (assuming a valid file title) – for example: Trigger-WorldEditor, Trigger-JoeDeveloper, Trigger-Extra, Trigger-Working, etc. A dash ‘-’ in the file extension indicates an id file that is a compiler dependency and a tilde ‘~’ in the file extension indicates that is not a compiler dependency

  2. Note: if symbol-literal used for id then leading whitespace, escape characters and empty symbol can be used.

  3. Must have at least 1 character and may not have leading whitespace (ws), single quote (‘'’) nor end-of-line character.