#include <map_resource_handler.h>
Veřejné metody | |
BombicMap * | createEmptyMap () |
Vytvorit novou prazdnou mapu. | |
BombicMap * | createMap (const QString &name) |
Vytvorit novou mapu. | |
bool | saveMap (BombicMap *map) |
Ulozit mapu. | |
BombicMap * | createMapCopy (BombicMap *oldMap, int newWidth, int newHeight, const QString &newBackground) |
Vytvorit kopii mapy se zmenenymi parametry. | |
Privátní typy | |
typedef QList< BombicMap::Field > | PositionsT |
Seznam policek umisteni (pozic). | |
typedef struct MapResourceHandler::_MapObjectS | MapObjectT |
Objekt mapy pro ulozeni. | |
typedef QHash< QString, MapObjectT > | ObjectsByNameT |
Objekt podle jeho jmena. | |
typedef QHash < BombicMapObject::Type, ObjectsByNameT > | ObjectsByTypeT |
Objekty podle typu objektu. | |
Privátní metody | |
QString | objectsElName (BombicMapObject::Type objectType) |
Nazev definujiciho elementu podle typu objektu. | |
QString | positionElName (BombicMapObject::Type objectType) |
Nazev pozicniho elementu podle typu objektu. | |
BombicMap * | createMap (const QDomElement &rootEl) |
Vytvorit novou mapu. | |
bool | loadMapPlayers (BombicMap *map) |
Nacte hrace mapy. | |
bool | loadMapPlayers (const QDomElement &playersEl, BombicMap *map) |
Nacte hrace mapy. | |
bool | loadMapObjects (const QDomElement &rootEl, BombicMapObject::Type type, BombicMap *map) |
Nacte objekty mapy daneho typu. | |
bool | loadMapNoboxes (const QDomElement &dontGenerateEl, BombicMap *map) |
Nacte pole na kterych se nemaji generovat bedny. | |
bool | loadMapNocreatures (const QDomElement &dontGenerateEl, BombicMap *map) |
Nacte pole na kterych se nemaji generovat prisery. | |
bool | insertMapObjects (const QDomElement &positionEl, BombicMapObject *insertedObject, BombicMap *map) |
Vlozi do mapy objekt na urcite pozice. | |
bool | insertMapObject (const QDomElement &positionEl, BombicMapObject *insertedObject, BombicMap *map) |
Vlozi do mapy objekt na urcitou (jednu) pozici. | |
void | initMapDataToSave (MapDataT &mapData, BombicMap *map) |
Inicializovat data mapy pro ulozeni. | |
void | registerPlacedObject (MapDataT &mapData, BombicMapObject *object, BombicMap::Field field) |
Zaregistrovat umisteny objekt do dat mapy. | |
void | countGeneratedObjects (ObjectsByTypeT &objects, const BombicMap::ObjectListT &generatedObjects) |
Spocitat generovane objekty mapy. | |
void | mapDataToXml (const MapDataT &mapData, QDomElement &rootEl) |
Zkonvertovat data mapy do xml. | |
void | positionsToXml (const PositionsT &positions, QDomElement &parentEl, const QString &positionElTagName) |
Zkonvertovat umisteni objektu do xml. | |
Třídy | |
struct | _MapObjectS |
Objekt mapy pro ulozeni. ... | |
struct | MapDataT |
Data mapy pro ulozeni. ... |
Obstarava nacitani a ukladani mapy. Take vytvari kopii mapy s pozmenenymi zasadnimy parametry jako je rozmer mapy nebo pozadi.
typedef QList<BombicMap::Field> MapResourceHandler::PositionsT [private] |
Seznam policek umisteni (pozic).
typedef struct MapResourceHandler::_MapObjectS MapResourceHandler::MapObjectT [private] |
Objekt mapy pro ulozeni.
typedef QHash<QString, MapObjectT> MapResourceHandler::ObjectsByNameT [private] |
Objekt podle jeho jmena.
typedef QHash<BombicMapObject::Type, ObjectsByNameT> MapResourceHandler::ObjectsByTypeT [private] |
Objekty podle typu objektu.
BombicMap * MapResourceHandler::createEmptyMap | ( | ) |
Vytvorit novou prazdnou mapu.
Vytvori mapu s defaultnim pozadim DEFAULT_MAP_BACKGROUND
a rozmery DEFAULT_MAP_WIDTH, DEFAULT_MAP_HEIGHT
. Vlozi do mapy hrace na prvni vhodnou pozici. Vlastnictvi nove naalokovane mapy prechazi na volajiciho. Nastavi mape ze byla ulozena (nebyla editovana).
BombicMap * MapResourceHandler::createMap | ( | const QString & | name | ) |
Vytvorit novou mapu.
Pokusi se vytvorit mapu zadanou name
a vlozit do ni vsechny objekty. Nastavi mape ze byla ulozena (nebyla editovana).
name | jmeno mapy (nebo primo cesta k souboru) |
0 | mapu se nepodarilo vyrobit |
bool MapResourceHandler::saveMap | ( | BombicMap * | map | ) |
Ulozit mapu.
Ulozi mapu do jejiho souboru ( BombicMap::filename() ). Z mapy ziska data pro ulozeni, vytvori xml dokument a ten nasledne ulozi do souboru. Pokud se akce povede, nastavi mape ze byla ulozena.
map | mapa, kterou chceme ulozit |
BombicMap * MapResourceHandler::createMapCopy | ( | BombicMap * | oldMap, | |
int | newWidth, | |||
int | newHeight, | |||
const QString & | newBackground | |||
) |
Vytvorit kopii mapy se zmenenymi parametry.
Vytvori novou mapu s novymi parametry a pokusi se do ni prekopirovat vsechny objekty ve stare mape. Pokud nelze vsechny objekty prekopirovat, vypisuje relevantni informace a selze.
oldMap | mapa, od ktere chceme kopii | |
newWidth | nova sirka mapy | |
newHeight | nova vyska mapy | |
newBackground | nazev noveho pozadi |
0 | Mapu nebylo mozne vytvorit. |
QString MapResourceHandler::objectsElName | ( | BombicMapObject::Type | objectType | ) | [private] |
Nazev definujiciho elementu podle typu objektu.
objectType | typ objektu, ktery je elementem definovat |
QString MapResourceHandler::positionElName | ( | BombicMapObject::Type | objectType | ) | [private] |
Nazev pozicniho elementu podle typu objektu.
objectType | typ objektu, ktery je elementem pozicovan |
BombicMap * MapResourceHandler::createMap | ( | const QDomElement & | rootEl | ) | [private] |
Vytvorit novou mapu.
Pokusi se vytvorit mapu definovanou korenovym elementem rootEl
a vlozit do ni vsechny objekty.
rootEl | korenovy element definice mapy |
0 | mapu se nepodarilo vyrobit |
bool MapResourceHandler::loadMapPlayers | ( | BombicMap * | map | ) | [private] |
Nacte hrace mapy.
Nacte hrace mapy a vlozi je na prvni vhodne misto. Hodi se zejmena pro vytvareni prazdne mapy.
map | mapa, do ktere chceme hrace vlozit |
bool MapResourceHandler::loadMapPlayers | ( | const QDomElement & | playersEl, | |
BombicMap * | map | |||
) | [private] |
Nacte hrace mapy.
Nacte hrace mapy a vlozi je do mapy. Misto vlozeni definuje playersEl
.
playersEl | element definujici pozice hracu | |
map | mapa, do ktere chceme hrace vlozit |
bool MapResourceHandler::loadMapObjects | ( | const QDomElement & | rootEl, | |
BombicMapObject::Type | type, | |||
BombicMap * | map | |||
) | [private] |
Nacte objekty mapy daneho typu.
Nacte objekty mapy daneho typu a vlozi je do mapy.
rootEl | korenovy element definice mapy | |
type | typ objektu | |
map | mapa, do ktere chceme objekty vlozit |
bool MapResourceHandler::loadMapNoboxes | ( | const QDomElement & | dontGenerateEl, | |
BombicMap * | map | |||
) | [private] |
Nacte pole na kterych se nemaji generovat bedny.
Zakaze v mape policka, na ktery se nesmi generovat bedny.
dontGenerateEl | element definice zakazanych policek | |
map | mapa, ve ktere chceme generovani zakazovat |
bool MapResourceHandler::loadMapNocreatures | ( | const QDomElement & | dontGenerateEl, | |
BombicMap * | map | |||
) | [private] |
Nacte pole na kterych se nemaji generovat prisery.
Zakaze v mape policka, na ktery se nesmi generovat prisery.
dontGenerateEl | element definice zakazanych policek | |
map | mapa, ve ktere chceme generovani zakazovat |
bool MapResourceHandler::insertMapObjects | ( | const QDomElement & | positionEl, | |
BombicMapObject * | insertedObject, | |||
BombicMap * | map | |||
) | [private] |
Vlozi do mapy objekt na urcite pozice.
Na pozice (zacinajici positionEl
a dalsi) vlozi kopie objektu (pokud to lze).
positionEl | prvni pozicni element | |
insertedObject | prototyp vkladaneho objektu | |
map | mapa, do ktere chceme objekty umistit |
bool MapResourceHandler::insertMapObject | ( | const QDomElement & | posEl, | |
BombicMapObject * | insertedObject, | |||
BombicMap * | map | |||
) | [private] |
Vlozi do mapy objekt na urcitou (jednu) pozici.
Na pozici urcenou posEl
vlozi kopii objektu (pokud to lze). Pokud nelze objekt vlozit, zobrazi chybove hlaseni a selze.
posEl | pozicni element | |
insertedObject | prototyp vkladaneho objektu | |
map | mapa, do ktere chceme objekt umistit |
Inicializovat data mapy pro ulozeni.
Ziska z mapy map
relevantni data a ulozi je do mapData
.
[out] | mapData | data mapy pro ulozeni |
map | mapa, kterou chceme ulozit |
void MapResourceHandler::registerPlacedObject | ( | MapDataT & | mapData, | |
BombicMapObject * | object, | |||
BombicMap::Field | field | |||
) | [private] |
Zaregistrovat umisteny objekt do dat mapy.
Pokud je to vhodne, zaregistruje umisteni objektu object
na policko field
. Resi problem rozlehlych objektu, obvodovych zdi a hracu (ty uklada jinam).
[out] | mapData | data mapy pro ulozeni |
object | objekt, ktery registrujeme | |
field | policko, na ktere jej pripadne registrujeme |
void MapResourceHandler::countGeneratedObjects | ( | ObjectsByTypeT & | objects, | |
const BombicMap::ObjectListT & | generatedObjects | |||
) | [private] |
Spocitat generovane objekty mapy.
* Nastavi pocty generovanych objektu. *
[out] | objects | objekty mapy * |
generatedObjects | seznam generovanych objektu mapy |
void MapResourceHandler::mapDataToXml | ( | const MapDataT & | mapData, | |
QDomElement & | rootEl | |||
) | [private] |
Zkonvertovat data mapy do xml.
Nastavi atributy a vytvori podstrom korenoveho elementu definice mapy. rootEl
by mel byt inicializovan a mel by patrit do platneho dokumentu.
mapData | data mapy k ulozeni | |
rootEl | korenovy element definice mapy |
void MapResourceHandler::positionsToXml | ( | const PositionsT & | positions, | |
QDomElement & | parentEl, | |||
const QString & | positionElName | |||
) | [private] |
Zkonvertovat umisteni objektu do xml.
Vytvori podstrom pozic elementu definujiciho objekt. parentEl
by mel byt inicializovan a mel by patrit do platneho dokumentu.
positions | seznam pozic objektu | |
parentEl | element definujici objekt mapy | |
positionElName | nazev elementu pozice |