Mercurial > LightClone
view LightClone/Source/GameOverScreen.cpp @ 73:0574e2cf8bac
Additional screen types
author | koryspansel |
---|---|
date | Tue, 11 Oct 2011 17:44:10 -0700 |
parents | |
children | 40c0b5305de8 |
line wrap: on
line source
/* * GameOverScreen */ #include "GameOverScreen.h" #include "ScreenManager.h" /* * Initialize */ ErrorCode GameOverScreen::Initialize(ServiceProvider* pServiceProvider) { ErrorCode eCode = kInterface.Initialize(pServiceProvider); if(eCode == Error_Success) { pDialog = new MessageDialog(); pDialog->Initialize(pServiceProvider); pDialog->Subscribe(GuiDialog::EventResult, &GameOverScreen::OnResult, this); const D3DXVECTOR2& kMessageSize = pDialog->GetDimensions(); pDialog->SetPosition(0.5f * ((ScreenSizeX - 280) - kMessageSize.x), 0.5f * (ScreenSizeY - kMessageSize.y)); } return Error_Success; } /* * Terminate */ void GameOverScreen::Terminate() { kInterface.Terminate(); Screen::Terminate(); } /* * Update */ void GameOverScreen::Update(float fElapsed) { kInterface.Update(fElapsed); } /* * Render */ void GameOverScreen::Render(RenderContext& kContext) { kCameraController.SetMode(CameraMode_2D); kInterface.Render(kContext, kCameraController); } /* * OnEnter */ void GameOverScreen::OnEnter() { pDialog->SetFlag(GuiElementFlag_Visible); } /* * OnExit */ void GameOverScreen::OnExit() { pDialog->ClearFlag(GuiElementFlag_Visible); } /* * OnResult */ void GameOverScreen::OnResult(GuiEventArguments& kArguments) { GuiResultArguments& kResultArguments = (GuiResultArguments&)kArguments; if(kResultArguments.nResult == DialogResult_Ok) { pScreenManager->Set("Main"); } }