ScummVM API documentation
TileLayer.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22/*
23 * Copyright (C) 2006-2010 - Frictional Games
24 *
25 * This file is part of HPL1 Engine.
26 */
27
28#ifndef HPL_TILELAYER_H
29#define HPL_TILELAYER_H
30
31#include "common/array.h"
32#include "hpl1/engine/math/MathTypes.h"
33#include "hpl1/engine/scene/Tile.h"
34#include "hpl1/engine/system/SystemTypes.h"
35
36namespace hpl {
37
38enum eTileLayerType {
39 eTileLayerType_Normal,
40 eTileLayerType_LastEnum
41};
42
43typedef Common::Array<cTile *> tTileVec;
44typedef tTileVec::iterator tTileVecIt;
45
47 friend class cTileMapRectIt;
48 friend class cTileMapLineIt;
49
50public:
51 cTileLayer(unsigned int alW, unsigned int alH, bool abCollision, bool abLit, eTileLayerType aType, float afZ = 0);
53
54 bool SetTile(unsigned int alX, unsigned int alY, cTile *aVal);
55 cTile *GetAt(int alX, int alY);
56 cTile *GetAt(int alNum);
57
58 void SetZ(float afZ) { mfZ = afZ; }
59 float GetZ() { return mfZ; }
60
61 bool HasCollision() { return mbCollision; }
62
63private:
64 tTileVec mvTile;
65
66 cVector2l mvSize;
67 bool mbCollision;
68 bool mbLit;
69 float mfZ;
70 eTileLayerType mType;
71};
72
73} // namespace hpl
74
75#endif // HPL_TILELAYER_H
cTile * * iterator
Definition: array.h:54
Definition: Tile.h:41
Definition: TileLayer.h:46
Definition: TileMapLineIt.h:37
Definition: TileMapRectIt.h:37