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

Function uncat_plant

plugins/plant.cpp:359–395  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

357}
358
359static bool uncat_plant(df::plant *plant)
360{ // Remove plant from extra vectors
361 vector<df::plant *> *vec = NULL;
362
363 switch (plant->type)
364 {
365 case plant_type::DRY_TREE: vec = &world->plants.tree_dry; break;
366 case plant_type::WET_TREE: vec = &world->plants.tree_wet; break;
367 case plant_type::DRY_PLANT: vec = &world->plants.shrub_dry; break;
368 case plant_type::WET_PLANT: vec = &world->plants.shrub_wet; break;
369 }
370
371 for (size_t i = vec->size(); i-- > 0;)
372 { // Not sorted, but more likely near end
373 if ((*vec)[i] == plant)
374 {
375 vec->erase(vec->begin() + i);
376 break;
377 }
378 }
379
380 auto col = Maps::getBlockColumn((plant->pos.x / 48)*3, (plant->pos.y / 48)*3);
381 if (!col)
382 return false;
383
384 vec = &col->plants;
385 for (size_t i = vec->size(); i-- > 0;)
386 { // Not sorted, but more likely near end
387 if ((*vec)[i] == plant)
388 {
389 vec->erase(vec->begin() + i);
390 break;
391 }
392 }
393
394 return true;
395}
396
397static bool has_grass(df::map_block *block, int tx, int ty)
398{ // Block tile has grass

Callers 1

df_removeplantFunction · 0.85

Calls 3

sizeMethod · 0.45
eraseMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected