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

Function cancel_job

plugins/channel-safely/include/inlines.h:188–227  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

186}
187
188inline void cancel_job(df::job* job) {
189 if (job) {
190 const df::coord &pos = job->pos;
191 df::map_block* job_block = Maps::getTileBlock(pos);
192 uint16_t x, y;
193 x = pos.x % 16;
194 y = pos.y % 16;
195 df::tile_designation &designation = job_block->designation[x][y];
196 auto type = job->job_type;
197 ChannelManager::Get().jobs.erase(pos);
198 Job::removeWorker(job);
199 Job::removePostings(job, true);
200 Job::removeJob(job);
201 job_block->flags.bits.designated = true;
202 job_block->occupancy[x][y].bits.dig_marked = true;
203 switch (type) {
204 case job_type::Dig:
205 designation.bits.dig = df::tile_dig_designation::Default;
206 break;
207 case job_type::CarveUpwardStaircase:
208 designation.bits.dig = df::tile_dig_designation::UpStair;
209 break;
210 case job_type::CarveDownwardStaircase:
211 designation.bits.dig = df::tile_dig_designation::DownStair;
212 break;
213 case job_type::CarveUpDownStaircase:
214 designation.bits.dig = df::tile_dig_designation::UpDownStair;
215 break;
216 case job_type::CarveRamp:
217 designation.bits.dig = df::tile_dig_designation::Ramp;
218 break;
219 case job_type::DigChannel:
220 designation.bits.dig = df::tile_dig_designation::Channel;
221 break;
222 default:
223 designation.bits.dig = df::tile_dig_designation::No;
224 break;
225 }
226 }
227}
228
229inline void cancel_job(const df::coord &map_pos) {
230 cancel_job(ChannelManager::Get().jobs.find_job(map_pos));

Callers 2

manage_oneMethod · 0.85
JobStartedEventFunction · 0.85

Calls 3

getTileBlockFunction · 0.85
find_jobMethod · 0.80
eraseMethod · 0.45

Tested by

no test coverage detected