MCPcopy Create free account
hub / github.com/DFHack/dfhack / get_map

Function get_map

plugins/edgescroll.cpp:175–191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

173
174using world_map = std::variant<df::viewscreen_choose_start_sitest*, df::viewscreen_worldst*, df::viewscreen_new_regionst*>;
175static std::optional<world_map> get_map() {
176 df::viewscreen* screen = Gui::getCurViewscreen(true);
177 screen = Gui::getDFViewscreen(true, screen); // Get the first non-dfhack viewscreen
178 if(!screen)
179 return {};
180
181 if (auto start_site = virtual_cast<df::viewscreen_choose_start_sitest>(screen))
182 return start_site;
183 if (auto world_map = virtual_cast<df::viewscreen_worldst>(screen))
184 return world_map;
185 if (auto worldgen_map = virtual_cast<df::viewscreen_new_regionst>(screen)) {
186 if (!world || world->worldgen_status.state <= df::world_generatorst::Initializing)
187 return {}; // Map isn't displayed yet
188 return worldgen_map;
189 }
190 return {};
191}
192
193static void scroll_world(world_map screen, int xdiff, int ydiff) {
194 const auto visitor = overloads {

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected