8
edits
(→Choices: Remove single_choice parameter size explanation, as unnecessary) |
m (General clarifications) |
||
Line 100: | Line 100: | ||
</syntaxhighlight>This assumes a 30FPS frame rate. However, frame rate mods should correctly convert your actual frame rate to 30, so a <code>frames</code> value of 30 should always correspond to 1 second, unless your game is lagging. | </syntaxhighlight>This assumes a 30FPS frame rate. However, frame rate mods should correctly convert your actual frame rate to 30, so a <code>frames</code> value of 30 should always correspond to 1 second, unless your game is lagging. | ||
A common use of pauses is to break up sentences auditorily, like one would when speaking in real life. <code>short</code> is typically used after regular sentences while <code>long</code> and <code>longer</code> are used after exclamations, questions, and ponderings. The specific duration depends on | A common use of pauses is to break up sentences auditorily, like one would when speaking in real life. <code>short</code> is typically used after regular sentences while <code>long</code> and <code>longer</code> are used after exclamations, questions, and ponderings. The specific duration you should use depends on how much you want to emphasize the preceding sentence. | ||
====Size==== | ====Size==== | ||
Line 117: | Line 117: | ||
variable_kind: 19 | variable_kind: 19 | ||
name: Gerudo_CarryIce_s | name: Gerudo_CarryIce_s | ||
</syntaxhighlight>The | </syntaxhighlight>The value of <code>variable_kind</code> is the type of Game Flag that is referenced (this includes strings, int and float values). Refer to existing in-game implementations of variables to determine how to use them in your dialogue. | ||
The value of <code>name</code> is the name of the variable to insert. | The value of <code>name</code> is the name of the variable to insert. | ||
Usage of variables requires the associated event flow to be configured to set them. Refer to existing in-game event flows that deal with variables. | |||
===Dialogue-only control nodes=== | ===Dialogue-only control nodes=== | ||
Line 155: | Line 155: | ||
kind: single_choice | kind: single_choice | ||
label: 9 | label: 9 | ||
</syntaxhighlight>Nintendo's internal MSBT library converts the u16 labels to %04d-formatted strings for accessing the choice text. | </syntaxhighlight>The text for dialogue choices is not defined directly. It must be defined in keys whose identifiers are four-digit numbers surrounded by double-quotes. (e.g. <code>"0009"</code>, which corresponds with the <code>9</code> under <code>choice_labels</code>) Nintendo's internal MSBT library converts the u16 labels to %04d-formatted strings for accessing the choice text. | ||
Because the MSBT library used by Wild Bits and Hyrule Builder is out of date, the existence of <code>selected_index</code> is, as far as is currently known, an error. Always make sure <code>selected_index</code> is 0. It does not correspond to any valid part of the Choice control's binary layout, so any other value will produce unintended results. The parameter is believed to have been a misunderstanding made by the original reverse engineer, in that all Choice controls come at the end of a dialogue line, and therefore end with <code>0x0000</code>, a "null character" which tells the game that the string has ended. It could also be a Nintendo internal library inconsistency between BotW and other games. | |||
The value of <code>cancel_index</code> is the choice that is selected when the player presses the B button. It refers to the <code>choice_labels</code> as a zero-indexed list, i.e. the first label is 0, second is 1, third is 2, and fourth is 3. From a game design standpoint, this should usually refer to the last choice. | The value of <code>cancel_index</code> is the choice that is selected when the player presses the B button. It refers to the <code>choice_labels</code> as a zero-indexed list, i.e. the first label is 0, second is 1, third is 2, and fourth is 3. From a game design standpoint, this should usually refer to the last choice. | ||
Line 229: | Line 227: | ||
|Yes | |Yes | ||
|} | |} | ||
There is also a <code>sound2</code> control node. It is unknown how this differs from the <code>sound</code> control node, aside from it only having 1 parameter and being terminated with a <code>0xCD</code> byte. | There is also a <code>sound2</code> control node. It is unknown how this differs from the <code>sound</code> control node, aside from it only having 1 parameter and being terminated with a <code>0xCD</code> byte (which is represented in MSYT by a <code>205</code> entry.) | ||
==Saving the files== | ==Saving the files== |
edits