![]() |
dsekai
World engine for retrocomputers.
|
Structs, functions and macros pertaining to interactive objects. More...

Go to the source code of this file.
Data Structures | |
| struct | MOBILE |
| A moving/interactive object in the world. More... | |
Macros | |
| #define | MOBILE_HP_MASK 0x00ff |
| Bitmask denoting half of MOBILE::mp_hp devoted to MP. | |
| #define | MOBILE_MP_MASK 0xff00 |
| Bitmask denoting half of MOBILE::mp_hp devoted to HP. | |
| #define | MOBILE_HP_DEATH -10 |
| Value to set MOBILE::hp to on death but before deactivation. | |
| #define | MOBILE_ICOUNT_MASK 0xf000 |
| Bitmask defining bits in MOBILE::flags used to indicate the number of Scripting Interactions this mobile has had. Please see that section for details. | |
| #define | MOBILE_DIR_MASK 0x0007 |
| Bitmask defining bits in MOBILE::flags used to indicate which of the Cardinal Directions a mobile is currently facing. | |
| #define | MOBILE_TYPE_NORMAL 0x0000 |
| MOBILE::flags indicating single-map lifecycle for this mobile. | |
| #define | MOBILE_TYPE_SPECIAL 0x0008 |
| MOBILE::flags indicating that this mobile persists between tilemaps. | |
| #define | MOBILE_TYPE_RES1 0x0010 |
| Reserved for future use. | |
| #define | MOBILE_TYPE_RES2 0x0018 |
| Reserved for future use. | |
| #define | MOBILE_TYPE_MASK 0x0018 |
| Bitmask defining bits in MOBILE::flags used to indicate Mobile Object Type Flags. | |
| #define | MOBILE_FLAG_ACTIVE 0x0100 |
| MOBILE::flags indicating that this mobile is extant and active. | |
| #define | MOBILE_FLAG_PLAYER 0x0200 |
| MOBILE::flags indicating that this is a player MOBILE. | |
| #define | MOBILE_FLAG_DISABLED 0x0400 |
| MOBILE::flags indicating this mobile is not responding to interation. | |
| #define | MOBILE_FLAG_NOT_LAST 0x0800 |
| MOBILE::flags indicating this mobile is not the last used mobile slot. | |
| #define | mobile_get_tx(m) |
| #define | mobile_get_ty(m) |
| #define | mobile_break_if_last(m) |
| #define | mobile_is_active(m) |
| #define | mobile_is_walking(m) |
| #define | MOBILE_ERROR_BLOCKED -1 |
| Error code indicating MOBILE path is blocked. | |
| #define | MOBILE_DIR_SOUTH 0 |
| MOBILE::dir indicating down direction for movement/animation. | |
| #define | MOBILE_DIR_NORTH 1 |
| MOBILE::dir indicating up direction for movement/animation. | |
| #define | MOBILE_DIR_EAST 2 |
| MOBILE::dir indicating right direction for movement/animation. | |
| #define | MOBILE_DIR_WEST 3 |
| MOBILE::dir indicating left direction for movement/animation. | |
Functions | |
| uint8_t | mobile_walk_start (struct MOBILE *m, uint8_t dir) SECTION_MOBILE |
| Have the given MOBILE attempt to begin walking movement/animation. | |
| struct MOBILE * | mobile_get_facing (uint8_t x, uint8_t y, uint8_t dir, struct DSEKAI_STATE *state) |
| Get a MEMORY_PTR to the mobile m is currently facing. | |
| struct MOBILE * | mobile_from_gid (MOBILE_GID m_gid, struct DSEKAI_STATE *state) |
| struct MOBILE * | mobile_interact (struct MOBILE *actor, struct MOBILE *actee, struct DSEKAI_STATE *state) SECTION_MOBILE |
| Force a MOBILE to jump to the SCRIPT_ACTION_INTERACT in its SCRIPT. | |
| void | mobile_state_animate (struct DSEKAI_STATE *state) |
| Map MOBILE animation frames to a number of real frames elapsed. | |
| void | mobile_animate (struct MOBILE *m, struct DSEKAI_STATE *state) |
| Perform animation frame for the given MOBILE. | |
| void | mobile_deactivate (struct MOBILE *m, struct DSEKAI_STATE *state) SECTION_MOBILE |
| Prepare a MOBILE for deallocation. | |
| void | mobile_stack_push (struct MOBILE *m, int8_t v) SECTION_MOBILE |
| Push a value onto MOBILE::script_stack. | |
| int8_t | mobile_stack_pop (struct MOBILE *m) SECTION_MOBILE |
| Pop a value from a MOBILE::script_stack. | |
| void | mobile_execute (struct MOBILE *m, struct DSEKAI_STATE *state) |
| Execute the next available SCRIPT_STEP in the currently running SCRIPT on a MOBILE. | |
| struct MOBILE * | mobile_spawn_single (uint16_t flags, struct DSEKAI_STATE *state) SECTION_MOBILE |
| Allocate a mobile or select player mobile slot and initialize it with configuration generic to ALL mobiles. | |
| int16_t | mobile_spawner_match (struct TILEMAP_SPAWN *spawner, struct DSEKAI_STATE *state) SECTION_MOBILE |
| void | mobile_spawns (struct DSEKAI_STATE *state) SECTION_MOBILE |
| Spawn from ::TILEMAP::spawners according to spawner rules. | |
Variables | |
| const int8_t | gc_mobile_step_table_normal_pos [16] |
| Lookup table for next walking offset to assign to MOBILE::steps_remaining based on current offset. | |
| const int8_t | gc_mobile_y_offsets [4] |
| Lookup table for vertical offset based on mobile_get_dir(). | |
| const int8_t | gc_mobile_x_offsets [4] |
| Lookup table for horizontal offset based on mobile_get_dir(). | |
Structs, functions and macros pertaining to interactive objects.