MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / clearFunction

Function clearFunction

src/OpenLoco/src/Map/TreeElement.cpp:31–78  ·  view source on GitHub ↗

0x004BDA17

Source from the content-addressed store, hash-verified

29 };
30 // 0x004BDA17
31 static TileClearance::ClearFuncResult clearFunction(World::TileElement& el, bool& noTrees)
32 {
33 if (el.isAiAllocated() || el.isGhost())
34 {
35 return TileClearance::ClearFuncResult::noCollision;
36 }
37 switch (el.type())
38 {
39 case ElementType::tree:
40 case ElementType::building:
41 case ElementType::industry:
42 break;
43
44 case ElementType::road:
45 {
46 auto* elRoad = el.as<RoadElement>();
47 if (elRoad != nullptr)
48 {
49 if (elRoad->hasBridge())
50 {
51 noTrees = true;
52 }
53 }
54 break;
55 }
56 case ElementType::track:
57 {
58 auto* elTrack = el.as<TrackElement>();
59 if (elTrack != nullptr)
60 {
61 if (elTrack->hasBridge())
62 {
63 noTrees = true;
64 }
65 }
66 break;
67 }
68
69 case ElementType::signal:
70 case ElementType::station:
71 case ElementType::surface:
72 case ElementType::wall:
73 noTrees = true;
74 break;
75 }
76
77 return TileClearance::ClearFuncResult::noCollision;
78 }
79
80 // 0x004BD64A
81 static bool hasObstructionsTooNear(World::Pos2 loc, uint8_t quadrant, uint8_t baseZ, uint8_t clearZ)

Callers 1

hasObstructionsTooNearFunction · 0.70

Calls 4

isAiAllocatedMethod · 0.80
typeMethod · 0.80
isGhostMethod · 0.45
hasBridgeMethod · 0.45

Tested by

no test coverage detected