0x70 — set_bgm
Reads two u32 operands, builds a stack RADIBGM_INF, and calls CRadiSound::SetBgm(const RADIBGM_INF*).
proven— handler traced, and exercised by at least one shipped script.
At a glance
| Opcode | 0x70 (112) |
|---|---|
| Handler | CRadiScript::Command_70 |
| Signature | CRadiScript::Command_70(int,SCR_DATA*,unsigned int,unsigned int) |
| Translation unit | r_script_run7.cpp |
| Address | — debug build; click for all 3 |
| Handler size | 0x90 (144 bytes) |
| Engine name | set_bgm |
| Family | Primitives, textures, sound and movies |
| Command size | 4 + extra_words * 4 bytes |
Handler behaviour
Reads two u32 operands, builds a stack RADIBGM_INF, and calls CRadiSound::SetBgm(const RADIBGM_INF*).
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 | 0x70 |
+----------------+----------------+----------------+----------------+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.
| Field | Role | Meaning |
|---|---|---|
arg | input | Raw handler argument byte from the command header. It is printed only when it differs from the value the named fields already imply, so seeing it means the command uses an unusual argument encoding. |
info0 | input | First word of the RADIBGM_INF record passed to CRadiSound::SetBgm. |
info1 | input | Second word of the RADIBGM_INF record passed to CRadiSound::SetBgm. |
yield | derived | Pause the script here for one game frame; the next command runs on the following update. Lines without it keep running immediately. |
Engine calls
Engine functions this handler was observed calling:
CRadiSound::SetBgm(const RADIBGM_INF*)
Bit masks
Masks the handler applies to its argument byte or operand words:
0x0040 0x0003 0x7FFF 0x0080 0xFFFF