- Opcode: 0x041
- Short name: CMOVE
- Long name: C? Move
Argument
none
Stack
X
Y
Z
Movement angle (usually 0)
CMOVE
Description
Move this entity. Unlike the other MOVE functions, this will not play the entity’s walking animation or make it turn. It will retain its current facing and continue its current animation as it moves. The top stack value is popped into the movement-angle field (move_angle_current, entity+538); the next three are the destination X, Y, Z (move_pos_x/y/z, entity+436/+440/+444, shifted left by 12). The handler sets motion_state (entity+572) to 1 and raises a flag at entity+576 (which distinguishes this “no-turn” move from MOVE). It pauses until arrival and only restores the idle animation on completion.
PC handler: SCRIPT_CMOVE.
Function addresses
| Function | Address | Description |
|---|---|---|
SCRIPT_CMOVE | 0x523AD0 | Field script opcode handler (verified IDA function) |