-
Notifications
You must be signed in to change notification settings - Fork 27
/
automap.h
79 lines (65 loc) · 2.14 KB
/
automap.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//////////////////////////////////////////////////////////////////////
// Yet Another Tibia Client
//////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//////////////////////////////////////////////////////////////////////
#ifndef __AUTOMAP_H
#define __AUTOMAP_H
#include <string>
#include <list>
#include <map>
#include "gamecontent/position.h"
#include "stdinttypes.h"
class Sprite;
class MiniMapArea{
public:
MiniMapArea(int x, int y, int z);
~MiniMapArea();
void setTileColor(uint16_t x, uint16_t y, uint8_t color, uint8_t speedindex);
bool save();
Sprite* getSprite(){ return m_bitmap;}
protected:
bool load();
void getRGB(uint8_t color, uint8_t& r, uint8_t& g, uint8_t& b);
uint8_t m_color[256][256];
uint8_t m_speed[256][256];
struct MapMark{
MapMark(uint32_t _x, uint32_t _y, uint32_t _type, const char* _text){
x = _x; y = _y; type = _type; text = _text;
}
uint32_t x, y, type;
std::string text;
};
std::list<MapMark*> m_marks;
Position m_basepos;
Sprite* m_bitmap;
};
class Automap
{
public:
Automap();
~Automap();
void renderSelf(int x, int y, int w, int h, const Position& pos);
void setTileColor(int x, int y, int z, uint8_t color,uint8_t speedindex);
void zoomOut();
void zoomIn();
private:
MiniMapArea* getArea(int x, int y, int z);
float m_zoom;
std::map<uint32_t, MiniMapArea*> m_areas;
};
#endif