diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj b/Adventures in Lestoria/Adventures in Lestoria.vcxproj
index e296c594..d7f893a3 100644
--- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj
+++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj
@@ -411,6 +411,10 @@
+
+
+
+
@@ -749,6 +753,10 @@
+
+
+
+
diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters
index 2aa2f719..0a8ec6b7 100644
--- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters
+++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters
@@ -627,6 +627,12 @@
Header Files\steam
+
+ Header Files
+
+
+ Header Files
+
@@ -1001,6 +1007,9 @@
Source Files
+
+ Source Files
+
diff --git a/Adventures in Lestoria/AdventuresInLestoria.cpp b/Adventures in Lestoria/AdventuresInLestoria.cpp
index 57c4fb43..d4c6560a 100644
--- a/Adventures in Lestoria/AdventuresInLestoria.cpp
+++ b/Adventures in Lestoria/AdventuresInLestoria.cpp
@@ -1805,6 +1805,10 @@ void AiL::RenderHud(){
std::string displayText=player->notificationDisplay.first;
DrawShadowStringPropDecal(vf2d{float(ScreenWidth()/2),float(ScreenHeight()/4)-24}-GetTextSizeProp(displayText)/2,displayText,BLUE,VERY_DARK_BLUE);
}
+
+ minimap.Update();
+ minimap.Draw();
+
DisplayBossEncounterInfo();
#ifdef _DEBUG
if("debug_player_info"_I){
@@ -2215,6 +2219,13 @@ void AiL::_PrepareLevel(MapName map,MusicChange changeMusic){
});
#pragma endregion
+ #pragma region Foreground and Upper Foreground Tile Fade Group Setup (Loading phase 3.5)
+ LoadingScreen::AddPhase([&](){
+ minimap.Initialize();
+ return true;
+ });
+ #pragma endregion
+
#pragma region Foreground and Upper Foreground Tile Fade Group Setup (Loading phase 4)
LoadingScreen::AddPhase([&](){
std::setforegroundTilesAdded,upperForegroundTilesAdded;
diff --git a/Adventures in Lestoria/AdventuresInLestoria.h b/Adventures in Lestoria/AdventuresInLestoria.h
index d066687a..8e428054 100644
--- a/Adventures in Lestoria/AdventuresInLestoria.h
+++ b/Adventures in Lestoria/AdventuresInLestoria.h
@@ -56,6 +56,7 @@ All rights reserved.
#include "olcPixelGameEngine.h"
#include "DynamicCounter.h"
#include "UndefKeys.h"
+#include "Minimap.h"
class SteamKeyboardCallbackHandler;
@@ -185,6 +186,7 @@ private:
float vignetteDisplayTime=0.f;
bool savingFile=false;
bool prevStageCompleted=false;
+ Minimap minimap;
void ValidateGameStatus();
void _PrepareLevel(MapName map,MusicChange changeMusic);
diff --git a/Adventures in Lestoria/Minimap.cpp b/Adventures in Lestoria/Minimap.cpp
new file mode 100644
index 00000000..ba7b0728
--- /dev/null
+++ b/Adventures in Lestoria/Minimap.cpp
@@ -0,0 +1,92 @@
+#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 "DEFINES.h"
+#include "Unlock.h"
+
+INCLUDE_game
+
+void Minimap::Initialize(){
+ if(minimap.Sprite()==nullptr)minimap.Create(1,1);
+ if(cover.Sprite()==nullptr)cover.Create(1,1);
+
+ #pragma region Cleanup minimap and cover images
+ minimap.Sprite()->Resize(game->GetCurrentMapData().width,game->GetCurrentMapData().height);
+ cover.Sprite()->Resize(game->GetCurrentMapData().width,game->GetCurrentMapData().height);
+ game->SetDrawTarget(minimap.Sprite());
+ game->Clear(WHITE);
+ game->SetPixelMode(Pixel::ALPHA);
+ game->SetDrawTarget(cover.Sprite());
+ game->Clear(BLANK);
+ //Will update the minimap decal at the end, since we are about to change it anyways.
+ cover.Decal()->Update();
+ #pragma endregion
+ for(int x=0;xGetCurrentMapData().width;x++){
+ for(int y=0;yGetCurrentMapData().height;y++){
+ bool tileFound=false;
+ for(const LayerTag&layer:game->MAP_DATA[game->GetCurrentLevel()].GetLayers()){
+ if(Unlock::IsUnlocked(layer.unlockCondition)){
+ int tileID=layer.tiles[y][x]-1;
+ if(tileID!=-1){
+ tileFound=true;
+ if(game->GetTileCollision(game->GetCurrentMapName(),vf2d{float(x),float(y)}*game->GetCurrentMapData().tilewidth)!=game->NO_COLLISION){
+ minimap.Sprite()->SetPixel({x,y},BLACK);
+ }
+ break;
+ }
+ }
+ }
+ if(!tileFound){
+ game->SetPixelMode(Pixel::ALPHA);
+ minimap.Sprite()->SetPixel({x,y},BLANK);
+ game->SetPixelMode(Pixel::NORMAL);
+ }
+ }
+ }
+
+ minimap.Decal()->Update();
+}
+
+void Minimap::Update(){
+
+}
+
+void Minimap::Draw(){
+ game->DrawDecal(vf2d{float(game->ScreenWidth()-minimap.Sprite()->width),0},minimap.Decal());
+}
\ No newline at end of file
diff --git a/Adventures in Lestoria/Minimap.h b/Adventures in Lestoria/Minimap.h
new file mode 100644
index 00000000..76b04a81
--- /dev/null
+++ b/Adventures in Lestoria/Minimap.h
@@ -0,0 +1,48 @@
+#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 Minimap{
+public:
+ void Initialize();
+ void Update();
+ void Draw();
+private:
+ Renderable minimap;
+ Renderable cover;
+};
\ No newline at end of file
diff --git a/Adventures in Lestoria/TODO.txt b/Adventures in Lestoria/TODO.txt
index ec5c4c36..3287a2f9 100644
--- a/Adventures in Lestoria/TODO.txt
+++ b/Adventures in Lestoria/TODO.txt
@@ -19,6 +19,14 @@ Steel Weapons appear in the demo for Chapter 2.
Update display counters on the overworld map.
Pressing movement keys that negate each other shouldn't cause a walking animation to occur.
+>Start with a completely white image.
+>Iterate through all tiles, no tile means set to transparent. Collision tile means set to black.
+>Generate a blank map cover image.
+>As the player navigates around the map, the blank map canvas gets updated based on distance.
+>If a chunk has not been explored yet, it gets flagged as explored (probably unlock the chunks around the player as well).
+
+>When a map is visited later, all visited chunks are revealed again.
+
============================================
Consider a "killed by player" / "marked by player" flag for monsters to determine if a player gets credit for a monster kill (for achievements)
Make another actions config file for the main build (The app # is different)
diff --git a/Adventures in Lestoria/Version.h b/Adventures in Lestoria/Version.h
index e646d042..dcf327df 100644
--- a/Adventures in Lestoria/Version.h
+++ b/Adventures in Lestoria/Version.h
@@ -39,7 +39,7 @@ All rights reserved.
#define VERSION_MAJOR 1
#define VERSION_MINOR 1
#define VERSION_PATCH 0
-#define VERSION_BUILD 8666
+#define VERSION_BUILD 8675
#define stringify(a) stringify_(a)
#define stringify_(a) #a
diff --git a/Adventures in Lestoria/assets/screenshot10.png b/Adventures in Lestoria/assets/screenshot10.png
new file mode 100644
index 00000000..6ac1c2fc
Binary files /dev/null and b/Adventures in Lestoria/assets/screenshot10.png differ
diff --git a/Adventures in Lestoria/assets/screenshot11.png b/Adventures in Lestoria/assets/screenshot11.png
new file mode 100644
index 00000000..27990bb5
Binary files /dev/null and b/Adventures in Lestoria/assets/screenshot11.png differ
diff --git a/Adventures in Lestoria/assets/screenshot12.png b/Adventures in Lestoria/assets/screenshot12.png
new file mode 100644
index 00000000..0fb80c8c
Binary files /dev/null and b/Adventures in Lestoria/assets/screenshot12.png differ
diff --git a/Adventures in Lestoria/assets/screenshot8.png b/Adventures in Lestoria/assets/screenshot8.png
new file mode 100644
index 00000000..a330c6c0
Binary files /dev/null and b/Adventures in Lestoria/assets/screenshot8.png differ
diff --git a/Adventures in Lestoria/assets/screenshot9.png b/Adventures in Lestoria/assets/screenshot9.png
new file mode 100644
index 00000000..8c1c6bd5
Binary files /dev/null and b/Adventures in Lestoria/assets/screenshot9.png differ
diff --git a/x64/Release/Adventures in Lestoria.exe b/x64/Release/Adventures in Lestoria.exe
index 739f7af7..04243f26 100644
Binary files a/x64/Release/Adventures in Lestoria.exe and b/x64/Release/Adventures in Lestoria.exe differ