|  | 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.