Difference between revisions of "DisplayMessage"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
Line 21: Line 21:
 
**x40: 2 lines box
 
**x40: 2 lines box
 
**x50: 8 lines box
 
**x50: 8 lines box
**x60: 4 lines box
+
**x60: 1-14 lines unnamed box (does not support pages)
 
**x70: 3 lines Dialog Box (includes portrait)
 
**x70: 3 lines Dialog Box (includes portrait)
 
*x08: Remove Arrow (Dialog Box)
 
*x08: Remove Arrow (Dialog Box)
Line 32: Line 32:
  
 
<nowiki>*</nowiki>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).
 
<nowiki>*</nowiki>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) ==
 
== Message ID : Half-Word (hex) ==

Revision as of 03:32, 4 June 2017

{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)

  • x80: Close later with instruction {51} ChangeDialog
  • x70: Display type
    • x00: Appears Centered on screen
    • x10: 3 lines Dialog Box (includes portrait)
    • x20: 1-4 lines box named "Check"
    • x30: 1-4 lines box named "Help"
    • x40: 2 lines box
    • x50: 8 lines box
    • x60: 1-14 lines unnamed box (does not support pages)
    • x70: 3 lines Dialog Box (includes portrait)
  • x08: Remove Arrow (Dialog Box)
  • x04: Convert Arrow to Thinking Bubbles (Dialog Box)
  • x03: Vertical Align
    • x00: -Do not use-
    • x01: Top
    • x02: Bottom
    • x03: Center*

*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%.