tlac: aet drawing funcs

This commit is contained in:
somewhatlurker
2019-10-21 18:50:57 +11:00
parent 35e7438f02
commit af26ff5caa
3 changed files with 60 additions and 0 deletions
@@ -239,5 +239,36 @@ namespace TLAC::Components
dtParam->fillColour = oldFillColour;
}
struct Point
{
float x;
float y;
};
enum createAetFlags : uint32_t
{
CREATEAET_20000 = 0x20000,
};
// draw an aet layer (with animation settings)
int createAetLayer(uint32_t drawLayer, createAetFlags flags, char* name, Point* loc, float animationVar1, float animationVar2)
{
return ((int(*)(uint32_t, createAetFlags, char*, Point*, float, float))0x14013c020)(drawLayer, flags, name, loc, animationVar1, animationVar2);
}
// draw an aet layer (with default animation)
int createAetLayer(uint32_t drawLayer, createAetFlags flags, char* name, Point* loc)
{
return createAetLayer(drawLayer, flags, name, loc, -1, -1);
}
void destroyAetLayer(int &layer)
{
if (layer != 0)
{
((void(*)(int layer))0x14019d570)(layer);
layer = 0;
}
}
#pragma pack(pop)
}
@@ -190,6 +190,13 @@ namespace TLAC::Components
*playstate = streamPlayStates[i];
}
/*
destroyAetLayer(triangleAet);
destroyAetLayer(squareAet);
destroyAetLayer(crossAet);
destroyAetLayer(circleAet);
*/
isPaused = false;
}
@@ -317,6 +324,21 @@ namespace TLAC::Components
drawTextW(&dtParams, (drawTextFlags)(DRAWTEXT_ENABLE_LAYOUT), L"○");
dtParams.colour = 0xffffffff;
drawTextW(&dtParams, (drawTextFlags)(DRAWTEXT_ENABLE_LAYOUT), L":Select");
/*
destroyAetLayer(triangleAet);
destroyAetLayer(squareAet);
destroyAetLayer(crossAet);
destroyAetLayer(circleAet);
Point spriteLoc = { 64, 64 };
triangleAet = createAetLayer(0x19, CREATEAET_20000, "button_sankaku", &spriteLoc, 0, 1);
spriteLoc.x += 64;
squareAet = createAetLayer(0x19, CREATEAET_20000, "button_shikaku", &spriteLoc, 0, 1);
spriteLoc.x += 64;
crossAet = createAetLayer(0x19, CREATEAET_20000, "button_batsu", &spriteLoc, 0, 1);
spriteLoc.x += 64;
circleAet = createAetLayer(0x19, CREATEAET_20000, "button_maru", &spriteLoc, 0, 1);
*/
}
}
@@ -57,6 +57,13 @@ namespace TLAC::Components
static unsigned int mainMenuPos; // syncs to menuPos when menuSet == menuset_main (used for restoring on back)
static unsigned int menuSet;
/*
int triangleAet;
int squareAet;
int crossAet;
int circleAet;
*/
static std::chrono::time_point<std::chrono::high_resolution_clock> menuItemSelectTime;
enum menusets