Alexander Gavrilov
7f1e4b46bc
Implement inheritance-aware vmethod interposing.
...
I.e. overwriting the vmethod in all vtables that use it, not only one.
2012-08-26 14:43:14 +04:00
Quietust
f6e4969e19
Key names are bright green, not dark green
2012-08-25 11:07:42 -05:00
Quietust
da6567e374
Merge branch 'master' of git://github.com/angavrilov/dfhack
2012-08-25 11:02:28 -05:00
Alexander Gavrilov
bd9800055d
Link to the lua library in the liquids plugin.
2012-08-25 20:01:03 +04:00
Quietust
dcdff40c85
Add sorting, command help; replace filtering with just using the current page of the UnitList viewscreen (and don't close it)
2012-08-25 10:57:50 -05:00
Alexander Gavrilov
41ad42d0fd
Expose the liquids plugin engine to lua, and make a wrapper gui script.
2012-08-25 10:37:03 +04:00
Petr Mrázek
21904fd607
Merge https://github.com/jjyg/dfhack
2012-08-24 22:30:39 +02:00
Petr Mrázek
9154564e71
Sync up submodules
2012-08-24 21:56:16 +02:00
Alexander Gavrilov
8359e80b23
Expose a few API functions to lua, and implement a room browser overlay.
2012-08-24 18:26:18 +04:00
Alexander Gavrilov
d52c54cc76
Pull some minor stuff from mechanisms into main libs.
2012-08-24 13:49:22 +04:00
Alexander Gavrilov
296f82b02f
Try using the Objective-C 'alloc + init' idiom for lua screen objects.
2012-08-24 13:28:34 +04:00
Alexander Gavrilov
e825dc5ddb
Tweak the API for current viewscreen, and dispatch show/dismiss from C++.
2012-08-24 13:20:08 +04:00
expwnent
15adb17559
Converted tabs to spaces.
2012-08-23 22:21:09 -04:00
expwnent
76cd941084
Added teledwarf: teleports dwarves to their destination instantly.
2012-08-23 22:17:28 -04:00
expwnent
eac2f3f5d1
Added misery plugin: multiply effects of negative thoughts.
2012-08-23 22:05:35 -04:00
jj
c339c7085a
ruby: add memory_check / memory_patch native methods
2012-08-23 18:44:03 +02:00
Alexander Gavrilov
b12b9fa91e
Suspend DF around loading and unloading plugins.
...
This is necessary to improve safety of vtable interposing.
2012-08-23 19:51:55 +04:00
Alexander Gavrilov
c6c5ad56c9
Track lua event listener count, and let the C++ host know.
...
This allows completely avoiding the call overhead if there
are none. The downside is that the event object now has to
be a userdata with lots of metamethods.
2012-08-23 19:27:28 +04:00
jj
5b0f37276f
Merge branch 'master' of git://github.com/quietust/dfhack
2012-08-23 17:19:15 +02:00
Quietust
7046a6abbc
Manipulator - store unit 'summary' objects so names/professions can be cached (for faster sorting), and properly display skill level when it's exactly at the level threshold
2012-08-22 20:52:19 -05:00
Quietust
132491e868
Use Units module to get unit colors, fix initial scroll position
2012-08-22 16:54:34 -05:00
Quietust
1e28ceff6d
Add getProfessionColor and getCasteProfessionColor to Units module
2012-08-22 16:54:00 -05:00
Alexander Gavrilov
cf4b8a0196
Improve viewport manipulation utilities and support scroll in mechanisms.
...
I.e. allow the user to scroll around with cursor keys,
provided that keeps the cursor still visible.
2012-08-22 22:29:01 +04:00
Quietust
92c0b555dc
Use Units module to get profession strings
2012-08-22 11:15:05 -05:00
Quietust
83214ccb72
Fix bugs in window resizing, cleanup some other stuff
2012-08-22 10:43:26 -05:00
Alexander Gavrilov
f0fc3acf87
Turn an assert in vmethod interpose code into a mandatory check and abort.
2012-08-22 18:22:59 +04:00
Alexander Gavrilov
7987ea9a98
Put some compatibility features into the base dfhack viewscreen.
2012-08-22 18:18:19 +04:00
Alexander Gavrilov
6e8b68fb29
Add yet one more frame style.
2012-08-22 13:06:06 +04:00
Alexander Gavrilov
2b79582e99
Implement a policy of marking DFHack-owned screens with a signature.
2012-08-22 12:28:01 +04:00
Alexander Gavrilov
8969fc9435
manipulator: Inherit from dfhack_viewscreen, and don't use itoa.
2012-08-22 12:23:56 +04:00
Quietust
b6e5786b4f
Manipulator - display summary of selected unit + skill/labor
2012-08-21 16:41:20 -05:00
Quietust
2c0a42296c
New plugin: Dwarf Manipulator - enter the [u]nits list and press [l]abors to get a DwarfTherapist-style labor editor
2012-08-21 15:43:32 -05:00
Quietust
51ba252344
Add Screen::drawBorder(string), duplicates DF's interfacest::drawborder()
2012-08-21 15:28:11 -05:00
Quietust
985d96c596
Allow interposing the 1st vmethod
2012-08-21 15:27:29 -05:00
Alexander Gavrilov
44e3e318d0
Add a key handler to refresh the mechanism screen without exiting it.
2012-08-21 20:34:15 +04:00
Alexander Gavrilov
15235cc938
More work on utilities for making lua viewscreens.
2012-08-21 19:40:37 +04:00
Alexander Gavrilov
451e965936
Add a Painter class for lua viewscreens, and extract other utilities.
...
Painter clips to an arbitrary rectangle window, and
tracks current cursor and color state.
2012-08-21 11:35:39 +04:00
Alexander Gavrilov
be7bce1541
Immediately step once when showing the mechanism list.
2012-08-20 23:59:54 +04:00
Alexander Gavrilov
601a3a7927
Add a script that implements a linked mechanism browser.
2012-08-20 23:04:01 +04:00
expwnent
6d12368724
Added digtype to dig.cpp. Digtype allows designation of all veins of a given type.
2012-08-19 22:45:47 -04:00
Alexander Gavrilov
38a07a4ca5
Export the tile finder function to lua, and improve mouse event reporting.
2012-08-19 20:00:10 +04:00
Alexander Gavrilov
cacb082416
Add a stupid example of a lua-controlled viewscreen.
2012-08-19 17:53:25 +04:00
Alexander Gavrilov
30f71ff510
Implement support for lua-backed viewscreens.
2012-08-19 14:27:44 +04:00
Alexander Gavrilov
b8ee52131b
Add a module for painting tiles into the gps global.
2012-08-19 09:31:09 +04:00
Alexander Gavrilov
fd0bf2ef92
Extract the color enum from color_ostream to toplevel.
2012-08-19 09:21:25 +04:00
Quietust
8ed219d4e0
Add "clean plants", currently just removes water from rain (and lets you set them on fire)
2012-08-18 19:21:40 -05:00
Alexander Gavrilov
c6694e386f
Add rather inefficient type_identity wrapping for std::set.
...
Accessing an element is O(N), as if it was walking a list.
2012-08-18 14:34:20 +04:00
Alexander Gavrilov
24cc8b5c7a
Expose an API to claim the suspend lock from the Core.
...
Previously it was hard-coded in Core::Update, but interposed
vmethods may need this feature too.
2012-08-18 11:52:38 +04:00
Alexander Gavrilov
01ba2a31fc
Tweak the interpose API, and fix a couple of bugs.
2012-08-18 11:48:07 +04:00
Alexander Gavrilov
236ffd578b
Add experimental support for interposing vmethods of known classes.
...
The hairiest bit is the abuse of compiler-specific pointer-to-member
internals in order to provide more or less transparent API.
2012-08-17 22:40:53 +04:00