DDNet documentation
Loading...
Searching...
No Matches
layer.h
Go to the documentation of this file.
1#ifndef GAME_EDITOR_MAPITEMS_LAYER_H
2#define GAME_EDITOR_MAPITEMS_LAYER_H
3
4#include <game/client/ui.h>
7#include <game/mapitems.h>
8
9#include <memory>
10
11using FIndexModifyFunction = std::function<void(int *pIndex)>;
12
13class CLayerGroup;
14
15class CLayer : public CMapObject
16{
17public:
18 explicit CLayer(CEditorMap *pMap, int Type);
19 CLayer(const CLayer &Other);
20
21 virtual void BrushSelecting(CUIRect Rect) {}
22 virtual int BrushGrab(CLayerGroup *pBrush, CUIRect Rect) { return 0; }
23 virtual void FillSelection(bool Empty, CLayer *pBrush, CUIRect Rect) {}
24 virtual void BrushDraw(CLayer *pBrush, vec2 WorldPos) {}
25 virtual void BrushPlace(CLayer *pBrush, vec2 WorldPos) {}
26 virtual void BrushFlipX() {}
27 virtual void BrushFlipY() {}
28 virtual void BrushRotate(float Amount) {}
29
30 virtual bool IsEntitiesLayer() const { return false; }
31
32 virtual void Render(bool Tileset = false) {}
34
35 virtual bool IsEnvelopeUsed(int EnvelopeIndex) const { return false; }
36 virtual bool IsImageUsed(int ImageIndex) const { return false; }
37 virtual bool IsSoundUsed(int SoundIndex) const { return false; }
38
39 virtual void ModifyImageIndex(const FIndexModifyFunction &IndexModifyFunction) {}
40 virtual void ModifyEnvelopeIndex(const FIndexModifyFunction &IndexModifyFunction) {}
41 virtual void ModifySoundIndex(const FIndexModifyFunction &IndexModifyFunction) {}
42
43 virtual std::shared_ptr<CLayer> Duplicate() const = 0;
44 virtual const char *TypeName() const = 0;
45
46 virtual void GetSize(float *pWidth, float *pHeight)
47 {
48 *pWidth = 0;
49 *pHeight = 0;
50 }
51 int m_Type;
52 char m_aName[12] = "";
53 int m_Flags = 0;
54
55 bool m_Readonly = false;
56 bool m_Visible = true;
57};
58
59#endif
Definition map.h:57
Definition layer_group.h:12
int m_Type
Definition layer.h:51
virtual void GetSize(float *pWidth, float *pHeight)
Definition layer.h:46
virtual std::shared_ptr< CLayer > Duplicate() const =0
virtual void FillSelection(bool Empty, CLayer *pBrush, CUIRect Rect)
Definition layer.h:23
virtual void ModifyImageIndex(const FIndexModifyFunction &IndexModifyFunction)
Definition layer.h:39
CLayer(CEditorMap *pMap, int Type)
Definition layer.cpp:7
virtual bool IsSoundUsed(int SoundIndex) const
Definition layer.h:37
bool m_Readonly
Definition layer.h:55
virtual void ModifySoundIndex(const FIndexModifyFunction &IndexModifyFunction)
Definition layer.h:41
virtual void BrushFlipY()
Definition layer.h:27
virtual void BrushPlace(CLayer *pBrush, vec2 WorldPos)
Definition layer.h:25
virtual bool IsEntitiesLayer() const
Definition layer.h:30
char m_aName[12]
Definition layer.h:52
virtual void BrushDraw(CLayer *pBrush, vec2 WorldPos)
Definition layer.h:24
int m_Flags
Definition layer.h:53
virtual int BrushGrab(CLayerGroup *pBrush, CUIRect Rect)
Definition layer.h:22
virtual void ModifyEnvelopeIndex(const FIndexModifyFunction &IndexModifyFunction)
Definition layer.h:40
virtual void BrushRotate(float Amount)
Definition layer.h:28
virtual CUi::EPopupMenuFunctionResult RenderProperties(CUIRect *pToolbox)
Definition layer.h:33
virtual void Render(bool Tileset=false)
Definition layer.h:32
virtual void BrushFlipX()
Definition layer.h:26
virtual bool IsImageUsed(int ImageIndex) const
Definition layer.h:36
virtual const char * TypeName() const =0
bool m_Visible
Definition layer.h:56
virtual bool IsEnvelopeUsed(int EnvelopeIndex) const
Definition layer.h:35
virtual void BrushSelecting(CUIRect Rect)
Definition layer.h:21
CMapObject(CEditorMap *pMap)
Definition map_object.cpp:6
Definition ui_rect.h:12
EPopupMenuFunctionResult
Definition ui.h:310
@ POPUP_KEEP_OPEN
Definition ui.h:314
std::function< void(int *pIndex)> FIndexModifyFunction
Definition layer.h:11
vector2_base< float > vec2
Definition vmath.h:161