MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / screenToTileCoords

Method screenToTileCoords

game/ui/tileview/tileview.h:122–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120 }
121
122 template <typename T> Vec3<T> screenToTileCoords(Vec2<T> screenPos, T z, TileViewMode v) const
123 {
124 switch (v)
125 {
126 case TileViewMode::Isometric:
127 {
128 screenPos.y += (z * isoTileSize.z);
129 T y =
130 ((screenPos.y / (isoTileSize.y / 2)) - (screenPos.x / (isoTileSize.x / 2))) / 2;
131 T x =
132 ((screenPos.y / (isoTileSize.y / 2)) + (screenPos.x / (isoTileSize.x / 2))) / 2;
133 return Vec3<T>{x, y, z};
134 }
135 case TileViewMode::Strategy:
136 {
137 return Vec3<T>{screenPos.x / stratTileSize.x, screenPos.y / stratTileSize.y, z};
138 }
139 }
140 LogError("Invalid view mode");
141 return {0, 0, z};
142 }
143 template <typename T> Vec3<T> screenToTileCoords(Vec2<T> screenPos, T z) const
144 {
145 return this->screenToTileCoords(screenPos, z, this->viewMode);

Callers 5

renderStrategyOverlayMethod · 0.95
dumpVoxelViewMethod · 0.80
eventOccurredMethod · 0.80
handleMouseDownMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected