mirror of
https://github.com/DarkStore-3DS/DarkStore.git
synced 2026-07-03 00:39:02 +00:00
Universal-Updater Full Rewrite based of UniStore v3.0.0. (#51)
* No Nightlies for the Full-Rewrite. * Initial push, i guess. * Forgot to push the Test UniStore + T3X... * Use C2D flags for wrapping and centering * gitignore t3x correctly * Remove Test Store and hardcode to `sdmc:/3ds/Universal-Updater/stores/Universal-DB.unistore` for now. * Is functional now. * *More special checks and work.* * const <typename T> &. * Universal-DB, not Universal DB. * Derp. * Make 3DSX, NDS & Archive path configurable. * Last fixes + Fade out screen on exit. * See Desc. for more. - Add QR Code scan for downloading UniStores. - Add new Graphics. - Some fixes + improvements. * Fix search filtering, re-sort after search * Fix update check * Clear search items with X, not just reset results * The next progress. * PLEASE tell me, this is the only error.. Co-authored-by: Pk11 <epicpkmn11@outlook.com>
This commit is contained in:
+65
-59
@@ -27,90 +27,96 @@
|
||||
#include "common.hpp"
|
||||
#include "msg.hpp"
|
||||
|
||||
extern std::unique_ptr<Config> config;
|
||||
extern bool isScriptSelected;
|
||||
/*
|
||||
Displays just a message until the next draw frame.
|
||||
|
||||
extern u32 barColor, bgTopColor, bgBottomColor, TextColor;
|
||||
|
||||
// I do not think we need that at all.
|
||||
void Msg::DisplayStartMSG() {
|
||||
const std::string &Text: The Message, which should be displayed.
|
||||
*/
|
||||
void Msg::DisplayMsg(const std::string &Text) {
|
||||
Gui::clearTextBufs();
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
C2D_TargetClear(Top, BLACK);
|
||||
C2D_TargetClear(Bottom, BLACK);
|
||||
Gui::ScreenDraw(Top);
|
||||
Gui::Draw_Rect(0, 0, 400, 25, config->barColor());
|
||||
Gui::Draw_Rect(0, 25, 400, 190, config->topBG());
|
||||
Gui::Draw_Rect(0, 215, 400, 25, config->barColor());
|
||||
Gui::DrawStringCentered(0, 2, 0.7f, config->textColor(), Lang::get("STARTING_UNIVERSAL_UPDATER"));
|
||||
if (fadealpha > 0) Gui::Draw_Rect(0, 0, 400, 240, C2D_Color32(fadecolor, fadecolor, fadecolor, fadealpha)); // Fade in/out effect
|
||||
Gui::ScreenDraw(Bottom);
|
||||
Gui::Draw_Rect(0, 0, 320, 25, config->barColor());
|
||||
Gui::Draw_Rect(0, 25, 320, 190, config->topBG());
|
||||
Gui::Draw_Rect(0, 215, 320, 25, config->barColor());
|
||||
if (fadealpha > 0) Gui::Draw_Rect(0, 0, 320, 240, C2D_Color32(fadecolor, fadecolor, fadecolor, fadealpha)); // Fade in/out effect
|
||||
C3D_FrameEnd(0);
|
||||
}
|
||||
C2D_TargetClear(Top, TRANSPARENT);
|
||||
C2D_TargetClear(Bottom, TRANSPARENT);
|
||||
|
||||
void Msg::DisplayMsg(std::string text) {
|
||||
Gui::clearTextBufs();
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
C2D_TargetClear(Top, BLACK);
|
||||
C2D_TargetClear(Bottom, BLACK);
|
||||
GFX::DrawTop();
|
||||
Gui::DrawStringCentered(0, (240-Gui::GetStringHeight(0.6f, text))/2, 0.6f, isScriptSelected ? TextColor : config->textColor(), text, 395, 70);
|
||||
Gui::DrawStringCentered(0, (240 - Gui::GetStringHeight(0.6f, Text)) / 2, 0.6f, TEXT_COLOR, Text, 395, 100);
|
||||
GFX::DrawBottom();
|
||||
C3D_FrameEnd(0);
|
||||
}
|
||||
|
||||
void Msg::DisplayWarnMsg(std::string Text) {
|
||||
/*
|
||||
Displays a warn message for 3 seconds.
|
||||
|
||||
const std::string &Text: The Message, which should be displayed.
|
||||
*/
|
||||
void Msg::DisplayWarnMsg(const std::string &Text) {
|
||||
Gui::clearTextBufs();
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
C2D_TargetClear(Top, BLACK);
|
||||
C2D_TargetClear(Bottom, BLACK);
|
||||
C2D_TargetClear(Top, TRANSPARENT);
|
||||
C2D_TargetClear(Bottom, TRANSPARENT);
|
||||
|
||||
GFX::DrawTop();
|
||||
Gui::DrawStringCentered(0, 1, 0.6f, isScriptSelected ? TextColor : config->textColor(), Text, 400);
|
||||
Gui::DrawStringCentered(0, 1, 0.6f, TEXT_COLOR, Text, 400);
|
||||
|
||||
GFX::DrawBottom();
|
||||
C3D_FrameEnd(0);
|
||||
for (int i = 0; i < 60*3; i++) {
|
||||
|
||||
for (int i = 0; i < 60 * 3; i++) {
|
||||
gspWaitForVBlank();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Display a Message, which needs to be confirmed with A/B.
|
||||
|
||||
const std::vector<Structs::ButtonPos> promptBtn = {
|
||||
{10, 100, 140, 35}, // Yes.
|
||||
{170, 100, 140, 35} // No.
|
||||
};
|
||||
|
||||
extern touchPosition touch;
|
||||
extern bool touching(touchPosition touch, Structs::ButtonPos button);
|
||||
|
||||
// Display a Message, which needs to be confirmed with A/B.
|
||||
bool Msg::promptMsg(std::string promptMsg) {
|
||||
const std::string &promptMsg: The Message, which should be displayed.
|
||||
*/
|
||||
bool Msg::promptMsg(const std::string &promptMsg) {
|
||||
Gui::clearTextBufs();
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
C2D_TargetClear(Top, BLACK);
|
||||
C2D_TargetClear(Bottom, BLACK);
|
||||
C2D_TargetClear(Top, TRANSPARENT);
|
||||
|
||||
GFX::DrawTop();
|
||||
Gui::DrawStringCentered(0, (240-Gui::GetStringHeight(0.6f, promptMsg))/2, 0.6f, isScriptSelected ? TextColor : config->textColor(), promptMsg, 395, 70);
|
||||
Gui::DrawStringCentered(0, 217, 0.72f, isScriptSelected ? TextColor : config->textColor(), Lang::get("CONFIRM_OR_CANCEL"), 400);
|
||||
|
||||
GFX::DrawBottom();
|
||||
Gui::Draw_Rect(10, 100, 140, 35, isScriptSelected ? barColor : config->barColor());
|
||||
Gui::Draw_Rect(170, 100, 140, 35, isScriptSelected ? barColor : config->barColor());
|
||||
Gui::DrawString((320-Gui::GetStringWidth(0.6f, Lang::get("YES")))/2-150+70, 110, 0.6f, isScriptSelected ? TextColor : config->textColor(), Lang::get("YES"), 140);
|
||||
Gui::DrawString((320-Gui::GetStringWidth(0.6f, Lang::get("NO")))/2+150-70, 110, 0.6f, isScriptSelected ? TextColor : config->textColor(), Lang::get("NO"), 140);
|
||||
Gui::Draw_Rect(0, 215, 400, 25, BAR_COLOR);
|
||||
Gui::Draw_Rect(0, 214, 400, 1, BAR_OUTL_COLOR);
|
||||
Gui::DrawStringCentered(0, (240 - Gui::GetStringHeight(0.6f, promptMsg)) / 2, 0.6f, TEXT_COLOR, promptMsg, 395, 100);
|
||||
|
||||
Gui::DrawStringCentered(0, 217, 0.6f, TEXT_COLOR, Lang::get("CONFIRM_OR_CANCEL"), 400);
|
||||
C3D_FrameEnd(0);
|
||||
|
||||
for (int i = 0; i < 20; i++) gspWaitForVBlank();
|
||||
while(1) {
|
||||
gspWaitForVBlank();
|
||||
hidScanInput();
|
||||
hidTouchRead(&touch);
|
||||
if ((hidKeysDown() & KEY_A) || (hidKeysDown() & KEY_TOUCH && touching(touch, promptBtn[0]))) {
|
||||
return true;
|
||||
} else if ((hidKeysDown() & KEY_B) || (hidKeysDown() & KEY_TOUCH && touching(touch, promptBtn[1]))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (hidKeysDown() & KEY_A) return true;
|
||||
else if (hidKeysDown() & KEY_B) return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Display a message, which can be "confirmed" with any key.
|
||||
|
||||
const std::string &msg: The message which should be displayed.
|
||||
*/
|
||||
void Msg::waitMsg(const std::string &msg) {
|
||||
bool doOut = false;
|
||||
|
||||
Gui::clearTextBufs();
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
C2D_TargetClear(Top, TRANSPARENT);
|
||||
|
||||
GFX::DrawTop();
|
||||
Gui::DrawStringCentered(0, (240 - Gui::GetStringHeight(0.6f, msg)) / 2, 0.6f, TEXT_COLOR, msg, 395, 100);
|
||||
|
||||
Gui::Draw_Rect(0, 215, 400, 25, BAR_COLOR);
|
||||
Gui::Draw_Rect(0, 214, 400, 1, BAR_OUTL_COLOR);
|
||||
Gui::DrawStringCentered(0, 217, 0.6f, TEXT_COLOR, Lang::get("KEY_CONTINUE"), 400);
|
||||
C3D_FrameEnd(0);
|
||||
|
||||
for (int i = 0; i < 20; i++) gspWaitForVBlank();
|
||||
while(!doOut) {
|
||||
hidScanInput();
|
||||
|
||||
if (hidKeysDown()) doOut = !doOut;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user