New tweak: stone-status-all
Adds an option to toggle the economic status of all stones Also suggested by xq on IRCdevelop
parent
914b376082
commit
0be16d4422
@ -0,0 +1,34 @@
|
|||||||
|
#include "df/interface_key.h"
|
||||||
|
#include "df/layer_object_listst.h"
|
||||||
|
#include "df/viewscreen_layer_stone_restrictionst.h"
|
||||||
|
|
||||||
|
using namespace DFHack;
|
||||||
|
|
||||||
|
struct stone_status_all_hook : df::viewscreen_layer_stone_restrictionst {
|
||||||
|
typedef df::viewscreen_layer_stone_restrictionst interpose_base;
|
||||||
|
|
||||||
|
DEFINE_VMETHOD_INTERPOSE(void, feed, (std::set<df::interface_key> *input))
|
||||||
|
{
|
||||||
|
if (input->count(interface_key::SELECT_ALL))
|
||||||
|
{
|
||||||
|
if (VIRTUAL_CAST_VAR(list, df::layer_object_listst, layer_objects[0]))
|
||||||
|
{
|
||||||
|
bool new_state = !*stone_economic[type_tab][list->cursor];
|
||||||
|
for (bool *economic : stone_economic[type_tab])
|
||||||
|
*economic = new_state;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
INTERPOSE_NEXT(feed)(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_VMETHOD_INTERPOSE(void, render, ())
|
||||||
|
{
|
||||||
|
INTERPOSE_NEXT(render)();
|
||||||
|
int x = 2, y = 23;
|
||||||
|
OutputHotkeyString(x, y, "All", interface_key::SELECT_ALL,
|
||||||
|
false, 0, COLOR_WHITE, COLOR_LIGHTRED);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
IMPLEMENT_VMETHOD_INTERPOSE(stone_status_all_hook, render);
|
||||||
|
IMPLEMENT_VMETHOD_INTERPOSE(stone_status_all_hook, feed);
|
Loading…
Reference in New Issue