=============================================================================== ZDoom Strife Dialog Format ZDoom v1.1 - 23.08.2010 based on Universal Strife Dialog Format v2.0 Copyright (c) 2010 Christoph Oelckers. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. =============================================================================== ======================================= I. Grammar / Syntax ======================================= No changes. ======================================= II. Implementation Semantics ======================================= No changes. ======================================= III. Changes to USDF spec ======================================= ZDoom Strife Dialogue format implements the USDF base specification as described with one important change: To take advantage of named actor classes any field specifying an actor type by a conversationID takes a class name instead. The following fields are affected by this change: conversation { actor = ; page { drop = ; ifitem { item = ; } choice { cost { item = ; } giveitem = ; } } } It should be noted that this change creates an incompatibility with USDF so technically speaking the ZDoom format is no longer 'real' USDF. To accomodate what is needed here this is unavoidable, unfortunately. Any proper USDF implementation not supporting named actor classes should either refuse loading dialogues with the 'ZDoom' namespace or if it does not outright abort on incompatible namespaces fail with a type mismatch error on one of the specified propeties. In addition ZDoom defines one new field in the top level of a conversation block: id = ; Assigns a conversation ID for use in Thing_SetConversation or in UDMF's 'conversation' actor property. ZDoom-format dialogues need to start with the line: namespace = "ZDoom"; --------------------- III.A : Conversations --------------------- This block only lists the newly added fields. Currently ZDoom only adds one field to the specification: conversation // Starts a dialog. { id = ; // assigns an ID to a dialogue. IDs are used to dynamically assign // dialogues to actors. For 'Strife' namespace or binary dialogues // the standard conversation ID ('actor' property) is used instead // for this purpose but since 'ZDoom' namespace requires the actor // to be a class name it needs a separate field for this. } =============================================================================== EOF ===============================================================================