00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef mapdisplayinterfaceH
00012 #define mapdisplayinterfaceH
00013
00014
00015 #include "libs/loki/Functor.h"
00016
00017 class Sound;
00018
00019 #include "typen.h"
00020 #include "vehicle.h"
00021 #include "attack.h"
00022
00023
00024 class MapDisplayInterface {
00025 public:
00026 typedef Loki::Functor<void, TYPELIST_1(int) > SoundStartCallback;
00027 virtual int displayMovingUnit ( const MapCoordinate3D& start, const MapCoordinate3D& dest, Vehicle* vehicle, int fieldnum, int totalmove, SoundStartCallback startSound ) = 0;
00028 virtual void displayMap ( void ) = 0;
00029 virtual void displayMap ( Vehicle* additionalVehicle ) = 0;
00030 virtual void displayPosition ( int x, int y ) = 0;
00031 void displayPosition ( const MapCoordinate& pos ) { displayPosition(pos.x,pos.y ); };
00032 virtual void resetMovement ( void ) = 0;
00033 virtual void startAction ( void ) = 0;
00034 virtual void stopAction ( void ) = 0;
00035 virtual void cursor_goto ( const MapCoordinate& pos ) = 0;
00036 virtual void displayActionCursor ( int x1, int y1, int x2, int y2 ) = 0;
00037 virtual void removeActionCursor ( void ) = 0;
00038 virtual void updateDashboard () = 0;
00039 virtual void repaintDisplay () = 0;
00040 virtual void setTempView( bool view ) = 0;
00041 virtual void showBattle( tfight& battle ) = 0;
00042 virtual void playPositionalSound( const MapCoordinate& pos, Sound* snd ) = 0;
00043 virtual ~MapDisplayInterface () {};
00044 };
00045
00046 extern MapDisplayInterface& getDefaultMapDisplay();
00047
00048
00049 #endif