+ /**
+ * ChimaraIF:piracy-mode:
+ *
+ * The Z-machine specification defines a facility for games to ask the
+ * interpreter they are running on whether this copy of the game is pirated.
+ * How the interpreter is supposed to magically determine that it is running
+ * pirate software is unclear, and so the majority of games and interpreters
+ * ignore this feature. Set this property to %TRUE if you want the
+ * interpreter to pretend it has detected a pirated game.
+ *
+ * Only affects Z-machine interpreters.
+ */
+ g_object_class_install_property(object_class, PROP_PIRACY_MODE,
+ g_param_spec_boolean("piracy-mode", _("Piracy mode"),
+ _("Pretend the game is pirated"), FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_LAX_VALIDATION | G_PARAM_STATIC_STRINGS));
+ /**
+ * ChimaraIF:tandy-bit:
+ *
+ * Some early Infocom games were sold by the Tandy Corporation. Setting this
+ * property to %TRUE changes the wording of some Version 3 Infocom games
+ * slightly, so as to be less offensive. See <ulink
+ * url="http://www.ifarchive.org/if-archive/infocom/info/tandy_bits.html">
+ * http://www.ifarchive.org/if-archive/infocom/info/tandy_bits.html</ulink>.
+ *
+ * Only affects Z-machine interpreters.
+ */
+ g_object_class_install_property(object_class, PROP_TANDY_BIT,
+ g_param_spec_boolean("tandy-bit", _("Tandy bit"),
+ _("Censor certain Infocom games"), FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_LAX_VALIDATION | G_PARAM_STATIC_STRINGS));
+ /**
+ * ChimaraIF:expand-abbreviations:
+ *
+ * Most Z-machine games, in particular ones compiled with the Inform
+ * library, support the following one-letter abbreviations:
+ * <simplelist>
+ * <member>D — Down</member>
+ * <member>E — East</member>
+ * <member>G — aGain</member>
+ * <member>I — Inventory</member>
+ * <member>L — Look</member>
+ * <member>N — North</member>
+ * <member>O — Oops</member>
+ * <member>Q — Quit</member>
+ * <member>S — South</member>
+ * <member>U — Up</member>
+ * <member>W — West</member>
+ * <member>X — eXamine</member>
+ * <member>Y — Yes</member>
+ * <member>Z — wait (ZZZZ...)</member>
+ * </simplelist>
+ * Some early Infocom games might not recognize these abbreviations. Setting
+ * this property to %TRUE will cause the interpreter to expand the
+ * abbreviations to the full words before passing the commands on to the
+ * game. Frotz only expands G, X, and Z; Nitfol expands all of the above
+ * plus the following nonstandard ones:
+ * <simplelist>
+ * <member>C — Close</member>
+ * <member>K — attacK</member>
+ * <member>P — oPen</member>
+ * <member>R — dRop</member>
+ * <member>T — Take</member>
+ * </simplelist>
+ *
+ * Only affects Z-machine interpreters. Behaves differently on Frotz and
+ * Nitfol.
+ */
+ g_object_class_install_property(object_class, PROP_EXPAND_ABBREVIATIONS,
+ g_param_spec_boolean("expand-abbreviations", _("Expand abbreviations"),
+ _("Expand abbreviations such as X for EXAMINE"), FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_LAX_VALIDATION | G_PARAM_STATIC_STRINGS));
+ /**
+ * ChimaraIF:ignore-errors:
+ *
+ * Setting this property to %TRUE will cause the interpreter to ignore
+ * certain Z-machine runtime errors. Frotz will ignore any fatal errors.
+ * Nitfol by default warns about any shady behavior, and this property will
+ * turn those warnings off.
+ *
+ * Only affects Z-machine interpreters. Behaves differently on Frotz and
+ * Nitfol.
+ */
+ g_object_class_install_property(object_class, PROP_IGNORE_ERRORS,
+ g_param_spec_boolean("ignore-errors", _("Ignore errors"),
+ _("Do not warn the user about Z-machine errors"), FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_LAX_VALIDATION | G_PARAM_STATIC_STRINGS));
+ /**
+ * ChimaraIF:typo-correction:
+ *
+ * Nitfol has an automatic typo-correction facility, where it searches the
+ * game dictionary for words which differ by one letter from any unknown
+ * input words. Set this property to %FALSE to turn this feature off.
+ *
+ * Only affects Nitfol.
+ */
+ g_object_class_install_property(object_class, PROP_TYPO_CORRECTION,
+ g_param_spec_boolean("typo-correction", _("Typo correction"),
+ _("Try to remedy typos if the interpreter supports it"), TRUE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_LAX_VALIDATION | G_PARAM_STATIC_STRINGS));
+ /**
+ * ChimaraIF:interpreter-number:
+ *
+ * Infocom gave each port of their interpreter a different number. The Frotz
+ * and Nitfol plugins can emulate any of these platforms. Some games behave
+ * slightly differently depending on what platform they are on. Set this
+ * property to a #ChimaraIFZmachineVersion value to emulate a certain
+ * platform.
+ *
+ * Note that Nitfol pretends to be an Apple IIe by default.
+ *
+ * Only affects Z-machine interpreters.
+ */
+ g_object_class_install_property(object_class, PROP_INTERPRETER_NUMBER,
+ g_param_spec_uint("interpreter-number", _("Interpreter number"),
+ _("Platform the Z-machine should pretend it is running on"),
+ CHIMARA_IF_ZMACHINE_DEFAULT, CHIMARA_IF_ZMACHINE_MAXVAL, CHIMARA_IF_ZMACHINE_DEFAULT,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_LAX_VALIDATION | G_PARAM_STATIC_STRINGS));
+ /**
+ * ChimaraIF:random-seed:
+ *
+ * If the #ChimaraIF:random-seed-set property is %TRUE, then the interpreter
+ * will use the value of this property as a seed for the random number
+ * generator. Use this feature to duplicate sequences of random numbers
+ * for testing games.
+ *
+ * Note that the value -1 is a valid random number seed for
+ * Nitfol, whereas it will cause Frotz to pick an arbitrary seed even when
+ * #ChimaraIF:random-seed-set is %TRUE.
+ *
+ * Only affects Z-machine interpreters. Behaves slightly differently on
+ * Frotz and Nitfol.
+ */
+ g_object_class_install_property(object_class, PROP_RANDOM_SEED,
+ g_param_spec_int("random-seed", _("Random seed"),
+ _("Seed for the random number generator"), G_MININT, G_MAXINT, 0,
+ G_PARAM_READWRITE | G_PARAM_LAX_VALIDATION | G_PARAM_STATIC_STRINGS));
+ /**
+ * ChimaraIF:random-seed-set:
+ *
+ * Whether to use or ignore the #ChimaraIF:random-seed property.
+ *
+ * Only affects Z-machine interpreters.
+ */
+ g_object_class_install_property(object_class, PROP_RANDOM_SEED_SET,
+ g_param_spec_boolean("random-seed-set", _("Random seed set"),
+ _("Whether the seed for the random number generator should be set manually"), FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_LAX_VALIDATION | G_PARAM_STATIC_STRINGS));