00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef mapdisplayinterfaceH
00012 #define mapdisplayinterfaceH
00013
00014
00015 #include "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, LOKI_TYPELIST_1(int) > SoundStartCallback;
00027 virtual int displayMovingUnit ( const MapCoordinate3D& start, const MapCoordinate3D& dest, Vehicle* vehicle, int fieldnum, int totalmove, SoundStartCallback startSound, int duration ) = 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 displayActionCursor ( const MapCoordinate& pos1, const MapCoordinate& pos2 ) { displayActionCursor(pos1.x,pos1.y, pos2.x,pos2.y); };
00038 virtual void removeActionCursor ( void ) = 0;
00039 virtual void updateDashboard () = 0;
00040 virtual void repaintDisplay () = 0;
00041 virtual void setTempView( bool view ) = 0;
00042 virtual void showBattle( tfight& battle ) = 0;
00043 virtual void playPositionalSound( const MapCoordinate& pos, Sound* snd ) = 0;
00044 virtual int getUnitMovementDuration() const = 0;
00045 virtual ~MapDisplayInterface () {};
00046 };
00047
00048 extern MapDisplayInterface& getDefaultMapDisplay();
00049
00050
00051 #endif