4 #include <alicorn/std/string.forward.hpp>
5 #include <alicorn/boost/filesystem.forward.hpp>
6 #include <Covellite/Covellite.hpp>
7 #include "IGameWorld.hpp"
8 #include "GameObject.hpp"
9 #include "CubeCoords.hpp"
37 using Updater_t = ::covellite::api::Updater_t;
39 using IntPtr_t =
int *;
40 using Type_t = size_t;
44 GameScenePtr_t CreateGameScene(
void)
override;
45 float GetLandscapeHeight(
const CubeCoords &)
const override;
46 IGameObject::Landscape::Value GetGameObjectType(
const CubeCoords &)
const override;
47 const PointLights & GetPointLights(
void)
const override;
48 SoundDevice & GetSoundDevice(
void)
override;
52 void PrepareLanscapeScene(
const IntPtr_t &);
53 void PrepareAnimationScene(
const IntPtr_t &);
54 void PrepareShadowsScene(
const IntPtr_t &,
const GameObject::Another::Value);
55 void RemoveAllObjects(
void);
56 Updater_t GetAutoProcessMoving(
void);
57 Updater_t GetManualProcessMoving(
void);
60 void LoadObject(
const GameObject::IGameObjectPtr_t &,
const Any_t & = Any_t{});
61 void LoadObject(
const GameObject::IGameObjectPtr_t &,
const Updater_t &);
62 void LoadObject(
const GameObject::IGameObjectPtr_t &,
const CubeCoords &);
63 void PrepareLoader(
const IntPtr_t &);
64 void PrepareLoader(
void);
65 void PrepareCamera(
void);
66 void PreparePlane(
void);
67 void PrepareExtensionPlane(
const CubeCoords &);
68 void PrepareCompressionPlane(
const CubeCoords &);
71 float GetHeight(
const float,
const float)
const;
76 GameScenePtr_t m_pGameScene;
77 ::std::queue<Updater_t> m_LoadingQueue;
78 Updater_t m_ProcessingMode = [](
const float) {};
79 float m_WindowX = 100.0f;
80 float m_WindowY = 100.0f;
83 ::std::shared_ptr<PointLights> m_pPointLights;
84 ::std::shared_ptr<SoundDevice> m_pSoundDevice;
93 float m_BeginTime = 0.0f;
99 ::std::queue<Step> m_Steps;
100 ::std::map<size_t, ::std::pair<GameObject::IGameObjectPtr_t, int>> m_LandscapeObjects;
101 ::alicorn::extension::std::fast::unordered_map<uint64_t, int> m_ObjectTypes;