Commit Graph

1476 Commits (8e2515881128557739c7657c08c2597b131850ef)

Author SHA1 Message Date
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
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 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
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
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
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 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 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 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
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
jj 61185d29ca console-linux: silence minor gcc warnings 2012-08-12 00:27:20 +02:00
Petr Mrázek 589be93fbf Sync with structures 2012-08-02 14:44:59 +02:00
Quietust 9705497a7e Merge branch 'master' of git://github.com/peterix/dfhack 2012-07-17 10:39:20 -05:00
Quietust bf82b2d20d Sync with df-structures 2012-07-17 10:35:20 -05:00
Petr Mrázek 1c9194d1c4 While installing scripts, do not copy ~ files. 2012-07-12 02:24:32 +02:00
Petr Mrázek a5977db443 Merge https://github.com/jjyg/dfhack 2012-07-09 01:13:07 +02:00
Petr Mrázek 6975f643fc Fixage, syncing with structures 2012-07-09 01:05:40 +02:00
jj c20951c30b Merge branch 'master' of git://github.com/angavrilov/dfhack 2012-07-06 20:37:14 +02:00
jj 028b47a321 update xml 2012-07-06 20:36:53 +02:00
Alexander Gavrilov 4bbb185f7b Fix build and allow autodump to any walkable tile (e.g. a stair). 2012-07-06 20:11:20 +04:00
jj 8e17ebbefc add SC_PAUSED / SC_UNPAUSED onStateChange events 2012-07-05 18:03:02 +02:00
Timothy Collett 23d28f9961 Update df-structures dependency 2012-07-05 10:32:32 -04:00
jj e4d4bf23ae update xml, fix autolabor with new trade depot flags name 2012-07-04 19:05:44 +02:00
jj cdd711efa4 add COAL subtypes in MaterialInfo::getToken 2012-07-04 17:31:41 +02:00
jj a7a25b80a0 ruby: use the color_ostream argument from dfhack to output to dfhack-run 2012-07-03 16:13:15 +02:00
Timothy Collett c24333515b Merge branch 'master' of https://github.com/jjyg/dfhack
Conflicts:
	library/Core.cpp

Starting to merge in Ruby stuffs
2012-07-02 11:07:30 -04:00
Timothy Collett 421e5fd82c Swap order of includes to work around silly compiler/assembler bug on OS X 2012-07-02 11:02:48 -04:00
Timothy Collett 6f433ff58f Move back to using interposition to be more portable 2012-06-29 10:15:48 -04:00
jj ccbebdafb0 fix error spam when using Zoom hotkeys 2012-06-28 15:05:00 +02:00
Timothy G Collett d5ae1fc4f2 Merge branch 'master' of https://github.com/danaris/dfhack
Conflicts:
	depends/clsocket
	package/darwin/dfhack
	package/darwin/dfhack-run
Fixed.
2012-06-24 18:41:24 -04:00
Timothy G Collett 7cdbae3f04 Update df-structures 2012-06-24 18:35:16 -04:00
jj 552da8417e ruby: handle .rb files in df/hack/scripts/ 2012-06-24 20:24:46 +02:00
Alexander Gavrilov 9046fed648 Add documentation for some utility functions implemented in lua. 2012-06-24 12:51:19 +04:00
Petr Mrázek 59fb4daa9a Merge https://github.com/angavrilov/dfhack 2012-06-23 00:25:50 +02:00
Petr Mrázek 6199d6915c Nuke some error prints. 2012-06-23 00:25:30 +02:00
Alexander Gavrilov bd37cc09c5 Update the Lua API document with info about scripts. 2012-06-22 20:17:55 +04:00
Alexander Gavrilov 65e82f7c12 Support controllable error presentation verbosity in lua code.
Use qerror to squash stack traces and location prefix.
2012-06-22 16:36:50 +04:00
Alexander Gavrilov 752da9ced5 Move formatting newly-found globals for symbols.xml to lua code. 2012-06-21 21:26:25 +04:00
Alexander Gavrilov f207714d42 Add finders for enabler, gps and init. 2012-06-21 21:08:36 +04:00
Alexander Gavrilov ed4acbdedb Add a searcher for current_weather, using a prepared save. 2012-06-20 10:12:26 +04:00
Timothy Collett 4ca3aa878a Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-06-19 14:48:40 -04:00
Alexander Gavrilov e687a07f2e Fix getRebaseDelta: should be signed int. 2012-06-19 21:02:27 +04:00
Timothy Collett 707fcc55e5 Update xml repo 2012-06-19 10:52:08 -04:00
Timothy Collett 40e764a46b Some more tweaks to the memory-finding code 2012-06-19 10:51:47 -04:00
Alexander Gavrilov 50bd758876 Replace dfhack.internal.getBase with getRebaseDelta.
Also, when printing found offsets, subtract the delta.
2012-06-19 18:48:22 +04:00
Alexander Gavrilov 50dff56899 Rewrite getMemRanges for windows to get rid of a number of problems.
- Properly handle copy-on-write permission modes.
- Merge ranges with the same properties for us.
- Don't skip non-private areas.
- Use the mapped filename as name, so that it works for all ranges.
2012-06-19 18:41:18 +04:00
Alexander Gavrilov bd5b675fa5 Add ui_menu_width finder, tweak instructions, and add a case for win exe. 2012-06-18 21:11:54 +04:00
Timothy Collett 9b941bcd4d Merge branch 'master' of https://github.com/angavrilov/dfhack
Trying out angavrilov's changes
2012-06-18 09:29:20 -04:00
Alexander Gavrilov dc6cb61979 Add more offset finders to the script. 2012-06-17 18:44:59 +04:00
Alexander Gavrilov fa41a27f26 Add an api function to get vtable address from version info. 2012-06-17 14:26:27 +04:00
Alexander Gavrilov 67536da2fe Add an interactive script finding a limited subset of linux offsets. 2012-06-16 19:51:15 +04:00
Alexander Gavrilov 927ce6ce5a Fix a problem with number to address cast for high-half addresses.
If the address is out of the signed int range, lua_tointeger produces
unspecified result. lua_tounsigned is guaranteed to wrap.
2012-06-16 17:09:58 +04:00
Alexander Gavrilov db91850464 Sync to the change in gamemode/gametype globals. 2012-06-16 14:42:56 +04:00
Alexander Gavrilov dc5bef2cb8 Add lua internal api functions needed for scanning memory. 2012-06-16 13:33:49 +04:00
Timothy Collett 14a3e5cd9e Implement getMemRanges() on the Mac 2012-06-14 13:43:20 -04:00
Timothy Collett 9c35e9fa59 Ensure that the appropriate libz.dylib is used 2012-06-14 13:43:03 -04:00
Timothy Collett f2a30c1a92 Remove build-time dependency on SDL 2012-06-14 13:42:40 -04:00
Timothy Collett 12543d6a5b Make offsets with "darwin" os-type recognized as Apple, rather than ignored 2012-06-14 13:42:06 -04:00
Alexander Gavrilov 94dfdb486d Change the field names returned from dfhack.internal.getMemRanges()
'end' is a lua keyword, so it cannot be used conveniently.
2012-06-14 20:32:23 +04:00
Timothy Collett c6700585bc Merge branch 'master' of github.com:peterix/dfhack 2012-06-14 09:59:53 -04:00
Timothy Collett 0ced9d9941 Hopefully fix DFHack's attempt to pull libstdc++ from somewhere silly (for portability) 2012-06-14 09:56:20 -04:00
Timothy Collett 19595f5225 Disable a whole bunch of no-longer-necessary debug output 2012-06-14 09:55:34 -04:00
Alexander Gavrilov 9469f27559 Make the RPC server accept a range of client versions.
Otherwise it sort of defeats the purpose of using version handshake.
2012-06-14 13:15:37 +04:00
Alexander Gavrilov bbc1fb010e Fix TEXT mode support, even making it work somewhat.
- Initialize the global pointers before trying to use init.
- Print a message suggesting the use of dfhack-run.
- Don't start the console thread if there is no console.
- When console is disabled, print anything given to it to stderr.
2012-06-14 13:08:39 +04:00
Alexander Gavrilov 7eb4fc19de Make dfhack.run_script usable from other scripts, and document it. 2012-06-14 12:46:12 +04:00
Petr Mrázek 2781723f7b Linux build works again. 2012-06-14 02:25:15 +02:00
Petr Mrázek 316973c463 Re-add fake SDL headers, get rid of real SDL use. 2012-06-14 02:15:43 +02:00
Petr Mrázek eaac32c765 Version bump and text updates. 2012-06-14 00:29:01 +02:00
Petr Mrázek 52f9fe4a6a Merge https://github.com/danaris/dfhack
Conflicts:
	depends/clsocket
2012-06-14 00:00:36 +02:00
Petr Mrázek 5e011ac217 Merge https://github.com/jjyg/dfhack 2012-06-13 23:56:26 +02:00
Alexander Gavrilov 149f175909 Make primitive refs (i.e. pointers to numbers, etc) behave as arrays. 2012-06-13 22:40:39 +04:00
Alexander Gavrilov c50b605dfc Support casting references and allocating arrays of numbers in lua wrapper. 2012-06-13 22:26:54 +04:00
Alexander Gavrilov 8d7cf092fd Add Lua API for access to some contextual and low-level info. 2012-06-13 21:12:36 +04:00
jj c364b42049 fix minor gcc warning 2012-06-13 00:21:23 +02:00
jj 95606ee3dc Merge branch 'master' of git://github.com/angavrilov/dfhack 2012-06-11 16:00:00 +02:00
Kelly Martin c97e3bca0c Sync structures again 2012-06-07 21:22:19 -05:00
Alexander Gavrilov 9dbcaa2733 Support adventure mode and stockpile screens in focus strings. 2012-06-06 18:54:06 +04:00
Kelly Martin 7aff2d6bc0 Sync structures for .34.11 2012-06-05 14:33:06 -05:00
Alexander Gavrilov d35d8d3431 Add the script to fix lagging fat dwarves. 2012-06-05 14:06:29 +04:00