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

Method WriteAll

library/modules/MapCache.cpp:1304–1334  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1302}
1303
1304bool MapExtras::MapCache::WriteAll()
1305{
1306 auto world = df::global::world;
1307 df::job_list_link* job_link = world->jobs.list.next;
1308 df::job_list_link* next = nullptr;
1309 for (;job_link;job_link = next) {
1310 next = job_link->next;
1311 df::job* job = job_link->item;
1312 df::coord pos = job->pos;
1313 df::coord blockpos(pos.x>>4,pos.y>>4,pos.z);
1314 auto iter = blocks.find(blockpos);
1315 if (iter == blocks.end())
1316 continue;
1317 df::coord2d bpos(pos.x - (blockpos.x<<4),pos.y - (blockpos.y<<4));
1318 auto block = iter->second;
1319 if (!block->designated_tiles.test(bpos.x+bpos.y*16))
1320 continue;
1321 bool is_designed = ENUM_ATTR(job_type,is_designation,job->job_type);
1322 if (!is_designed)
1323 continue;
1324 // Remove designation job. DF will create a new one in the next tick
1325 // processing.
1326 Job::removeJob(job);
1327 }
1328 std::map<DFCoord, Block *>::iterator p;
1329 for(p = blocks.begin(); p != blocks.end(); p++)
1330 {
1331 p->second->Write();
1332 }
1333 return true;
1334}
1335
1336MapExtras::Block *MapExtras::MapCache::BlockAt(DFCoord blockcoord)
1337{

Callers 15

df_liquids_executeFunction · 0.80
digcircleFunction · 0.80
digexpFunction · 0.80
digvFunction · 0.80
diglFunction · 0.80
digtypeFunction · 0.80
paintAreaFunction · 0.80
paintTileFunction · 0.80
executePaintJobFunction · 0.80
setTileFunction · 0.80
do_digFunction · 0.80

Calls 4

findMethod · 0.45
endMethod · 0.45
beginMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected