#ifndef _PROTO_SCENEMANAGER_HPP_ #define _PROTO_SCENEMANAGER_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_PUREPALETTE_HPP_ #include #endif #ifndef _COMMON_BITMAP_HPP_ #include #endif #ifndef _PROTO_DISPLAYMANAGER_HPP_ #include #endif class SceneManager : public DisplayManager { public: enum{Ship=0x0001,Other=0x0002}; SceneManager(GUIWindow &displayWindow); virtual ~SceneManager(); protected: virtual bool initializeHandler(PointerPureObjectBlock &pureObjects); virtual bool preprocessHandler(PointerPureObject &pureObject); virtual bool scopeHandler(PointerPureObject &pureObject); virtual void keyDownHandler(const KeyData &keyData); private: enum {MaxRotate=360,MinRotate=-360}; enum {ThetaDelta=5,ViewDelta=5,TurnDelta=10}; enum {inKey=0x49,outKey=0x4F}; void initVector(const Point3D &point3D,int width,Vector3D &vector3D)const; void handleLeftArrow(void); void handleRightArrow(void); void handleUpArrow(void); void handleDownArrow(void); void handleFreezeFrame(void); Bitmap mBmFighter; Bitmap mBmBurst; GUIWindow &mDisplayWindow; bool mFreezeFrame; }; #endif