00001 00002 // Copyright (C) 2004-2007 by The Allacrost Project 00003 // All Rights Reserved 00004 // 00005 // This code is licensed under the GNU GPL version 2. It is free software 00006 // and you may modify it and/or redistribute it under the terms of this license. 00007 // See http://www.gnu.org/copyleft/gpl.html for details. 00009 00010 /*!**************************************************************************** 00011 * \file scene.h 00012 * \author Tyler Olsen, roots@allacrost.org 00013 * \brief Header file for scene mode interface. 00014 * 00015 * This code handles the game event processing and frame drawing when the user 00016 * is in scene mode (when a full-screen art piece is drawn to the screen). 00017 * The user must wait a minimum amount of time, defined by the MIN_SCENE_UPDATES 00018 * constant, before the scene can be passed. This is to keep the user from 00019 * accidentally skipping over one of our beautiful artworks before they have 00020 * the chance to gawk at it in amazement. :) 00021 *****************************************************************************/ 00022 00023 #ifndef __SCENE_HEADER__ 00024 #define __SCENE_HEADER__ 00025 00026 #include "utils.h" 00027 #include <string> 00028 #include "defs.h" 00029 #include "mode_manager.h" 00030 00032 namespace hoa_scene { 00033 00035 extern bool SCENE_DEBUG; 00036 00038 namespace private_scene { 00039 00041 const uint32 MIN_SCENE_UPDATES = 750; 00042 00043 } // namespace private_scene 00044 00045 /*!**************************************************************************** 00046 * \brief Handles everything that needs to be done when full-screen artwork is displayed. 00047 * 00048 * This game mode displays a single full-screen art scene, which are used in 00049 * various places in the game. The scene can not be exited until the amount 00050 * of milliseconds defined in MIN_SCENE_UPDATES has expired, to ensure that 00051 * the user does not accidentally skip the scene and can take the time to 00052 * appreciate the art. 00053 *****************************************************************************/ 00054 class SceneMode : public hoa_mode_manager::GameMode { 00055 private: 00057 uint32 _scene_timer; 00058 00059 //hoa_video::StillImage scene; 00060 public: 00061 SceneMode(); 00062 ~SceneMode(); 00063 00065 void Reset(); 00067 void Update(); 00069 void Draw(); 00070 }; // class SceneMode 00071 00072 } // namespace hoa_scene 00073 00074 #endif
1.5.1