lol its in c
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

72 lines
1.6 KiB

#ifndef IS_GAME_H_
#define IS_GAME_H_
#define _VRAM 0x8000
#define _VRAM8000 _VRAM
#define _VRAM8800 (_VRAM + 0x800)
#define _VRAM9000 (_VRAM + 0x1000)
#define _SCRN0 0x9800
#define _SCRN1 0x9c00
#define SCRN_X 160
#define SCRN_Y 144
#define SCRN_X_B 20
#define SCRN_Y_B 18
#define SCRN_VX 256
#define SCRN_VY 256
#define SCRN_VX_B 32
#define SCRN_VY_B 32
#define SCREEN_HEIGHT_TILES 18
#define SCREEN_WIDTH_TILES 20
#define ALLOC_SIZE_FONT 39
#define ALLOC_SIZE_PLAYER 52
#define ALLOC_SIZE_BACKGROUND 32
#define ALLOC_SIZE_ITEMS 20
#define ALLOC_SIZE_MONSTERS 108
#define TILE_INDEX_FONT 0
#define TILE_INDEX_PLAYER ALLOC_SIZE_FONT
#define TILE_INDEX_BACKGROUND (ALLOC_SIZE_FONT + ALLOC_SIZE_PLAYER)
#define TILE_INDEX_ITEMS \
(ALLOC_SIZE_FONT + ALLOC_SIZE_PLAYER + ALLOC_SIZE_BACKGROUND)
#define TILE_INDEX_MONSTERS \
(ALLOC_SIZE_FONT + ALLOC_SIZE_PLAYER + ALLOC_SIZE_BACKGROUND + \
ALLOC_SIZE_ITEMS)
#define TILE_SIZE 16 //!< Size of 1 tile in bytes
#define VRAM_TILE_PTR(idx) \
((void*)(_VRAM + \
(idx)*TILE_SIZE)) //!< Compute VRAM pointer for tile section
typedef enum {
GAME_STATE_TITLE,
GAME_STATE_LEVEL,
GAME_STATE_MENU,
} game_state_t;
extern game_state_t game_state;
/**
* @brief Render the title screen.
*/
void title(void);
/**
* @brief Render the current game level.
*/
void level(void);
/**
* @brief Enable interrupts.
*/
void interrupts_enable(void) __preserves_regs(a, b, c, d, e, h, l);
/**
* @brief Disable interrupts.
*/
void interrupts_disable(void) __preserves_regs(a, b, c, d, e, h, l);
#endif