diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj
index f1878287a4..65e4f442e2 100644
--- a/src/openrct2/libopenrct2.vcxproj
+++ b/src/openrct2/libopenrct2.vcxproj
@@ -1085,6 +1085,7 @@
+
@@ -1101,7 +1102,6 @@
-
diff --git a/src/openrct2/world/TileElement.cpp b/src/openrct2/world/TileElement.cpp
index c42080c9ab..c8bae8ceaa 100644
--- a/src/openrct2/world/TileElement.cpp
+++ b/src/openrct2/world/TileElement.cpp
@@ -160,71 +160,3 @@ const QuarterTile QuarterTile::Rotate(uint8_t amount) const
return QuarterTile{ 0 };
}
}
-
-const SurfaceElement* TileElementBase::AsSurface() const
-{
- return as();
-}
-SurfaceElement* TileElementBase::AsSurface()
-{
- return as();
-}
-const PathElement* TileElementBase::AsPath() const
-{
- return as();
-}
-PathElement* TileElementBase::AsPath()
-{
- return as();
-}
-const TrackElement* TileElementBase::AsTrack() const
-{
- return as();
-}
-TrackElement* TileElementBase::AsTrack()
-{
- return as();
-}
-const SmallSceneryElement* TileElementBase::AsSmallScenery() const
-{
- return as();
-}
-SmallSceneryElement* TileElementBase::AsSmallScenery()
-{
- return as();
-}
-const LargeSceneryElement* TileElementBase::AsLargeScenery() const
-{
- return as();
-}
-LargeSceneryElement* TileElementBase::AsLargeScenery()
-{
- return as();
-}
-const WallElement* TileElementBase::AsWall() const
-{
- return as();
-}
-WallElement* TileElementBase::AsWall()
-{
- return as();
-}
-
-const EntranceElement* TileElementBase::AsEntrance() const
-{
- return as();
-}
-
-EntranceElement* TileElementBase::AsEntrance()
-{
- return as();
-}
-
-const BannerElement* TileElementBase::AsBanner() const
-{
- return as();
-}
-BannerElement* TileElementBase::AsBanner()
-{
- return as();
-}
diff --git a/src/openrct2/world/TileElementBase.cpp b/src/openrct2/world/tile_element/TileElementBase.cpp
similarity index 66%
rename from src/openrct2/world/TileElementBase.cpp
rename to src/openrct2/world/tile_element/TileElementBase.cpp
index 5a3ce735bb..3541e6c02e 100644
--- a/src/openrct2/world/TileElementBase.cpp
+++ b/src/openrct2/world/tile_element/TileElementBase.cpp
@@ -7,8 +7,9 @@
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
-#include "Map.h"
-#include "TileElement.h"
+#include "../Map.h"
+#include "../TileElement.h"
+#include "EntranceElement.h"
TileElementType TileElementBase::GetType() const
{
@@ -126,3 +127,71 @@ void TileElementBase::SetOwner(uint8_t newOwner)
Owner &= ~OWNER_MASK;
Owner |= (newOwner & OWNER_MASK);
}
+
+const SurfaceElement* TileElementBase::AsSurface() const
+{
+ return as();
+}
+SurfaceElement* TileElementBase::AsSurface()
+{
+ return as();
+}
+const PathElement* TileElementBase::AsPath() const
+{
+ return as();
+}
+PathElement* TileElementBase::AsPath()
+{
+ return as();
+}
+const TrackElement* TileElementBase::AsTrack() const
+{
+ return as();
+}
+TrackElement* TileElementBase::AsTrack()
+{
+ return as();
+}
+const SmallSceneryElement* TileElementBase::AsSmallScenery() const
+{
+ return as();
+}
+SmallSceneryElement* TileElementBase::AsSmallScenery()
+{
+ return as();
+}
+const LargeSceneryElement* TileElementBase::AsLargeScenery() const
+{
+ return as();
+}
+LargeSceneryElement* TileElementBase::AsLargeScenery()
+{
+ return as();
+}
+const WallElement* TileElementBase::AsWall() const
+{
+ return as();
+}
+WallElement* TileElementBase::AsWall()
+{
+ return as();
+}
+
+const EntranceElement* TileElementBase::AsEntrance() const
+{
+ return as();
+}
+
+EntranceElement* TileElementBase::AsEntrance()
+{
+ return as();
+}
+
+const BannerElement* TileElementBase::AsBanner() const
+{
+ return as();
+}
+BannerElement* TileElementBase::AsBanner()
+{
+ return as();
+}