mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
100 lines
3.2 KiB
C++
100 lines
3.2 KiB
C++
#pragma once
|
|
|
|
#include <libultraship/libultraship.h>
|
|
|
|
#ifdef __cplusplus
|
|
|
|
#include "UIWidgets.hpp"
|
|
#include <unordered_map>
|
|
|
|
class HudEditorWindow : public Ship::GuiWindow {
|
|
public:
|
|
using GuiWindow::GuiWindow;
|
|
|
|
void InitElement() override{};
|
|
void DrawElement() override;
|
|
void UpdateElement() override{};
|
|
};
|
|
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "z64.h"
|
|
|
|
typedef enum {
|
|
HUD_EDITOR_ELEMENT_NONE = -1,
|
|
HUD_EDITOR_ELEMENT_B,
|
|
HUD_EDITOR_ELEMENT_C_LEFT,
|
|
HUD_EDITOR_ELEMENT_C_DOWN,
|
|
HUD_EDITOR_ELEMENT_C_RIGHT,
|
|
HUD_EDITOR_ELEMENT_A,
|
|
HUD_EDITOR_ELEMENT_C_UP,
|
|
HUD_EDITOR_ELEMENT_D_PAD,
|
|
HUD_EDITOR_ELEMENT_MINIMAP,
|
|
HUD_EDITOR_ELEMENT_START,
|
|
HUD_EDITOR_ELEMENT_CARROT,
|
|
HUD_EDITOR_ELEMENT_CLOCK,
|
|
HUD_EDITOR_ELEMENT_HEARTS,
|
|
HUD_EDITOR_ELEMENT_MAGIC_METER,
|
|
HUD_EDITOR_ELEMENT_TIMERS,
|
|
HUD_EDITOR_ELEMENT_TIMERS_MOON_CRASH,
|
|
HUD_EDITOR_ELEMENT_MINIGAME_COUNTER,
|
|
HUD_EDITOR_ELEMENT_RUPEE_COUNTER,
|
|
HUD_EDITOR_ELEMENT_KEY_COUNTER,
|
|
HUD_EDITOR_ELEMENT_SKULLTULA_COUNTER,
|
|
HUD_EDITOR_ELEMENT_MAX,
|
|
} HudEditorElementID;
|
|
|
|
typedef enum {
|
|
HUD_EDITOR_ELEMENT_MODE_VANILLA,
|
|
HUD_EDITOR_ELEMENT_MODE_HIDDEN,
|
|
HUD_EDITOR_ELEMENT_MODE_MOVABLE_43,
|
|
HUD_EDITOR_ELEMENT_MODE_MOVABLE_LEFT,
|
|
HUD_EDITOR_ELEMENT_MODE_MOVABLE_RIGHT,
|
|
} HudEditorElementMode;
|
|
|
|
void HudEditor_SetActiveElement(HudEditorElementID id);
|
|
bool HudEditor_ShouldOverrideDraw();
|
|
bool HudEditor_IsActiveElementHidden();
|
|
f32 HudEditor_GetActiveElementScale();
|
|
void HudEditor_ModifyRectPosValuesFromBase(s16 baseX, s16 baseY, s16* rectLeft, s16* rectTop);
|
|
void HudEditor_ModifyRectPosValues(s16* rectLeft, s16* rectTop);
|
|
void HudEditor_ModifyRectSizeValues(s16* rectWidth, s16* rectHeight);
|
|
void HudEditor_ModifyTextureStepValues(s16* dsdx, s16* dtdy);
|
|
void HudEditor_ModifyMatrixValues(f32* transX, f32* transY);
|
|
void HudEditor_ModifyKaleidoEquipAnimValues(s16* ulx, s16* uly, s16* shrinkRate);
|
|
void HudEditor_ModifyDrawValuesFromBase(s16 baseX, s16 baseY, s16* rectLeft, s16* rectTop, s16* rectWidth,
|
|
s16* rectHeight, s16* dsdx, s16* dtdy);
|
|
void HudEditor_ModifyDrawValues(s16* rectLeft, s16* rectTop, s16* rectWidth, s16* rectHeight, s16* dsdx, s16* dtdy);
|
|
|
|
typedef struct {
|
|
HudEditorElementID id;
|
|
const char* name;
|
|
int32_t defaultX;
|
|
int32_t defaultY;
|
|
int32_t defaultR;
|
|
int32_t defaultG;
|
|
int32_t defaultB;
|
|
int32_t defaultA;
|
|
const char* xCvar;
|
|
const char* yCvar;
|
|
const char* scaleCvar;
|
|
const char* colorCvar;
|
|
const char* modeCvar;
|
|
} HudEditorElement;
|
|
|
|
#define HUD_EDITOR_ELEMENT(id, name, cvar, defaultX, defaultY, defaultR, defaultG, defaultB, defaultA) \
|
|
{ \
|
|
id, name, defaultX, defaultY, defaultR, defaultG, defaultB, defaultA, "gHudEditor." cvar ".Position.X", \
|
|
"gHudEditor." cvar ".Position.Y", "gHudEditor." cvar ".Scale", "gHudEditor." cvar ".Color.Value", \
|
|
"gHudEditor." cvar ".Mode" \
|
|
}
|
|
|
|
extern HudEditorElementID hudEditorActiveElement;
|
|
|
|
extern HudEditorElement hudEditorElements[HUD_EDITOR_ELEMENT_MAX];
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|