dsekai
World engine for retrocomputers.
Loading...
Searching...
No Matches
engines.h File Reference

Macros, structs, and prototypes for the various engine types. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  TITLE_STATE
 State for ::ENGINE_TYPE_NONE. A simple title screen engine. More...
 
struct  TOPDOWN_STATE
 State for ::ENGINE_TYPE_TOPDOWN. Displays a top-down 2-dimensional view of the world. More...
 
struct  POV_STATE
 State for ::ENGINE_TYPE_POV. Displays a first-person 3D view of the world using raycasting. More...
 
struct  EDITOR_STATE
 
struct  DSEKAI_STATE
 General/shared state of the running engine in memory. More...
 

Macros

#define MINIMAP_X   (SCREEN_W - TILEMAP_TW - 10)
 
#define MINIMAP_Y   (10)
 
#define DSEKAI_TRANSITION_MASK_FRAME   0x0f
 Mask indicating bits of DSEKAI_STATE::transition that denote the current transition's frame.
 
#define DSEKAI_TRANSITION_MASK_TYPE   0x70
 Mask indicating bits of DSEKAI_STATE::transition that denote the current transition's type.
 
#define DSEKAI_TRANSITION_DIR_OPEN   0x80
 If this bit is on, then the currently playing transition should be opening. If it's off, the transition is closing.
 
#define DSEKAI_TRANSITION_TYPE_CURTAIN   0x00
 
#define DSEKAI_TRANSITION_TYPE_ZOOM   0x10
 
#define DSEKAI_TITLE_TEXT_COLOR   GRAPHICS_COLOR_WHITE
 
#define DSEKAI_FLAG_MENU_BLOCKED   0x02
 
#define DSEKAI_FLAG_UNLOCKED   0x08
 
#define ENGINE_TABLE(f)
 
#define engines_active(state)
 
#define ENGINES_SETUP_PROTOTYPES(idx, eng, prefix)
 
#define ENGINES_INPUT_PROTOTYPES(idx, eng, prefix)
 
#define ENGINES_ANIMATE_PROTOTYPES(idx, eng, prefix)
 
#define ENGINES_DRAW_PROTOTYPES(idx, eng, prefix)
 
#define ENGINES_SHUTDOWN_PROTOTYPES(idx, eng, prefix)
 

Typedefs

typedef void(* title_option_cb) (struct DSEKAI_STATE *state)
 
typedef int16_t(* ENGINES_SETUP) (struct DSEKAI_STATE *state)
 Sets up the current engine (allocates specific state, etc).
 
typedef int16_t(* ENGINES_INPUT) (INPUT_VAL in_char, int16_t click_x, int16_t click_y, struct DSEKAI_STATE *state)
 Handles polled input according to the rules of the current engine.
 
typedef void(* ENGINES_ANIMATE) (struct DSEKAI_STATE *state)
 Cycles animations and executes scripts relevant to the current engine.
 
typedef void(* ENGINES_DRAW) (struct DSEKAI_STATE *state)
 Draws the engine sceen on-screen according to current state.
 

Functions

void engines_draw_loading_screen ()
 Draw a simple loading screen.
 
int16_t engines_warp_loop (MEMORY_HANDLE state_handle)
 Handle transition to a new TILEMAP.
 
void engines_animate_mobiles (struct DSEKAI_STATE *state)
 Do generic mobile animation and execute their scripts.
 
int16_t engines_loop_iter (MEMORY_HANDLE state_handle)
 Central loop iteration handler. Calls engine-specific callbacks.
 
int8_t engines_input_movement (struct MOBILE *mover, int8_t dir_move, struct DSEKAI_STATE *state)
 Handle generic player movement commmand.
 
void engines_exit_to_title (struct DSEKAI_STATE *state)
 
void engines_set_transition (struct DSEKAI_STATE *state, uint8_t trans_type, uint8_t trans_open)
 
void engines_draw_transition (struct DSEKAI_STATE *state)
 
uint8_t engines_state_lock (struct DSEKAI_STATE *state)
 
uint8_t engines_state_unlock (struct DSEKAI_STATE *state)
 

Variables

RES_CONST char * gc_engines_tokens []
 
RES_CONST ENGINES_SETUP gc_engines_setup []
 
RES_CONST ENGINES_INPUT gc_engines_input []
 
RES_CONST ENGINES_ANIMATE gc_engines_animate []
 
RES_CONST ENGINES_DRAW gc_engines_draw []
 

Detailed Description

Macros, structs, and prototypes for the various engine types.