Commit Graph

5167 Commits (2cd7b5b9836b4551529e2bf998647d8d36c94752)
 

Author SHA1 Message Date
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
expwnent 45efcfc763 Warning: does not work. Temp commit! 2012-08-24 11:40:51 -04: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 cb24f1e53a Converted tabs to spaces. 2012-08-23 22:25:25 -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 6de9049dcc Very rough draft. Invaders tend to overdestroy buildings. They also overdig. Also they only do it on user request. Also it happens instantly. Also they can't dig through constructions. Also I have tabs in the indentation. 2012-08-23 22:12:07 -04:00
expwnent eac2f3f5d1 Added misery plugin: multiply effects of negative thoughts. 2012-08-23 22:05:35 -04:00
Warmist 27bdc9f2df Start gutting dfusion. 2012-08-23 21:38:38 +03: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
Alexander Gavrilov bcc41c081a Add a utility function for patching read-only memory. 2012-08-17 15:07:48 +04:00