00001 #pragma once
00002
00003 #include <vector>
00004 using std::vector;
00005
00006 #include "Updater.h"
00007 #include "Level.h"
00008
00009 #include "OgreFrameListener.h"
00010 #include "OgreSceneManager.h"
00011 #include "OgreSceneNode.h"
00012 #include "OgreEntity.h"
00013 #include "OgreInput.h"
00014 #include "OgreFrameListener.h"
00015 #include "OgreTexture.h"
00016
00017 using Ogre::TexturePtr;
00018 using Ogre::SceneManager;
00019 using Ogre::FrameListener;
00020 using Ogre::FrameEvent;
00021 using Ogre::SceneNode;
00022 using Ogre::Entity;
00023 using Ogre::FrameEvent;
00024 using Ogre::InputReader;
00025
00026
00027
00028 namespace ASR
00029 {
00038 class LevelStatusVisualizer : public Updater
00039 {
00040
00041
00042 private:
00043 Level* mLevel;
00044 TexturePtr tex;
00045
00046
00047
00048 public:
00049 LevelStatusVisualizer( Level* lev );
00050 ~LevelStatusVisualizer(void);
00051
00052
00053
00054
00055 public:
00056 bool updateBeforeFrame ( const FrameEvent& e, const InputReader* inputDevice );
00057 bool updateAfterFrame ( const FrameEvent& e, const InputReader* inputDevice );
00058
00059
00060
00061
00062 private:
00063 void _rebuild ();
00064
00065
00066
00067
00068 private:
00069 void _paintBlockedTiles ( unsigned char* data, unsigned int rowSkip );
00070 void _paintUnitPaths ( unsigned char* data, unsigned int rowSkip );
00071 };
00072 }