Commit Graph

3412 Commits (94b729579e924bb511523a1aa157cec7fdb66bdf)
 

Author SHA1 Message Date
Alexander Gavrilov 8171652323 Support permaflow in liquids, including the gui. 2012-08-26 20:08:28 +04:00
Alexander Gavrilov bee33fd486 Add a performance test for location caching in general refs. 2012-08-26 14:43:14 +04:00
Alexander Gavrilov 3402a3cd5d Fix a deadlock problem between suspend in (un)load, and onupdate. 2012-08-26 14:43:14 +04:00
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
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
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
Alexander Gavrilov bcc41c081a Add a utility function for patching read-only memory. 2012-08-17 15:07:48 +04:00