87 lines
1.6 KiB
C
87 lines
1.6 KiB
C
#pragma once
|
|
|
|
#include "util/glyphas/block.h"
|
|
#include "util/glyphas/cache.h"
|
|
#include "util/math/vector.h"
|
|
|
|
#include "core/locommon/input.h"
|
|
#include "core/locommon/screen.h"
|
|
#include "core/locommon/ticker.h"
|
|
#include "core/loplayer/player.h"
|
|
#include "core/loplayer/stance.h"
|
|
#include "core/loresource/set.h"
|
|
#include "core/loshader/set.h"
|
|
|
|
typedef struct {
|
|
glyphas_block_t* name;
|
|
glyphas_block_t* desc;
|
|
glyphas_block_t* note;
|
|
|
|
vec2_t pos;
|
|
float highlight;
|
|
} loui_menu_stance_t;
|
|
|
|
typedef struct {
|
|
loshader_set_t* shaders;
|
|
const locommon_ticker_t* ticker;
|
|
loplayer_t* player;
|
|
|
|
struct {
|
|
struct {
|
|
glyphas_cache_t* big;
|
|
glyphas_cache_t* normal;
|
|
} sans;
|
|
struct {
|
|
glyphas_cache_t* small;
|
|
} serif;
|
|
} font;
|
|
|
|
struct {
|
|
vec2_t big_fontpx;
|
|
vec2_t big_fontsz;
|
|
|
|
vec2_t normal_fontpx;
|
|
vec2_t normal_fontsz;
|
|
|
|
vec2_t small_fontpx;
|
|
vec2_t small_fontsz;
|
|
|
|
vec2_t stance_icon_interval;
|
|
vec2_t stance_iconsz;
|
|
} geo;
|
|
|
|
loui_menu_stance_t stances[LOPLAYER_STANCE_COUNT+1];
|
|
loui_menu_stance_t* hovered_stance;
|
|
|
|
glyphas_block_t* exit_text;
|
|
bool request_exit;
|
|
|
|
float alpha;
|
|
} loui_menu_t;
|
|
|
|
void
|
|
loui_menu_initialize(
|
|
loui_menu_t* menu,
|
|
loresource_set_t* res,
|
|
loshader_set_t* shaders,
|
|
const locommon_screen_t* screen,
|
|
const locommon_ticker_t* ticker,
|
|
loplayer_t* player
|
|
);
|
|
|
|
void
|
|
loui_menu_deinitialize(
|
|
loui_menu_t* menu
|
|
);
|
|
|
|
void
|
|
loui_menu_update(
|
|
loui_menu_t* menu,
|
|
const locommon_input_t* input /* NULLABLE */
|
|
);
|
|
|
|
void
|
|
loui_menu_draw(
|
|
const loui_menu_t* menu
|
|
);
|