125 lines
2.1 KiB
C++
125 lines
2.1 KiB
C++
#include "GameInstance.h"
|
|
|
|
#include "Core/Object/GameObject.h"
|
|
#include "Core/Subsystems/GameDataManager.h"
|
|
#include "Core/Subsystems/GameInputSystem.h"
|
|
#include "Core/Subsystems/SceneManager.h"
|
|
#include "Data/Literals/Literals.h"
|
|
#include "Game/Characters/Player/Player.h"
|
|
#include "Game/Scene/CharacterStatScene.h"
|
|
#include "Game/Scene/CreateCharacterScene.h"
|
|
#include "Game/Scene/DungeonScene.h"
|
|
#include "Game/Scene/CharacterJobScene.h"
|
|
#include "Game/Scene/MainMenuScene.h"
|
|
#include "Game/Scene/PotionShopScene.h"
|
|
#include "Game/Scene/InventoryScene.h"
|
|
#include "Game/Scene/BossDungeonScene.h"
|
|
|
|
GameInstance::GameInstance() :
|
|
GameInput(nullptr),
|
|
SceneManager(nullptr),
|
|
DataManager(nullptr),
|
|
LocalPlayer(nullptr),
|
|
bIsRunning(false),
|
|
bInitalized(false)
|
|
{
|
|
GInst = this;
|
|
}
|
|
|
|
GameInstance::~GameInstance()
|
|
{
|
|
Release();
|
|
}
|
|
|
|
void GameInstance::Run()
|
|
{
|
|
bIsRunning = true;
|
|
GameLoop();
|
|
}
|
|
|
|
void GameInstance::Quit()
|
|
{
|
|
bIsRunning = false;
|
|
}
|
|
|
|
void GameInstance::GameLoop()
|
|
{
|
|
Initialize();
|
|
|
|
while (bIsRunning)
|
|
{
|
|
Update();
|
|
}
|
|
|
|
std::cout << "게임 종료" << "\n";
|
|
}
|
|
|
|
void GameInstance::PrepareSceneManager()
|
|
{
|
|
SceneManager = new GameSceneManager();
|
|
SceneManager->Initialize();
|
|
|
|
SceneManager->CreateScenes<
|
|
CreateCharacterScene,
|
|
CharacterStatScene,
|
|
CharacterJobScene,
|
|
MainMenuScene,
|
|
DungeonScene,
|
|
PotionShopScene,
|
|
InventoryScene,
|
|
BossDungeonScene
|
|
>();
|
|
}
|
|
|
|
void GameInstance::PrepareCreateDataManager()
|
|
{
|
|
DataManager = new GameDataManager();
|
|
DataManager->Initialize();
|
|
}
|
|
|
|
void GameInstance::PrepareGameInput()
|
|
{
|
|
GameInput = new GameInputSystem();
|
|
}
|
|
|
|
void GameInstance::Initialize()
|
|
{
|
|
PrepareSceneManager();
|
|
PrepareGameInput();
|
|
PrepareCreateDataManager();
|
|
}
|
|
|
|
void GameInstance::PostInitialize()
|
|
{
|
|
SceneManager->TransitionTo<CreateCharacterScene>();
|
|
}
|
|
|
|
void GameInstance::Update()
|
|
{
|
|
std::cout << Game::Common::Title;
|
|
|
|
SceneManager->Update();
|
|
|
|
if (!bInitalized)
|
|
{
|
|
PostInitialize();
|
|
bInitalized = true;
|
|
}
|
|
|
|
system("cls");
|
|
}
|
|
|
|
void GameInstance::Release()
|
|
{
|
|
for(auto It : GameObjects)
|
|
{
|
|
if (It) SafeDelete(It);
|
|
}
|
|
GameObjects.clear();
|
|
|
|
SafeDelete(LocalPlayer);
|
|
SafeDelete(SceneManager);
|
|
SafeDelete(DataManager);
|
|
SafeDelete(GameInput);
|
|
}
|