v3.1.3: Admin-Prüfung zuerst (unabhängig von den Patches), SELECT zeigt den Auffrischen-Schritt (welches Modul)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
36f6e5e027
commit
d1fba48c6f
+15
-8
@@ -331,6 +331,10 @@ static bool begin_busy(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Was das Auffrischen gerade macht (bei SELECT angezeigt, wenn es keine Werkzeuge gibt)
|
||||
static char maintStep[64] = "startet";
|
||||
static void maint_step(const char *step) { snprintf(maintStep, sizeof(maintStep), "%s", step); }
|
||||
|
||||
static bool refresh_patches(void)
|
||||
{
|
||||
char detail[160];
|
||||
@@ -347,15 +351,19 @@ static void maintenance_worker(void *arg)
|
||||
char ignore[96];
|
||||
// 1. Patches auffrischen (Miiverse-CA aus dem Zwischenspeicher; nur beim allerersten Mal vom Server)
|
||||
bool hadCa = olvpatch_ca_cached();
|
||||
admin_progress("Patches");
|
||||
// 0. Admin? Zuerst, damit die Werkzeuge nicht vom Rest abhängen (act ist hier noch frei)
|
||||
if (!switchRequested) admin_check();
|
||||
patch_progress = maint_step;
|
||||
maint_step("Patches");
|
||||
refresh_patches();
|
||||
admin_progress("SpotPass");
|
||||
patch_progress = NULL;
|
||||
maint_step("SpotPass");
|
||||
// 2. SpotPass-Aufgabe anmelden
|
||||
if (begin_busy()) {
|
||||
spotpass_register(MBMNET_SERVER, ignore, sizeof(ignore));
|
||||
maintenanceBusy = false;
|
||||
}
|
||||
admin_progress("Konto-Abgleich");
|
||||
maint_step("Konto-Abgleich");
|
||||
// 3. Konto mit dem MBMNET-Server abgleichen (holt u. a. den Mii von der Webseite). Höchstens 5 s,
|
||||
// bei einem Umschalt-Wunsch sofort abbrechen.
|
||||
u8 slot = frdswitch_slot_of(FRIEND_ACCOUNT_MBMNET);
|
||||
@@ -372,14 +380,13 @@ static void maintenance_worker(void *arg)
|
||||
svcCloseHandle(done);
|
||||
}
|
||||
maintenanceBusy = false;
|
||||
// 3b. Admin? (braucht act - deshalb erst nach dem Konto-Abgleich, nie gleichzeitig). Hält das Umschalten
|
||||
// nicht auf: Tippt man vorher, fällt die Prüfung aus (nach dem Neustart gibt es eine neue).
|
||||
if (!switchRequested) admin_check();
|
||||
else admin_skipped();
|
||||
|
||||
// 4. Miiverse-CA frisch vom Server (nur Netz; Patches nur neu bauen, wenn sie sich geändert hat)
|
||||
bool caChanged = false;
|
||||
maint_step("Miiverse-Zertifikat");
|
||||
if (!switchRequested && olvpatch_refresh_ca(MBMNET_SERVER, &caChanged) && caChanged && hadCa)
|
||||
refresh_patches(); // prüft selbst noch einmal, ob umgeschaltet werden soll
|
||||
maint_step("fertig");
|
||||
maintaining = false;
|
||||
}
|
||||
|
||||
@@ -690,7 +697,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
bool wasTools = toolsToggled;
|
||||
if (down & KEY_SELECT && admin_is()) toolsToggled = !toolsToggled;
|
||||
else if (down & KEY_SELECT) snprintf(msg, sizeof(msg), "%s", admin_why());
|
||||
else if (down & KEY_SELECT) snprintf(msg, sizeof(msg), "%s\n(Auffrischen: %s)", admin_why(), maintStep);
|
||||
if (down & KEY_B && toolsToggled) toolsToggled = false;
|
||||
if (!admin_is()) toolsToggled = false; // Werkzeuge nur für Admins (Server hat es bestätigt)
|
||||
// Werkzeuge nur mit SELECT, beim Öffnen immer aus
|
||||
|
||||
Reference in New Issue
Block a user