File: map.h

package info (click to toggle)
attal 1.0~rc2-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 4,348 kB
  • ctags: 7,428
  • sloc: cpp: 55,101; sh: 267; ansic: 100; makefile: 54
file content (102 lines) | stat: -rw-r--r-- 2,599 bytes parent folder | download | duplicates (2)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/****************************************************************
**
** Attal : Lords of Doom
**
** map.h
** Manage the global view
**
** Version : $Id: map.h,v 1.17 2007/07/10 13:56:19 lusum Exp $
**
** Author(s) : Pascal Audoux - Cyrille Verrier
**
** Date : 02/08/2000
**
** Licence :    
**	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, 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.
**
****************************************************************/

 
#ifndef MAP_H
#define MAP_H
 
 
// generic include files
// include files for QT
#include <QTextStream>
#include <QPainter>
#include <QRectF>
// application specific includes
#include "libCommon/genericMap.h"
#include "libCommon/dataTheme.h"

#include "libClient/graphicalMap.h"

class GraphicalPath;

/*              ------------------------------
 *                         Map
 *              ------------------------------ */



/** comment for the class */
class Map : public GraphicalMap , public GenericMap
{
	Q_OBJECT
public:
	/** Construtor */
	Map( QObject * parent = 0 , const char * name = 0 );

	/// XXX: Does we need a destructor for theCells ??
	/** Destructor */
	~Map();
	
	bool load( QTextStream * ts, int width, int heigth );
	
	/** Clear the map */
	virtual void clear();

	/** Change the type of cell on the map */
	void changeCell( int i, int j, int typ, int transition, int typtra, uint decorationGroup, uint decorationItem , uchar diversification );
	
	/** Create new unknown map */
	void newUnknownMap( int h, int w );	
	
	/** Create new map */
	void newMapType( int h, int w, int typ );
	
	void updateMap();

	void updateMapRect( QRectF rect );
	
	/** Resize the map to the right size */
	void autoSize() {
		setSceneRect( QRectF ( 0 , 0, _width * DataTheme.tiles.getWidth(), _height * DataTheme.tiles.getHeight()) );
	}
	
	void activateGrid();

	/** Return the graphical path finder */
	GraphicalPath * getGraphicalPath() { return _showPath; }

signals: 
	void sig_cellChanged( int , int );

protected:
	void drawBackground( QPainter * painter , const QRectF & rect );
	void drawForeground( QPainter * painter , const QRectF & rect );
private:
	bool _isGrid;
	GraphicalPath * _showPath;
};
 
#endif // MAP_H