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
|