From a316dfa074400b1f9d51f1b13dcc919e174a7dca Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Fri, 29 Jan 2016 14:50:29 -0600 Subject: [PATCH 1/3] set floodgate flags correctly when allocating it in lua or c++ https://github.com/DFHack/dfhack/blob/0.42.04-alpha2/plugins/ruby/building.rb#L63 --- library/modules/Buildings.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/modules/Buildings.cpp b/library/modules/Buildings.cpp index 58c1a87f9..cc4af8d95 100644 --- a/library/modules/Buildings.cpp +++ b/library/modules/Buildings.cpp @@ -73,6 +73,7 @@ using namespace DFHack; #include "df/building_water_wheelst.h" #include "df/building_wellst.h" #include "df/building_rollersst.h" +#include "df/building_floodgatest.h" using namespace df::enums; using df::global::ui; @@ -369,6 +370,12 @@ df::building *Buildings::allocInstance(df::coord pos, df::building_type type, in obj->ready_timeout = 500; break; } + case building_type::Floodgate: + { + auto obj = (df::building_floodgatest*)bld; + obj->gate_flags.bits.closed = true; + break; + } default: break; } From aab5c61923dbf247977454bf7edf2a9257dfaa76 Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Fri, 29 Jan 2016 14:51:32 -0600 Subject: [PATCH 2/3] set well bucket z correctly when allocating it in ruby https://github.com/DFHack/dfhack/blob/0.42.04-alpha2/library/modules/Buildings.cpp#L347-L352 --- plugins/ruby/building.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/ruby/building.rb b/plugins/ruby/building.rb index 492d5249d..861feeb7d 100644 --- a/plugins/ruby/building.rb +++ b/plugins/ruby/building.rb @@ -57,6 +57,7 @@ module DFHack bld.setSubtype(subtype) bld.setCustomType(custom) case type + when :Well; bld.bucket_z = bld.z when :Furnace; bld.melt_remainder[world.raws.inorganics.length] = 0 when :Coffin; bld.initBurialFlags when :Trap; bld.unk_cc = 500 if bld.trap_type == :PressurePlate From 197e5ca2d960d84d55945528fd7cf40b0762be1a Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Sat, 30 Jan 2016 08:46:16 -0600 Subject: [PATCH 3/3] update the name of the pressure plate field in ruby https://github.com/DFHack/dfhack/blob/0.42.04-alpha2/library/modules/Buildings.cpp#L365-L371 --- plugins/ruby/building.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ruby/building.rb b/plugins/ruby/building.rb index 861feeb7d..f749d51ae 100644 --- a/plugins/ruby/building.rb +++ b/plugins/ruby/building.rb @@ -60,7 +60,7 @@ module DFHack when :Well; bld.bucket_z = bld.z when :Furnace; bld.melt_remainder[world.raws.inorganics.length] = 0 when :Coffin; bld.initBurialFlags - when :Trap; bld.unk_cc = 500 if bld.trap_type == :PressurePlate + when :Trap; bld.ready_timeout = 500 if bld.trap_type == :PressurePlate when :Floodgate; bld.gate_flags.closed = true end bld