slot_subfield

Index into a slotted object and assign a sub-object to another slot

Behaviour

  • Look up the object in slot parent_slot

  • Retrieve the sub-object at field_id

  • Place sub-object into the slot new_slot or the next available slot if new_slot is 0.

  • Return the new slot number.

Definition

C

int64_t slot_subfield (
    uint32_t parent_slot,
  	uint32_t field_id,
  	uint32_t new_slot
);

Example

C

int64_t amt_slot = 
  	slot_subfield(oslot, sfAmount, 0);

Parameters

Name
Type
Description

parent_slot

uint32_t

Slot the parent object is in

field_id

uint32_t

The sf code of the field you are searching for. To compute this manually take the serialized type and shift it into the 16 highest bits of uint32_t, then take the field and place it in the 16 lowest bits. For example: sfEmitNonce has type 5 and field 11 thus its value is 0x050BU

new_slot

uint32_t

New slot number to place the object from the selected field into. If null, choose the next available slot. May be null.

Return Code

Type
Description

int64_t

The slot number of the newly allocated object If negative, an error: DOESNT_EXIST - The searched for field isn't present in the parent slot or the parent slot is unfilled. NO_FREE_SLOTS - The API would require a new slot to be allocated but the Hook is already at the maximum number of slots. INVALID_FIELD - The specified field is not a valid sf field. NOT_AN_OBJECT - The slotted object is not a valid STObject.

Last updated