From 1df5122100575048cad2936be6b99a33d167da0f Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Fri, 23 Oct 2020 22:49:47 +1100 Subject: [PATCH] Android: Fix if you cancel initial assets download partway through, then start singleplayer, then quit game, then try to continue downloading initial assets, it wouldn't download them anymore --- src/LScreens.c | 22 +++++++++++++--------- src/Resources.c | 4 +++- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/LScreens.c b/src/LScreens.c index a974b1e45..0fe61c0f7 100644 --- a/src/LScreens.c +++ b/src/LScreens.c @@ -1003,20 +1003,12 @@ static void CheckResourcesScreen_Next(void* w, int x, int y) { } static void CheckResourcesScreen_Init(struct LScreen* s_) { - cc_string str; char buffer[STRING_SIZE]; struct CheckResourcesScreen* s = (struct CheckResourcesScreen*)s_; - float size; s->widgets = s->_widgets; LLabel_Init(s_, &s->lblLine1, "Some required resources weren't found"); LLabel_Init(s_, &s->lblLine2, "Okay to download?"); - String_InitArray(str, buffer); - size = Resources_Size / 1024.0f; - LLabel_Init(s_, &s->lblStatus, ""); - String_Format1(&str, "&eDownload size: %f2 megabytes", &size); - s->lblStatus.font = &Launcher_HintFont; - LLabel_SetText( &s->lblStatus, &str); LButton_Init(s_, &s->btnYes, 70, 35, "Yes"); LButton_Init(s_, &s->btnNo, 70, 35, "No"); @@ -1024,6 +1016,17 @@ static void CheckResourcesScreen_Init(struct LScreen* s_) { s->btnNo.OnClick = CheckResourcesScreen_Next; } +static void CheckResourcesScreen_Show(struct LScreen* s_) { + cc_string str; char buffer[STRING_SIZE]; + struct CheckResourcesScreen* s = (struct CheckResourcesScreen*)s_; + float size = Resources_Size / 1024.0f; + + String_InitArray(str, buffer); + String_Format1(&str, "&eDownload size: %f2 megabytes", &size); + s->lblStatus.font = &Launcher_HintFont; + LLabel_SetText(&s->lblStatus, &str); +} + static void CheckResourcesScreen_Layout(struct LScreen* s_) { struct CheckResourcesScreen* s = (struct CheckResourcesScreen*)s_; @@ -1062,6 +1065,7 @@ void CheckResourcesScreen_SetActive(void) { struct CheckResourcesScreen* s = &CheckResourcesScreen_Instance; LScreen_Reset((struct LScreen*)s); s->Init = CheckResourcesScreen_Init; + s->Show = CheckResourcesScreen_Show; s->Draw = CheckResourcesScreen_Draw; s->Layout = CheckResourcesScreen_Layout; s->onEnterWidget = (struct LWidget*)&s->btnYes; @@ -1091,7 +1095,7 @@ static void FetchResourcesScreen_Init(struct LScreen* s_) { s->lblStatus.font = &Launcher_HintFont; s->btnCancel.OnClick = CheckResourcesScreen_Next; } -static void FetchResourcesScreen_Show(struct LScreen* s_) { if (!Fetcher_Working) Fetcher_Run(); } +static void FetchResourcesScreen_Show(struct LScreen* s_) { Fetcher_Run(); } static void FetchResourcesScreen_Layout(struct LScreen* s_) { struct FetchResourcesScreen* s = (struct FetchResourcesScreen*)s_; diff --git a/src/Resources.c b/src/Resources.c index 4f8a899d9..c839b5d15 100644 --- a/src/Resources.c +++ b/src/Resources.c @@ -191,6 +191,9 @@ static void Resources_CheckTextures(void) { void Resources_CheckExistence(void) { int i; + Resources_Count = 0; + Resources_Size = 0; + Resources_CheckTextures(); Resources_CheckMusic(); Resources_CheckSounds(); @@ -740,7 +743,6 @@ const char* Fetcher_RequestName(int reqID) { void Fetcher_Run(void) { cc_string url; int i; - if (Fetcher_Working) return; Fetcher_Failed = false; Fetcher_Downloaded = 0;