79 lines
2.5 KiB
C++
79 lines
2.5 KiB
C++
/*
|
|
https://github.com/peterix/dfhack
|
|
Copyright (c) 2009-2011 Petr Mrázek (peterix@gmail.com)
|
|
|
|
This software is provided 'as-is', without any express or implied
|
|
warranty. In no event will the authors be held liable for any
|
|
damages arising from the use of this software.
|
|
|
|
Permission is granted to anyone to use this software for any
|
|
purpose, including commercial applications, and to alter it and
|
|
redistribute it freely, subject to the following restrictions:
|
|
|
|
1. The origin of this software must not be misrepresented; you must
|
|
not claim that you wrote the original software. If you use this
|
|
software in a product, an acknowledgment in the product documentation
|
|
would be appreciated but is not required.
|
|
|
|
2. Altered source versions must be plainly marked as such, and
|
|
must not be misrepresented as being the original software.
|
|
|
|
3. This notice may not be removed or altered from any source
|
|
distribution.
|
|
*/
|
|
|
|
#pragma once
|
|
#include "Export.h"
|
|
#include "DataDefs.h"
|
|
#include "modules/Maps.h"
|
|
|
|
#include <vector>
|
|
|
|
/**
|
|
* \defgroup grp_burrows Burrows module and its types
|
|
* @ingroup grp_modules
|
|
*/
|
|
|
|
namespace df
|
|
{
|
|
struct unit;
|
|
struct burrow;
|
|
struct block_burrow;
|
|
}
|
|
|
|
namespace DFHack
|
|
{
|
|
namespace Burrows
|
|
{
|
|
DFHACK_EXPORT df::burrow *findByName(std::string name);
|
|
|
|
// Units
|
|
DFHACK_EXPORT void clearUnits(df::burrow *burrow);
|
|
|
|
DFHACK_EXPORT bool isAssignedUnit(df::burrow *burrow, df::unit *unit);
|
|
DFHACK_EXPORT void setAssignedUnit(df::burrow *burrow, df::unit *unit, bool enable);
|
|
|
|
// Tiles
|
|
DFHACK_EXPORT void clearTiles(df::burrow *burrow);
|
|
|
|
DFHACK_EXPORT void listBlocks(std::vector<df::map_block*> *pvec, df::burrow *burrow);
|
|
|
|
DFHACK_EXPORT bool isAssignedBlockTile(df::burrow *burrow, df::map_block *block, df::coord2d tile);
|
|
DFHACK_EXPORT bool setAssignedBlockTile(df::burrow *burrow, df::map_block *block, df::coord2d tile, bool enable);
|
|
|
|
inline bool isAssignedTile(df::burrow *burrow, df::coord tile) {
|
|
return isAssignedBlockTile(burrow, Maps::getTileBlock(tile), tile);
|
|
}
|
|
inline bool setAssignedTile(df::burrow *burrow, df::coord tile, bool enable) {
|
|
return setAssignedBlockTile(burrow, Maps::getTileBlock(tile), tile, enable);
|
|
}
|
|
|
|
DFHACK_EXPORT df::block_burrow *getBlockMask(df::burrow *burrow, df::map_block *block, bool create = false);
|
|
DFHACK_EXPORT bool deleteBlockMask(df::burrow *burrow, df::map_block *block, df::block_burrow *mask);
|
|
|
|
inline bool deleteBlockMask(df::burrow *burrow, df::map_block *block) {
|
|
return deleteBlockMask(burrow, block, getBlockMask(burrow, block));
|
|
}
|
|
}
|
|
}
|