From c1e20c6f0565007c47cce9aaa06199a061dac20e Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Mon, 17 Sep 2012 12:47:18 +0400 Subject: [PATCH] Follow changes to structures. --- library/include/DataFuncs.h | 88 +++++++++++++++++++++++-------------- library/modules/Gui.cpp | 4 +- library/xml | 2 +- plugins/sort.cpp | 2 +- 4 files changed, 60 insertions(+), 36 deletions(-) diff --git a/library/include/DataFuncs.h b/library/include/DataFuncs.h index 52039566c..01a798e34 100644 --- a/library/include/DataFuncs.h +++ b/library/include/DataFuncs.h @@ -85,7 +85,7 @@ namespace df { static const bool is_method = true; \ }; -#define INSTANTIATE_WRAPPERS(Count, FArgs, Args, Loads) \ +#define INSTANTIATE_WRAPPERS2(Count, FArgs, Args, Loads) \ template struct function_wrapper { \ static const int num_args = Count; \ static void execute(lua_State *state, int base, void (*cb) FArgs) { Loads; INVOKE_VOID(cb Args); } \ @@ -105,79 +105,103 @@ namespace df { LOAD_CLASS(); Loads; INVOKE_RV((self->*cb) Args); } \ }; +#define INSTANTIATE_WRAPPERS(Count, FArgs, OFArgs, Args, OArgs, Loads) \ + INSTANTIATE_WRAPPERS2(Count, FArgs, Args, Loads) \ + INSTANTIATE_WRAPPERS2(Count, OFArgs, OArgs, LOAD_OSTREAM(out); Loads) + #define FW_TARGSC #define FW_TARGS INSTANTIATE_RETURN_TYPE(()) -INSTANTIATE_WRAPPERS(0, (), (), ;) -INSTANTIATE_WRAPPERS(0, (OSTREAM_ARG), (out), LOAD_OSTREAM(out);) +INSTANTIATE_WRAPPERS(0, (), (OSTREAM_ARG), (), (out), ;) #undef FW_TARGS #undef FW_TARGSC #define FW_TARGSC FW_TARGS, #define FW_TARGS class A1 INSTANTIATE_RETURN_TYPE((A1)) -INSTANTIATE_WRAPPERS(1, (A1), (vA1), LOAD_ARG(A1);) -INSTANTIATE_WRAPPERS(1, (OSTREAM_ARG,A1), (out,vA1), LOAD_OSTREAM(out); LOAD_ARG(A1);) +INSTANTIATE_WRAPPERS(1, (A1), (OSTREAM_ARG,A1), (vA1), (out,vA1), LOAD_ARG(A1);) #undef FW_TARGS #define FW_TARGS class A1, class A2 INSTANTIATE_RETURN_TYPE((A1,A2)) -INSTANTIATE_WRAPPERS(2, (A1,A2), (vA1,vA2), LOAD_ARG(A1); LOAD_ARG(A2);) -INSTANTIATE_WRAPPERS(2, (OSTREAM_ARG,A1,A2), (out,vA1,vA2), - LOAD_OSTREAM(out); LOAD_ARG(A1); LOAD_ARG(A2);) +INSTANTIATE_WRAPPERS(2, (A1,A2), (OSTREAM_ARG,A1,A2), (vA1,vA2), (out,vA1,vA2), + LOAD_ARG(A1); LOAD_ARG(A2);) #undef FW_TARGS #define FW_TARGS class A1, class A2, class A3 INSTANTIATE_RETURN_TYPE((A1,A2,A3)) -INSTANTIATE_WRAPPERS(3, (A1,A2,A3), (vA1,vA2,vA3), LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3);) -INSTANTIATE_WRAPPERS(3, (OSTREAM_ARG,A1,A2,A3), (out,vA1,vA2,vA3), - LOAD_OSTREAM(out); LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3);) +INSTANTIATE_WRAPPERS(3, (A1,A2,A3), (OSTREAM_ARG,A1,A2,A3), (vA1,vA2,vA3), (out,vA1,vA2,vA3), + LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3);) #undef FW_TARGS #define FW_TARGS class A1, class A2, class A3, class A4 INSTANTIATE_RETURN_TYPE((A1,A2,A3,A4)) -INSTANTIATE_WRAPPERS(4, (A1,A2,A3,A4), (vA1,vA2,vA3,vA4), +INSTANTIATE_WRAPPERS(4, (A1,A2,A3,A4), (OSTREAM_ARG,A1,A2,A3,A4), + (vA1,vA2,vA3,vA4), (out,vA1,vA2,vA3,vA4), LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4);) -INSTANTIATE_WRAPPERS(4, (OSTREAM_ARG,A1,A2,A3,A4), (out,vA1,vA2,vA3,vA4), - LOAD_OSTREAM(out); LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4);) #undef FW_TARGS #define FW_TARGS class A1, class A2, class A3, class A4, class A5 INSTANTIATE_RETURN_TYPE((A1,A2,A3,A4,A5)) -INSTANTIATE_WRAPPERS(5, (A1,A2,A3,A4,A5), (vA1,vA2,vA3,vA4,vA5), - LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4); LOAD_ARG(A5);) -INSTANTIATE_WRAPPERS(5, (OSTREAM_ARG,A1,A2,A3,A4,A5), (out,vA1,vA2,vA3,vA4,vA5), - LOAD_OSTREAM(out); LOAD_ARG(A1); LOAD_ARG(A2); - LOAD_ARG(A3); LOAD_ARG(A4); LOAD_ARG(A5);) +INSTANTIATE_WRAPPERS(5, (A1,A2,A3,A4,A5), (OSTREAM_ARG,A1,A2,A3,A4,A5), + (vA1,vA2,vA3,vA4,vA5), (out,vA1,vA2,vA3,vA4,vA5), + LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4); + LOAD_ARG(A5);) #undef FW_TARGS #define FW_TARGS class A1, class A2, class A3, class A4, class A5, class A6 INSTANTIATE_RETURN_TYPE((A1,A2,A3,A4,A5,A6)) -INSTANTIATE_WRAPPERS(6, (A1,A2,A3,A4,A5,A6), (vA1,vA2,vA3,vA4,vA5,vA6), - LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); - LOAD_ARG(A4); LOAD_ARG(A5); LOAD_ARG(A6);) -INSTANTIATE_WRAPPERS(6, (OSTREAM_ARG,A1,A2,A3,A4,A5,A6), (out,vA1,vA2,vA3,vA4,vA5,vA6), - LOAD_OSTREAM(out); LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); - LOAD_ARG(A4); LOAD_ARG(A5); LOAD_ARG(A6);) +INSTANTIATE_WRAPPERS(6, (A1,A2,A3,A4,A5,A6), (OSTREAM_ARG,A1,A2,A3,A4,A5,A6), + (vA1,vA2,vA3,vA4,vA5,vA6), (out,vA1,vA2,vA3,vA4,vA5,vA6), + LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4); + LOAD_ARG(A5); LOAD_ARG(A6);) #undef FW_TARGS #define FW_TARGS class A1, class A2, class A3, class A4, class A5, class A6, class A7 INSTANTIATE_RETURN_TYPE((A1,A2,A3,A4,A5,A6,A7)) -INSTANTIATE_WRAPPERS(7, (A1,A2,A3,A4,A5,A6,A7), (vA1,vA2,vA3,vA4,vA5,vA6,vA7), - LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); - LOAD_ARG(A4); LOAD_ARG(A5); LOAD_ARG(A6); - LOAD_ARG(A7);) -INSTANTIATE_WRAPPERS(7, (OSTREAM_ARG,A1,A2,A3,A4,A5,A6,A7), (out,vA1,vA2,vA3,vA4,vA5,vA6,vA7), - LOAD_OSTREAM(out); LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); - LOAD_ARG(A4); LOAD_ARG(A5); LOAD_ARG(A6); LOAD_ARG(A7);) +INSTANTIATE_WRAPPERS(7, (A1,A2,A3,A4,A5,A6,A7), (OSTREAM_ARG,A1,A2,A3,A4,A5,A6,A7), + (vA1,vA2,vA3,vA4,vA5,vA6,vA7), (out,vA1,vA2,vA3,vA4,vA5,vA6,vA7), + LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4); + LOAD_ARG(A5); LOAD_ARG(A6); LOAD_ARG(A7);) #undef FW_TARGS #define FW_TARGS class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 INSTANTIATE_RETURN_TYPE((A1,A2,A3,A4,A5,A6,A7,A8)) +INSTANTIATE_WRAPPERS(8, (A1,A2,A3,A4,A5,A6,A7,A8), (OSTREAM_ARG,A1,A2,A3,A4,A5,A6,A7,A8), + (vA1,vA2,vA3,vA4,vA5,vA6,vA7,vA8), (out,vA1,vA2,vA3,vA4,vA5,vA6,vA7,vA8), + LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4); + LOAD_ARG(A5); LOAD_ARG(A6); LOAD_ARG(A7); LOAD_ARG(A8);) +#undef FW_TARGS + +#define FW_TARGS class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 +INSTANTIATE_RETURN_TYPE((A1,A2,A3,A4,A5,A6,A7,A8,A9)) +INSTANTIATE_WRAPPERS(9, (A1,A2,A3,A4,A5,A6,A7,A8,A9), + (OSTREAM_ARG,A1,A2,A3,A4,A5,A6,A7,A8,A9), + (vA1,vA2,vA3,vA4,vA5,vA6,vA7,vA8,vA9), + (out,vA1,vA2,vA3,vA4,vA5,vA6,vA7,vA8,vA9), + LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4); + LOAD_ARG(A5); LOAD_ARG(A6); LOAD_ARG(A7); LOAD_ARG(A8); + LOAD_ARG(A9);) +#undef FW_TARGS + +#define FW_TARGS class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10 +INSTANTIATE_RETURN_TYPE((A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)) +INSTANTIATE_WRAPPERS(10, (A1,A2,A3,A4,A5,A6,A7,A8,A9,A10), + (OSTREAM_ARG,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10), + (vA1,vA2,vA3,vA4,vA5,vA6,vA7,vA8,vA9,vA10), + (out,vA1,vA2,vA3,vA4,vA5,vA6,vA7,vA8,vA9,vA10), + LOAD_ARG(A1); LOAD_ARG(A2); LOAD_ARG(A3); LOAD_ARG(A4); + LOAD_ARG(A5); LOAD_ARG(A6); LOAD_ARG(A7); LOAD_ARG(A8); + LOAD_ARG(A9); LOAD_ARG(A10);) +#undef FW_TARGS + +#define FW_TARGS class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11 +INSTANTIATE_RETURN_TYPE((A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)) #undef FW_TARGS #undef FW_TARGSC #undef INSTANTIATE_WRAPPERS +#undef INSTANTIATE_WRAPPERS2 #undef INVOKE_VOID #undef INVOKE_RV #undef LOAD_CLASS diff --git a/library/modules/Gui.cpp b/library/modules/Gui.cpp index 91df14eaf..b0cfda670 100644 --- a/library/modules/Gui.cpp +++ b/library/modules/Gui.cpp @@ -54,7 +54,7 @@ using namespace DFHack; #include "df/viewscreen_joblistst.h" #include "df/viewscreen_unitlistst.h" #include "df/viewscreen_itemst.h" -#include "df/viewscreen_layerst.h" +#include "df/viewscreen_layer.h" #include "df/viewscreen_layer_workshop_profilest.h" #include "df/viewscreen_layer_noblelistst.h" #include "df/viewscreen_layer_overall_healthst.h" @@ -95,7 +95,7 @@ using df::global::selection_rect; using df::global::ui_menu_width; using df::global::ui_area_map_width; -static df::layer_object_listst *getLayerList(df::viewscreen_layerst *layer, int idx) +static df::layer_object_listst *getLayerList(df::viewscreen_layer *layer, int idx) { return virtual_cast(vector_get(layer->layer_objects,idx)); } diff --git a/library/xml b/library/xml index ee2b63a8f..a6b95f1c4 160000 --- a/library/xml +++ b/library/xml @@ -1 +1 @@ -Subproject commit ee2b63a8ffdbce66489148ca2a9803db1d0b9090 +Subproject commit a6b95f1c42991e485f7e0bb5d029a5eca14ce9ae diff --git a/plugins/sort.cpp b/plugins/sort.cpp index ff51fc773..4b2bf7bbd 100644 --- a/plugins/sort.cpp +++ b/plugins/sort.cpp @@ -228,7 +228,7 @@ static void sort_null_first(vector ¶meters) vector_insert_at(parameters, 0, std::string("(vector_get(layer->layer_objects,idx)); }