Adjustments to order of entering a stage

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
pull/35/head
sigonasr2, Sig, Sigo 12 months ago
parent 85dcc64e2e
commit fecabce054
  1. 3
      Adventures in Lestoria/AdventuresInLestoria.cpp
  2. 3
      Adventures in Lestoria/ItemLoadoutWindow.cpp
  3. 7
      Adventures in Lestoria/OverworldMapLevelWindow.cpp
  4. 2
      Adventures in Lestoria/SaveFile.h
  5. 3
      Adventures in Lestoria/Tutorial.cpp
  6. 21
      Adventures in Lestoria/Tutorial.h

@ -77,6 +77,7 @@ All rights reserved.
#endif #endif
#include "GameSettings.h" #include "GameSettings.h"
#include "LoadingScreen.h" #include "LoadingScreen.h"
#include "Tutorial.h"
INCLUDE_EMITTER_LIST INCLUDE_EMITTER_LIST
INCLUDE_ITEM_CATEGORIES INCLUDE_ITEM_CATEGORIES
@ -338,10 +339,12 @@ bool AiL::OnUserUpdate(float fElapsedTime){
} }
LoadingScreen::Update(); LoadingScreen::Update();
InputListener::Update(); InputListener::Update();
Tutorial::Update();
Audio::Update(); Audio::Update();
RenderWorld(GetElapsedTime()); RenderWorld(GetElapsedTime());
GameState::STATE->Draw(this); GameState::STATE->Draw(this);
RenderMenu(); RenderMenu();
Tutorial::Draw();
GameState::STATE->DrawOverlay(this); GameState::STATE->DrawOverlay(this);
RenderFadeout(); RenderFadeout();
LoadingScreen::Draw(); LoadingScreen::Draw();

@ -52,7 +52,8 @@ void Menu::InitializeItemLoadoutWindow(){
itemLoadoutWindow->ADD("Loadout Label",MenuLabel)(geom2d::rect<float>{{0,24},{itemLoadoutWindowWidth,24}},"Setup Item Loadout",2,ComponentAttr::SHADOW|ComponentAttr::BACKGROUND|ComponentAttr::OUTLINE)END; itemLoadoutWindow->ADD("Loadout Label",MenuLabel)(geom2d::rect<float>{{0,24},{itemLoadoutWindowWidth,24}},"Setup Item Loadout",2,ComponentAttr::SHADOW|ComponentAttr::BACKGROUND|ComponentAttr::OUTLINE)END;
itemLoadoutWindow->ADD("Loadout Description Label",MenuLabel)(geom2d::rect<float>{{0,48},{itemLoadoutWindowWidth,24}},"Bring up to 3 items with you.",1,ComponentAttr::SHADOW)END; itemLoadoutWindow->ADD("Loadout Map Name Label",MenuLabel)(geom2d::rect<float>{{0,48},{itemLoadoutWindowWidth,24}},std::format("About to Enter: {}",State_OverworldMap::GetCurrentConnectionPoint().name),1,ComponentAttr::SHADOW)END;
itemLoadoutWindow->ADD("Loadout Description Label",MenuLabel)(geom2d::rect<float>{{0,58},{itemLoadoutWindowWidth,24}},"Bring up to 3 items with you.",1,ComponentAttr::SHADOW)END;
float buttonBorderPadding=64; float buttonBorderPadding=64;

@ -60,11 +60,11 @@ void Menu::InitializeOverworldMapLevelWindow(){
levelSelectWindow->ADD("Encounters Label",MenuLabel)(geom2d::rect<float>{{0,52},{windowSize.x-1,12}},"Encounters:",1,ComponentAttr::SHADOW|ComponentAttr::LEFT_ALIGN)END; levelSelectWindow->ADD("Encounters Label",MenuLabel)(geom2d::rect<float>{{0,52},{windowSize.x-1,12}},"Encounters:",1,ComponentAttr::SHADOW|ComponentAttr::LEFT_ALIGN)END;
levelSelectWindow->ADD("Spawns List",EncountersSpawnListScrollableWindowComponent)(geom2d::rect<float>{{1,64},{windowSize.x-2,84}},ComponentAttr::BACKGROUND)END; levelSelectWindow->ADD("Spawns List",EncountersSpawnListScrollableWindowComponent)(geom2d::rect<float>{{1,64},{windowSize.x-2,84}},ComponentAttr::BACKGROUND)END;
levelSelectWindow->ADD("Change Loadout Button",MenuComponent)(geom2d::rect<float>{{0,152},{windowSize.x-1,12}},"Change Loadout",[](MenuFuncData data){ levelSelectWindow->ADD("Enter Button",MenuComponent)(geom2d::rect<float>{{0,166},{windowSize.x-1,16}},"Enter",[](MenuFuncData data){
Component<MenuLabel>(ITEM_LOADOUT,"Loadout Map Name Label")->SetLabel(std::format("About to Enter: {}",State_OverworldMap::GetCurrentConnectionPoint().name));
Menu::OpenMenu(ITEM_LOADOUT); Menu::OpenMenu(ITEM_LOADOUT);
return true; return true;
})END; })END;
levelSelectWindow->ADD("Enter Button",MenuComponent)(geom2d::rect<float>{{0,166},{windowSize.x-1,16}},"Enter",[](MenuFuncData data){State_OverworldMap::StartLevel();return true;})END;
#pragma region Keyboard Navigation Rules #pragma region Keyboard Navigation Rules
levelSelectWindow->SetupKeyboardNavigation( levelSelectWindow->SetupKeyboardNavigation(
@ -78,9 +78,6 @@ void Menu::InitializeOverworldMapLevelWindow(){
Component<MenuComponent>(type,"Enter Button")->Click(); Component<MenuComponent>(type,"Enter Button")->Click();
} }
}}}, }}},
{{game->KEY_CHANGE_LOADOUT},{"Change Loadout",[](MenuType type){
Component<MenuComponent>(type,"Change Loadout Button")->Click();
}}},
{{game->KEY_SHOULDER,Pressed},{"Scroll Encounters",[](MenuType type){ {{game->KEY_SHOULDER,Pressed},{"Scroll Encounters",[](MenuType type){
Component<EncountersSpawnListScrollableWindowComponent>(type,"Spawns List")->Scroll(-1.0f); Component<EncountersSpawnListScrollableWindowComponent>(type,"Spawns List")->Scroll(-1.0f);
}}}, }}},

@ -37,7 +37,7 @@ All rights reserved.
#pragma endregion #pragma endregion
#pragma once #pragma once
#undef GetSaveFileName(); //Stupid Windows #undef GetSaveFileName //Stupid Windows
namespace SaveFileOperation{ namespace SaveFileOperation{
enum Operation{ enum Operation{

@ -43,7 +43,6 @@ TutorialTaskName Tutorial::currentTaskState=TutorialTaskName::CHANGE_LOADOUT;
void Tutorial::Initialize(){ void Tutorial::Initialize(){
using enum TutorialTaskName; using enum TutorialTaskName;
#define CREATETASK(enum,class) taskList.insert(enum,std::make_unique<class>()); #define CREATETASK(enum,class) taskList.insert(enum,std::make_unique<class>());
CREATETASK(CHANGE_LOADOUT,ChangeLoadoutTask);
CREATETASK(SET_LOADOUT_ITEM,SetLoadoutItemTask); CREATETASK(SET_LOADOUT_ITEM,SetLoadoutItemTask);
CREATETASK(MOVE_AROUND,MoveAroundTask); CREATETASK(MOVE_AROUND,MoveAroundTask);
ResetTasks(); ResetTasks();
@ -88,7 +87,7 @@ void Tutorial::Update(){
} }
} }
void Tutorial::Draw(){} void Tutorial::Draw()const{}
const bool Tutorial::TaskIsComplete(TutorialTaskName task){ const bool Tutorial::TaskIsComplete(TutorialTaskName task){
return taskList.at(task)->IsComplete(); return taskList.at(task)->IsComplete();

@ -43,7 +43,6 @@ All rights reserved.
INCLUDE_game INCLUDE_game
enum class TutorialTaskName{ enum class TutorialTaskName{
CHANGE_LOADOUT,
SET_LOADOUT_ITEM, SET_LOADOUT_ITEM,
MOVE_AROUND, MOVE_AROUND,
}; };
@ -59,6 +58,7 @@ class TutorialTask{
//Actions that occur when this task is reset/locked. DO NOT CALL DIRECTLY, USE _Initialize()! //Actions that occur when this task is reset/locked. DO NOT CALL DIRECTLY, USE _Initialize()!
virtual void Initialize(); virtual void Initialize();
virtual void Update(); virtual void Update();
virtual void Draw()const;
//Returns true when the task has detected it is completed. //Returns true when the task has detected it is completed.
virtual bool CompleteCondition()=0; virtual bool CompleteCondition()=0;
//Action occurs when the task completes. //Action occurs when the task completes.
@ -78,19 +78,6 @@ private:
static std::unordered_map<TutorialTaskName,std::unique_ptr<TutorialTask>>taskList; static std::unordered_map<TutorialTaskName,std::unique_ptr<TutorialTask>>taskList;
}; };
class ChangeLoadoutTask:protected TutorialTask{
inline ChangeLoadoutTask():TutorialTask(){};
virtual inline void Initialize()override final{
Component<MenuComponent>(OVERWORLD_LEVEL_SELECT,"Enter Button")->SetGrayedOut(true);
}
virtual inline bool CompleteCondition()override final{
return GameState::STATE==GameState::states[States::GAME_RUN];
}
virtual inline void OnComplete()override final{
Component<MenuComponent>(OVERWORLD_LEVEL_SELECT,"Enter Button")->SetGrayedOut(false);
}
};
class SetLoadoutItemTask:protected TutorialTask{ class SetLoadoutItemTask:protected TutorialTask{
inline SetLoadoutItemTask():TutorialTask(){}; inline SetLoadoutItemTask():TutorialTask(){};
virtual inline void Initialize()override final{ virtual inline void Initialize()override final{
@ -110,13 +97,13 @@ class SetLoadoutItemTask:protected TutorialTask{
}; };
class MoveAroundTask:protected TutorialTask{ class MoveAroundTask:protected TutorialTask{
vf2d initialPlayerPos={}; vf2d initialPlayerPos=vf2d{};
inline MoveAroundTask():TutorialTask(){}; inline MoveAroundTask():TutorialTask(){};
virtual inline void Initialize()override final{ virtual inline void Initialize()override final{
initialPlayerPos={}; initialPlayerPos=vf2d{};
} }
virtual inline void Update()override final{ virtual inline void Update()override final{
if(!LoadingScreen::loading&&initialPlayerPos=={}){ if(!LoadingScreen::loading&&initialPlayerPos==vf2d{}){
initialPlayerPos=game->GetPlayer()->GetPos(); initialPlayerPos=game->GetPlayer()->GetPos();
} }
} }

Loading…
Cancel
Save