Files
snakePlus/include/game_render.h
T

46 lines
1.2 KiB
C

#ifndef GAME_RENDER_H
#define GAME_RENDER_H
#include <nds.h>
#include "game_state.h"
struct HudCache {
int score = -1;
bool cursed = false;
bool paused = false;
bool gameOver = false;
bool musicEnabled = false;
bool hardMode = false;
bool dirty = true;
};
struct BackgroundContext;
struct RenderAssets {
PrintConsole *topScreen = nullptr;
PrintConsole *bottomScreen = nullptr;
BackgroundContext *bg_context = nullptr;
u16 *gfx_segment = nullptr;
u16 *gfx_segment_small = nullptr;
u16 *gfx_head_h = nullptr;
u16 *gfx_head_v = nullptr;
u16 *gfx_apple = nullptr;
u16 *gfx_apple_blink = nullptr;
u16 *gfx_tail_h[2] = {nullptr, nullptr};
u16 *gfx_tail_v[2] = {nullptr, nullptr};
u16 *gfx_apple_rotten = nullptr;
u16 *gfx_apple_cursed = nullptr;
HudCache hudCache;
};
void invalidate_hud(RenderAssets &assets);
void draw_game(const GameState &state, const RenderAssets &assets);
void draw_stats(const GameState &state, RenderAssets &assets, bool internals, bool musicEnabled, uint8_t frame);
void draw_menu(const GameState &state, RenderAssets &assets, bool musicEnabled);
void blink_apples(const GameState &state, u16 *gfx_apple);
#endif