/Code/IntroGame/DemoGameManager.h
http://angel-engine.googlecode.com/ · C Header · 82 lines · 35 code · 17 blank · 30 comment · 0 complexity · ff4d27b3708bcf7626a046323d19ab4e MD5 · raw file
- //////////////////////////////////////////////////////////////////////////////
- // Copyright (C) 2008-2012, Shane Liesegang
- // All rights reserved.
- //
- // Redistribution and use in source and binary forms, with or without
- // modification, are permitted provided that the following conditions are met:
- //
- // * Redistributions of source code must retain the above copyright
- // notice, this list of conditions and the following disclaimer.
- // * Redistributions in binary form must reproduce the above copyright
- // notice, this list of conditions and the following disclaimer in the
- // documentation and/or other materials provided with the distribution.
- // * Neither the name of the copyright holder nor the names of any
- // contributors may be used to endorse or promote products derived from
- // this software without specific prior written permission.
- //
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- // POSSIBILITY OF SUCH DAMAGE.
- //////////////////////////////////////////////////////////////////////////////
- #pragma once
- #include "stdafx.h"
- #include <vector>
- #include <string>
- class DemoScreen : public Renderable
- {
- public:
- DemoScreen();
- virtual void Start();
- virtual void Stop(); //calls remove on all _objects and deletes them
- virtual void Update(float dt);
- virtual void Render();
-
- virtual void ReceiveMessage(Message *message) {}
- protected:
- std::vector<Renderable*> _objects;
- };
- //DemoGameManager is a singleton and inherits from:
- // GameManager -- so we receive update and render calls, plus collision notifications
- #define theDemoGame DemoGameManager::GetInstance()
- class DemoGameManager : public GameManager
- {
- public:
- void MoveForwards();
- void MoveBackwards();
- static DemoGameManager &GetInstance();
-
- DemoScreen* GetCurrentScreen();
-
- virtual void Render();
- virtual void SoundEnded(AngelSoundHandle sound);
- virtual void ReceiveMessage(Message* message);
-
- protected:
- DemoGameManager();
- static DemoGameManager *s_DemoGameManager;
- private:
- std::vector<DemoScreen*> _screens;
- int _current;
- AngelSampleHandle sample;
- };