|
|
- #ifndef IS_GAME_H_
- #define IS_GAME_H_
-
- #include "sdk/video.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);
-
- #define lcd_disable() lcd_off()
- #define lcd_enable() rLCDC = LCDC_ON | LCDC_OBJON | LCDC_BGON | LCDC_BG8000
-
- #endif
|