diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj b/Adventures in Lestoria/Adventures in Lestoria.vcxproj index e1ce0284..03918a46 100644 --- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj +++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj @@ -387,6 +387,10 @@ + + + + @@ -643,6 +647,10 @@ + + + + diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters index 39994c4f..17ad0c8a 100644 --- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters +++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters @@ -465,6 +465,9 @@ Header Files + + Header Files + @@ -812,6 +815,9 @@ Source Files + + Source Files + diff --git a/Adventures in Lestoria/AdventuresInLestoria.cpp b/Adventures in Lestoria/AdventuresInLestoria.cpp index f14dadb2..8f99b562 100644 --- a/Adventures in Lestoria/AdventuresInLestoria.cpp +++ b/Adventures in Lestoria/AdventuresInLestoria.cpp @@ -76,6 +76,7 @@ All rights reserved. #include "discord.h" #endif #include "GameSettings.h" +#include "LoadingScreen.h" INCLUDE_EMITTER_LIST INCLUDE_ITEM_CATEGORIES @@ -336,6 +337,7 @@ bool AiL::OnUserUpdate(float fElapsedTime){ if(!GamePaused()){ GameState::STATE->OnUserUpdate(this); } + LoadingScreen::Update(); InputListener::Update(); Audio::Update(); RenderWorld(GetElapsedTime()); @@ -343,6 +345,7 @@ bool AiL::OnUserUpdate(float fElapsedTime){ RenderMenu(); GameState::STATE->DrawOverlay(this); RenderFadeout(); + LoadingScreen::Draw(); RenderVersionInfo(); #ifndef __EMSCRIPTEN__ if(Discord){ @@ -1819,6 +1822,7 @@ void AiL::InitializeLevel(std::string mapFile,MapName map){ } void AiL::LoadLevel(MapName map){ + LoadingScreen::loading=true; if(game->MAP_DATA.count(map)==0)ERR(std::format("WARNING! Could not load map {}! Does not exist! Refer to levels.txt for valid maps.",map)); if(game->MAP_DATA[map].GetMapType()=="Hub"&&GameState::STATE!=GameState::states[States::GAME_HUB])ERR("WARNING! A hub level should only be initiated in the GAME_HUB game state!"); @@ -2095,6 +2099,7 @@ void AiL::LoadLevel(MapName map){ Audio::PlayBGM(MAP_DATA[map].bgmSongName); DisableFadeIn(true); } + LoadingScreen::loading=false; } bool AiL::IsUpperForegroundTile(int tileID){ diff --git a/Adventures in Lestoria/LoadingScreen.cpp b/Adventures in Lestoria/LoadingScreen.cpp new file mode 100644 index 00000000..81b50415 --- /dev/null +++ b/Adventures in Lestoria/LoadingScreen.cpp @@ -0,0 +1,60 @@ +#pragma region License +/* +License (OLC-3) +~~~~~~~~~~~~~~~ + +Copyright 2024 Joshua Sigona + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions or derivations of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions or derivative works in binary form must reproduce the above +copyright notice. This list of conditions and the following disclaimer must be +reproduced in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may +be used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +Portions of this software are copyright © 2024 The FreeType +Project (www.freetype.org). Please see LICENSE_FT.txt for more information. +All rights reserved. +*/ +#pragma endregion + +#include "AdventuresInLestoria.h" +#include "LoadingScreen.h" + +INCLUDE_game +INCLUDE_WINDOW_SIZE + +bool LoadingScreen::loading=false; +int LoadingScreen::totalProgress=0; +int LoadingScreen::currentProgress=0; + +void LoadingScreen::Update(){ + if(loading){ + + } +} +void LoadingScreen::Draw(){ + if(loading){ + game->FillRectDecal({0,0},WINDOW_SIZE,VERY_DARK_GREEN); + + game->FillRectDecal({24.f,WINDOW_SIZE.y-48.f},{float(currentProgress/totalProgress)*WINDOW_SIZE.x-48,24.f},DARK_YELLOW); + } +} \ No newline at end of file diff --git a/Adventures in Lestoria/LoadingScreen.h b/Adventures in Lestoria/LoadingScreen.h new file mode 100644 index 00000000..6c0d4ae2 --- /dev/null +++ b/Adventures in Lestoria/LoadingScreen.h @@ -0,0 +1,47 @@ +#pragma region License +/* +License (OLC-3) +~~~~~~~~~~~~~~~ + +Copyright 2024 Joshua Sigona + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions or derivations of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions or derivative works in binary form must reproduce the above +copyright notice. This list of conditions and the following disclaimer must be +reproduced in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may +be used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +Portions of this software are copyright © 2024 The FreeType +Project (www.freetype.org). Please see LICENSE_FT.txt for more information. +All rights reserved. +*/ +#pragma endregion +#pragma once + +class LoadingScreen{ +public: + static bool loading; + static int totalProgress; + static int currentProgress; + static void Update(); + static void Draw(); +}; \ No newline at end of file diff --git a/Adventures in Lestoria/Version.h b/Adventures in Lestoria/Version.h index c3f8f4a1..5b6dc946 100644 --- a/Adventures in Lestoria/Version.h +++ b/Adventures in Lestoria/Version.h @@ -39,7 +39,7 @@ All rights reserved. #define VERSION_MAJOR 0 #define VERSION_MINOR 3 #define VERSION_PATCH 0 -#define VERSION_BUILD 7515 +#define VERSION_BUILD 7521 #define stringify(a) stringify_(a) #define stringify_(a) #a diff --git a/Adventures in Lestoria/VisualNovel.cpp b/Adventures in Lestoria/VisualNovel.cpp index 5b1a0f7e..aec1fa7c 100644 --- a/Adventures in Lestoria/VisualNovel.cpp +++ b/Adventures in Lestoria/VisualNovel.cpp @@ -323,6 +323,7 @@ SpeakerCommand::SpeakerCommand(std::string displayedName,std::string speaker) CommandType::CommandType SpeakerCommand::GetType(){return CommandType::SPEAKER;} void DialogCommand::Execute(VisualNovel&vn){ + if(dialog.size()<=0)return; vn.textScrollTime=VisualNovel::maxTextScrollTime; bool mustDisplay=vn.activeText.length()==0; Font*displayFont=&VisualNovel::font; diff --git a/Adventures in Lestoria/VisualNovel.h b/Adventures in Lestoria/VisualNovel.h index 89fb22eb..3cfde798 100644 --- a/Adventures in Lestoria/VisualNovel.h +++ b/Adventures in Lestoria/VisualNovel.h @@ -73,7 +73,7 @@ public: }; class DialogCommand final:public Command{ - std::string dialog; + std::string dialog=""; public: void Execute(VisualNovel&vn)override; DialogCommand(std::string dialog); diff --git a/Adventures in Lestoria/assets/maps/112x96_Forge_No_Shadow_12x12.tsx b/Adventures in Lestoria/assets/maps/112x96_Forge_No_Shadow_12x12.tsx index eae18a89..70616212 100644 --- a/Adventures in Lestoria/assets/maps/112x96_Forge_No_Shadow_12x12.tsx +++ b/Adventures in Lestoria/assets/maps/112x96_Forge_No_Shadow_12x12.tsx @@ -1,5 +1,5 @@ - + diff --git a/Adventures in Lestoria/assets/maps/Decorations_c1_No_Shadow24x24.tsx b/Adventures in Lestoria/assets/maps/Decorations_c1_No_Shadow24x24.tsx index 8bb871ac..d22dd1ca 100644 --- a/Adventures in Lestoria/assets/maps/Decorations_c1_No_Shadow24x24.tsx +++ b/Adventures in Lestoria/assets/maps/Decorations_c1_No_Shadow24x24.tsx @@ -1,5 +1,5 @@ - + diff --git a/Adventures in Lestoria/assets/maps/Minifantasy_TinyOverworldAllTiles.tsx b/Adventures in Lestoria/assets/maps/Minifantasy_TinyOverworldAllTiles.tsx index 8bd62cf6..c0437b0f 100644 --- a/Adventures in Lestoria/assets/maps/Minifantasy_TinyOverworldAllTiles.tsx +++ b/Adventures in Lestoria/assets/maps/Minifantasy_TinyOverworldAllTiles.tsx @@ -1,4 +1,4 @@ - + diff --git a/Adventures in Lestoria/olcPGEX_TTF.h b/Adventures in Lestoria/olcPGEX_TTF.h index 16eecac1..bf7928bd 100644 --- a/Adventures in Lestoria/olcPGEX_TTF.h +++ b/Adventures in Lestoria/olcPGEX_TTF.h @@ -159,10 +159,18 @@ namespace olc { FT_Set_Transform(toUse->fontFace, &rotMat, &pen); FT_Error error = FT_Load_Char(toUse->fontFace, chr, FT_LOAD_RENDER); + if(error){ + std::cout<<"FT Error: "<fontFace->glyph; FT_Glyph glyph; - FT_Get_Glyph(slot, &glyph); + error = FT_Get_Glyph(slot, &glyph); + if(error){ + std::cout<<"FT Error: "<