DisplayMessage

From Final Fantasy Hacktics Wiki
Revision as of 20:44, 16 May 2019 by Nyzer (talk | contribs) (Adding in a note for x9X and changing the format of this section. x70 was mentioned twice, and IMO it looks a bit more accurate to use x7X than x70 when we have several different options for the second digit.)
Jump to navigation Jump to search

{10} DisplayMessage

DisplayMessage(x10,xDT,xMSG#,xID,x00,xPR,+XXXXX,+YYYYY,+ARPOS,xOT)

This instruction is used to display any text stored after the event's instruction in various ways like a character thinking, speaking, or simply printing text on the screen.


See Also: {50} PortraitCol{51} ChangeDialog{E5} WaitForInstruction(x01,x00)


Unknown : Byte (hex)

This always seems to be x10. Probably just a programming error. Any value should be fine.


Dialog Type : Byte (hex)

  • x00: -Do not use-
  • Box Type:
    • x0X: Appears Centered on screen
    • x1X: 3 lines Dialog Box (includes portrait)
    • x2X: 1-4 lines box named "Check"
    • x3X: 1-4 lines box named "Help"
    • x4X: 2 lines box
    • x5X: 8 lines box
    • x6X: 1-14 lines unnamed box (does not support pages)
    • x7X: 3 lines Dialog Box (includes portrait)
    • x8X: Close later with instruction {51} ChangeDialog
    • x9X: Close later with instruction {51} ChangeDialog. Friendly to x7X, works well with spoken dialog.
  • Vertical Alignment:
    • xX1: Top
    • xX2: Bottom
    • xX3: Center*
  • Arrow Type:
    • xX4: Convert Arrow to Thinking Bubbles (Dialog Box)
    • xX8: Remove Arrow (Dialog Box)



*x03 displays the message at the center of the screen, except for Dialog Box (the box is over the unit's head and the arrow is flipped horizontally).

Message ID : Half-Word (hex)

ID of the Message that will be displayed. Message x0001 starts at the text offset of the event. Therefore there is no Message x0000. This parameter being a Half-Word, you could even go take lines that are stored in the RAM, which is pretty pointless IMHO.


Unit ID : Byte (hex)

ID of the unit specified in the ENTD. This is only required for Dialog Box.

If a unit with the same Unit ID is found, the dialog box will be centered over or under it and the unit's portrait will be displayed.

Else, it will display a blank portrait (which still takes up the place of a normal portrait) and display on the left side of the screen.


x00 : Byte (hex)

This value is always set to x00 in the original game; it probably doesn't have a function.


Portrait Row : Byte (hex)

For the list and more explanation read {50} PortraitCol.

  • x09: Removes the portrait from the Dialog Box (and the space it occupied)


X Coordinate : Half-Word (signed)

Move the Displayed Message on the screen's X axis based on default location.

Determines the portrait's facing. Any negative value will flip the portrait to the other side of the dialog box, so if you don't want to move it and still flip the portrait, use -00001.


Y Coordinate : Half-Word (signed)

Move the Displayed Message on the screen's Y axis based on default location.


Arrow Position : Half-Word (signed)

Move the Arrow on the Dialog Box's X axis based on its default location.

Determines the portrait's facing.

If you don't move the Dialog Box in X, you can simply set this byte to -1 and the portrait will switch side.


Dialog Box Opening Type : Byte (hex)

  • x01: +50% speed
  • x02: -50% speed, remove bouncing*
  • x10: Toggle Arrow (points left if FALSE; point right if TRUE)

*bounce: the message box grows in size gradually and goes a bit over it's real size (about 110%) in the process then shrinks back to 100%.