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
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
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