Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8cdeb0b

Browse files
committed
Add a salt/stagnant flag removal command to the liquids tool.
1 parent e48f8af commit 8cdeb0b

4 files changed

Lines changed: 100 additions & 77 deletions

File tree

plugins/CMakeLists.txt

Lines changed: 1 addition & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,4 @@
1-
#FIXME: inherit all macros and stuff from the dfhack SDK
2-
IF(UNIX)
3-
add_definitions(-DLINUX_BUILD)
4-
SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall")
5-
SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -m32 -std=c++0x")
6-
SET(CMAKE_C_FLAGS "-fvisibility=hidden -m32")
7-
ENDIF()
8-
9-
include_directories("${dfhack_SOURCE_DIR}/library/include")
10-
include_directories("${dfhack_SOURCE_DIR}/library/depends/xgetopt")
11-
MACRO(CAR var)
12-
SET(${var} ${ARGV1})
13-
ENDMACRO(CAR)
14-
15-
MACRO(CDR var junk)
16-
SET(${var} ${ARGN})
17-
ENDMACRO(CDR)
18-
19-
MACRO(LIST_CONTAINS var value)
20-
SET(${var})
21-
FOREACH (value2 ${ARGN})
22-
IF (${value} STREQUAL ${value2})
23-
SET(${var} TRUE)
24-
ENDIF (${value} STREQUAL ${value2})
25-
ENDFOREACH (value2)
26-
ENDMACRO(LIST_CONTAINS)
27-
28-
MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
29-
SET(DEFAULT_ARGS)
30-
FOREACH(arg_name ${arg_names})
31-
SET(${prefix}_${arg_name})
32-
ENDFOREACH(arg_name)
33-
FOREACH(option ${option_names})
34-
SET(${prefix}_${option} FALSE)
35-
ENDFOREACH(option)
36-
37-
SET(current_arg_name DEFAULT_ARGS)
38-
SET(current_arg_list)
39-
FOREACH(arg ${ARGN})
40-
LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
41-
IF (is_arg_name)
42-
SET(${prefix}_${current_arg_name} ${current_arg_list})
43-
SET(current_arg_name ${arg})
44-
SET(current_arg_list)
45-
ELSE (is_arg_name)
46-
LIST_CONTAINS(is_option ${arg} ${option_names})
47-
IF (is_option)
48-
SET(${prefix}_${arg} TRUE)
49-
ELSE (is_option)
50-
SET(current_arg_list ${current_arg_list} ${arg})
51-
ENDIF (is_option)
52-
ENDIF (is_arg_name)
53-
ENDFOREACH(arg)
54-
SET(${prefix}_${current_arg_name} ${current_arg_list})
55-
ENDMACRO(PARSE_ARGUMENTS)
56-
57-
MACRO(DFHACK_PLUGIN)
58-
PARSE_ARGUMENTS(PLUGIN
59-
"LINK_LIBRARIES;DEPENDS"
60-
"SOME_OPT"
61-
${ARGN}
62-
)
63-
CAR(PLUGIN_NAME ${PLUGIN_DEFAULT_ARGS})
64-
CDR(PLUGIN_SOURCES ${PLUGIN_DEFAULT_ARGS})
65-
66-
ADD_LIBRARY(${PLUGIN_NAME} MODULE ${PLUGIN_SOURCES})
67-
TARGET_LINK_LIBRARIES(${PLUGIN_NAME} dfhack ${PLUGIN_LINK_LIBRARIES})
68-
IF(UNIX)
69-
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES SUFFIX .plug.so PREFIX "")
70-
ELSE()
71-
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES SUFFIX .plug.dll)
72-
ENDIF()
73-
install(TARGETS ${PLUGIN_NAME}
74-
LIBRARY DESTINATION ${DFHACK_PLUGIN_DESTINATION}
75-
RUNTIME DESTINATION ${DFHACK_PLUGIN_DESTINATION})
76-
ENDMACRO(DFHACK_PLUGIN)
77-
1+
INCLUDE(Plugins.cmake)
782

793
# Dfusion plugin
804
IF(UNIX)

plugins/Plugins.cmake

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
IF(UNIX)
2+
add_definitions(-DLINUX_BUILD)
3+
SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall")
4+
SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -m32 -std=c++0x")
5+
SET(CMAKE_C_FLAGS "-fvisibility=hidden -m32")
6+
ENDIF()
7+
8+
include_directories("${dfhack_SOURCE_DIR}/library/include")
9+
include_directories("${dfhack_SOURCE_DIR}/library/depends/xgetopt")
10+
11+
MACRO(CAR var)
12+
SET(${var} ${ARGV1})
13+
ENDMACRO()
14+
15+
MACRO(CDR var junk)
16+
SET(${var} ${ARGN})
17+
ENDMACRO()
18+
19+
MACRO(LIST_CONTAINS var value)
20+
SET(${var})
21+
FOREACH (value2 ${ARGN})
22+
IF (${value} STREQUAL ${value2})
23+
SET(${var} TRUE)
24+
ENDIF()
25+
ENDFOREACH()
26+
ENDMACRO()
27+
28+
MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
29+
SET(DEFAULT_ARGS)
30+
FOREACH(arg_name ${arg_names})
31+
SET(${prefix}_${arg_name})
32+
ENDFOREACH()
33+
34+
FOREACH(option ${option_names})
35+
SET(${prefix}_${option} FALSE)
36+
ENDFOREACH()
37+
38+
SET(current_arg_name DEFAULT_ARGS)
39+
SET(current_arg_list)
40+
FOREACH(arg ${ARGN})
41+
LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
42+
IF (is_arg_name)
43+
SET(${prefix}_${current_arg_name} ${current_arg_list})
44+
SET(current_arg_name ${arg})
45+
SET(current_arg_list)
46+
ELSE()
47+
LIST_CONTAINS(is_option ${arg} ${option_names})
48+
IF(is_option)
49+
SET(${prefix}_${arg} TRUE)
50+
ELSE()
51+
SET(current_arg_list ${current_arg_list} ${arg})
52+
ENDIF()
53+
ENDIF()
54+
ENDFOREACH()
55+
SET(${prefix}_${current_arg_name} ${current_arg_list})
56+
ENDMACRO()
57+
58+
MACRO(DFHACK_PLUGIN)
59+
PARSE_ARGUMENTS(PLUGIN
60+
"LINK_LIBRARIES;DEPENDS"
61+
"SOME_OPT"
62+
${ARGN}
63+
)
64+
CAR(PLUGIN_NAME ${PLUGIN_DEFAULT_ARGS})
65+
CDR(PLUGIN_SOURCES ${PLUGIN_DEFAULT_ARGS})
66+
67+
ADD_LIBRARY(${PLUGIN_NAME} MODULE ${PLUGIN_SOURCES})
68+
TARGET_LINK_LIBRARIES(${PLUGIN_NAME} dfhack ${PLUGIN_LINK_LIBRARIES})
69+
IF(UNIX)
70+
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES SUFFIX .plug.so PREFIX "")
71+
ELSE()
72+
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES SUFFIX .plug.dll)
73+
ENDIF()
74+
install(TARGETS ${PLUGIN_NAME}
75+
LIBRARY DESTINATION ${DFHACK_PLUGIN_DESTINATION}
76+
RUNTIME DESTINATION ${DFHACK_PLUGIN_DESTINATION})
77+
ENDMACRO(DFHACK_PLUGIN)

plugins/liquids.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ DFhackCExport command_result df_liquids (Core * c, vector <string> & parameters)
206206
<< "of - make obsidian floors" << endl
207207
<< "rs - make a river source" << endl
208208
<< "f - flow bits only" << endl
209+
<< "wclean - remove salt and stagnant flags from tiles" << endl
209210
<< "Set-Modes (only for magma/water):" << endl
210211
<< "s+ - only add" << endl
211212
<< "s. - set" << endl
@@ -254,6 +255,10 @@ DFhackCExport command_result df_liquids (Core * c, vector <string> & parameters)
254255
{
255256
mode = "riversource";
256257
}
258+
else if(command == "wclean")
259+
{
260+
mode = "wclean";
261+
}
257262
else if(command == "point" || command == "p")
258263
{
259264
delete brush;
@@ -423,6 +428,19 @@ DFhackCExport command_result df_liquids (Core * c, vector <string> & parameters)
423428
iter++;
424429
}
425430
}
431+
else if(mode=="wclean")
432+
{
433+
coord_vec::iterator iter = all_tiles.begin();
434+
while (iter != all_tiles.end())
435+
{
436+
DFHack::DFCoord current = *iter;
437+
DFHack::t_designation des = mcache.designationAt(current);
438+
des.bits.water_salt = false;
439+
des.bits.water_stagnant = false;
440+
mcache.setDesignationAt(current,des);
441+
iter++;
442+
}
443+
}
426444
else if(mode== "magma" || mode== "water" || mode == "flowbits")
427445
{
428446
set <Block *> seen_blocks;

plugins/probe.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,10 @@ DFhackCExport command_result df_probe (Core * c, vector <string> & parameters)
198198
con << "rained?" << std::endl;
199199
if(des.smooth)
200200
con << "smooth?" << std::endl;
201+
if(des.water_salt)
202+
con << "salty" << endl;
203+
if(des.water_stagnant)
204+
con << "stagnant" << endl;
201205

202206
#define PRINT_FLAG( X ) con.print("%-16s= %c\n", #X , ( des.X ? 'Y' : ' ' ) )
203207
PRINT_FLAG( hidden );

0 commit comments

Comments
 (0)