Skip to content

0x8E — text_message_layout

Reads three u32 operands. The first is two signed halfwords copied to text message layout fields +0x14/+0x18 and +0x16/+0x1A; the next two words are copied to global CTextMessage fields +0x00 and +0x08; byte +0x0E is set to 1.

proven— handler traced, and exercised by at least one shipped script.

At a glance

Opcode0x8E (142)
HandlerCRadiScript::Command_8e
SignatureCRadiScript::Command_8e(int,SCR_DATA*,unsigned int,unsigned int)
Translation unitr_script_run8.cpp
Address— debug build; click for all 3
Handler size0x78 (120 bytes)
Engine nametext_message_layout
FamilyVibration, dialogue and text
Command size4 + extra_words * 4 bytes

Handler behaviour

Reads three u32 operands. The first is two signed halfwords copied to text message layout fields +0x14/+0x18 and +0x16/+0x1A; the next two words are copied to global CTextMessage fields +0x00 and +0x08; byte +0x0E is set to 1.

Encoding

The command header is one 32-bit word, as described in §3 Instruction encoding:

 31            24 23            16 15             8 7              0
+----------------+----------------+----------------+----------------+
|  flags         |  argument byte |  extra words   |  0x8E          |
+----------------+----------------+----------------+----------------+

Bits 8–15 give the number of 32-bit operand words that follow. Bits 16–23 are handed to the handler as a bitfield; on character commands bit 0 normally says whether a character selector word is present. Bit 31 is the keep-going bit.

Operand fields

4 documented fields. input fields are read from the command's operand words; derived fields are computed from other fields rather than stored separately.

FieldRoleMeaning
colorinputRGBA text colour (0x80 = full intensity); PutText passes CTextMessage +0x00 to CreateSPRT as each glyph's colour.
priorityinputDraw priority passed to CPrimitiveHelper::SetPriority; the shadow layer draws at priority + 1.
xinputSigned x layout position, copied to text-message fields +0x14/+0x18.
yinputSigned y layout position, copied to text-message fields +0x16/+0x1A.

Engine calls

Engine functions this handler was observed calling:

  • (inline)