v3.0.1: SpotPass-Test-Aufgabe aufräumen (Start/Ende, 24-h-Abstand), Werkzeuge nur für vom Server bestätigte Admins (MBMNET-Platz, Antwort an die PID gebunden)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
f5fc0861c7
commit
29f2c556c2
+15
-3
@@ -155,7 +155,7 @@ static void draw_top(PatchState st, const char *msg, bool admin, bool isAdmin)
|
||||
{
|
||||
C2D_DrawRectangle(0, 0, 0, TOP_W, SCR_H, COL_BG2, COL_BG2, COL_BG, COL_BG);
|
||||
draw_update_line(admin);
|
||||
const char *hint = admin ? "START: Beenden SELECT: Werkzeuge aus" : "START: Beenden SELECT: Werkzeuge";
|
||||
const char *hint = admin ? "START: Beenden SELECT: Werkzeuge aus" : isAdmin ? "START: Beenden SELECT: Werkzeuge" : "START: Beenden";
|
||||
text(hint, 10, 4, 0.4f, COL_MUTED, 0);
|
||||
if (ftpOn) {
|
||||
// FTP-Adresse direkt daneben
|
||||
@@ -587,7 +587,17 @@ int main(int argc, char **argv)
|
||||
snprintf(msg, sizeof(msg), "Neuer Speicherort für die Patches!\nBitte MBMNET einmal neu antippen.");
|
||||
PatchState st = patch_state();
|
||||
// Nur im MBMNET-Modus ist die verknüpfte NNID ein MBMNET-Konto
|
||||
admin_start(server, st == STATE_MBMNET ? nnid_pid() : 0);
|
||||
// Werkzeuge nur für Admins: gefragt wird mit der ID im MBMNET-Platz (auch wenn gerade Nintendo aktiv ist)
|
||||
{
|
||||
u8 mslot = frdswitch_slot_of(FRIEND_ACCOUNT_MBMNET);
|
||||
char mid[20];
|
||||
u32 mpid = 0;
|
||||
if (mslot && frdswitch_slot_linked(FRIEND_ACCOUNT_MBMNET, mid, sizeof(mid)))
|
||||
ACT_GetAccountInfo(&mpid, sizeof(mpid), mslot, INFO_TYPE_PRINCIPAL_ID);
|
||||
admin_start(server, mpid);
|
||||
}
|
||||
// Ein SpotPass-Test von früher (App mitten im Test verlassen) darf nicht weiterlaufen
|
||||
spotpass_test_cancel();
|
||||
|
||||
// MBMNET aktiv, aber das Freundekonto hat eine fremde Kennung: darauf hinweisen
|
||||
if (st == STATE_MBMNET && frdswitch_current() == FRIEND_ACCOUNT_MBMNET) {
|
||||
@@ -621,7 +631,8 @@ int main(int argc, char **argv)
|
||||
u32 down = hidKeysDown();
|
||||
if (--ftpCheckIn <= 0) { ftpCheckIn = 120; ftpOn = ftpctl_running(); }
|
||||
if (down & KEY_START && rebootIn == 0) break; // während des Umschaltens nicht abbrechen
|
||||
if (down & KEY_SELECT) toolsToggled = !toolsToggled;
|
||||
if (down & KEY_SELECT && admin_is()) toolsToggled = !toolsToggled;
|
||||
if (!admin_is()) toolsToggled = false; // Werkzeuge nur für Admins (Server hat es bestätigt)
|
||||
// Werkzeuge nur mit SELECT, beim Öffnen immer aus
|
||||
bool admin = toolsToggled;
|
||||
if (!visible(selected, admin)) selected = admin || selected <= BTN_REBOOT ? BTN_ENABLE : BTN_SHOP;
|
||||
@@ -728,6 +739,7 @@ int main(int argc, char **argv)
|
||||
// schreiben sie nach dem Freigeben hinein und Luma zeigt einen Absturz (z. B. beim Neustart nach "Nintendo").
|
||||
ftpctl_stop(NULL, 0);
|
||||
shopctl_exit();
|
||||
if (spotpassTestFrames >= 0) spotpass_test_cancel(); // App mitten im Test beendet
|
||||
// Update- und Admin-Abfrage nur kurz abwarten: Läuft noch etwas, beendet sich die App hart (schneller
|
||||
// Neustart nach dem Umschalten). Das Auffrischen schreibt Patch-Dateien - darauf warten (beim Umschalten
|
||||
// ist es ohnehin schon fertig, Aktionen warten darauf).
|
||||
|
||||
Reference in New Issue
Block a user