Commit Graph

4303 Commits (0a99bb0cae9fda8dc6eb131763a18329a06677ce)
 

Author SHA1 Message Date
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
Petr Mrázek 509d957090 Make protobuf behave with multiple build folders involved. 2012-08-17 13:02:31 +02:00
Petr Mrázek cde97bba6f Fix workflow some more 2012-08-13 07:42:02 +02:00
Petr Mrázek 4eedd6f5f0 Fix workflow. 2012-08-13 07:39:11 +02:00
jj e659d845ab ruby: fix LinkList.next= 2012-08-13 02:06:56 +02:00
jj 53a0536506 ruby: typo in building_deconstruct 2012-08-13 00:46:27 +02:00
jj@jj 5a880d619c ruby: add MapTile#dig, tweak unit_iscitizen 2012-08-12 22:36:54 +02:00
Petr Mrázek 7cc100b26e Merge https://github.com/jjyg/dfhack 2012-08-12 01:10:37 +02:00
jj eb52410565 fix/loyaltycascade: reset enemy_status_cache.next_slot too 2012-08-12 00:46:03 +02:00
jj 61185d29ca console-linux: silence minor gcc warnings 2012-08-12 00:27:20 +02:00
jj 030bd8ab57 fix/loyaltycascade: clear the enemy status cache, dont require a save/reload anymore 2012-08-12 00:24:34 +02:00
jj 85f1a6fa6a add fix/loyaltycascade script 2012-08-11 22:25:40 +02:00
jj 2362bb8eea ruby: add popup_announcement method 2012-08-11 22:25:08 +02:00
jj cb04a082fd move script/fixstuckdoors to script/fix/stuckdoors 2012-08-11 21:41:47 +02:00
jj 4c720c7504 ruby: add explicit paths everywhere for ruby-autogen 2012-08-11 20:11:00 +02:00