1 |
/** \file IsoMouseMap.h |
/** \file IsoMouseMap.h |
2 |
* Declares the IsoMouseMap class. |
* Declares the IsoMouseMap class. |
3 |
* |
* |
|
* Revision history: |
|
|
* v1.1 (June 6) - Optimized the mousemap for square maps: |
|
|
* Removed the load function. |
|
|
* Removed the look-up table. |
|
|
* Removed the destroy method, since there is nothing to clen up now. |
|
|
* Simplified the mapMouse function. |
|
|
* Removed the MOUSEMAP_DIRECTION enumeration. |
|
|
* |
|
4 |
* @see IsoMouseMap |
* @see IsoMouseMap |
5 |
* |
* |
6 |
* @author <A href="mailto:vovansim@hotmail.com">Vovansim (aka Scorpion)</A> |
* @author <A href="mailto:vovansim@hotmail.com">Vovansim (aka Scorpion)</A> |
7 |
* @version 1.1 |
* @version 1.0 |
8 |
* @date June 6, 2003 |
* @date May 26, 2003 |
9 |
*/ |
*/ |
10 |
|
|
11 |
#ifndef ISO_MOUSE_MAP_H |
#ifndef ISO_MOUSE_MAP_H |
15 |
#include "IsoTilePlotter.h" |
#include "IsoTilePlotter.h" |
16 |
#include "IsoTileWalker.h" |
#include "IsoTileWalker.h" |
17 |
#include "IsoScroller.h" |
#include "IsoScroller.h" |
18 |
|
#include "IsoGeometryTools.h" |
19 |
|
|
20 |
///** |
/** |
21 |
// * Lists the possible tiles spanned by the coarse coordinate located |
* Lists the possible tiles spanned by the coarse coordinate located |
22 |
// * by mousemap. |
* by mousemap. |
23 |
// */ |
*/ |
24 |
//typedef enum { |
typedef enum { |
25 |
// MM_CENTER=0, /**< The center tile. */ |
MM_CENTER=0, /**< The center tile. */ |
26 |
// MM_NW=1, /**< The upper-left tile. */ |
MM_NW=1, /**< The upper-left tile. */ |
27 |
// MM_NE=2, /**< The upper-rigth tile. */ |
MM_NE=2, /**< The upper-rigth tile. */ |
28 |
// MM_SW=3, /**< The lower-left tile. */ |
MM_SW=3, /**< The lower-left tile. */ |
29 |
// MM_SE=4 /**< The lower-right tile. */ |
MM_SE=4 /**< The lower-right tile. */ |
30 |
//} MOUSEMAP_DIRECTION; |
} MOUSEMAP_DIRECTION; |
31 |
|
|
32 |
/** |
/** |
33 |
* Class IsoMouseMap: Allows to easily convert the view space |
* Class IsoMouseMap: Allows to easily convert the view space |
34 |
* coordinates into the coordinates of the tile clicked. |
* coordinates into the coordinates of the tile clicked. |
35 |
* |
* |
|
* Revision history: |
|
|
* v1.1 (June 6) - Optimized the mousemap for square maps: |
|
|
* Removed the load function. |
|
|
* Removed the look-up table. |
|
|
* Removed the destroy method, since there is nothing to clen up now. |
|
|
* Simplified the mapMouse function. |
|
|
* |
|
36 |
* @author <A href="mailto:vovansim@hotmail.com">Vovansim (aka Scorpion)</A> |
* @author <A href="mailto:vovansim@hotmail.com">Vovansim (aka Scorpion)</A> |
37 |
* @version 1.1 |
* @version 1.0 |
38 |
* @date June 6, 2003 |
* @date May 26, 2003 |
39 |
*/ |
*/ |
40 |
class IsoMouseMap { |
class IsoMouseMap { |
41 |
private: |
private: |
47 |
/** Reference point (adjustment for the upper left of tile 0,0) */ |
/** Reference point (adjustment for the upper left of tile 0,0) */ |
48 |
POINT reference; |
POINT reference; |
49 |
|
|
50 |
|
/** Lookup table */ |
51 |
|
MOUSEMAP_DIRECTION* lookupTable; |
52 |
|
|
53 |
/** Scroller */ |
/** Scroller */ |
54 |
IsoScroller* scroller; |
IsoScroller* scroller; |
55 |
|
|
68 |
|
|
69 |
|
|
70 |
//////////////////////// Initialization / Clean-up //////////////////////// |
//////////////////////// Initialization / Clean-up //////////////////////// |
71 |
|
/** Allows to load a mousemap template image for use with |
72 |
|
isometric and hexagonal maps. */ |
73 |
|
void load(char* filename); |
74 |
/** Use with rectangular maps. Takes the width and the height |
/** Use with rectangular maps. Takes the width and the height |
75 |
of the tile as a parameter. */ |
of the tile as a parameter. */ |
76 |
void create(int width, int height); |
void create(int width, int height); |
77 |
|
/** Clean up. */ |
78 |
|
void destroy(); |
79 |
////////////////////// End Initialization / Clean-up ////////////////////// |
////////////////////// End Initialization / Clean-up ////////////////////// |
80 |
|
|
81 |
|
|