1#ifndef GAME_EDITOR_MAPITEMS_LAYER_TILES_H
2#define GAME_EDITOR_MAPITEMS_LAYER_TILES_H
52 ShiftBy = std::min(ShiftBy,
m_Width);
61 ShiftBy = std::min(ShiftBy,
m_Width);
70 ShiftBy = std::min(ShiftBy,
m_Height);
71 for(
int y = ShiftBy; y <
m_Height; ++y)
81 ShiftBy = std::min(ShiftBy,
m_Height);
82 for(
int y =
m_Height - ShiftBy - 1; y >= 0; --y)
86 for(
int y = 0; y < ShiftBy; ++y)
99 for(
int x = 0; x <
m_Width / 2; x++)
100 std::swap(pTiles[y *
m_Width + x], pTiles[(y + 1) *
m_Width - 1 - x]);
105 for(
int y = 0; y <
m_Height / 2; y++)
106 for(
int x = 0; x <
m_Width; x++)
115 [[nodiscard]]
virtual CTile GetTile(
int x,
int y)
const;
119 virtual void Resize(
int NewW,
int NewH);
133 [[nodiscard]]
virtual bool IsEmpty()
const;
144 std::shared_ptr<CLayer>
Duplicate()
const override;
145 const char *
TypeName()
const override;
173 void GetSize(
float *pWidth,
float *pHeight)
override
Definition layer_tiles.h:37
int w
Definition layer_tiles.h:40
int x
Definition layer_tiles.h:39
int h
Definition layer_tiles.h:40
int y
Definition layer_tiles.h:39
Definition layer_group.h:12
Definition layer_tiles.h:44
int ConvertY(float y) const
Definition layer_tiles.cpp:224
bool m_HasTele
Definition layer_tiles.h:198
bool m_HasFront
Definition layer_tiles.h:200
void ShiftImpl(T *pTiles, EShiftDirection Direction, int ShiftBy)
Definition layer_tiles.h:47
void BrushFlipX() override
Definition layer_tiles.cpp:615
void ModifyImageIndex(const FIndexModifyFunction &IndexModifyFunction) override
Definition layer_tiles.cpp:1388
bool m_HasGame
Definition layer_tiles.h:181
virtual void SetTile(int x, int y, CTile Tile)
Definition layer_tiles.cpp:85
int m_FillGameTile
Definition layer_tiles.h:192
bool IsEntitiesLayer() const override
Definition layer_tiles.cpp:270
int m_AutomapperConfig
Definition layer_tiles.h:194
void FillGameTiles(EGameTileOp Fill)
Definition layer_tiles.cpp:778
void ModifyEnvelopeIndex(const FIndexModifyFunction &IndexModifyFunction) override
Definition layer_tiles.cpp:1393
void BrushFlipY() override
Definition layer_tiles.cpp:631
void Clamp(CIntRect *pRect) const
Definition layer_tiles.cpp:244
int m_AutomapperReference
Definition layer_tiles.h:195
bool m_LiveGameTiles
Definition layer_tiles.h:193
CColor m_Color
Definition layer_tiles.h:185
virtual void ClearHistory()
Definition layer_tiles.h:208
void Render(const CEditorMap *pRenderMap) override
Definition layer_tiles.cpp:162
static CUi::EPopupMenuFunctionResult RenderCommonProperties(SCommonPropState &State, CEditorMap *pEditorMap, CUIRect *pToolbox, std::vector< std::shared_ptr< CLayerTiles > > &vpLayers, std::vector< int > &vLayerIndices)
Definition layer_tiles.cpp:1200
void GetSize(float *pWidth, float *pHeight) override
Definition layer_tiles.h:173
bool m_HasTune
Definition layer_tiles.h:202
bool m_RenderOverlays
Definition layer_tiles.h:205
const char * TypeName() const override
Definition layer_tiles.cpp:690
virtual bool IsEmpty() const
Definition layer_tiles.cpp:275
void ExtractTiles(const CTile *pSavedTiles, size_t SavedTilesSize) const
Definition layer_tiles.cpp:141
void FillSelection(bool Empty, CLayer *pBrush, CUIRect Rect) override
Definition layer_tiles.cpp:525
int ConvertX(float x) const
Definition layer_tiles.cpp:223
void BrushFlipXImpl(T *pTiles)
Definition layer_tiles.h:96
int BrushGrab(CLayerGroup *pBrush, CUIRect Rect) override
Definition layer_tiles.cpp:318
void RecordStateChange(int x, int y, CTile Previous, CTile Tile)
Definition layer_tiles.cpp:119
friend class CAutomapper
Definition layer_tiles.h:217
~CLayerTiles() override
Definition layer_tiles.cpp:75
bool CanFillGameTiles() const
Definition layer_tiles.cpp:955
bool m_AutoAutomapper
Definition layer_tiles.h:197
CLayerTiles(CEditorMap *pMap, int w, int h)
Definition layer_tiles.cpp:19
void BrushFlipYImpl(T *pTiles)
Definition layer_tiles.h:103
void ShowPreventUnusedTilesWarning()
Definition layer_tiles.cpp:1398
virtual void Resize(int NewW, int NewH)
Definition layer_tiles.cpp:695
void BrushDraw(CLayer *pBrush, vec2 WorldPos) override
Definition layer_tiles.cpp:573
int m_Width
Definition layer_tiles.h:183
bool m_KnownTextModeLayer
Definition layer_tiles.h:204
int m_Seed
Definition layer_tiles.h:196
void BrushSelecting(CUIRect Rect) override
Definition layer_tiles.cpp:290
CTile * m_pTiles
Definition layer_tiles.h:188
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition layer_tiles.h:203
bool IsEnvelopeUsed(int EnvelopeIndex) const override
Definition layer_tiles.cpp:1378
void SetTileIgnoreHistory(int x, int y, CTile Tile) const
Definition layer_tiles.cpp:114
virtual CTile GetTile(int x, int y) const
Definition layer_tiles.cpp:80
bool IsImageUsed(int ImageIndex) const override
Definition layer_tiles.cpp:1383
int m_ColorEnv
Definition layer_tiles.h:186
bool m_HasSwitch
Definition layer_tiles.h:201
CUi::EPopupMenuFunctionResult RenderProperties(CUIRect *pToolbox) override
Definition layer_tiles.cpp:967
bool m_HasSpeedup
Definition layer_tiles.h:199
int m_Height
Definition layer_tiles.h:184
void PrepareForSave()
Definition layer_tiles.cpp:127
virtual void ShowInfo()
Definition layer_tiles.cpp:736
void MakePalette() const
Definition layer_tiles.cpp:155
void BrushRotate(float Amount) override
Definition layer_tiles.cpp:647
void Snap(CUIRect *pRect) const
Definition layer_tiles.cpp:234
void FlagModified(int x, int y, int w, int h)
Definition layer_tiles.cpp:1369
void Convert(CUIRect Rect, CIntRect *pOut) const
Definition layer_tiles.cpp:226
int m_Image
Definition layer_tiles.h:182
static bool HasAutomapEffect(ETilesProp Prop)
Definition layer_tiles.cpp:1408
EditorTileStateChangeHistory< STileStateChange > m_TilesHistory
Definition layer_tiles.h:207
int m_ColorEnvOffset
Definition layer_tiles.h:187
std::shared_ptr< CLayer > Duplicate() const override
Definition layer_tiles.cpp:685
virtual void Shift(EShiftDirection Direction)
Definition layer_tiles.cpp:731
CLayer(CEditorMap *pMap, int Type)
Definition layer.cpp:7
Definition mapitems.h:351
EPopupMenuFunctionResult
Definition ui.h:342
ETilesProp
Definition mapitems.h:70
EGameTileOp
Definition enums.h:20
#define dbg_assert_failed(fmt,...)
Definition dbg.h:47
constexpr auto IO_MAX_PATH_LENGTH
Definition types.h:26
void mem_zero(T *block, size_t size)
Definition mem.h:56
void mem_copy(void *dest, const void *source, size_t size)
Definition mem.cpp:6
void mem_move(void *dest, const void *source, size_t size)
Definition mem.cpp:11
std::function< void(int *pIndex)> FIndexModifyFunction
Definition layer.h:11
std::map< int, std::map< int, T > > EditorTileStateChangeHistory
Definition layer_tiles.h:22
EShiftDirection
Definition layer_tiles.h:29
@ RIGHT
Definition layer_tiles.h:31
@ LEFT
Definition layer_tiles.h:30
@ DOWN
Definition layer_tiles.h:33
@ UP
Definition layer_tiles.h:32
ivec4 CColor
Definition mapitems.h:256
Direction
Definition nameplates.cpp:211
Definition layer_tiles.h:151
@ MODIFIED_SIZE
Definition layer_tiles.h:154
@ MODIFIED_COLOR
Definition layer_tiles.h:155
int m_Height
Definition layer_tiles.h:159
int m_Modified
Definition layer_tiles.h:157
int m_Color
Definition layer_tiles.h:160
int m_Width
Definition layer_tiles.h:158
Definition layer_tiles.h:15
CTile m_Previous
Definition layer_tiles.h:17
bool m_Changed
Definition layer_tiles.h:16
CTile m_Current
Definition layer_tiles.h:18
vector2_base< float > vec2
Definition vmath.h:168