Files
shweets-sim/src/ui.h
T

70 lines
1.9 KiB
C++

#pragma once
#include "character.h"
#include "save.h"
#include <imgui.h>
constexpr float FONT_NORMAL = 20;
constexpr float FONT_HEADER_3 = 24;
constexpr float FONT_HEADER_2 = 30;
constexpr float FONT_HEADER_1 = 40;
constexpr float FONT_HUGE = 80;
class Play;
enum Direction
{
DIRECTION_LEFT,
DIRECTION_RIGHT
};
// Hover and select sounds (from the character being played, or none) and the pulsing border on hovered widgets.
void widget_sounds_set(Audio* audio, const Sounds* hover, const Sounds* select);
void widget_fx();
// Passes a widget's result through after giving it its sounds and hover border.
inline bool is_fx(bool result)
{
widget_fx();
return result;
}
inline ImVec4 imvec4_get(Color color)
{
return {color.r, color.g, color.b, color.a};
}
void style_set(Color color, float rounding = 0);
float row_width_get(int count);
void tooltip_set(const char* text, float size = FONT_NORMAL);
void triangle_draw(ImVec2 position, ImVec2 size, Direction direction);
// The menus, tools, toasts and select screen.
class Ui
{
public:
std::vector<Actor> itemActors;
std::vector<Canvas> itemCanvases;
Actor previewActor;
Canvas previewCanvas;
Progress selectedProgress;
float menuSlide = 1;
float toolsSlide = 0;
int characterIndex = 0;
int progressIndex = -1;
int selectedItem = -1;
bool isContinue = false;
bool isFullscreen = false;
bool isFullscreenToggled = false;
bool isNewGame = false;
bool isNewGameWarning = false;
bool isPreview = false;
bool isRefresh = false;
bool isReturn = false;
bool isSave = false;
void play_update(Play& play, Settings& settings, Renderer& renderer, Audio& audio);
void select_update(std::vector<Character>& characters, Settings& settings, Renderer& renderer, Audio& audio);
void settings_update(Settings& settings, Audio& audio, const Character* character);
};