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: "<