WIP Awesometastic debugging
This commit is contained in:
@@ -32,12 +32,14 @@ public:
|
|||||||
, Rectangle()
|
, Rectangle()
|
||||||
, m_Name("UIParent")
|
, m_Name("UIParent")
|
||||||
, m_Layer(0)
|
, m_Layer(0)
|
||||||
|
, m_Hidden(false)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
// Create a frame as a child
|
// Create a frame as a child
|
||||||
Frame(Frame* parent, std::string name)
|
Frame(Frame* parent, std::string name)
|
||||||
: m_Name(name)
|
: m_Name(name)
|
||||||
, m_Layer(0)
|
, m_Layer(0)
|
||||||
|
, m_Hidden(false)
|
||||||
{ SetParent(std::shared_ptr<Frame>(parent)); }
|
{ SetParent(std::shared_ptr<Frame>(parent)); }
|
||||||
|
|
||||||
::RenderQueue RenderQueue;
|
::RenderQueue RenderQueue;
|
||||||
@@ -74,6 +76,9 @@ public:
|
|||||||
std::string Name() const { return m_Name; }
|
std::string Name() const { return m_Name; }
|
||||||
void SetName(std::string val) { m_Name = val; }
|
void SetName(std::string val) { m_Name = val; }
|
||||||
int Layer() const { return m_Layer; }
|
int Layer() const { return m_Layer; }
|
||||||
|
bool Hidden() const { return m_Hidden; }
|
||||||
|
void Hide() { m_Hidden = true; }
|
||||||
|
void Show() { m_Hidden = false; }
|
||||||
|
|
||||||
int Left() const override
|
int Left() const override
|
||||||
{
|
{
|
||||||
@@ -105,6 +110,9 @@ public:
|
|||||||
|
|
||||||
void UpdateLayered(double dt)
|
void UpdateLayered(double dt)
|
||||||
{
|
{
|
||||||
|
if (this->Hidden())
|
||||||
|
return;
|
||||||
|
|
||||||
// Update ourselves
|
// Update ourselves
|
||||||
this->Update(dt);
|
this->Update(dt);
|
||||||
|
|
||||||
@@ -115,6 +123,8 @@ public:
|
|||||||
for (auto &pairChild : children)
|
for (auto &pairChild : children)
|
||||||
{
|
{
|
||||||
auto child = pairChild.second;
|
auto child = pairChild.second;
|
||||||
|
if (child->Hidden())
|
||||||
|
continue;
|
||||||
child->Update(dt);
|
child->Update(dt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -123,6 +133,9 @@ public:
|
|||||||
|
|
||||||
void DrawLayered(std::shared_ptr<Renderer> renderer)
|
void DrawLayered(std::shared_ptr<Renderer> renderer)
|
||||||
{
|
{
|
||||||
|
if (this->Hidden())
|
||||||
|
return;
|
||||||
|
|
||||||
// Draw ourselves
|
// Draw ourselves
|
||||||
renderer->SetViewport(AbsoluteRectangle());
|
renderer->SetViewport(AbsoluteRectangle());
|
||||||
this->Draw(renderer);
|
this->Draw(renderer);
|
||||||
@@ -134,6 +147,8 @@ public:
|
|||||||
for (auto &pairChild : children)
|
for (auto &pairChild : children)
|
||||||
{
|
{
|
||||||
auto child = pairChild.second;
|
auto child = pairChild.second;
|
||||||
|
if (child->Hidden())
|
||||||
|
continue;
|
||||||
Rectangle rect = child->AbsoluteRectangle();
|
Rectangle rect = child->AbsoluteRectangle();
|
||||||
renderer->SetViewport(rect);
|
renderer->SetViewport(rect);
|
||||||
child->Draw(renderer);
|
child->Draw(renderer);
|
||||||
@@ -149,6 +164,7 @@ protected:
|
|||||||
|
|
||||||
std::string m_Name;
|
std::string m_Name;
|
||||||
int m_Layer;
|
int m_Layer;
|
||||||
|
bool m_Hidden;
|
||||||
|
|
||||||
std::shared_ptr<Frame> m_Parent;
|
std::shared_ptr<Frame> m_Parent;
|
||||||
typedef std::multimap<std::string, std::shared_ptr<Frame>> Children_t; // name -> frame
|
typedef std::multimap<std::string, std::shared_ptr<Frame>> Children_t; // name -> frame
|
||||||
|
|||||||
+21
-5
@@ -18,32 +18,48 @@ public:
|
|||||||
GameFrame(Frame* parent, std::string name)
|
GameFrame(Frame* parent, std::string name)
|
||||||
: Frame(parent, name)
|
: Frame(parent, name)
|
||||||
{
|
{
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &GameFrame::OnCommand);
|
||||||
|
|
||||||
m_World = std::make_shared<GameWorld>(EventBroker, ResourceManager);
|
m_World = std::make_shared<GameWorld>(EventBroker, ResourceManager);
|
||||||
auto worldFrame = new WorldFrame(this, "GameWorldFrame", m_World);
|
auto worldFrame = new WorldFrame(this, "GameWorldFrame", m_World);
|
||||||
{
|
{
|
||||||
vp1 = new Viewport(worldFrame, "Viewport1", m_World);
|
vp1 = new Viewport(worldFrame, "Viewport1", m_World);
|
||||||
vp1->X = 0;
|
vp1->X = 0;
|
||||||
vp1->Width = 640;
|
vp1->Width = 640;
|
||||||
vp1->Height = 720 / 2;
|
|
||||||
new PlayerHUD(vp1, "PlayerHUD", m_World, 1);
|
new PlayerHUD(vp1, "PlayerHUD", m_World, 1);
|
||||||
|
|
||||||
vp2 = new Viewport(worldFrame, "Viewport2", m_World);
|
vp2 = new Viewport(worldFrame, "Viewport2", m_World);
|
||||||
vp2->X = vp1->Right();
|
vp2->X = vp1->Right();
|
||||||
vp2->Width = 640;
|
vp2->Width = 640;
|
||||||
vp2->Height = 720 / 2;
|
|
||||||
new PlayerHUD(vp2, "PlayerHUD", m_World, 2);
|
new PlayerHUD(vp2, "PlayerHUD", m_World, 2);
|
||||||
|
|
||||||
auto vpc = new Viewport(worldFrame, "ViewportFreeCam", m_World);
|
m_FreeCamViewport = new Viewport(worldFrame, "ViewportFreeCam", m_World);
|
||||||
vpc->Y = 720 / 2;
|
m_FreeCamViewport->Show();
|
||||||
vpc->Height = 720 / 2;
|
|
||||||
}
|
}
|
||||||
m_World->Initialize();
|
m_World->Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
EventRelay<Frame, Events::InputCommand> m_EInputCommand;
|
||||||
|
|
||||||
std::shared_ptr<GameWorld> m_World;
|
std::shared_ptr<GameWorld> m_World;
|
||||||
Viewport* vp1;
|
Viewport* vp1;
|
||||||
Viewport* vp2;
|
Viewport* vp2;
|
||||||
|
Viewport* m_FreeCamViewport;
|
||||||
|
|
||||||
|
bool OnCommand(const Events::InputCommand &event)
|
||||||
|
{
|
||||||
|
if (event.Command == "cam_vertical" || event.Command == "cam_horizontal" || event.Command == "cam_normal" || event.Command == "cam_lock")
|
||||||
|
{
|
||||||
|
m_FreeCamViewport->Show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_FreeCamViewport->Hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user