Commit Graph

3064 Commits (a3699a54b87559b4fce40ee72375de1762514945)

Author SHA1 Message Date
lethosor 22ea68e68a Use is_valid_enum_item in FOR_ENUM_ITEMS
This is part of the workaround for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43680

Fixes DFHack/dfhack#654
Fixes JapaMala/armok-vision#21
2015-07-18 12:57:12 -04:00
lethosor 74404c62e7 Fix deadlock when aborting plugin load 2015-07-17 16:00:41 -04:00
lethosor 797e9b4485 OS X: Prevent DF window from receiving input when not focused
This partially fixes DFHack/stonesense#32, in the sense that input
to Stonesense is no longer received by DF, but does not cause
Stonesense to receive input either.
2015-07-17 13:49:17 -04:00
lethosor 2afc1c6d3f Update xml
viewscreen_choose_start_sitest fixes
2015-07-17 13:48:49 -04:00
lethosor 527b17d964 Update submodules 2015-07-04 20:45:37 -04:00
lethosor 95e04ef56a Update xml 2015-06-30 16:10:49 -04:00
lethosor 6cfc855e19 Use getcwd() in Process::getPath() on OS X
The "dfhack" script sets up the proper working directory
2015-06-29 10:11:46 -04:00
lethosor 0f3753095b update xml 2015-06-29 10:10:44 -04:00
lethosor 716ce1c9e2 Update xml 2015-06-26 23:20:59 -04:00
lethosor 935f4dd628 Log plugin load information to stderr 2015-06-26 16:11:41 -04:00
lethosor 5d1ae9f5ed Allow plugins without git description to be loaded 2015-06-25 11:46:04 -04:00
lethosor 524593a3d3 Locate git with find_package 2015-06-25 11:43:54 -04:00
lethosor ee7a2c7db7 Add git commit information to libdfhack-version
git is run every time 'make' is run, but the generated include file
is only updated when necessary. Plugins will be loaded successfully
if their DFHack version matches core's (assuming OpenLibrary()
succeeds), but will produce a warning if their git commit doesn't
match core's.
2015-06-24 19:32:45 -04:00
lethosor 0fa5570349 Recognize newline characters in Linux/OS X console 2015-06-24 00:54:12 -04:00
lethosor f3d91b3606 Update xml 2015-06-22 23:16:28 -04:00
lethosor 5bb5d87ad8 Install default dfhack-config files
Files from the "dfhack-config" source directory are now installed to
"dfhack-config/default" and copied to "dfhack-config" on startup if
they don't already exist. Previously, config files weren't available
at all unless they were manually installed (93c9a41).
2015-06-18 08:59:01 -04:00
lethosor 73de6a3051 Update xml 2015-06-15 12:58:49 -04:00
lethosor 6fb6645ed5 Merge branch 'dwarfmonitor-widgets' into develop 2015-06-15 12:55:26 -04:00
lethosor 862389d217 Allow lua scripts to redirect to other lua scripts
Addresses #634, #638
2015-06-14 11:56:14 -04:00
lethosor 93c9a41a3a Reimplement dwarfmonitor widgets in Lua (and improve customizability)
Widget positions and a few other options (e.g. date formats) can be
specified in dfhack-config/dwarfmonitor.json on a per-instance basis.

Related changes:
* Fixed an issue loading JSON files from Lua
* JSON files in dfhack-config (only dwarfmonitor.json currently) are
  no longer copied into the DF directory when building DFHack. This
  keeps developers' personal settings intact, but will require
  copying over changes made to DFHack's copies manually.
* Fixed incorrect config path in dwarfmonitor help
2015-06-13 21:15:43 -04:00
lethosor d663784707 Detect null unit pointer in Items::createItem() 2015-06-09 14:02:42 -04:00
lethosor bb93f2e40f Fix circular lua script dependencies 2015-06-05 19:08:11 -04:00
lethosor 36fde3d7e3 Allow Lua screens to allow OPTIONS to work 2015-06-05 18:45:52 -04:00
lethosor 96f3bdafb4 Implement an internal command to interrupt running Lua scripts
This inserts a debug hook that runs every 256 instructions by
default, which has a minimal impact on performance.
2015-05-24 19:06:01 -04:00
lethosor e27493fa02 Treat plugins without a "plugin_dev" symbol as ordinary plugins 2015-05-24 11:42:22 -04:00
lethosor 6278c94775 Update xml 2015-05-16 14:27:17 -04:00
lethosor db08df7e50 Update xml 2015-05-09 19:41:19 -04:00
lethosor b6ec48c99a Add a macro that allows exported functions to use different names 2015-05-09 09:42:15 -04:00
lethosor a8f5e683f7 Merge remote-tracking branches 'RossM/autolabor-changes', 'RossM/workflow-changes' and 'lethosor/plugin-exports' into develop 2015-05-09 09:39:55 -04:00
lethosor a47a5f8b0a Add an alternative to script_environment() that requires scripts to
recognize use as a module

Also document the use of enable/disable with lua scripts
2015-05-09 09:21:00 -04:00
lethosor 42a6cfaee6 Improve Lua enable/disable error handling 2015-05-08 18:03:19 -04:00
lethosor eaf282c18e Allow lua scripts to be enabled and disabled with built-in commands 2015-05-08 18:03:19 -04:00
lethosor db423c1aa6 Allow Lua scripts to specify whether they can be used as a module or
enabled/disabled
2015-05-08 18:03:18 -04:00
lethosor e73a2f8778 Move script internals to a single table 2015-05-08 18:03:18 -04:00
Ross Morgan-Linial 51d61d91cb Change tabs to spaces. 2015-05-07 20:50:19 -07:00
Ross Morgan-Linial 7aac9a8fb8 Improve workflow handling of plant reactions
Makes workflow understand "seeds of any plant", "thread of any plant",
"drink of any plant", "powder of any plant", and "liquid of any plant"
when counting items.

Changes workflow's handling of the built-in plant reactions to
understand that they always produce plant products, and that they also
produce seeds.

This means that you can set a target for, for example, "powder of any
plant", and workflow will use a milling job to produce that.
2015-05-07 20:49:29 -07:00
lethosor a4a2b2f1de Use TCSADRAIN instead of TCSAFLUSH when initializing raw mode 2015-04-19 11:58:35 -04:00
lethosor 3ca00f85d0 Merge remote-tracking branch 'lethosor/json' into develop 2015-04-08 20:18:13 -04:00
lethosor 62cfd0b8ca Reset DYLD_INSERT_LIBRARIES on startup on OS X
This prevents subprocesses (e.g. those launched with Lua's os.execute)
from attempting to load libdfhack.dylib and aborting due to an
architecture mismatch.
2015-04-06 17:05:36 -04:00
lethosor 4b124bc022 Avoid including DFHackVersion.h in PluginManager.h
Changes to DFHackVersion.h previously required recompiling nearly all
of the DFHack core.
2015-04-03 14:02:14 -04:00
lethosor 7758311f88 Make gametype functions use default arguments when called from Lua 2015-04-02 16:55:27 -04:00
lethosor 786581689f Move get_dfhack_version() to a separate namespace and add a few other version-related functions 2015-04-02 16:37:58 -04:00
lethosor 9b6d8d2799 Allow dev plugins to be skipped on startup 2015-04-01 17:50:22 -04:00
lethosor 8b5b8ed864 Log command name collisions 2015-04-01 17:32:11 -04:00
Lethosor e71c55865d Merge pull request #591 from lethosor/penarray
Expose a faster screen drawing/caching API to Lua
2015-03-31 16:11:28 -04:00
lethosor 331be2b589 Make "keybinding list" accept a context
See #588
2015-03-30 19:03:16 -04:00
lethosor bbb41078e7 Expose PenArray dimensions and tiles to Lua 2015-03-28 18:35:07 -04:00
lethosor e2b6ae9beb Allocate Lua PenArray objects using an existing buffer 2015-03-28 11:27:47 -04:00
lethosor 99f4ea4d2b Implement a PenArray class for caching parts of rendered screens 2015-03-27 22:56:30 -04:00
lethosor ac2f537bf4 Merge branch 'async-zoom' into develop 2015-03-26 19:41:02 -04:00
Lethosor ee16c6d1ab Fix "delete" in console on OS X/Linux 2015-03-25 23:31:23 -04:00
lethosor 7f98a632ce Update xml 2015-03-25 17:58:00 -04:00
lethosor 01c6d05775 Add custom enabler::zoom_display() method (screen.zoom in Lua) 2015-03-25 17:55:56 -04:00
lethosor 42e4f584b9 Add SDL_SemWait and SDL_SemPost hooks 2015-03-25 16:08:25 -04:00
lethosor 38fa416ad1 Lua: Indent array values 2015-03-22 14:04:03 -04:00
lethosor 96e5c5d2fd Fix whitespace 2015-03-20 19:55:32 -04:00
lethosor b976053be0 Add Lua JSON library 2015-03-20 19:51:24 -04:00
lethosor f3508f82c1 Add jsonxx to depends/ 2015-03-20 15:45:38 -04:00
lethosor 625be319c9 Re-enable memory range logging on OS X if an environment variable is set 2015-03-19 19:37:10 -04:00
Lethosor 3639920a50 Merge pull request #575 from lethosor/game-type
Add gametype checks to World module
2015-03-13 22:25:37 -04:00
lethosor 016f67e83f Expose strerror to Lua 2015-03-10 16:32:43 -04:00
lethosor afca7419dc Add gametype checks to World.cpp 2015-03-09 20:08:21 -04:00
lethosor ea1c9fa0df Allow plugin exports to be defined in plugins (and looked up when needed) 2015-03-07 17:25:35 -05:00
lethosor 1570af3f4d Allow plugins to export additional functions through a class 2015-03-07 15:56:43 -05:00
lethosor 1591e67bf2 Replace backslashes with forward slashes in command names 2015-03-06 16:53:57 -05:00
lethosor 0c09feae5b Prevent backslashes from being used in command names 2015-02-27 18:46:29 -05:00
lethosor 45acf61b17 Update xml 2015-02-26 16:12:12 -05:00
lethosor 88ff51c755 Add PushEvent hook on OS X
See #553
2015-02-21 21:28:35 -05:00
lethosor bd809d7bbc Replace most interposed functions with dlsym wrappers on OS X 2015-02-21 21:28:35 -05:00
lethosor db9bcc27e4 Make plugin load errors more descriptive 2015-02-21 21:28:35 -05:00
lethosor 0f77a1a578 Move DFHack version to a separate (static) library
This allows the DFHack version to be changed without recompiling
everything
2015-02-19 12:08:23 -05:00
lethosor c80fbbc397 Remove AS prefixes from add-spatter.cpp
The actual cause of this crash was fixed in #558

See #205
2015-02-19 12:05:32 -05:00
lethosor c399377f08 Ensure that command usage information always ends with a newline 2015-02-16 20:17:47 -05:00
lethosor b7f15ef2d6 Update xml, stonesense for 0.40 ui_advmode_menu changes
Closes #552
2015-02-16 19:10:15 -05:00
lethosor 10cfef0553 Fix whitespace issues 2015-02-14 22:53:06 -05:00
lethosor a8a8fc43ef Add df2console() wrapper
Closes #522
2015-02-13 17:56:29 -05:00
lethosor 56dfc66309 Implement map load/unload scripts and allow additional scripts to be registered 2015-02-11 15:03:47 -05:00
lethosor 37f391ea6d Don't store runScript() in script environments 2015-02-10 17:22:16 -05:00
lethosor 337598e0d6 Restore lua environment persistence and update modified timestamp correctly
See #544
2015-02-10 16:36:21 -05:00
lethosor e3b67b2985 Use short plugin name in error messages when possible 2015-02-09 22:06:33 -05:00
lethosor 15d3b7831f hide/show: Provide feedback on unsupported platforms 2015-02-08 09:30:40 -05:00
lethosor a1691b6777 Merge remote-tracking branch 'warmist/console-hide' into develop
Conflicts:
	library/Console-darwin.cpp
2015-02-08 09:20:05 -05:00
expwnent e5e0d93ef1 Added modtools/reaction-product-trigger. 2015-02-02 02:39:05 -05:00
expwnent 712892fb71 Only reload and recompile Lua scripts if they have moved or been updated. 2015-02-02 02:24:43 -05:00
expwnent bf5e491647 Allow Lua scripts to be used as modules. 2015-01-31 22:43:54 -05:00
expwnent 92bd6349a7 Fix listdir_recursive on Windows. 2015-01-31 22:28:17 -05:00
expwnent e9b4fc513a Merge remote-tracking branch 'cdombroski/zone-plugin-cleanup' into temp
Conflicts:
	NEWS
	plugins/zone.cpp
2015-01-31 21:01:41 -05:00
expwnent aa5d7c11bc Merge remote-tracking branches 'lethosor/patch-12' and 'lethosor/fs-expansion' into develop
Conflicts:
	NEWS
2015-01-31 20:25:01 -05:00
lethosor 066adfdf95 Implement a function to list directories recursively 2015-01-30 17:29:17 -05:00
lethosor 3ab558c72d Check for init.lua existence properly
Fixes #501
2015-01-30 16:37:23 -05:00
Chris Dombroski f608235b1e Fix some Lua things 2015-01-29 19:56:50 -05:00
Chris Dombroski f2eec3198c Rename findPenPitAtCoord 2015-01-29 15:02:54 -05:00
Chris Dombroski 868a9944fd Update LuaApi for new Units/Buildings functions. 2015-01-29 14:59:06 -05:00
Chris Dombroski 86495270a6 Remove duplicate isMilkable definition. 2015-01-29 14:40:09 -05:00
Chris Dombroski 48b6cf1beb Export functions to Buildings.h 2015-01-29 13:57:50 -05:00
Chris Dombroski 1514233aaa Add missing null checks to Units.cpp 2015-01-29 13:57:50 -05:00
lethosor daf739fcec Remove FIFO support 2015-01-28 21:39:17 -05:00
Chris Dombroski c179f5b913 Extract some stuff from zone.cpp to plugins/Units.{h,cpp} 2015-01-28 21:28:32 -05:00
lethosor f98e2964e6 Fix a few Windows compilation errors 2015-01-28 20:05:24 -05:00
lethosor bebceffa5f Add Filesystem::listdir() 2015-01-28 19:15:58 -05:00
lethosor e8c0482fdc Add atime()/ctime()/mtime() 2015-01-28 18:18:06 -05:00
lethosor 2e3261565c Clean up Filesystem.h 2015-01-28 17:15:09 -05:00
expwnent 1445b0a919 Allowed Lua scripts to share variables with run_script and corrected dfhack.findScript so that it can find save-specific scripts. 2015-01-26 21:45:31 -05:00
expwnent 4c5b6a5282 For multiline comments, delete the backslash instead of changing it to a space. 2015-01-26 19:24:31 -05:00
expwnent 1993c5fb1b Added support for multiline commands inside dfhack.init and the script command. 2015-01-26 17:18:30 -05:00
expwnent 4e447fc19a Update XML. 2015-01-25 14:08:42 -05:00
expwnent dda780eb8e Update xml. 2015-01-23 21:53:35 -05:00
lethosor a9f2c5bc90 Change MOD_* to DFH_MOD_*
MOD_* constants are defined in Winuser.h on Windows
2015-01-17 08:56:49 -05:00
lethosor 592d42c665 Update xml (0.40.24 OS X offsets) 2015-01-17 08:54:31 -05:00
lethosor 4d194da530 Merge remote-tracking branch 'origin/develop' into 0.40.24-dev 2015-01-17 08:53:49 -05:00
expwnent 14aa68a27f Merge remote-tracking branches 'lethosor/remove-embark', 'lethosor/search-menus', 'lethosor/osx-package-name', 'lethosor/expose-modstate' and 'lethosor/patch-11' into develop 2015-01-15 22:24:05 -05:00
expwnent 8f4b766107 EventManager: Fix a crash bug with EQUIPMENT_CHANGE event. 2015-01-15 18:13:19 -05:00
lethosor 43d7f59e0b Bump version to 0.40.24-r0 and update xml 2015-01-14 15:09:23 -05:00
lethosor 077d149d64 Expose key modifier state to C++/Lua 2015-01-11 12:51:02 -05:00
expwnent 7e11ad821f Update xml. 2015-01-05 19:33:39 -05:00
lethosor d932c76242 Fix MapCache compiling error on Windows 2015-01-05 17:28:42 -05:00
lethosor 5de5d4420a Update xml 2015-01-05 17:01:03 -05:00
lethosor 182f317fcc Merge remote-tracking branch 'lethosor/plugload-posix' 2015-01-05 16:50:43 -05:00
lethosor 0cfe6a11a3 Merge remote-tracking branch 'eswald/alt-stuck'
Conflicts:
	NEWS
2015-01-05 16:50:16 -05:00
lethosor 0c768796e2 Merge remote-tracking branch 'danaris/fortplan'
Conflicts:
	plugins/buildingplan.cpp
2015-01-05 16:47:35 -05:00
lethosor 06029c92c2 Merge remote-tracking branches 'lethosor/export-dt-ini-0.40.21' and 'lethosor/patch-9' 2015-01-05 16:40:44 -05:00
lethosor 57f6a94133 Merge remote-tracking branch 'lethosor/osx-libstdc++'
Also update NEWS
2015-01-05 16:39:42 -05:00
lethosor 6e36b224d1 Merge remote-tracking branch 'ramblurr/stockpiles'
Also update stockpiles plugin to use REQUIRE_GLOBAL()

Conflicts:
	plugins/stockpiles.cpp
2015-01-05 16:16:29 -05:00
lethosor ca0860c3bd Merge remote-tracking branch 'lethosor/plugin-globals' 2015-01-05 16:05:40 -05:00
lethosor 983f096a60 Merge remote-tracking branch 'quipyowert/define-maxlayers' into 0.40.23-r1 2015-01-05 16:04:37 -05:00
lethosor 9f2bdc2bdc Disable excessive logging in Process-darwin.cpp 2015-01-05 15:58:02 -05:00
lethosor e7ee29b1e3 Clean up whitespace in Hooks-darwin.cpp 2015-01-05 15:57:34 -05:00
lethosor e0a8cc8537 Merge PlugLoad-linux.cpp and PlugLoad-darwin.cpp 2014-12-29 10:33:54 -05:00
Eric Wald a1c9f85a64 Repairing the stuck Alt key
SDL has been reporting the modifier key state incorrectly after alt-tabbing between the DF and DFHack windows.
Fixes issue #448, though more testing is warranted.
2014-12-28 21:43:48 -07:00
Lethosor 3c0ac70615 Remove output from filetype()
Not sure how this made it in, but it's causing problems with PRINT_MODE:TEXT (not to mention filling up stdout.log)
2014-12-27 15:05:43 -05:00
Timothy Collett 5547722414 Initial work on fortplan plugin, including separating out code that needs to be shared with buildingplan 2014-12-23 16:56:15 -05:00
lethosor 02f2d88f35 Add option to install newer libstdc++ on OS X
Also include a bzipped copy of libstdc++.6.dylib
Fixes #437
Fixes #436
Fixes #460
Fixes #462
2014-12-23 10:31:00 -05:00
expwnent 8e6fcac92e persist-table bug. 2014-12-07 07:56:33 -05:00
lethosor 5de3e6110a Merge remote-tracking branch 'origin/develop' into plugin-globals 2014-12-06 17:32:44 -05:00
Casey Link 7072252902 fix build error on windows
with certain #include permutations the lack of this define would
break the build on windows as windows.h pollutes the namespace with min
and max macros that conflict with std::min and std::max.
2014-12-05 12:35:24 +01:00
expwnent bd7cb578eb Update xml. 2014-12-04 23:31:05 -05:00
lethosor f1a863eb79 Use short plugin name 2014-12-03 23:27:52 -05:00
lethosor cac2245438 Update some plugins to use REQUIRE_GLOBAL 2014-12-03 23:26:54 -05:00
lethosor e206c242c6 Add a plugin_globals vector to aid in safety checks for plugins that require globals
This allows "using df::global::foo" to be replaced by "REQUIRE_GLOBAL(foo)",
and DFHack will refuse to load the plugin if df::global::foo is NULL
2014-12-02 21:32:04 -05:00
Alexander Gavrilov 760acf017b Update version to v0.40.19 2014-12-02 13:51:44 +03:00
quipyowert f4e8fa2f30 Define a static variable to fix debug mode crash.
Fixes #404
2014-12-01 17:19:20 -08:00
expwnent 83d3785735 Update xml. 2014-11-30 14:03:00 -05:00
expwnent 868bc4c7fb Update xml. 2014-11-30 11:32:46 -05:00
lethosor 445640f80c Allow commands invoked through command-prompt to access selected items/units/buildings
Fixes #273
2014-11-25 20:25:31 -05:00
expwnent 855d27745d Update xml. 2014-11-19 23:57:02 -05:00
lethosor a003ce7394 Print fatal errors to stdout on Linux/OS X 2014-11-17 15:12:33 -05:00
expwnent 97b44d5898 persist-table tweaks, delete debug print messages 2014-11-16 20:41:11 -05:00
expwnent 7560fbdb6b library/lua/persist-table.lua: now it uses metatables to make persistent memory storage even easier. 2014-11-16 17:06:59 -05:00
expwnent 798bec3ced Merge branch 'delvintemp' into develop 2014-11-15 16:28:52 -05:00
expwnent 2edc3594b8 Make it compile. 2014-11-15 16:03:36 -05:00
expwnent 3021fa47db Merge remote-tracking branches 'jjyg/develop', 'putnam/patch-4' and 'eswald/blank-histories' into develop
Conflicts:
	NEWS
2014-11-15 15:07:20 -05:00
expwnent 59ef4e0cc2 It is now possible to remove syndromes by SYN_CLASS. 2014-11-14 23:33:49 -05:00
expwnent 5e3bf9a494 Make it compile for OSX. 2014-11-14 22:21:03 -05:00
expwnent 4464d7318d EventManager: make REPORT events only trigger for new reports, not ones that already exist in the save. 2014-11-14 22:07:48 -05:00
Eric Wald c85d4994cf Preventing blank history files 2014-11-14 17:35:06 -07:00
expwnent d120e5aa84 Merge pull request #386 from ace13/develop
Missing includes.
2014-11-14 18:59:53 -05:00
expwnent 428fe6a400 interaction-trigger tweaks 2014-11-14 18:50:19 -05:00
expwnent e2f4d3e4cb Fix persist-table so that all data is persistently stored properly. 2014-11-14 18:49:40 -05:00
expwnent 828852c36f Made persist-table correctly clear its stuff after exiting a game. 2014-11-10 01:09:50 -05:00
expwnent 593424cd6d new Lua library for persistent maps of arbitrary degree. 2014-11-10 01:03:20 -05:00
expwnent 779ac3fd50 Updated interaction-trigger to work better. 2014-11-09 18:36:21 -05:00
Alexander "Ace" Olofsson 804aa8d398 Add missing <algorithm> include for std::min & std::max 2014-11-09 11:19:40 +01:00
expwnent 0f5efb47ae Update to 0.40.15. 2014-11-09 01:30:43 -05:00
expwnent fa401f8637 EventManager tweak. 2014-11-07 14:16:10 -05:00
expwnent dcdb6aae1b EventManager: properly deal with frame_counter getting reset. 2014-11-06 23:44:13 -05:00
expwnent 29d6bba669 Fix trackstop ambiguity complaints, update df-structures. 2014-11-02 11:55:01 -05:00
expwnent 4e0ad256a5 Update XML. 2014-11-02 04:06:51 -05:00
expwnent 87443035a9 Merge remote-tracking branch 'quietust/develop' into develop
Conflicts:
	plugins/manipulator.cpp
2014-11-02 04:05:51 -05:00
expwnent 4e38ec95b3 Merge pull request #354 from eswald/duplicate-onload
Removing duplicate world and map loading events.
2014-11-02 03:32:36 -05:00
expwnent 4b7c4f8c4b Merge pull request #356 from lethosor/disable-console
Allow console to be disabled by setting an environment variable
2014-11-02 03:31:35 -05:00
Quietust 8769af8935 Merge branch 'develop' of https://github.com/expwnent/dfhack into develop 2014-10-31 13:34:20 -05:00
Alexander Gavrilov 04ec2c9932 Update version to v0.40.14 and hack things so they compile.
Also make the find-offsets script less likely to crash if the
unit structure is misaligned and add more integrity checks.
2014-10-26 16:40:39 +03:00
Alexander Gavrilov beebd624e7 Last xml update for v0.40.13 2014-10-26 13:20:45 +03:00
lethosor e41a33ddea Allow console to be disabled by setting an environment variable 2014-10-06 17:10:33 -04:00
expwnent 0471294b1e Fix syndrome-util. 2014-10-04 21:54:07 -04:00
Eric Wald 6c9b94bcef Removing duplicate world and map loading events.
Saving a game in progress now goes through an extra viewscreen before reaching the condition that had been used to indicate whether the world was still valid, causing the core to emit bogus WORLD_LOADED, MAP_LOADED, MAP_UNLOADED, and WORLD_UNLOADED events.  Adding that viewscreen to the list of loading/saving screens prevents those duplicate events from firing.

Granted, if the game_cleaner viewscreen ever gets hit in play, this fix will cause more bogus events...
2014-09-30 23:02:35 -06:00
Alexander Gavrilov 6046d68639 Support std::fstream in data structures and add file_compressorst to xml.
One tricky thing is that fstream does not have operator=, so the new
file_compressorst requires a manually implemented one that skips it.
2014-09-24 22:47:04 +04:00
Alexander Gavrilov e6901a87d3 Update to 0.40.13 structures and fix compilation. 2014-09-19 00:05:15 +04:00
Timothy Collett 3678c5f649 New SDL hooks to support Stonesense updates 2014-09-16 21:16:52 -04:00
expwnent 0fbc7e22ee Merge remote-tracking branch 'lethosor/patch-4' 2014-09-16 17:21:39 -04:00
expwnent d425c2edf9 Merge remote-tracking branch 'lethosor/lua-printall-ipairs' 2014-09-16 17:08:45 -04:00
expwnent 5a1d88307f Merge remote-tracking branch 'eswald/stockpile-iterator' 2014-09-16 17:05:02 -04:00
expwnent 3e882f35b3 Merge remote-tracking branch 'lethosor/global-onload' 2014-09-16 16:53:31 -04:00
expwnent 8508dd6f04 Update xml. 2014-09-16 16:51:48 -04:00
lethosor 328b95c1ec Merge remote-tracking branch 'origin/develop' into global-onload 2014-09-14 11:56:07 -04:00
Lethosor d21cd54648 Add '@' documentation to dfhack.lua 2014-09-14 11:50:03 -04:00
Lethosor 9d3af4dcb6 Close file opened in load_patch() on success
Fixes #327
2014-09-10 15:09:57 -04:00
lethosor fadca0aef2 Add a variant of printall() that uses ipairs 2014-09-08 20:30:22 -04:00
lethosor 34d4537a11 Support for global onLoadWorld.init/onUnloadWorld.init scripts 2014-09-08 15:52:17 -04:00
expwnent c746d2a182 Update xml. 2014-09-08 15:46:25 -04:00
expwnent 248e4d837b Update xml. 2014-09-08 13:32:34 -04:00
expwnent f5039b37b8 Merge remote-tracking branch 'lethosor/osx-plug-dylib'
Conflicts:
	NEWS
2014-09-08 13:14:28 -04:00
Eric Wald 74e709ec19 Adding getStockpileContents to the Lua API. 2014-09-07 14:52:08 -06:00
Eric Wald 8631da7e4e Convenience method to collect a vector from StockpileIterator. 2014-09-07 14:10:27 -06:00
Eric Wald 567397df85 Stockpile iterator.
Efficient way to operate on all items stored on a stockpile.
Doesn't currently check whether the items match the stockpile settings,
but does ignore empty containers assigned to the stockpile.
2014-09-07 13:52:07 -06:00
Quietust cf06dc3503 Update to 0.40.11, fix a few devel plugins to build again 2014-09-04 08:26:45 -05:00
lethosor 9aee476c6e Make plugins use ".plug.dylib" extension on OS X 2014-08-30 09:21:19 -04:00
Quietust 1de9405ef3 Update some stuff to 0.40.10 2014-08-28 14:07:03 -05:00
Quietust 45b9e1b56a Update XML 2014-08-27 09:57:58 -05:00
Quietust deee486b81 Update Maps::SortBlockEvents to include spoors and item spatters 2014-08-20 10:51:58 -05:00
Quietust ae80ca9ec9 Merge branch 'develop' of github.com:DFHack/dfhack into develop 2014-08-20 10:32:59 -05:00
Quietust 5e434721ff Remove stray BOM 2014-08-19 13:47:05 -05:00
Quietust 4da333fca1 Fix Buildings module to work with ui.tax_collection.rooms change 2014-08-18 16:33:12 -05:00
expwnent 59e6607d8c Merge remote-tracking branch 'warmist/dev_building_hacks' into develop 2014-08-16 10:26:24 -04:00
Warmist f04b93210a Bug fixing.
Fixes for "tab" in hacked buildings.
2014-08-16 16:58:09 +03:00
Warmist 6868cab1fe Exposed dfhack.jobs.linkIntoWorld. Simplified eventful and gui.dwarfmode for sidebar use/creation. 2014-08-16 16:58:01 +03:00
JapaMala 493dd47383 Updated df-structures and isoworld 2014-08-15 19:28:03 +05:30
JapaMala 5add8c433d Merge branch 'develop' of github.com:DFHack/dfhack into remote_reader
Conflicts:
	plugins/remotefortressreader.cpp
2014-08-15 19:15:00 +05:30
Quietust ebda2d8472 Fix ageItem to work correctly, and update XML 2014-08-15 08:13:15 -05:00
expwnent 38cc604861 Fixed bug with Lua printing buffering too long sometimes in Windows. 2014-08-15 05:54:54 -04:00
Quietust 8a9e3d1a72 Plugin cleanup - always do "using df::global::[foo]". Also, get rid of old 0.34.11 binpatches 2014-08-11 15:07:52 -05:00
Alexander Gavrilov b0e1b51d2a Change version to v0.40.08 2014-08-11 23:49:24 +04:00
Alexander Gavrilov 2471c4a68e Add a new API for converting between interface_key and string characters.
It's necessary now that the simple linear arrangement is broken.
2014-08-11 14:23:19 +04:00
Alexander Gavrilov 002bd5240b Bump version to v0.40.07 and update find-offsets to new pressure plate UI. 2014-08-11 14:14:42 +04:00
lethosor 0983728e14 Implement Ctrl-T, ignore unrecognized control characters 2014-08-09 21:54:47 -04:00
lethosor 71236afa42 Implement readline-style Ctrl-U and Ctrl-Y 2014-08-09 21:54:47 -04:00
lethosor e71fc0455c Fix console warnings on Linux 2014-08-09 21:54:46 -04:00
lethosor fc24d24ccc Merge Console-linux and Console-darwin into Console-posix 2014-08-09 21:54:46 -04:00
JapaMala 36435ca8cf Merge branch 'develop' of https://github.com/quietust/dfhack into remote_reader
Conflicts:
	library/modules/Items.cpp
	library/modules/MapCache.cpp
	library/modules/Maps.cpp
	library/modules/Materials.cpp
	library/modules/Translation.cpp
	plugins/CMakeLists.txt
2014-08-08 20:54:44 +05:30
JapaMala 756485c4db Added support for getting a list of plant growths with fake material names. 2014-08-08 20:35:57 +05:30
Quietust 17b19bfcdc Update structures 2014-08-06 08:28:02 -05:00
JapaMala b7c871eed7 gave t_matglossPair a few operator overloads so it can be used in std::map 2014-08-02 17:12:19 +05:30
JapaMala 08da62392e Fixed a mistake where MapCache was using the wrong range for root depth. 2014-08-02 17:09:59 +05:30
Quietust 2928f15629 Update fastdwarf to work properly in 0.40 2014-08-01 08:45:23 -05:00
Quietust 612bcc65c8 Fix build, update XML 2014-07-29 16:43:29 -05:00
Quietust 1450298484 assumed_identity -> identity 2014-07-29 16:30:22 -05:00
Quietust d6162cd189 death_info -> incident 2014-07-29 16:26:14 -05:00
Alexander Gavrilov 0182e0c980 Fix SC_WORLD_LOADED/UNLOADED now that loading and saving takes many frames.
During the loading or saving screen, consider the map and world as not
loaded, because they are likely only partially valid. This fixes errors
from the log-region script.
2014-07-28 08:57:55 +04:00
Alexander Gavrilov 1c409975de Update the version to v0.40.05 2014-07-28 08:15:03 +04:00
Alexander Gavrilov 4902c577b3 Fix some crashes when running without globals and update structures. 2014-07-24 23:10:37 +04:00
JapaMala bc5e0f6ad6 Made DFHack buildable. Also added plant proto definitions 2014-07-23 19:57:47 +05:30
Quietust 9435d8f4d9 Fix crashes caused by missing globals 2014-07-21 19:14:43 -05:00
Quietust 38cdb37433 Update plant_tree_info field names 2014-07-21 14:46:51 -05:00
Quietust e711605413 Some minor corrections 2014-07-21 13:26:34 -05:00
Quietust 97de21357c First pass for 0.40 compatibility; still lots left to do, but this will at least build 2014-07-21 13:18:29 -05:00
JapaMala b598cbb0dd Merge branch 'develop' of github.com:DFHack/dfhack into develop 2014-07-20 16:43:00 +05:30
JapaMala a14caa53d0 Fixed mapcache reading plants in for 0.40.01 onwards. 2014-07-20 16:41:20 +05:30
expwnent a8f810cc3b Lots of tweaks. 2014-07-09 06:21:52 -04:00
expwnent 0a16bc2e12 Merge remote-tracking branch 'origin/perSaveScripts' into scriptOrganization
Conflicts:
	plugins/CMakeLists.txt
2014-07-07 09:01:07 -04:00
expwnent 3c06f3bada Allowed per-save script folders. 2014-07-07 08:50:40 -04:00
expwnent 5404b69476 Tweak repeat.lua. 2014-07-03 20:32:15 -04:00
expwnent e28a42b848 Fixed a problem with syndromeUtil, renamed to syndrome-util, and made add-syndrome use proper conventions. 2014-07-03 15:18:00 -04:00
expwnent 649dcd1413 EventManager tweak: make it report the correct invasion id. 2014-07-03 14:37:13 -04:00
expwnent 376bcc6020 create-item script 2014-07-03 12:40:07 -04:00
expwnent 2fb8faf3e6 Added Items::createItem function. 2014-07-03 10:39:20 -04:00
expwnent d8c3a05f42 Made EQUIPMENT_CHANGE event trigger for new units. 2014-07-03 08:10:12 -04:00
expwnent 9d2c7a1abc Tweak to repeatUtil. 2014-07-03 08:09:47 -04:00
expwnent d048335a80 Tweaked item-trigger. 2014-07-03 06:01:58 -04:00
expwnent 81c87d0921 EventManager: INTERACTION event for unit interactions. 2014-07-03 04:55:12 -04:00
JapaMala e04ab11659 Merge branch 'develop' of github.com:DFHack/dfhack into develop
Conflicts:
	library/xml
	plugins/stonesense
2014-07-02 23:18:55 +05:30
JapaMala 516121d4f8 Fixed the getprofession behavior in adventure mode. Now it checks for the current adventurer's race instead of the fortress race. 2014-07-02 23:07:24 +05:30
expwnent 8f43b97284 EventManager tweaks. 2014-07-01 09:02:20 -04:00
expwnent 4ac32cfd74 EventManager: made UNIT_ATTACK trigger for severed body parts. 2014-07-01 08:58:48 -04:00
expwnent d765de4546 Merge remote-tracking branch 'lethosor/lua-runcommand2' into scriptOrganization 2014-07-01 02:05:14 -04:00
expwnent 1c0ae94539 processArgs now detects duplicate args. 2014-07-01 00:57:24 -04:00
expwnent 2ed7960f96 Tweaked utils.lua::processArgs to allow specification of a table of acceptable argument names. 2014-07-01 00:55:52 -04:00
expwnent c3c025c034 Added Lua subroutine for standardized argument processing. 2014-06-30 02:19:50 -04:00
expwnent 961d033ade EventManager: unload event for convenience. 2014-06-29 10:03:55 -04:00
Alexander Gavrilov 8a3050a1c0 Notify the user when dfhack.init is missing, and fall back to example. 2014-06-28 17:08:14 +04:00
Alexander Gavrilov 3744fc3575 Update structures 2014-06-28 16:59:09 +04:00
expwnent a62b15ccd2 Revert "Allowed dfhack.timeout tick events to be queued before a world is loaded."
This reverts commit ecd75e9b3e.
2014-06-28 03:06:19 -04:00
expwnent f12aa3665b Removed the temporary lua events because EventManager does them better. 2014-06-28 02:46:08 -04:00
expwnent ceae634954 Squashed EventManager commented out thing I don't need anymore. 2014-06-28 02:41:00 -04:00
expwnent 8e7e87ac73 Added UNIT_ATTACK event to EventManager and exposed it to Lua. 2014-06-28 02:31:34 -04:00
expwnent c635632ae7 EventManager.cpp: fix indentation. 2014-06-27 22:09:01 -04:00
expwnent 2443568998 Merge branch 'develop' into scriptOrganization 2014-06-27 22:03:09 -04:00
lethosor 830b39e13b Non-silent version of Lua's run_command 2014-06-27 21:58:36 -04:00
Quietust fc7ac9b47f Update XML and sync plugin 2014-06-27 13:01:46 -05:00
expwnent ecd75e9b3e Allowed dfhack.timeout tick events to be queued before a world is loaded. 2014-06-27 06:49:29 -04:00
expwnent 0db0244d08 Added add-syndrome script to modtools and fixed syndromeUtil so it actually works. This should make it so that event hooks only have to be able to run scripts instead of run scripts and add syndromes. 2014-06-27 05:47:52 -04:00
expwnent 187ce3c58b Fixed the organization of my new lua modules. They now go in library/lua instead of where plugin lua modules go. Updated scripts accordingly. 2014-06-27 02:43:05 -04:00
Alexander Gavrilov 17ed08cfe5 Fix the OSX image base address so that binary patches work correctly. 2014-06-26 18:28:50 +04:00
Alexander Gavrilov 6f162a4e72 Verify that mkmodule is called with the correct module name. 2014-06-26 18:11:05 +04:00
Alexander Gavrilov 9cb913b121 Update structures 2014-06-26 17:24:11 +04:00
expwnent 7313c18a2a EventManager/eventful: added ON_REPORT event and exposed it to Lua. 2014-06-23 09:15:46 -04:00
JapaMala 3f717af0b7 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop
Conflicts:
	library/xml
2014-06-21 16:43:44 +05:30
expwnent 036aae060b Merge lethosor stuff. For some reason, git's auto merge message didn't happen because of git-stash shenanigans. Oh well. 2014-06-19 22:58:17 -04:00
Lethosor ec64a787c6 Use _getcwd on Windows 2014-06-19 22:34:40 -04:00
Lethosor 73fdb8b125 Fix Windows compile-time error 2014-06-19 21:24:16 -04:00
lethosor ef69522d93 Merge branch 'develop' into filesystem-module-pr 2014-06-18 15:45:42 -04:00
Alexander Gavrilov 2db73a407d Merge branch 'manipulator_show_squad' from git://github.com/pierredavidbelanger/dfhack.git into develop 2014-06-17 10:39:26 +04:00
Alexander Gavrilov 32d8efad54 Merge branch 'lua-runcommand' of git://github.com/lethosor/dfhack into develop 2014-06-17 10:27:50 +04:00
lethosor fb922fab37 Handle invalid arguments to runCommand 2014-06-16 11:40:26 -04:00
lethosor d538e13450 Allow runCommand arguments to be passed as a table internally 2014-06-16 11:16:35 -04:00
Alexander Gavrilov b029690550 Update structures 2014-06-16 13:48:58 +04:00
lethosor 6fa478de22 Filesystem module
Implements a handful of filesystem-related functions (e.g. chdir, mkdir)
in C++ and Lua.
2014-06-15 22:38:17 -04:00
JapaMala db2d59ac77 Started work on a generic visualizer socket client plugin. Currently only sends over inorganic and creature materials, nothing else. 2014-06-15 10:10:12 +05:30
Pierre-David Bélanger e0808c8c96 Use squad::find instead of indexing the vector 2014-06-10 22:38:32 -04:00
lethosor 2a01259192 Fix runCommand crash, return output and result 2014-06-10 21:38:21 -04:00
lethosor 143b1e3469 Lua runCommand improvements
* Return error codes (e.g. CR_FAILURE) when a command fails instead of output
* Make dfhack.runCommand() take a list of arguments as well
2014-06-10 13:41:01 -04:00
lethosor e4876ed752 Merge branch 'develop' into lua-runcommand 2014-06-10 13:12:07 -04:00
Alexander Gavrilov 08b4279c4d Document better how to access fields of the interposed class. 2014-06-10 13:10:10 +04:00
Alexander Gavrilov 0be30b807c Merge branch 'console-move-word' of git://github.com/lethosor/dfhack into develop 2014-06-10 12:53:43 +04:00
Alexander Gavrilov 0e3fb79f0e Update structures 2014-06-10 12:52:17 +04:00
Pierre-David Bélanger bdcc00f6f7 Util method (in the Units class) to get a unit squad name (the translated name, or alias if set) 2014-06-09 21:51:52 -04:00
lethosor 91a93a00d2 Add dfhack.run_command (Lua)
Simplified version of runCommand
2014-06-07 20:31:20 -04:00
lethosor 2242d42c9c Implement runCommand in Lua API 2014-06-07 20:15:49 -04:00
Quietust 7de0b2dd39 Merge pull request #255 from quietust/develop
Fix problems with NONE for item types and subtypes
2014-06-03 08:44:19 -05:00
Alexander Gavrilov 0a0358a8c1 Update structures 2014-06-03 12:59:55 +04:00
Warmist dedd7e4185 Adds new console methods and commands to hide/show console. Only on windows (for now?) 2014-05-26 18:42:04 +03:00
lethosor bdca1ee709 Linux: Extended back/forward word sequences 2014-05-26 10:03:28 -04:00
lethosor b14ef95dec Merge branch 'console-move-word' into console-move-word-linux 2014-05-26 10:01:04 -04:00
lethosor d320fe71d1 Implement extended arrow key sequences 2014-05-25 23:39:34 -04:00
lethosor 58b9c02ce5 Migrate esc-b/f sequences to Linux 2014-05-25 22:10:40 -04:00
lethosor 1fcaac9d2e OS X Console: Implement back/forward one word escape sequences 2014-05-25 21:52:16 -04:00
Quietust e483e7439f Fix problems with NONE for item types and subtypes 2014-05-22 08:18:01 -05:00
Alexander Gavrilov fe93aba612 Update structures 2014-05-11 13:36:36 +04:00
Alexander Gavrilov 415cdad489 Make using new for allocating DF objects with vtables a compile-time error.
When done from plugins, it doesn't correctly initialize the vtable
because of some weird things MSVC does, so the only safe way is to
use df::allocate<df::foo>(). For consistency, it is also enforced
for code in the main library. It reveals the issue in the digging
invaders plugin, first found by warmist.

This change is linked to a modification in df-structures codegen.
2014-04-30 21:28:02 +04:00
Alexander Gavrilov 98325757e2 Fix signed-unsigned mismatch warnings in the new item value code.
Unsigned comparison allows catching negatives in the same check too.
Also, it didn't check the values in getValue.
2014-04-30 20:44:22 +04:00
Quietust 0f4684f29d Add Items::getItemBaseValue and Items::getValue, available from Lua 2014-04-25 11:04:21 -05:00
Quietust 57fbb1004b Assorted cleanup 2014-04-23 08:23:34 -05:00
Quietust c3d45c3a1e Add Job::getName(job *), also available from Lua 2014-04-23 08:03:10 -05:00
Alexander Gavrilov 1d1ede279f Update structures 2014-04-21 09:52:07 +04:00
Alexander Gavrilov 6bef167f83 Add a couple of useful scripts and fix two missing NULL checks.
- A script to unstick jobs trying to build walls from the same tile.
- A devel script for viewing the path a unit is currently following.
2014-04-21 09:24:05 +04:00
Alexander Gavrilov c27c38e4c0 Remove tired or hungry siege operators from duty when at peace.
The threshold is set at the level when they start to blink - normally
they would continue on with the job until they get a thirsty/hungry
thought, but immediately run off to eat if they lose the job (thus
refusing to load the engine after firing it). The code checks for
active sieges and whether there is a free replacement unit.
2014-04-15 21:52:39 +04:00
Alexander Gavrilov fc9826389b Account for meandering movement when predicting unit path in siege engine.
The movement is random, but there is an average slowdown coefficient.
2014-04-15 19:50:23 +04:00
Alexander Gavrilov 55cea36c76 Use the new API to produce combat reports for aimed siege engine attacks.
This requires exposing the actual operator unit to lua code.
2014-04-15 19:50:23 +04:00
Alexander Gavrilov 7844907204 Add new API functions for creating announcements and combat reports.
Allow specifying the announcement flags directly, and adding unit
combat reports. Also, make announcement functions write the message
to the game log.
2014-04-15 19:50:23 +04:00
Alexander Gavrilov b56c3a95a6 Fix some signed/unsigned mismatch warnings and whitespace in Job module. 2014-04-15 19:50:23 +04:00
Quietust 22dab5d807 Update XML, fix several scripts that were broken by field name changes 2014-04-14 12:30:34 -05:00
Alexander Gavrilov ddd56d8ea6 Update the structures. 2014-04-12 17:21:35 +04:00
Alexander Gavrilov 7aecffe0cd Update structures and fix broken things. 2014-04-04 22:34:39 +04:00
Alexander Gavrilov 788bc55096 Fix a mistake in the lua resize() method of BitArray. 2014-04-04 22:33:05 +04:00
Alexander Gavrilov a09e132107 Support using multiple lua init scripts per save.
This should make it easier to add and remove init script code by
automated means, or install multiple mods that need such code.
2014-03-31 16:00:55 +04:00
Quietust e620ae765c Add missing import/export info for MersenneRNG::unitvector<> 2014-03-25 13:30:21 -05:00
Alexander Gavrilov ec14b2d1e9 Merge remote-tracking branch 'warmist/dev-modmanager' into develop 2014-03-24 20:07:02 +04:00
Alexander Gavrilov a01939fce6 Sync structures. 2014-03-24 19:45:27 +04:00
Warmist b030548156 Added directory listing to lua api (internal category).
added mod manager and updated readme/news
2014-03-04 18:01:44 +02:00
Alexander Gavrilov 36b09c950d Actually export to lua a few functions that are documented as available. 2014-02-28 09:41:04 +04:00
Quietust 72eb366997 Merge changes, also fix Windows build (missing header) 2014-02-27 15:58:15 -06:00
Quietust dd268d43d9 Merge branch 'master' of https://github.com/jjyg/dfhack 2014-02-27 15:49:18 -06:00
Quietust 5a158b21cf Update plugins to match fixed field names in cage/civzone 2014-02-27 14:51:45 -06:00
jj 6d0e6cf7d5 remove old unused code from when dfhack was out of process 2014-02-26 12:44:10 +01:00
Alexander Gavrilov 7bdb687e4a Support calling a lua function via a protobuf request.
Previously the only way to call lua code was to call scripts
and parse their output to the stream, which is cumbersome.
2014-02-10 20:09:06 +04:00
Alexander Gavrilov 8800cf6f40 Export functions for converting between UTF-8 and CP437 to lua. 2014-02-10 18:54:52 +04:00
jj 387cc983f9 Merge branch 'osx_shenanigans' of git://github.com/tareqak/dfhack 2014-02-02 23:50:21 +01:00
jj 7df9957941 dfhack-run: prevent duplicate "not a recognized command" error message 2014-01-27 15:36:34 +01:00
jj 6ad8d128ba use non-interactive console when calling dfhack.init in TEXT mode 2014-01-27 15:36:25 +01:00
jj 6b6164c099 call dfhack.init even in TEXT mode 2014-01-27 14:51:22 +01:00
Tareq A Khandaker f0eeba93ce DFHack compiles under OS X now. 2014-01-25 03:21:56 -05:00
jj ce33973f0f Merge branch 'master' of github.com/quietust/dfhack 2013-12-24 14:07:08 +01:00
Alexander Gavrilov 53bd112515 Hide fake historical figures from legends xml export. 2013-11-07 12:27:53 +04:00
Alexander Gavrilov b2819ea869 Fix wrong argument iteration bounds in dfhack.matinfo.find(). 2013-11-07 11:40:26 +04:00
jj 04dce1aa7f MaterialInfo: fix decoding for COAL subtypes 2013-11-05 00:31:32 +01:00
expwnent 15c2d99a3e Update xml. 2013-10-25 14:23:55 -04:00
expwnent 329741f235 EventManager: added EQUIPMENT_CHANGE event and exposed it to lua. 2013-10-24 19:32:52 -04:00
expwnent ce1bb1e95b Merge remote-tracking branch 'putnam/master' into 0.34.11-r4 2013-10-20 23:27:12 -04:00
expwnent 4dbcee9560 EventManager: be smarter about removing things while iterating. 2013-10-20 23:16:21 -04:00
expwnent c409289ee4 EventManager: TICK events should unregister correctly when requested and after they fire, other tweaks.
- fixed unregister to allow unregistering individual TICK events
 - make registerTick return the resulting freq you have to put back in to the handler in order for it to be unregisterable
- when TICK events fire, they now automatically remove themselves from handlers[TICK], as they should
- make sure manageTickEvent fires once per tick
2013-10-20 22:54:25 -04:00
expwnent 3594dc2eb8 EventManager: fixed the TICK event, and a few tweaks.
- redo tick event management to work with world->frame_counter
 - the freq of a TICK EventHandler is now ignored
 - unregistering for an individual TICK event is still broken
  - you would have to know the modified freq to even begin removing it
  - it is only removed from handleres[TICK], not from tickQueue
- redo unregisterAll to be more efficient
- use the map loaded/unloaded events instead of world loaded/unloaded for initializing/clearing event monitoring data
- get rid of silly unsigned variables
2013-10-20 21:48:28 -04:00
expwnent 9bf004d07f Several EventManager fixes and improvements.
- handle loading and unloading of saves better
  - made sure it never triggers bogus events on loading a save
    - plugins should now handle loading themselves with onStateChange
  - special case to make Buildings module keep track of all buildings correctly on load
- fixed syndrome detection
  - was broken because of the switch from ticks-since-the-dawn-of-time to world->frame_counter
  - added lastSyndromeTime global
- fixed possible off by one error when looking for new created items
- got rid of the unread lastTick global
- const'ed the function pointer array of eventManagers
2013-10-20 20:12:42 -04:00
expwnent f69fd1d528 EventManager: prevent eventspam just after loading a save. 2013-10-20 17:39:54 -04:00
Putnam3145 4a32aff6a3 Update script.lua 2013-10-20 13:58:15 -07:00
expwnent 6ef360f4d6 Merge remote-tracking branch 'warmist/dev-EventManager-lua' into 0.34.11-r4 2013-10-20 14:52:40 -04:00
Warmist 0dff26aa23 Added lua interface (in eventful) for EventManager module. 2013-10-20 21:44:07 +03:00
expwnent d78a111f02 EventManager: Fixed the death event, fixed another problem with construction event, and made EventManager use world->frame_counter for scheduling event checking in order to make it work in arena mode. 2013-10-20 14:41:39 -04:00
expwnent 39553cfb6d EventManager: fixed a problem with constructionHandler. 2013-10-20 14:14:02 -04:00
expwnent ee056f4422 Merge remote-tracking branch 'angavrilov/master' into 0.34.11-r4
Conflicts:
	NEWS
2013-10-20 11:09:40 -04:00
expwnent 1422197533 Merge remote-tracking branch 'adeon/for-dfhack' into 0.34.11-r4 2013-10-20 10:45:00 -04:00
expwnent 9d3ee11349 Merge branch 'diggingInvaders' into 0.34.11-r4
Conflicts:
	scripts/devel/invasion-now.lua
2013-10-19 21:26:50 -04:00
expwnent 57fc0f3e89 Merge remote-tracking branch 'angavrilov/master' into 0.34.11-r4
Conflicts:
	NEWS
	library/xml
	plugins/CMakeLists.txt
	plugins/autoSyndrome.cpp
2013-10-19 20:19:29 -04:00
Alexander Gavrilov 78de739d75 Update aquifers when generating 3D vein layout. 2013-10-11 19:23:32 +04:00
Alexander Gavrilov bed1e00a6e Use a cast instead of floor in perlin noise for performance. 2013-10-10 12:15:50 +04:00
Alexander Gavrilov a273327c6a Remove "using namespace std" from MiscUtils.h. 2013-10-10 12:15:50 +04:00
Alexander Gavrilov 63d8267606 Decode ice under constructions if possible, but never write it out. 2013-10-10 12:15:50 +04:00
Alexander Gavrilov f36041f6bd Implement a MapCache api for writing base layer tiles of arbitrary stone.
Precompute some tables in TileTypes for extremely efficient
conversion between tiles of most important material types.
2013-10-10 12:15:50 +04:00
Alexander Gavrilov 68b6e10b2c Implement writing veins tile by tile through MapCache.
Unlike changevein, which changes the material in an existing vein
object, with this feature you can set the material for individual
tiles, and the cache will write it out as vein objects.

The array inside the cache data is changed from layer material to
vein material, because layer material is easy to compute.
2013-10-08 18:17:36 +04:00
Alexander Gavrilov 9442e8ea1f Make biome information more explicit in MapCache. 2013-10-07 16:58:10 +04:00
Alexander Gavrilov ea36233dff Split MapCache code from Maps.cpp 2013-10-07 16:58:10 +04:00
jj 84033bd586 ruby: dont list ruby scripts when ruby plugin is disabled 2013-10-07 14:32:47 +02:00
Alexander Gavrilov 33469f5bb2 Use a better hash function in the Perlin noise generator. 2013-10-02 18:55:41 +04:00
Alexander Gavrilov e175efa689 Implement a template-based classical Perlin noise generator.
The mask argument of the Impl template is there because apparently
an inner template cannot be fully specialized, so there needs to be
some argument besides i.
2013-10-01 18:58:04 +04:00
Alexander Gavrilov 599af0a4d9 Fix linux and windows build issues.
- Linux makefile overrides and removes the optimization flags.
- Old linux gcc doesn't understand lambdas.
- MSVC doesn't like extern and explicit instantiation in same file.
2013-09-30 22:51:29 +04:00
Alexander Gavrilov 9e81d27cd1 Implement the same random generator as DF uses for DFHack. 2013-09-30 19:46:39 +04:00
Alexander Gavrilov d7e35c2d23 Add built-in enable and disable commands. 2013-09-30 13:19:51 +04:00
expwnent 11635caeb8 Add makeown.lua. 2013-08-31 16:15:54 -04:00
Alexander Gavrilov 896cd11fe9 Track readable names of vmethod hooks for diagnostic messages.
Note that this changes the ABI of all plugins that use hooks.
2013-08-22 12:14:45 +04:00
Mikko Juola 506a60709e Add SDL_PushEvent() to one of the hooked SDL functions.
This is needed by Dfterm3 plugin.
2013-08-20 21:41:08 +03:00
Alexander Gavrilov df2e04db26 Update xml definitions. 2013-08-16 18:25:16 +04:00
jj 6f5c03b912 core: generate SC_WORLD_LOADED for arena too 2013-07-07 23:36:22 +02:00
expwnent ba73de5e35 EventManager: use units.all instead of units.active. 2013-06-20 21:34:32 -04:00
Alexander Gavrilov 49409d4630 Follow xml changes. 2013-06-11 16:10:42 +04:00
expwnent 1b260fe549 Made the per save onLoad and onUnload script use the right separator character for different operating systems. 2013-06-10 15:55:54 -04:00
expwnent 57c42e3927 Maps.ensureTileBlock: fixed temperature issues, and properly added blocks to the world.map.map_blocks vector to prevent weird glitches. 2013-06-10 15:43:14 -04:00
expwnent 9f6638432f When a save is loaded/unloaded, the script at raw/onLoad.init or raw/onUnload.init is run. They use the same format as dfhack.init. 2013-06-10 00:45:46 -04:00
expwnent 08114cf574 diggingInvaders: more fixes. Still a few issues with ramps probably. 2013-05-31 20:39:43 -04:00
expwnent f8261348ff Merge branch 'master' into diggingInvaders
Also make edgeCost.cpp compile because I stopped midsentence for some reason.

Conflicts:
	library/modules/Maps.cpp
2013-05-31 16:28:05 -04:00
expwnent aed5f4178f Update xml. 2013-05-30 20:06:06 -04:00
expwnent e0b27a6873 Update xml. 2013-05-28 19:55:26 -04:00
expwnent 3403146461 Merge remote-tracking branch 'peterix/master'
Conflicts:
	plugins/CMakeLists.txt
	plugins/autoSyndrome.cpp
2013-05-25 20:08:56 -04:00
expwnent 638b2e974c EventManager: cleaned up manageEvents considerably, using a function pointer array. 2013-05-25 12:19:54 -04:00
expwnent bcaaa72387 EventManager should use a CoreSuspender just in case. 2013-05-25 11:50:43 -04:00
expwnent b44cd86dc9 EventManager: completely overhauled JOB_COMPLETED event detection, and tweaked Job::cloneJobStruct. 2013-05-25 09:44:17 -04:00
expwnent 29b5e20575 autoSyndrome should now work with syndromeTrigger. 2013-05-11 16:46:37 -04:00
jj e5fd918b0c job: unk2 -> subtype 2013-05-05 03:55:08 +02:00
Petr Mrázek d7145d9b69 Fix bug #188, eggy hook 2013-04-24 17:50:34 +02:00
Petr Mrázek 6a907e3584 Fix issue #195 - off by one error in building dimensions 2013-04-24 17:41:25 +02:00
Petr Mrázek 3e59794733 Merge branch 'master' of https://github.com/cherrydev/dfhack
Conflicts:
	Readme.html
2013-04-24 16:13:27 +02:00
expwnent b4092f62e6 New module: Once. Intended to help prevent debug error message spam. 2013-03-23 22:38:33 -04:00
Timothy Collett c93cb693c8 Merge branch 'master' of http://github.com/peterix/dfhack 2013-03-14 13:35:28 -04:00
Timothy Collett d78a5593cc Minor fix to Process methods 2013-03-14 13:32:39 -04:00
Petr Mrázek 27f23746bd Do not use autocompletion to second-guess the user. 2013-03-14 06:43:38 +01:00
Petr Mrázek c5aa808737 Sync submodules 2013-03-14 05:07:30 +01:00
Alexander Gavrilov 03b91ca26c Fix a problem in binpatch.lua and comment out debug messages in tweak. 2013-02-26 12:29:02 +04:00
Alexander Gavrilov 7cbd201f31 Nuke the third exit(1) and change building caching code to make more sense. 2013-02-14 13:13:25 +04:00
Petr Mrázek a8f5e54e37 Sync submodules 2013-02-14 09:53:14 +01:00
Kelly Martin 148a37b2e4 Sync structures 2013-02-13 13:55:28 -06:00
Kelly Martin 8d278a87db Merge branch 'master' of https://github.com/angavrilov/dfhack.git
Conflicts:
	plugins/devel/CMakeLists.txt
2013-02-13 13:52:02 -06:00
Alexander Gavrilov 9ca435544e Nuke unsafe behavior in Buildings::findAtTile from orbit. 2013-02-13 15:03:15 +04:00
Alexander Gavrilov a17760af4f Communicate the Plugin pointer to the plugin in a decent sort of way. 2013-02-13 14:45:24 +04:00
Alexander Gavrilov f90737e274 Add more comments to the vmethod interpose implementation. 2013-02-10 15:26:48 +04:00
Petr Mrázek 0e384ada75 Sync submodules 2013-02-05 05:34:34 +01:00
Petr Mrázek e06b6904f1 Small fix to sync dfhack with the structures. 2013-01-15 23:41:43 +01:00
Petr Mrázek 0073c1bec2 Track xml and stonesense 2013-01-15 23:16:15 +01:00
Quietust 3c6ddc2a8c Merge branch 'master' of https://github.com/expwnent/dfhack
Conflicts:
	NEWS
	library/xml
2013-01-09 10:09:58 -06:00
expwnent 3ffbef2396 Merge branch 'canStepBetween' into recent 2013-01-05 18:10:29 -05:00
expwnent f8abd5c595 StepBetween: renamed stuff back to the way it was. Thought I had already done that. 2013-01-05 18:09:50 -05:00
expwnent 6622e9e06f Merge branch 'canStepBetween' into recent
Conflicts:
	library/modules/Maps.cpp
2013-01-05 13:32:29 -05:00
expwnent 8e90ca6b41 Merge branch 'eventManager' into diggingInvaders-unstable 2013-01-03 22:47:45 -05:00
expwnent ec03d567d2 EventManager: use WORLD_LOADED instead of MAP_LOADED. 2013-01-03 22:47:27 -05:00
expwnent f145f8d528 Merge branch 'eventManager' into diggingInvaders-unstable 2013-01-03 19:32:12 -05:00
expwnent 715f191c26 EventManager: made the frequency part of EventHandler. 2013-01-03 19:31:29 -05:00
expwnent 9e74ae58f2 EventManager: Fixed a problem with deregistering event frequencies. 2013-01-03 19:07:05 -05:00
expwnent 84b8fae326 Merge branch 'eventManager' into diggingInvaders-unstable 2013-01-03 15:53:06 -05:00
expwnent 910e398a7b EventManager: added invasion event. 2013-01-03 15:52:56 -05:00
expwnent a0d2f262b0 Update submodules. 2013-01-02 21:38:53 -05:00
expwnent 5865579b23 EventManager: got rid of print statement. 2013-01-02 19:26:37 -05:00
expwnent 6d2773856a EventManager: fixed a few things. 2013-01-02 19:23:40 -05:00
expwnent 4e4e382b8f EventManager: added syndrome event. 2013-01-02 18:30:15 -05:00
expwnent 144e0b4dcb Digging Invaders: merged eventManager and recent. 2013-01-02 11:26:30 -05:00
expwnent c3b2ae2137 EventManager: allowed plugins to specify how often they need events to be checked, in the event that monitoring is necessary. 2013-01-02 11:07:56 -05:00
expwnent fa78d6ccfc Merge branch 'recent' into eventManager-unstable
Conflicts:
	library/modules/Job.cpp
2013-01-02 03:16:45 -05:00
expwnent 4e99841862 EventManager: made Buildings module keep track of buildings so that it
can do findAtTile in constant time.
2013-01-01 22:22:31 -05:00
Warmist e4f4943b10 Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-12-23 12:34:05 +02:00
Alexander Gavrilov bb3a491d68 Implement a per-save lua init script. 2012-12-21 14:00:50 +04:00
expwnent ee4f37ff72 Merge branch 'canWalkBetween' into diggingInvaders 2012-12-19 20:31:17 -05:00
expwnent 7972902c81 stepBetween: named a few things better, and fixed a lot. 2012-12-19 20:30:37 -05:00
expwnent a93c0223a2 EventManager: unstable. Temp commit. 2012-12-18 20:28:30 -05:00
expwnent 555c754636 EventManager: added construction and building events. 2012-12-18 18:34:38 -05:00
expwnent 515eb3b060 Reverted the silly changes to Buildings module that didn't work anyway. 2012-12-17 17:38:47 -05:00
expwnent 3fde504ae2 Merge branch 'canWalkBetween' into diggingInvaders 2012-12-17 00:25:31 -05:00
expwnent 22837af8d7 canWalkBetween: fixed bug involving ramps. 2012-12-17 00:25:14 -05:00
expwnent d79583a2c9 Merge branch 'canWalkBetween' into diggingInvaders 2012-12-16 23:39:36 -05:00
expwnent 1a6a09281b canWalkBetween: forgot a case with ramps. 2012-12-16 23:37:15 -05:00
expwnent d2be8f18e1 canWalkBetween: forgot a case with stairs. 2012-12-16 23:30:35 -05:00
expwnent 01e5e93825 Renamed Maps::canWalkBetween to Maps::canPathBetween and added Maps::canWalkBetween, which does what it says. 2012-12-16 23:26:50 -05:00
expwnent 131d19e4cf Merge branch 'eventManager' into diggingInvaders 2012-12-16 16:43:58 -05:00
expwnent 8a242b3c0d Merge branch 'master' into diggingInvaders 2012-12-16 16:34:45 -05:00
expwnent 78aab90f3a EventManager: whitespace. 2012-12-16 16:27:08 -05:00
expwnent 3951d4d204 EventManager: made it safe to register/unregister while events are being triggered. 2012-12-16 15:39:39 -05:00
expwnent d4d8e69556 EventManager: Allowed absolute time registration. 2012-12-15 18:08:59 -05:00
expwnent 935058f0a5 EventManager: moved files around, made eventExample not run by default, and got rid of the silly NONE event type. 2012-12-15 17:43:41 -05:00
expwnent 86e002f3ff EventManager: added item creation event. 2012-12-15 16:49:13 -05:00
expwnent b0314755e0 EventManager: added unit death event. 2012-12-15 14:40:11 -05:00
expwnent 155a4d044c EventManager: fiddled with time events. Made it possible to register for time events before a world is loaded. Also added some files I forgot to add to the previous commit. 2012-12-14 23:29:28 -05:00
expwnent cf619a519e EventManager: made event handlers unregister when plugins are unloaded. Also changed PluginManager so that plugins can call core.getPluginManager() during plugin_init. 2012-12-14 22:14:38 -05:00
expwnent 747723187f EventManager: first draft. 2012-12-14 21:05:38 -05:00
Warmist ddceabbfb7 Merge branch 'master' of git://github.com/jjyg/dfhack 2012-12-12 18:58:11 +02:00
jj 662d3101c7 ruby: fix onupdate tick limiting + advmode, add pageprotect, add :script_finished 2012-12-11 17:25:51 +01:00
jj 6bc791d985 follow df-structure rename unit.unknown8 + able_stand_* 2012-12-10 22:50:33 +01:00
Warmist ff4278d04e Removed debug spam, added support for "HAS_MATERIAL_REACTION_PRODUCT" type reactions. 2012-12-09 23:07:13 +02:00
Warmist 6c4f163a5e Merge branch 'master' of https://github.com/angavrilov/dfhack
Conflicts:
	NEWS
2012-12-09 14:25:31 +02:00
Kelly Martin 2018ac1d17 Sync structures 2012-12-08 21:25:16 -06:00
Warmist 4f5fdebbe9 furnaces added and custom reactions. 2012-12-09 00:53:03 +02:00
Alexander Gavrilov a0e671d75d Make rename unit reset the name if it becomes completely empty. 2012-12-08 20:39:57 +04:00
jj a1eeb02a1b autocomplete command names from the console 2012-12-07 01:34:04 +01:00
jj ebc2625d97 ditch the unused Vegetation module 2012-12-06 23:47:25 +01:00
Warmist 3bce3838af Advfort now supports workshops and siege weapons >:) 2012-12-03 21:49:17 +02:00
jj 3953112eb9 dump Vegetation::t_plant, fix plant.is_burning 2012-12-03 19:03:07 +01:00
Alexander Gavrilov 9703d3fd8f Detect mouse press events for lua. 2012-12-02 14:43:23 +04:00
Alexander Gavrilov 58239e97ed Implement the history graph in the workflow status screen. 2012-12-01 16:50:03 +04:00
Kelly Martin 021d089709 sync structures 2012-11-30 20:25:19 -06:00
Alexander Gavrilov 0bfe006016 Try to reimplement the inventory monitor by falconne in lua.
For no other reason than to provide a complete example of lua
interface for a native plugin :)

TODO: paint the graph in the right pane.
2012-11-30 19:10:17 +04:00
Warmist 471d15ba4c New building selection dialog. 2012-11-29 20:49:16 +02:00
Alexander Gavrilov 5ea26d9cae Only show the advanced new constraint dialog on Shift-Enter.
Upon reflection it is a bit too scary to be always shown.
2012-11-29 16:27:51 +04:00
Alexander Gavrilov 94e6690586 Don't complain about fake input tokens in simulateInput. 2012-11-29 13:37:16 +04:00
Alexander Gavrilov bfc11cf946 Add persistent history of per-constraint item counts in workflow.
This will be needed for properly merging or integrating the status
screen by falconne. The history is maintained as a circular buffer
of up to 28 entries, and persists in save files.
2012-11-28 19:25:01 +04:00
Quietust e3eb325d36 Minimize references to gps->dimx/dimy 2012-11-23 19:18:56 -06:00
Alexander Gavrilov e7905a5cff Add docs for the automaterial plugin, and use the new Painter class. 2012-11-22 19:38:45 +04:00
Kelly Martin bb3c5c02c1 Adjustments for MSVC compatibility 2012-11-20 09:32:04 -06:00
Kelly Martin 3b2b77c693 sync structures 2012-11-20 08:22:21 -06:00
Alexander Gavrilov 767c1b9368 Duplicate the lua Painter class in C++. 2012-11-19 18:11:26 +04:00
Alexander Gavrilov 2953e4c386 Implement a dialog to specify a workflow constraint with all features. 2012-11-17 20:32:39 +04:00
Alexander Gavrilov 0b568942f4 Follow changes in the xml defs. 2012-11-17 16:43:29 +04:00
Quietust 1ab48aa2de Merge https://github.com/ab9rf/dfhack 2012-11-16 21:15:38 -06:00
Quietust 3f2e583746 Naming consistency 2012-11-16 15:35:34 -06:00
Quietust e2b9b703a0 Get rid of tabs 2012-11-16 15:33:36 -06:00
Kelly Martin 1379891270 Merge remote-tracking branch 'jjyg/master' 2012-11-16 13:50:59 -06:00
Kelly Martin 648abee285 EXECUTE -> EXEC and add parenthesis to make MSVC whine less. 2012-11-16 13:50:38 -06:00
jj 2b087a7081 fix windows typos 2012-11-16 20:49:30 +01:00
Kelly Martin a6fba3daf2 const void* -> void* in memDealloc and memProtect for Windows too 2012-11-16 13:44:38 -06:00
Alexander Gavrilov d506dd7137 Add a tweak to speed up melee squad training. 2012-11-16 22:51:07 +04:00
Alexander Gavrilov 2401be1b3b Add an api function to retrieve unit skill experience. 2012-11-16 22:48:49 +04:00
Alexander Gavrilov 72912edf58 Ensure AddPersistentData won't create duplicate ids.
If anything messes around with the histfig vector between calls.
2012-11-16 18:45:51 +04:00
jj dd89baf6f8 add raw mmap/mprotect access 2012-11-13 01:41:53 +01:00
Quietust bbe94c006f Update for temperaturest 2012-11-12 11:54:21 -06:00
Alexander Gavrilov b4dcc7e7ad Add more native api functions for finding general and specific refs. 2012-11-12 19:17:32 +04:00
Quietust a99d47ee7a Remove UTF-8 BOMs added by notepad 2012-11-12 08:38:29 -06:00
Quietust 766aca4911 Rename general_ref vectors for consistency 2012-11-12 08:27:58 -06:00
Alexander Gavrilov 6cf85b4318 Abstract the back-end from the binpatch script, and use in gui/assign-rack. 2012-11-12 12:26:31 +04:00
Alexander Gavrilov 012d22fa4f Add a script for manipulating binary patches at runtime, and some patches. 2012-11-11 17:24:13 +04:00
Alexander Gavrilov f657c20a1d Add an internal API for converting between file and memory offsets. 2012-11-11 15:56:31 +04:00
Warmist 0e4df55364 Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-11-11 12:46:55 +02:00
Alexander Gavrilov 56ef33ea0e Support building steam engines on top of brooks without any down stairs. 2012-11-10 17:33:05 +04:00
Alexander Gavrilov eb936c4ce0 Support milking and shearing in workflow. 2012-11-10 17:06:54 +04:00
Petr Mrázek 0c70a448d0 Update submodules 2012-11-07 23:06:02 +01:00
Alexander Gavrilov ff982dcf73 Fix representation and parsing of built-in materials.
The trick is to support both FOO and FOO:NONE for all of them,
including INORGANIC[:NONE]. Otherwise the workflow gui scripts
have problems.
2012-11-07 13:31:36 +04:00
Alexander Gavrilov bd8c59462c Add documentation for the core lua gui library stuff. 2012-11-04 17:06:32 +04:00
Alexander Gavrilov 9598316855 Add a native pen object for lua with a more checked behavior. 2012-11-03 20:06:33 +04:00
Warmist 6be65690f7 Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge 2012-11-02 20:29:27 +02:00
Alexander Gavrilov 05b73af9bb Extend fix-armory with support for storing ammo in barracks. 2012-10-30 23:20:34 +04:00
Alexander Gavrilov 3ff5d38a5c Add a few utility functions to the main library. 2012-10-30 12:40:26 +04:00
Alexander Gavrilov dc2805b1f3 Link the renderer vtable from libgraphics on linux. 2012-10-30 10:38:32 +04:00
Alexander Gavrilov ed4904fb66 Add a tweak that makes dwarves haul equipment from stockpiles to the armory. 2012-10-28 21:13:28 +04:00
Alexander Gavrilov 4aa1999347 Add a lua api function for patching multiple individual bytes. 2012-10-28 11:50:28 +04:00
Alexander Gavrilov fdaa2a35a1 Fix name ambiguity in MemoryPatcher constructor. 2012-10-28 09:34:50 +04:00
Alexander Gavrilov 92a3277777 Add a MemoryPatcher class as an optimization of scattered patchMemory.
This class can cache the set of memory regions during its lifetime,
and make them writable only once. This avoids e.g. re-reading
/proc/*/maps once for every modified vtable in interpose code.
2012-10-27 21:58:40 +04:00
Alexander Gavrilov e353f5f03e Add a script to complement the weapon rack binary patch. 2012-10-27 20:16:27 +04:00
Alexander Gavrilov 34f33a8c91 Fix the error message produced by binpatch when a mismatch is detected. 2012-10-27 15:35:11 +04:00
Alexander Gavrilov 4c2c6a1911 Fix handling of Collect Webs jobs in workflow. 2012-10-26 23:53:18 +04:00
Alexander Gavrilov b976e01b8c Follow the change in the base-type of job_skill. 2012-10-26 20:29:21 +04:00
Alexander Gavrilov 1f994295b8 Consider assigned vehicles in use, and tweak text color rendering. 2012-10-25 13:20:41 +04:00
Alexander Gavrilov 8eebfa007c Tweak the workflow gui script to make the UI operate smoother. 2012-10-25 12:15:18 +04:00
Alexander Gavrilov a1dd31aab3 Tweak the mechanics for showing and rendering lua screens.
- Place new screens below any dismissed ones on top.
- When asked to render a dismissed lua screen, call render() on its
  parent to avoid producing a black screen frame when unlucky.
2012-10-25 12:09:39 +04:00
Alexander Gavrilov 59ec9b304e Implement adding workflow constraints from gui/workflow. 2012-10-24 21:49:30 +04:00
Alexander Gavrilov 616c57257d Support changing the constraint ranges from the workflow gui script.
TODO: implement creating completely new constraints.
2012-10-24 19:25:06 +04:00
Alexander Gavrilov 7b67df4b4e Merge remote-tracking branch 'q-github/master' 2012-10-24 16:49:12 +04:00
Alexander Gavrilov 09f8e8e419 Start working on gui for workflow. 2012-10-23 21:42:03 +04:00
Quietust 27c7dfde4f ANY_FREE -> IN_PLAY, to match terminology used in DF's error messages 2012-10-23 12:14:21 -05:00
jj cfbdf47f6e follow rename Carried->Hauled in df-structures unit inventory mode 2012-10-22 19:37:12 +02:00
Alexander Gavrilov 46938625fd Pass the hotkey keys to dwarfmode from overlays, and fix gui/workshop-job. 2012-10-21 21:45:51 +04:00
Alexander Gavrilov 67674a7676 Merge remote-tracking branch 'jjyg/master' 2012-10-21 11:12:32 +04:00
jj 1f7a01d685 follow rename unit.military.squad_index to squad_id in df-structures 2012-10-20 22:35:39 +02:00
Alexander Gavrilov dee0c97584 Add a gui script for viewing and changing job_item properties. 2012-10-20 21:57:36 +04:00
Alexander Gavrilov fbba4caab2 Suppress checking the cookable material flag if the item is a container. 2012-10-20 21:16:00 +04:00
Alexander Gavrilov 0c9f1e0af4 Check the item type against job_item_vector_id when matching to jobs.
This will prevent setting an invalid item type via the job command.
2012-10-20 21:01:22 +04:00
Alexander Gavrilov 795961bfc4 Fix the treatment of non_economic in Materials/Items modules.
non_economic == !(is boulder && is inorganic && is economic)
2012-10-20 20:31:45 +04:00
Alexander Gavrilov 5388ad475f Fix a bug in lua wrapper caused by the recent pairs() addition.
It inadvertently removed all functions like df.new from the df table.
2012-10-20 20:14:50 +04:00
Alexander Gavrilov 2b1d856214 Add a few utility functions to the lua api. 2012-10-20 17:06:33 +04:00
Alexander Gavrilov 687dc7105f Merge remote-tracking branch 'kmartin/master' 2012-10-20 15:39:20 +04:00
Warmist da92fb9a1c Start of dfusion module. Fixed small error in memscan.lua and start of custom embark command. 2012-10-17 21:43:44 +03:00
Alexander Gavrilov 1e2570f4cb Add an extremely simple item selection dialog by wrapping ListBox. 2012-10-17 21:42:06 +04:00
Alexander Gavrilov 2bbd00a8ec Add pairs and ipairs support for objects in df tree. 2012-10-17 20:58:37 +04:00
Alexander Gavrilov 2d4935bc17 Add lua API functions for verifying item and material vs job_item flags. 2012-10-17 19:16:18 +04:00
Alexander Gavrilov 4f7895f571 Support restricting the set of materials presented in the dialog. 2012-10-17 18:29:15 +04:00
Alexander Gavrilov 0046b093f7 Link visibility and event handling order.
- Hidden widgets don't receive events.
- Children handle events in top to bottom order.
2012-10-17 11:49:11 +04:00
Alexander Gavrilov ad4f9908fb Extract a generic filtered list widget from the materials dialog. 2012-10-17 10:41:50 +04:00
Alexander Gavrilov b14e4e97f5 Natively support entry icons in the List widget. 2012-10-17 09:41:48 +04:00
Kelly Martin 8fd1dd04bb Display dfhack version number at end of baseline 'help' message. 2012-10-16 19:27:48 -05:00
Alexander Gavrilov 023dc82564 Implement a material selection dialog. 2012-10-16 18:33:00 +04:00
Alexander Gavrilov d336abfd97 Add label and list widgets, and switch stock dialogs to them. 2012-10-16 14:18:35 +04:00
Alexander Gavrilov abfe2754fb Start implementing common widgets for lua screens. 2012-10-15 20:03:18 +04:00
Alexander Gavrilov 33bd8103de Extract an abstract View superclass from Screen to handle widget trees. 2012-10-15 15:30:00 +04:00
Alexander Gavrilov 2865e1373a Experimental API for associating tile bitmasks with persistent data.
Use block_square_event_world_constructionst objects with the same
bogus negative id as the matching historical figure object.
2012-10-11 17:34:34 +04:00
Alexander Gavrilov 5206236b01 Look through missing intermediate bases when interposing subclasses. 2012-10-11 15:10:19 +04:00
Alexander Gavrilov 010417c812 Compute detailed focus string for the hauling menu. 2012-10-11 12:36:17 +04:00
Alexander Gavrilov 7224c8746a Print the new md5 hash after modification in binpatch. 2012-10-08 16:47:52 +04:00
Alexander Gavrilov 28f0fed0aa Redo the way binpatch backs up, so as not to lose the executable perms. 2012-10-08 16:22:35 +04:00
Alexander Gavrilov 408f0cb06e Add a small stand-alone utility for managing binary patches. 2012-10-08 12:10:02 +04:00
Warmist 49476818c4 Dfusion rebuild start (lua script side plugins) 2012-10-07 20:45:14 +03:00
Warmist 923ea3f4b0 Reactionhooks more usefull and gm-editor minor tweaks (e.g. search in containers) 2012-10-07 20:44:18 +03:00
Alexander Gavrilov 459c69046b Dissolve the World module class into a namespace.
It made accessing persistent data way too cumbersome.
2012-10-06 13:46:20 +04:00
Alexander Gavrilov 5396a67465 Some tweaking and edited NEWS. 2012-10-06 12:40:46 +04:00
Alexander Gavrilov 9f687f64a4 Fix build. 2012-10-03 12:58:05 +04:00
Alexander Gavrilov 33aead34b4 Implement a more automated search mode based on keys for some globals. 2012-10-02 19:53:16 +04:00
Alexander Gavrilov bd3d3061ae Add a module that wraps the dialogs as "blocking" coroutine functions. 2012-10-02 18:01:28 +04:00
Alexander Gavrilov abf503fcdc Fix the ListBox dialog to behave in a more consistent way. 2012-10-02 16:45:17 +04:00
Alexander Gavrilov 9d5adf1b2f Update the lua screens to use the new key display string API function. 2012-10-02 15:25:59 +04:00
Alexander Gavrilov 7440e80e6c Add an API function to retrieve interface key bindings for display. 2012-10-02 13:49:31 +04:00
Petr Mrázek ba5b8638a9 Merge https://github.com/jjyg/dfhack
Conflicts:
	fixTexts.sh
2012-09-30 23:29:13 +02:00
Petr Mrázek 8812238bf6 Update license, add contributors file, bump release number 2012-09-30 04:03:37 +02:00
Petr Mrázek b1ad92e310 Track structures 2012-09-30 02:52:30 +02:00
Alexander Gavrilov 62cde96724 Add a script to reclassify 'individual choice' weapons based on unit skill. 2012-09-29 17:21:49 +04:00
Alexander Gavrilov 48da06ec37 Add an API function for reading the nominal skill level. 2012-09-29 15:18:04 +04:00
Alexander Gavrilov eaddd0e646 Try shutting up a few random warnings. 2012-09-29 12:47:41 +04:00
Petr Mrázek 53c6ee4673 Track structures and stonesense 2012-09-28 21:57:12 +02:00
Alexander Gavrilov 164c61b638 Forbid stuff from bins in siege-engine, if forbid ammo standing order set. 2012-09-27 10:43:42 +04:00
Alexander Gavrilov 2e5f3c4620 Merge remote-tracking branch 'jjyg/master' 2012-09-27 10:36:14 +04:00
jj 7cc29250f8 fix for updated viewlist_petst 2012-09-26 18:22:07 +02:00
Alexander Gavrilov 627f036830 Implement a special command parsing mode with one verbatim argument.
Intended for script expressions, e.g. rb_eval.
2012-09-24 19:13:33 +04:00
Kelly Martin 8e25158811 Sync up df-structures 2012-09-23 19:40:04 -05:00
Alexander Gavrilov 6f67a71e00 Search for cur_season and cur_season_tick in devel/find-offsets. 2012-09-22 14:52:08 +04:00
Alexander Gavrilov 038d62367e Implement explicit hook priority in vmethod interpose.
This resolves a getName order conflict between power-meter and rename.
2012-09-22 13:14:06 +04:00
Alexander Gavrilov 82dc1445cf Support the Room list in getSelectedBuilding. 2012-09-20 11:55:53 +04:00
Alexander Gavrilov c39a337223 Add unit/item/job/building getter hook vmethods to dfhack_viewscreen. 2012-09-20 11:11:20 +04:00
Alexander Gavrilov 7ce772ae0e Add an API function that returns the selected building. 2012-09-20 10:41:03 +04:00
Warmist a02a120e2d Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge
Conflicts:
	dfhack.init-example
	library/xml
	plugins/CMakeLists.txt
2012-09-18 23:46:16 +03:00
Alexander Gavrilov a4799a384b Catch C++ exceptions in dfhack.buildings.setSize 2012-09-18 20:45:59 +04:00
Alexander Gavrilov 57b72831ca Overhaul the concept of lua 'class' initialization yet again. 2012-09-18 20:30:25 +04:00
Alexander Gavrilov d70a79deb9 Follow changes in XML defs. 2012-09-18 13:11:11 +04:00
Alexander Gavrilov be928a9dc5 Fix a data structure integrity bug in VMethodInterposeLinkBase.
This causes assertion failure and abort later on.
2012-09-18 10:40:14 +04:00
Alexander Gavrilov 36e44c682c Add a plugin implementing 'add spatter to item' reactions. 2012-09-17 21:15:51 +04:00
Alexander Gavrilov c1e20c6f05 Follow changes to structures. 2012-09-17 12:47:18 +04:00
Alexander Gavrilov 811c096c0e Vaporize liquids from barrels, and destroy bin contents in siege engine. 2012-09-14 20:22:49 +04:00
Alexander Gavrilov 24772f4dbc Add an api function for destroying items. 2012-09-14 18:49:02 +04:00
Alexander Gavrilov d22591e240 Fix a file descriptor leak and a crash in linux getMemRanges. 2012-09-14 12:35:55 +04:00
Quietust 1d8c9a6a5f Merge https://github.com/danaris/dfhack 2012-09-13 14:30:44 -05:00
Timothy Collett 24b93ea61f Library location fixing script 2012-09-13 14:58:52 -04:00
Quietust 46321a6a01 Rename world_data.unk_204 to feature_map 2012-09-12 13:41:59 -05:00
Alexander Gavrilov f06f9af6b8 Throw items from bins around in siege engine, like minecarts do. 2012-09-12 20:57:25 +04:00
Alexander Gavrilov 7c71aeab5f Add function for making item projectiles. 2012-09-12 18:17:42 +04:00
Alexander Gavrilov 3a075f4bc7 Trivial siege engine aiming at units, with logic in lua. 2012-09-11 19:17:24 +04:00
Timothy Collett ccefd02ee3 Merge branch 'master' of git://github.com/angavrilov/dfhack 2012-09-10 11:56:23 -04:00
Timothy Collett 96abc903ab Merge branch 'master' of http://github.com/peterix/dfhack 2012-09-10 11:54:56 -04:00
Timothy Collett 274d6038ad Merge further changes (???) 2012-09-10 09:19:21 -04:00
Timothy Collett 270351f510 Merge branch 'master' of https://github.com/danaris/dfhack 2012-09-10 09:18:24 -04:00
Alexander Gavrilov 9679b7729c Clean up the movement speed calculation function and move into the core. 2012-09-09 17:04:58 +04:00
Alexander Gavrilov ec3d489bda Move curse-affected attribute value getters to the core. 2012-09-09 12:51:08 +04:00
Alexander Gavrilov a36fe25e72 Finish the effective skill computation function, and move to core. 2012-09-09 12:27:40 +04:00
Alexander Gavrilov 94b729579e Reindent to remove tabs. 2012-09-09 10:53:08 +04:00
warmist 8e0f3e3bce Added ListBox to gui.dialogs
A listbox class. Can be either filled with table of strings, or string+callback tables. Needs some code revision :)
2012-09-09 02:28:07 +03:00
Alexander Gavrilov fb88aad51d Reverse-engineer unit speed computation from DF code. 2012-09-08 21:07:18 +04:00
Alexander Gavrilov bfa6ed3e08 Support setting the target area for the siege engine. 2012-09-08 13:46:02 +04:00
Alexander Gavrilov 325e294af2 Start the siege engine plugin with code to highlight obstacles on screen. 2012-09-07 19:54:32 +04:00
Warmist 0db873493a Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge
Conflicts:
	dfhack.init-example
2012-09-07 17:24:38 +03:00
Alexander Gavrilov e925d8f4d9 Add an API function for reading tiles from the screen buffers. 2012-09-07 11:36:45 +04:00
Alexander Gavrilov c971a819de Experimental creation of map blocks in gui/liquids script. 2012-09-06 22:45:19 +04:00
Alexander Gavrilov d5ea05ebb8 Implement a pressure plate sensitive to machine power.
When built next to a gearbox, it will monitor its powered state.
2012-09-06 12:37:29 +04:00
Warmist 3dcaee7cb9 Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge 2012-09-05 21:55:17 +03:00
Warmist 6fc10fc268 Fixed embark anywhere to use more sane code segment search 2012-09-05 21:52:54 +03:00
Alexander Gavrilov 8d876cc7d9 Support renaming some buildings, and arbitrary units, via gui script. 2012-09-05 21:27:42 +04:00
Alexander Gavrilov 57086ac56e Add stock MessageBox and InputBox dialog screens for lua scripts. 2012-09-05 19:45:45 +04:00
Alexander Gavrilov 27f169e298 Provide a partial application utility function to lua.
Implemented in C++ for efficiency.
2012-09-05 17:37:36 +04:00
Alexander Gavrilov 3b8e3d1459 Fix wrong assumptions in lua wrapper for BitArray. 2012-09-02 17:18:01 +04:00
Alexander Gavrilov 3713c5ea9e Add some APIs required by steam engine to the core. 2012-09-02 14:10:58 +04:00
Alexander Gavrilov 8536785d1d Boilers made out of unsuitable materials should explode! 2012-09-01 20:46:34 +04:00
Warmist 532839a4d5 Embark anywhere ported 2012-09-01 10:54:45 +03:00
Alexander Gavrilov e0097d8d43 Fix access to unnamed bits in bitfields, and allow hook.apply(false) 2012-09-01 11:25:24 +04:00
Warmist 7cabf1b843 Small bug fix 2012-09-01 10:13:08 +03:00
Warmist d784d4bc40 Static code segment search for memscan.lua 2012-09-01 10:05:31 +03:00
Alexander Gavrilov 0f1be28637 Follow xml changes. 2012-09-01 00:17:08 +04:00
Alexander Gavrilov 750eefe48a Follow unconditional JMP chains in MSVC vmethod ptr detection. 2012-08-30 19:28:53 +04:00
Alexander Gavrilov 8a617edb10 Support "ls -a" to list scripts in subdirs. 2012-08-29 19:03:53 +04:00
Alexander Gavrilov f1915915b4 Follow change in xml again. 2012-08-27 23:03:02 +04:00
Alexander Gavrilov 5fed060d7d Follow field rename in xml. 2012-08-27 16:01:11 +04:00
Alexander Gavrilov b2bdc199cb Fix NULL pointer access in ~virtual_identity. 2012-08-26 22:43:18 +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
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
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
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
Alexander Gavrilov b7edbf2076 Support 7-argument vmethods. 2012-06-05 14:00:52 +04:00
jj b612532348 export openplugin/lookupplugin from plugin manager 2012-06-02 23:35:05 +02:00
jj 470c9f60aa remoteclient: dont use gcc deprecated auto_ptr 2012-05-31 13:23:00 +02:00
Timothy Collett 6d65683b02 Adjust packaging for Mac 2012-05-29 16:12:35 -04:00
Timothy Collett 20a00f53c4 When built with the right compiler, we don't need any Obj-C code. 2012-05-29 14:44:37 -04:00
Quietust f71a843c6e Don't throw a fatal exception just because os-type isn't something we recognize - ignore it and move on 2012-05-28 11:06:23 -05:00
Timothy Collett 7ec0fd6fc0 Trying to set up an autorelease pool, but not yet succeeding. 2012-05-26 16:08:15 -04:00
Alexander Gavrilov e72bf1ac9a Sync to changes in df-structures. 2012-05-26 14:49:27 +04:00
Alexander Gavrilov 8644ea4dc0 Merge remote-tracking branch 'q-github/master' 2012-05-26 14:41:36 +04:00
Timothy Collett 1dd4cc5667 More work on getting dfhack building & compiling on Mac OS X 2012-05-25 14:28:59 -04:00
Timothy Collett 44c3afc306 Merge git://github.com/quietust/dfhack
Gotta get the changes that prevent DFHack from crashing.
2012-05-24 15:39:11 -04:00
Timothy Collett 7e88631698 Trying a different method now (with install_name_tool) 2012-05-24 15:02:53 -04:00
Timothy Collett 24d221052b Initial changes to get dfhack building on the Mac 2012-05-24 11:31:20 -04:00
Quietust 2b862655b7 Allow compiling RelWithDebInfo on Windows 2012-05-23 13:38:16 -05:00
Quietust 64ea06bbfe Don't crash if "gps" is null 2012-05-23 13:38:01 -05:00
Quietust 9a73ea9f14 Cleanup World module to use df::global, and fix crashes when control_mode/game_mode are missing 2012-05-23 12:51:03 -05:00
Alexander Gavrilov 9adf310d7f Update Units::isCitizen after looking at game-over detection code. 2012-05-22 12:31:37 +04:00
Petr Mrázek 1e09d67fc3 Merge https://github.com/angavrilov/dfhack 2012-05-21 20:32:50 +02:00
Alexander Gavrilov 81022451c2 Support sorting items in stocks, and correct unit sorting in joblist. 2012-05-21 22:29:03 +04:00
Petr Mrázek 7866ab239e Track structures 2012-05-21 20:28:17 +02:00
Alexander Gavrilov 34f08c0223 Handle the stocks screen in the focus strings. 2012-05-21 21:30:53 +04:00
Petr Mrázek 87a26ffa51 Track structures 2012-05-21 18:49:27 +02:00
Petr Mrázek 8ef1423ee7 Merge https://github.com/angavrilov/dfhack 2012-05-20 23:01:44 +02:00
Alexander Gavrilov 32d6257c70 DF code analysis uncovered another item-related flag to clear.
It turns out, buildings cache their 'site is blocked' state,
and won't actually recheck until the flag is cleared.
2012-05-20 21:58:43 +04:00
Alexander Gavrilov b992b04f0b Remove stuff that shouldn't be in the core, and expose to lua what's left.
Specifically, any "if (verbose) { Core::printerr("blah") }" kind
of stuff definitely doesn't belong in the common API functions.
Also, ref->getUnit() is very expensive.

On the other hand, checks for crash-inducing conflicts with the
ui should be in the core api, and not in client plugins.
2012-05-20 21:57:45 +04:00
Petr Mrázek df3e1bb517 Sync submodules 2012-05-20 17:35:34 +02:00
Petr Mrázek 3fa155e8e6 Merge https://github.com/angavrilov/dfhack 2012-05-20 17:33:09 +02:00
Alexander Gavrilov d28d240dbd Merge remote-tracking branch 'kmartin/master' 2012-05-20 11:03:41 +04:00
Kelly Martin abbe0ceb8d Fix order-of-operations oopsie in DFHack::Items::moveToInventory 2012-05-19 14:13:32 -05:00
Petr Mrázek bc7dbe1175 Merge derp fixed. 2012-05-19 20:03:08 +02:00
Alexander Gavrilov 1b4a24c827 Support using focus strings to limit keybinding scope. 2012-05-19 21:31:42 +04:00
Petr Mrázek 51f06c78fc Merge https://github.com/playfordh/dfhack
Conflicts:
	library/include/modules/Items.h
	library/modules/Items.cpp
2012-05-19 19:09:13 +02:00
Petr Mrázek ba45ac42c2 Track submodules 2012-05-19 18:34:50 +02:00
Alexander Gavrilov 7774f5f2c1 Add a mechanism converting ui focus to a string representation.
The idea is to make ui handling more modular, dispensing with
huge functions that switch or if/else on lots of variables.
For now, used to split up functions in the sort plugin.
2012-05-19 19:50:36 +04:00
Alexander Gavrilov 4aa6dbdd00 Support sorting items in the trade screens.
Caveat: sorts items in containers independently from the container.
2012-05-18 19:18:49 +04:00
Petr Mrázek 1333dc569f Merge https://github.com/Caldfir/dfhack 2012-05-18 17:42:34 +02:00
Petr Mrázek ed6da7618a Merge https://github.com/warmist/dfhack 2012-05-18 17:41:09 +02:00
Alexander Gavrilov 3c44e22760 Support trade viewscreens in Items::getSelectedItem. 2012-05-18 17:54:05 +04:00
Kelly Martin 51ad697bf5 Fix unresolved symbol reference in Windows platform. 2012-05-18 08:25:25 -05:00
Warmist 48185568e9 Added df::Items::moveToBuilding. Moved item from ground to building, usefull for museum forts (placing items on tables) 2012-05-18 16:05:29 +03:00
Kelly Martin 3f542b4df1 Update merge 2012-05-18 07:40:05 -05:00
Alexander Gavrilov 52426f9035 Track xml 2012-05-17 20:41:41 +04:00
Alexander Gavrilov f37f708b37 Add a workaround for Planepacked bug in buildings constructed via API.
Buildings hanging in the air cause constructWithFilters to
exhibit the same behavior as a moody dwarf in a burrow excluding
the workshop, i.e. endlessly collecting the same type of reagent.

http://www.bay12games.com/dwarves/mantisbt/view.php?id=1416

The workaround monitors jobs and reclassifies the reagents on the fly.
2012-05-17 20:38:27 +04:00
Alexander Gavrilov e9ef9b87b5 Add central locations for onUpdate and onStateChange handling in core. 2012-05-17 20:04:09 +04:00
Alexander Gavrilov 2c0024adc9 Make Items::getPosition exactly match the DF original in behavior. 2012-05-17 19:56:55 +04:00
Alexander Gavrilov efdb709284 Support creating rollers and stops with dfhack.buildings.constructBuilding. 2012-05-17 00:19:29 +04:00
Alexander Gavrilov 68c5d9b86c Stop Shift-Enter from being handled as if it was Shift-M. 2012-05-16 18:10:07 +04:00
Alexander Gavrilov dbd39af58a Support testing and modifying pending timeout callbacks. 2012-05-16 17:06:08 +04:00
Kelly Martin e77c9dc730 Add new PUSH_HAUL_VEHICLES labor to autolabor.
This commit will only work with 0.34.08 (or later).
2012-05-15 13:42:48 -05:00
harlanplayford 27ca317871 Added new method - Items::moveToInventory(...)
Signed-off-by: playfordh <harlanplayford@gmail.com>
2012-05-15 06:01:59 -04:00
Kelly Martin d4f9806568 Track library 2012-05-14 17:30:21 -05:00
Kelly Martin e078c75737 Track submodules 2012-05-14 13:44:03 -05:00
Alexander Gavrilov 642a625586 Support custom buildings in dfhack.buildings.getFiltersByType.
Also document it and constructBuilding in Lua API docs.
2012-05-13 18:39:00 +04:00
Alexander Gavrilov 87ec1de891 Improve lua api for tile biome access. 2012-05-13 13:58:41 +04:00
Alexander Gavrilov c6b52067bd Request designation rescan in auto-growing burrows.
This improves performance of burrowed miners digging 1-wide tunnels.
2012-05-12 20:54:26 +04:00
Alexander Gavrilov 60bb486aba Add api for enabling liquid and temperature updates for blocks.
Now updates also have to be enabled for the z level to work.
2012-05-12 20:12:09 +04:00
Alexander Gavrilov af3e389093 Update submodules. 2012-05-12 18:50:22 +04:00
Petr Mrázek 92f069e209 Brush output lists numbers, update xml. 2012-05-11 07:00:18 +02:00
Alexander Gavrilov d6813c7690 Change xml submodule pointer. 2012-05-08 19:08:34 +04:00
Alexander Gavrilov 191071beb6 Add more lua scripts. 2012-05-08 12:55:06 +04:00
Alexander Gavrilov fca618ff1b Support default building inputs in dfhack.buildings.constructBuilding. 2012-05-06 19:11:29 +04:00
Alexander Gavrilov 9ad8d767b4 Add code for adding abstract buildings and removing constructions. 2012-05-06 19:09:11 +04:00
Alexander Gavrilov b70130cf36 Add a couple more building api functions. 2012-05-06 11:22:55 +04:00
Alexander Gavrilov 05e8083c84 Allow constructing itemless actual buildings. 2012-05-06 10:09:39 +04:00
Alexander Gavrilov 3bd44e5367 Move some things that won't work in dfhack-client to a separate file. 2012-05-05 21:07:18 +04:00
Alexander Gavrilov 81f2240c23 Fix some things that confuse MSVC. 2012-05-05 20:46:28 +04:00
Alexander Gavrilov 7e01b004e9 Implement timeouts in the core lua context, and quicksave script. 2012-05-04 20:59:06 +04:00
Alexander Gavrilov d4d6349f48 Expose builtin commands to dfhack-run, and add lua script support.
Move builtin command implementation to Core methods, and fall
back to hack/scripts/*.lua for otherwise unrecognized commands.
2012-05-04 19:47:18 +04:00
Alexander Gavrilov 5afe2ca002 Update dfhack for specific_ref. 2012-05-03 11:47:04 +04:00
Alexander Gavrilov 28b5068382 Allow both coordinate object and (x,y,z) as arguments to getTileBlock. 2012-05-02 12:50:05 +04:00
Alexander Gavrilov eadce95940 Add a convenience function for designating constructions. 2012-05-01 19:55:25 +04:00
Alexander Gavrilov 4cffb6428d Update building creation code with new knowledge, and fix zone.
Also, document new lua api, and add a more convenient wrapper.
2012-05-01 18:55:30 +04:00
Alexander Gavrilov 2303a25bde Implement unconstructed building instance creation and linking into world.
For more flexibility, the base api is split into 3 phases:
alloc, setSize, and construct. No support for non-actual
buildings like stockpiles and activity zones at the moment.
2012-04-29 21:07:39 +04:00
Alexander Gavrilov 82a0e52a3e Add api to check the walkable cache, and update flow_forbid in liquids. 2012-04-26 18:51:39 +04:00
Alexander Gavrilov 16ee049664 Split off the burrows api from Maps and Units. 2012-04-26 12:56:28 +04:00
Alexander Gavrilov 6ab270d129 Retrieve unit noble position info, and use it in getProfessionName. 2012-04-26 12:03:56 +04:00
Alexander Gavrilov 9489c6ed1a Add support for a few more viewscreens to Units::getSelectedUnit. 2012-04-26 11:05:35 +04:00
Alexander Gavrilov 1cd802d426 Implement unit sorting for the pen zone assignment interface. 2012-04-25 18:28:00 +04:00
Alexander Gavrilov 763a301b4f Add a few more lua api functions, documentation, and unit sort orders.
Units::getProfessionName appears to work correctly for
everything except nobles.
2012-04-23 21:30:53 +04:00
Caldfir 035d65536b Added in job loading to t_unit for stonesense. 2012-04-22 18:51:27 -07:00
Alexander Gavrilov 125cd6622a Support sorting units in many more ui contexts. 2012-04-22 19:22:00 +04:00
Alexander Gavrilov 2ef321a208 Preserve the original lua global environment for modules.
The intent is to prevent accidental pollution of module namespaces
by globals defined from careless scripts running in the _G environment.
2012-04-21 20:15:57 +04:00
Alexander Gavrilov 4af051bab3 Add a few more unit orderings, and a way to reverse direction. 2012-04-21 16:53:17 +04:00
Alexander Gavrilov 3282ac3db2 Add a hotkey command that sorts units in lists using lua comparators. 2012-04-21 15:43:52 +04:00
Alexander Gavrilov adbd351462 Rename units.other[0] to units.active. 2012-04-21 12:46:55 +04:00
Alexander Gavrilov 0a6982f404 Enable warnings correctly on linux and fix a lot of them. 2012-04-20 13:30:37 +04:00
Alexander Gavrilov d95cc3435f Fix lua wrapper sizeof for static arrays.
Since it actually depends on the element type, it is more tricky.
2012-04-20 13:04:03 +04:00
Alexander Gavrilov 0b32d374db Implement SOIL/STONE substitution logic, and add compat in mapexport. 2012-04-19 23:02:30 +04:00
Alexander Gavrilov 4b87f1bcac Refactor MapCache: make it parse everything that is known re tiles & mats. 2012-04-19 19:17:07 +04:00
Alexander Gavrilov f655a0986d Sync to changes in the data structure definitions. 2012-04-19 11:03:29 +04:00
Petr Mrázek d825356878 Fix windows console bug
Line input cursor was going crazy when input reached right side of the screen
2012-04-17 23:23:45 +02:00
Petr Mrázek c031349a62 Track structures 2012-04-17 21:48:18 +02:00
Alexander Gavrilov 378a1fb914 Support the '#' string as index for wrapper vector insert at end. 2012-04-17 12:15:45 +04:00
Alexander Gavrilov 3beb2ebf25 Export the onStateChange event to core lua context & add some docs. 2012-04-17 11:45:09 +04:00
Petr Mrázek 7946cafc86 Merge https://github.com/jaxad0127/dfhack 2012-04-16 22:37:07 +02:00
Warmist 17d5b2de04 Multiline interpreter.
To test try writing for k,v in pairs(table) do <enter> print(k) <enter> end
Also prompt could be changed (couldn't think of anything better).
2012-04-16 18:46:20 +03:00
Alexander Gavrilov 1e64a6a2f6 Make dfhack.lineedit automatically interact with RunCoreQueryLoop.
It still falls back to the original waiting mode if yield fails.
2012-04-16 18:05:42 +04:00
Alexander Gavrilov 9c25351281 Add a template to make using lua_pcallk a bit more convenient. 2012-04-16 18:01:21 +04:00
Alexander Gavrilov 3e4863bc80 Integrate coroutines with table-based error handling.
Properly attach stack traces to errors passing the resume boundary.
Replaces coroutine.resume and coroutine.wrap with appropriately
modified versions, and adds a Lua::SafeResume function for C++.
2012-04-16 14:45:04 +04:00
Alexander Gavrilov 48e4717dd2 Try working around some msvc problems. 2012-04-16 10:59:55 +04:00
Alexander Gavrilov a1756a864c Implement a way to do prompts from core context.
The trick obviously is doing it without forcing DF to wait suspended.
Fortunately, lua has built-in coroutine support, so the interactive
prompt can simply yield and rely on the external loop to do the job.
To use this however the REPL had to be replaced with lua code.
2012-04-15 21:50:22 +04:00
Alexander Gavrilov 14709e5d45 Add an official core lua context, and allow plugins to send events to it.
- This context requires core suspend lock and asserts it in a few places.
- Special 'event' objects are introduced. They can be invoked as
  functions, in which case they iterate all their fields and call
  them as functions. Errors are printed and consumed.
- When a plugin is opened by the core context, events registered in
  a special array are linked to it. The system is organized so as to
  avoid even trying to pass the event to lua if the module isn't loaded.
2012-04-15 19:09:25 +04:00
Jared Adams f3c7a685f5 Make tiletypes more useful
* Paint, filter, and brush state is now saved between calls.
 * Added 'all' paint option to set material, shape, special, and variant at
      the same time.
 * Added tiletypes-here (like liquids here, except is uses the saved brush
      settings)
 * Added tiletypes-here-point (like liquids here, always only the tile under
      the cursor)
 * Added tiletypes-command: runs tiletypes commands seperated by ';' tokens
      (affects saved state)
 * Make the internal workings match liquids a bit more
 * Give brush objects a descriptor string
 * Make Core::cheap_tokenise available
2012-04-15 08:40:19 -06:00
Alexander Gavrilov cb27a1d839 Fix typo in the 1MB constant. 2012-04-15 11:31:05 +04:00
Petr Mrázek fc38371b29 Clean up some chaos in old code. 2012-04-15 01:15:15 +02:00
Petr Mrázek 5f1c933b0f Merge pull request #148 from wjrogers/feature-protobuf-api
Add SetUnitLabors and additional optional data to ListUnits
2012-04-14 14:56:19 -07:00
Petr Mrázek fa063e2936 Track structures, fix trivial problem in zone plugin 2012-04-15 00:35:59 +02:00
Alexander Gavrilov cb49c92b99 Allow plugins to export functions to lua with safe reload support.
- To ensure reload safety functions have to be wrapped. Every call
  checks the loaded state and locks a mutex in Plugin. If the plugin
  is unloaded, calling its functions throws a lua error. Therefore,
  plugins may not create closures or export yieldable functions.

- The set of function argument and return types supported by
  LuaWrapper is severely limited when compared to being compiled
  inside the main library.
  Currently supported types: numbers, bool, std::string, df::foo,
  df::foo*, std::vector<bool>, std::vector<df::foo*>.

- To facilitate postponing initialization until after all plugins
  have been loaded, the core sends a SC_CORE_INITIALIZED event.

- As an example, the burrows plugin now exports its functions.
2012-04-14 19:44:07 +04:00
Alexander Gavrilov 7a34a89f53 Add burrow subcommands to modify burrow unit and tile sets. 2012-04-14 14:12:59 +04:00
Alexander Gavrilov 2f54a48e63 Add a plugin that makes selected burrows auto-grow on digging. 2012-04-13 21:41:42 +04:00
Alexander Gavrilov 37cfb1fdcd Add unit position and container api. 2012-04-13 16:10:19 +04:00
Alexander Gavrilov 2d8611a480 Add core api for moving items between ground and containers. 2012-04-12 18:37:27 +04:00
Alexander Gavrilov 38a8c43a25 Reverse-rebase the vtable pointers printed to stderr.log. 2012-04-12 11:21:25 +04:00
Alexander Gavrilov 583ccdcc0c Support pre-initializing vtable pointers from symbols.xml 2012-04-12 10:54:53 +04:00
Alexander Gavrilov 5d5502ae34 Update the item owner modification api and export it to lua. 2012-04-11 20:10:31 +04:00
Alexander Gavrilov 0c2b78b96b Add api for manipulating burrows to the core. 2012-04-11 19:42:05 +04:00
Alexander Gavrilov 61245711f7 Export a few maps functions to lua. 2012-04-11 16:20:16 +04:00
Alexander Gavrilov c7b922250b More maps api refactoring and renaming.
getBlockAbs is a very confusing name; getTileBlock is better.
2012-04-11 12:01:27 +04:00
Will Rogers 8c40a27ea0 Add unit_misc_trait list to BasicUnitInfo protobuf API. 2012-04-10 20:42:23 -04:00
Will Rogers 6cf8220f28 Add SetUnitLabors protobuf API. 2012-04-10 20:41:54 -04:00
Alexander Gavrilov 59ddbfacb7 Implement item occupancy tracking in MapCache. 2012-04-10 20:19:41 +04:00
Alexander Gavrilov b15d2da819 Get rid of some obsolete api functions, and restructure MapCache. 2012-04-10 18:21:19 +04:00
Alexander Gavrilov 249be0c1a0 Change SC_MAP_LOADED handling: only NULL/not NULL change is meaningful. 2012-04-10 12:11:00 +04:00
Alexander Gavrilov 93c795cfc3 Job module api tweaks: add a namespace to match others and some funcs. 2012-04-10 11:43:36 +04:00
Alexander Gavrilov 0e0740fddf Stop printall(df.global) from breaking if there are unknown addresses. 2012-04-10 10:34:03 +04:00
Petr Mrázek 585de77489 Track structures 2012-04-09 00:59:57 +02:00
Alexander Gavrilov 45ae2ed67f Pull a few utility functions into the core and publish to lua. 2012-04-07 19:08:30 +04:00
Alexander Gavrilov e74788cb26 Add a generic facility for object finalization during stack unwind.
Supports two modes of finalization:

- try {...} finally {...}
- try {...} catch { ...; throw }

Argument passing discipline is designed with vararg tail calls in mind.
2012-04-07 14:21:38 +04:00
Alexander Gavrilov 0daafef690 Wrap MaterialInfo for lua. 2012-04-06 19:56:19 +04:00
Alexander Gavrilov 2640addf49 Split LuaTools.cpp to separate core utils from general dfhack api. 2012-04-06 18:00:54 +04:00
Alexander Gavrilov 903e9ee716 Export a few more functions to lua. 2012-04-06 11:21:28 +04:00
Alexander Gavrilov 9eed9f0d24 Wrap a few utility functions defined on the c++ side for lua. 2012-04-05 19:55:59 +04:00
Alexander Gavrilov 28a741082f Encode & decode names in utf-8 for transfer in remote messages.
That's the encoding required by the protobuf spec.
2012-04-05 18:10:16 +04:00
Alexander Gavrilov 59f411e401 Oops, forgot return statement. 2012-04-05 12:32:10 +04:00
Alexander Gavrilov 3afed43cdb Experimental: try wrapping a dfhack api function. 2012-04-05 11:59:39 +04:00
Alexander Gavrilov d1b27418a6 Add a World::GetPersistentData version that auto-adds if not found. 2012-04-05 11:32:23 +04:00
Petr Mrázek a45e83ef14 Merge pull request #146 from wjrogers/feature-protobuf-api
Add ListJobSkills protobuf API
2012-04-04 16:46:20 -07:00
Will Rogers 1b6f5f3f34 Add additional related data to ListJobSkills.
Add the attributes for profession and unit_labor, and (re)name the
protobuf messages JobSkillAttr, ProfessionAttr, and UnitLaborAttr to
better reflect their content and distinguish them from e.g. the
SkillInfo message included in BasicUnitInfo.
2012-04-04 11:53:47 -04:00
Alexander Gavrilov 7efbd798ce Upgrade lua errors to structures when attaching stack trace.
This allows detecting when it's re-thrown and avoiding attaching the
stack twice, and so on. Would also be useful if debugging is added.
2012-04-04 13:34:07 +04:00
Alexander Gavrilov 81fb57a853 Add color output and input prompt support to core lua api. 2012-04-04 10:40:33 +04:00
Will Rogers 7e896277ec Don't export describeJobSkills. 2012-04-03 14:22:46 -04:00
Will Rogers 59d7b6faab Add ListJobSkills. 2012-04-03 14:03:06 -04:00
Alexander Gavrilov 2d4af4ac3e A few more utility functions for lua. 2012-04-03 20:02:01 +04:00
Alexander Gavrilov 42a9b0a592 Make Core::Suspend safe in plugin_onupdate by pretending to hold the lock.
It is in essence true that OnUpdate owns the suspend lock, so
expose it officially to the recursive suspend lock mechanics.
2012-04-03 13:29:59 +04:00
Alexander Gavrilov 444377f9db Finish documenting the DFHack core lua api existing so far. 2012-04-03 13:13:44 +04:00
Alexander Gavrilov a8fe0eccb4 Add functions for checking validity of lua wrapper objects. 2012-04-02 22:02:04 +04:00
Petr Mrázek 467f4108ae Track structures 2012-04-02 13:42:56 +02:00
Petr Mrázek 2a998a5b8a Merge https://github.com/quietust/dfhack 2012-04-02 13:42:18 +02:00
Quietust 06da0f9720 Fix coord/coord2d division/modulo operators to properly handle negative numbers (fixes some glitches with revflood and possibly other utils) 2012-04-01 19:44:35 -05:00
Alexander Gavrilov d109b6570b Add dfhack.with_suspend(f[, args...]) that calls f with core suspended.
The lock is properly removed in case of error, which is then propagated.
Just for fun, it also can be yielded from within in a coroutine.
2012-04-01 19:38:42 +04:00
Alexander Gavrilov e3d50b9b04 Optimize wrapper: use pointers instead of strings as most frequent keys. 2012-04-01 18:34:04 +04:00
Alexander Gavrilov 604c84953b Fix a bug: LookupTypeInfo cannot assume the result is userdata. 2012-04-01 17:59:47 +04:00
Alexander Gavrilov a3e526abdb Add df.is_instance(a,b) to check if typeof(b) is subtype of typeof(a).
Allows both objects and types as arguments. Also accepts nil and
primitives as b, returning nil.
2012-04-01 17:32:57 +04:00
Alexander Gavrilov edd63080b5 Only print the shortcut help once in the lua interactive mode. 2012-04-01 17:00:25 +04:00
Alexander Gavrilov afe4eba957 Improve performance of the persistent data api, and wrap it for lua.
Use an stl table for string keys to avoid linear cost of lookup.

This uncovered a bug in the new luaL_getsubtable function.
2012-04-01 16:43:40 +04:00
Alexander Gavrilov a9a6fbd8b5 Lua tweaks: a couple of functions, dfusion tweak, backtrace metadata. 2012-04-01 12:50:56 +04:00
Petr Mrázek 7ff728b6fc Track world and map changes separately for plugin_onstatechange 2012-04-01 02:56:54 +02:00
Petr Mrázek 209b261284 Get rid of MALLOC_FILL build option 2012-04-01 00:30:42 +02:00
Petr Mrázek 4bac6edd79 Merge https://github.com/rh73/dfhack 2012-04-01 00:29:00 +02:00
Alexander Gavrilov 9d6e26fa5f Fix crashing color_ostream::printerr due to vfprintf vs fprintf mixup.
Also enable heap clearing in gdb mode, and fix a few newlines.
2012-03-31 22:26:41 +04:00
Robert Heinrich 39787e9cd5 Renamed digging commands to uniformly start with 'dig*'(vdig -> digv etc). Added command digl, diglx (dig layerstone instead of veins). Updated readme.rst. 2012-03-31 15:41:55 +02:00
Alexander Gavrilov 0f41608ed4 Pull console output support and REPL out of dfusion into core lib. 2012-03-31 15:40:54 +04:00
Alexander Gavrilov 9384f0c842 Update lua to 5.2 and fix obvious breakage due to obsolete api. 2012-03-31 12:11:43 +04:00
Alexander Gavrilov 10b610669f Give some sensible looking names to the arrays in pregnancy_ptr. 2012-03-31 10:31:45 +04:00
Petr Mrázek a01f512733 Track structures 2012-03-31 01:33:14 +02:00
Petr Mrázek 543f3970db Tweak readme, bump version to 0.34.07 2012-03-31 01:13:21 +02:00
Petr Mrázek 5d8415c8d9 Merge https://github.com/warmist/dfhack
Conflicts:
	plugins/Dfusion/luafiles/init.lua
2012-03-30 20:32:57 +02:00
Alexander Gavrilov 81bc73f435 Follow a typo fix in flag name. 2012-03-30 10:44:52 +04:00
Quietust 07bb51946f Fix bug in MapCache - squash veins with the correct priority 2012-03-29 18:59:07 -05:00
Alexander Gavrilov ec48405f0a Fix mistake: static initialization code cannot access other static objects.
Specifically, the eid->type() call depends on the order of linking.
2012-03-29 22:56:06 +04:00
Petr Mrázek 004acdad4e Tweaks!
Strip commands.clear() from all plugins
Fix changeitem - a variable name has changed in item flags
2012-03-29 18:37:22 +02:00
Robert Heinrich cc54d5dfa9 Merge branch 'master' of git://github.com/angavrilov/dfhack
Conflicts:
	library/xml
2012-03-29 16:12:54 +02:00
Robert Heinrich 9b75373403 Merge branch 'master' of git://github.com/peterix/dfhack
Conflicts:
	library/xml
2012-03-29 16:03:12 +02:00
Robert Heinrich 88c914142b added plugin changeitem (change material type and base quality) 2012-03-29 15:33:54 +02:00
Alexander Gavrilov a9b7c74a23 Allow assigning NULL lightuserdata to pointers, and export a global.
Otherwise there is no way to specify NULL via recursive lua table assign.
2012-03-29 14:47:33 +04:00
Alexander Gavrilov 85c91c92d8 Implement __pairs and __ipairs for DF objects.
Structs enumerate fields in memory order in pairs().
Containers & biftields enumerate int indexes in ipairs, and
string keys in pairs (i.e. using index-enum for arrays).
2012-03-29 14:39:13 +04:00
Alexander Gavrilov 17ff235c81 Use codegen.out.xml instead of static.inc in cmake code generation rules.
Now only that file is guaranteed to always be overwritten.
2012-03-29 10:59:54 +04:00
Petr Mrázek d82120a3db More fixes
Include unistd.h in linux process file
Fix assert in autolabor
Don't print 'script missing' error on DF start
2012-03-29 02:49:44 +02:00
Petr Mrázek 757ad3334c Track structures 2012-03-29 00:27:03 +02:00
Petr Mrázek 6235d2e801 Merge https://github.com/angavrilov/dfhack 2012-03-28 19:53:10 +02:00
Quietust 95ec363a7f Merge branch 'master' of https://github.com/peterix/dfhack
Conflicts:
	library/LuaTypes.cpp
	library/LuaWrapper.cpp
2012-03-28 11:51:49 -05:00
Alexander Gavrilov e4e643f9d2 Clear the command vector during plugin load and unload to avoid confusion. 2012-03-28 18:47:03 +04:00
Alexander Gavrilov b7ff7681ac Merge remote-tracking branch 'peterix/master' 2012-03-28 15:07:13 +04:00
Petr Mrázek 06188da380 Track structures 2012-03-28 12:46:50 +02:00
Petr Mrázek 40cf5fe538 Track structures 2012-03-28 11:46:23 +02:00
Alexander Gavrilov 929657bed4 Disable pointer auto-vivification unless new is specified.
Since it is essentially allocating non-gc managed objects,
it can lead to memory leaks and shouldn't happen invisibly.
Also support using the 'assign' key to request assign()
from another object before processing the current map.
2012-03-28 17:00:07 +08:00
Alexander Gavrilov fe091de0b2 Fix F keys in keybindings: they obviously don't have unicode symbols. 2012-03-28 17:00:06 +08:00
Alexander Gavrilov b76bdad50f Implement recursive transfer of values from lua to c++ structures.
E.g. df.global.cursor = { x = 1, y = 2, z = 3 }. The lua data
must be represented by raw lua tables.

For structs, the entries in the table are assigned to matching fields.

For containers, if a 'resize' field is missing or nil, the table is
treated like 1-based lua array, and the container is resized to match
its # length. Otherwise, the field must be either an explicit number,
true or false. If it is true, the size is selected by the highest index
in the table. After that, entries are copied using 0-based indices.

For pointers, the table must match the target object. If the pointer
is null, the object is auto-allocated; this can be controlled using
the 'new' field, the value of which will be passed to df.new().
2012-03-28 16:58:51 +08:00
Alexander Gavrilov ee94894516 Disable pointer auto-vivification unless new is specified.
Since it is essentially allocating non-gc managed objects,
it can lead to memory leaks and shouldn't happen invisibly.
Also support using the 'assign' key to request assign()
from another object before processing the current map.
2012-03-28 11:28:42 +04:00
Alexander Gavrilov d6e6fc483f Fix F keys in keybindings: they obviously don't have unicode symbols. 2012-03-28 11:25:55 +04:00
Quietust be2a7af362 Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-03-27 14:14:04 -05:00
Quietust 6656852fff win32 SetConsoleTextAttribute doesn't know what COLOR_RESET (-1) is 2012-03-27 13:22:45 -05:00
Alexander Gavrilov bc74c5984e Implement recursive transfer of values from lua to c++ structures.
E.g. df.global.cursor = { x = 1, y = 2, z = 3 }. The lua data
must be represented by raw lua tables.

For structs, the entries in the table are assigned to matching fields.

For containers, if a 'resize' field is missing or nil, the table is
treated like 1-based lua array, and the container is resized to match
its # length. Otherwise, the field must be either an explicit number,
true or false. If it is true, the size is selected by the highest index
in the table. After that, entries are copied using 0-based indices.

For pointers, the table must match the target object. If the pointer
is null, the object is auto-allocated; this can be controlled using
the 'new' field, the value of which will be passed to df.new().
2012-03-27 21:47:52 +04:00
Alexander Gavrilov 22d775f95c Fix sscanf parsing the memory map on linux, so that dfusion loads. 2012-03-26 21:05:24 +04:00
Petr Mrázek 4e78947b10 Track structures 2012-03-26 16:13:41 +02:00
Alexander Gavrilov 157f23be5c Fix warnings. 2012-03-26 12:42:05 +04:00
Alexander Gavrilov 00a5bfcf3e Work around a msvc issue with spurious specialization ambiguity errors. 2012-03-26 10:46:51 +04:00
Petr Mrázek 1a19e17695 Track structures, stonesense 2012-03-26 03:39:14 +02:00
Alexander Gavrilov d0090e9551 Fix lua wrapper: create one function identity instance per method.
Otherwise all methods of the same prototype are lumped into one.
2012-03-25 21:12:20 +04:00
Alexander Gavrilov 1d81cb56ba Make enum attributes accessible through the lua wrapper.
TODO: make them completely read-only.
2012-03-25 19:12:59 +04:00
Alexander Gavrilov 0412aaebe4 Add a delete() method to the objects in the lua wrapper. 2012-03-25 15:48:18 +04:00
Alexander Gavrilov 7209e4d3f2 Attach static methods to the type objects in the lua wrapper. 2012-03-25 15:20:58 +04:00
Alexander Gavrilov 8d345be6e7 Expose virtual methods in the lua wrapper. 2012-03-25 14:06:05 +04:00
Quietust 947adeac83 Silence warning 4482 2012-03-24 18:18:29 -05:00
Petr Mrázek 645e5eb2c1 track structures 2012-03-24 22:44:16 +01:00
Petr Mrázek 39f722339c Track structures 2012-03-24 17:10:45 +01:00
Alexander Gavrilov 517b2ffadb Merge remote-tracking branch 'peterix/master' 2012-03-24 16:30:07 +04:00
Alexander Gavrilov 0c7fc233bd Support resize/erase/insert for containers, and allow any index in BitArray. 2012-03-24 16:28:53 +04:00
Petr Mrázek 8a847dbaba Tweaks and cleanups
Removed t_virtual.
Made lua use C++ compiler
Removed many silly exception types from Error.h and renamed the rest.
Removed Brush classes from tiletypes plugin.
2012-03-24 12:13:51 +01:00
Alexander Gavrilov d865d54a90 Split LuaWrapper.cpp into two files. 2012-03-24 13:25:10 +04:00
Alexander Gavrilov 053bfe345c Implement allocation and copy for c++ objects in the lua wrapper. 2012-03-24 12:43:53 +04:00
Petr Mrázek 90de6a1b62 Track submodules 2012-03-23 22:59:40 +01:00
Alexander Gavrilov 2b1f8aa2bb Add a _field method that returns refs to struct and container items.
Hack: allocate ad-hoc pointer identities as full lua userdata.
2012-03-23 12:55:29 +04:00
Alexander Gavrilov 6b2006361d Add a _displace method that implements offsetting a pointer by an int. 2012-03-23 11:54:59 +04:00
Alexander Gavrilov 78437310d0 Add a sizeof method/function to retrieve object/type size and address. 2012-03-23 11:30:54 +04:00
Alexander Gavrilov ccc8fac166 Get rid of the write mode field table in metamethods.
Two separate tables can be confusing, e.g. if a builtin field
overrides a writable custom one only in the read table.
2012-03-23 10:56:29 +04:00
Alexander Gavrilov ead28db451 Remove the return type from lua_read, because it always returns 1. 2012-03-23 09:38:49 +04:00
Alexander Gavrilov 27824642d9 Minor refactoring of container indexing and object allocation. 2012-03-22 10:56:32 +04:00
Alexander Gavrilov ad10303cec Implement bitfields and add a _kind metadata field to types and objects. 2012-03-21 20:04:37 +04:00
Alexander Gavrilov 9b78fffe92 Support containers in the lua wrapper. 2012-03-21 13:26:53 +04:00
Alexander Gavrilov 73e138c9fd Support ordinary struct and class fields. 2012-03-20 21:34:27 +04:00
Alexander Gavrilov 6c661bcaa9 Add support for primitive type fields in lua wrapper. 2012-03-20 13:56:29 +04:00
Alexander Gavrilov dbbd9acfad Export the type tree with enum keys to lua. 2012-03-19 20:12:27 +04:00
Alexander Gavrilov 296d3a0af3 Skeleton type metadata for future use in lua bindings. 2012-03-19 16:59:11 +04:00
Alexander Gavrilov bfb226b92e Add a few comments. 2012-03-19 11:33:30 +04:00
Quietust cf58876a8e Need to return a value here 2012-03-18 14:42:36 -05:00
Alexander Gavrilov d4626f9751 Add unit professions and filtering on status. 2012-03-18 15:35:38 +04:00
Alexander Gavrilov e33414fa69 Export unit curse, squad, death and burrow info. 2012-03-18 13:52:39 +04:00
Alexander Gavrilov 415ae35dff Add RPC calls to query some global state. 2012-03-18 12:09:06 +04:00
Alexander Gavrilov b9ecd03fe2 Make the server suspend the core around calls unless disabled.
I expect the majority of methods will have to suspend the core
first thing anyway, so this will reduce typing and bugs.

Also get rid of the "me->" ugliness by splitting threadFn.
2012-03-18 11:04:15 +04:00
Alexander Gavrilov aa63493bb8 Add a ListSquads request. 2012-03-17 20:04:15 +04:00
Alexander Gavrilov 3d80a1ee35 Use a more obscure serialize method to avoid recalculating byte size. 2012-03-17 17:52:23 +04:00
Alexander Gavrilov 368b92f81f Add a RPC call to retrieve unit info.
For performance reasons, material flag arrays are changed to use ints,
with enum item name mappings retrievable via a different RPC call.
2012-03-17 17:41:56 +04:00
Alexander Gavrilov 15ccfbb086 Add a ListMaterials remote call for bulk download of basic material info. 2012-03-17 15:36:42 +04:00
Alexander Gavrilov 58eb199036 Add many new template functions for enums & bitfields.
An incompatible change: ENUM_KEY_STR returns std::string now.
The old behavior is available via enum_item_key_str function.
2012-03-17 12:52:22 +04:00
Alexander Gavrilov 14d6a62e1d Move CoreService to a separate file. 2012-03-17 12:09:30 +04:00
Petr Mrázek 3168a2ef62 Add a tiletype function to get basic shapes from shapes. Track modules. 2012-03-16 20:41:07 +01:00
Alexander Gavrilov 976fa18d72 A number of interface tweaks in RemoteClient.
- Associate a default output stream with the whole connection.
  If not explicitly specified in the constructor, uses stdout.
- Add methods that use this default stream to RemoteFunction.
- Add easily usable wrappers for CoreSuspend and CoreResume.
2012-03-16 14:11:46 +04:00
Quietust 5464564ef6 Merge branch 'master' of git://github.com/angavrilov/dfhack
Conflicts:
	library/xml
2012-03-15 20:12:01 -05:00
Quietust 4d66218783 Update bprobe to print civzone subtypes 2012-03-15 20:09:56 -05:00
Petr Mrázek c72fb76316 MSVC fixage for the new socket API 2012-03-15 22:05:33 +01:00
Quietust 52aca6e05a Rename "interface" to "interfacest" and just avoid all of these MSVC problems 2012-03-15 13:00:47 -05:00
Quietust 57a41a0deb Fix indentation 2012-03-15 11:50:38 -05:00
Alexander Gavrilov f84b1539a8 Change to the traits representation of enum and bitfield properties. 2012-03-15 20:46:08 +04:00
Petr Mrázek e5efbc5895 Merge https://github.com/angavrilov/dfhack 2012-03-15 15:40:35 +01:00
Petr Mrázek 1ac8025025 Merge https://github.com/angavrilov/dfhack
Conflicts:
	plugins/workflow.cpp
2012-03-15 14:43:05 +01:00
Alexander Gavrilov 4eb4811777 Make the DF suspend lock recursive, and add RPC calls for batch suspend.
The idea is that if you have to execute many RPC calls, it is
faster to suspend once. The service class takes care to auto-resume
in the destructor in case the client just disappears.
2012-03-15 15:33:19 +04:00
Alexander Gavrilov 605ee9669a Plugin-exported functions now actually work. 2012-03-15 14:06:50 +04:00
Alexander Gavrilov 87f925e72e Add support for exporting functions from plugins, with example in rename.
TODO: test by actually calling them remotely.
2012-03-15 13:01:23 +04:00
Alexander Gavrilov e7851f5abd Improve support for void RPC functions, dfhack-run, etc. 2012-03-15 11:07:43 +04:00
Alexander Gavrilov 560e977f05 Implement trivial RPC interface for dfhack via TCP & protobufs.
Use it to make an executable capable of calling commands remotely.
2012-03-14 19:57:29 +04:00
Alexander Gavrilov c42e2ff053 Support crafts and add a couple of options in workflow. 2012-03-14 12:09:02 +04:00
Alexander Gavrilov a05cbcc2de Rename the world substruct with the save directory name. 2012-03-14 10:56:30 +04:00
Petr Mrázek d75908b95c Merge https://github.com/ClaytonHughes/dfhack
Conflicts:
	library/Core.cpp
	plugins/workflow.cpp

Just had to fix a few minor things.
2012-03-14 01:52:58 +01:00
Quietust a4ce1fff13 Update MapCache to allow decoding tiles underneath ice and constructions, and allow revflood to take those into account 2012-03-13 15:40:38 -05:00
Quietust 8e933fb75e Ignore the .rule file too 2012-03-13 12:17:00 -05:00
Petr Mrázek 9079ffa4ff Add clsocket as a dependency for dfhack lib. 2012-03-13 17:10:46 +01:00
Petr Mrázek eb4757043b Move depends out of main library, make them (static) libraries. 2012-03-13 14:46:48 +01:00
Petr Mrázek b3f6bccdf6 Merge branch 'cleanups' of https://github.com/plaes/dfhack 2012-03-12 15:05:44 +01:00
Petr Mrázek ea8a2ad9a2 Remove references to never implemented commands... 2012-03-12 15:05:23 +01:00
Clayton Hughes 4cb8995a05 Fixed script loading improperly checking for errors.
Also closed the file for good measure.  I couldn't find any documentation that said that ~ifstream() did this.
2012-03-12 00:33:59 -07:00
Clayton Hughes 445b580ad1 Added 'script' command to load DFHack scripts from file. Syntax is the same as dfhack.init / interactive. 2012-03-11 23:31:29 -07:00
Petr Mrázek db93b548db Check for a valid plugin_shutdown function when unloading plugins
Fixes related segfault
2012-03-11 23:07:38 +01:00
Petr Mrázek 32cc4c8928 Fix MSVC build error related to min and max macros
Tinythread was leaking those.
2012-03-10 20:47:10 +01:00
Petr Mrázek 75113b715a Misc fixes for warnings... 2012-03-10 16:03:11 +01:00
Petr Mrázek cff654bca6 Track structures 2012-03-10 15:51:50 +01:00
Petr Mrázek 003a0f9eb8 Merge https://github.com/angavrilov/dfhack 2012-03-10 15:51:45 +01:00
Petr Mrázek 50b7db982f Fix zlib, protobuf.
Zlib is now found using CMake on linux and set to harcoded paths
on windows, yet uniform in use throughout the build system.

protobuf-lite now compiles under MSVC properly.
2012-03-10 15:31:46 +01:00
Alexander Gavrilov 8cc82d5876 Make plugins accept explicit output stream references.
This is an incompatible change to the plugin ABI.

The Console is not thread-safe unless used indirectly
via color_ostream_proxy, so everything should use their
per-thread stream.
2012-03-10 15:55:42 +04:00
Alexander Gavrilov b2737e2bed Pull out a colored text output interface out of the Console class. 2012-03-10 13:29:33 +04:00
Petr Mrázek c260aca3f1 Merge https://github.com/angavrilov/dfhack 2012-03-10 02:15:34 +01:00
Alexander Gavrilov 75c569b097 Add some experimental message definitions to the main library. 2012-03-09 21:42:22 +04:00
Alexander Gavrilov edf77cf270 Link protobuf to dfhack core as a shared library.
- Change protobuf libraries to build as DLLs.
- Move some stream features to the lite library.
- Install the lite library and use it from dfhack.

Note that:

- A couple of protobuf headers had to be tweaked.
- The lite library is used because the full one is
  absolutely incompatible with reloading plugins.
- Shutting down protobuf also can't be allowed.
2012-03-09 19:46:21 +04:00
Clayton Hughes 47bbe1a3ff Fixed up formatting, debug messages in new Windows Hotkey stuff. 2012-03-09 01:07:47 -08:00
Clayton Hughes 3d1ce32785 Windows now detects hotkeys using the correct keyboard layout. 2012-03-09 00:56:09 -08:00
Petr Mrázek 3598282ed7 Update readme, track df2mc and structures 2012-03-07 23:40:22 +01:00
Petr Mrázek b6df6c2eff Track structures 2012-03-07 21:02:46 +01:00
Alexander Gavrilov 9b071097de Fix advtools metal-detector
Trader items are now inside tables, and thus not in the block
item lists. Thus it is necessary to scan the global item vector
and look up blocks by coords.
2012-03-07 18:10:53 +04:00
Petr Mrázek f83db86258 Use tile buffers! 2012-03-05 02:24:02 +01:00
Petr Mrázek a45fc82743 First pass at windowing, track df2mc, stonesense 2012-03-05 01:34:04 +01:00
Petr Mrázek 6aa2a3e676 Track structures 2012-03-04 11:58:41 +01:00
Petr Mrázek 99abd4102d Merge https://github.com/quietust/dfhack 2012-03-04 11:58:37 +01:00
Petr Mrázek d33e9a9770 Sort layer materials in prospector by depth. 2012-03-03 23:18:12 +01:00
Quietust 2b2c30ac43 DEEP_ANY got renamed to SPECIAL 2012-03-03 16:03:35 -06:00
Petr Mrázek 7fe8762852 Get rid of Simple namespace, Gui module is now a namespace. 2012-03-03 14:38:24 +01:00
Petr Mrázek 022822277d Fix the ugly Materials code... 2012-03-01 01:52:13 +01:00
Petr Mrázek 2682c54fce Fix horrible errors and make MSVC shut upt about non-issues. 2012-03-01 01:29:55 +01:00
Petr Mrázek c6fd508ee3 Fix possible source of vile errors. 2012-03-01 00:33:11 +01:00
Petr Mrázek a322b3ad87 Track structures 2012-02-29 17:44:51 +01:00
Petr Mrázek f0fc0d4428 Bump version to 0.34.03-r1, update docs to list new plugins. 2012-02-28 22:30:55 +01:00
Petr Mrázek a13717212a Track structures 2012-02-28 19:05:55 +01:00
Petr Mrázek d1a1c790ec Paint DFHack in corner if supported. 2012-02-28 18:19:13 +01:00
Petr Mrázek 95ac3db542 Fix normal hooks. 2012-02-28 12:59:02 +01:00
Petr Mrázek 731472a478 Add eggy hooks (linux only for now) 2012-02-28 03:37:56 +01:00
Petr Mrázek f8721c88b5 dev version. update structures, stonesense 2012-02-27 20:10:31 +01:00
Petr Mrázek 8afafd0430 Get rid of ntdll, update stonesense 2012-02-25 22:59:32 +01:00
Petr Mrázek 75bec0dfb2 fix spatter objects 2012-02-25 21:17:45 +01:00
Alexander Gavrilov ad7b9d42a1 Add a command for swapping body with another units in adventure mode.
Based on dfusion code, with lots of safety checks added. Supports two
swap modes: transient and permanent; the former does a minimal change
and is intended for managing companion inventory. The permanent one
performs all known actions necessary to turn it into the real adventurer.

Note: the transient mode is a hack and may cause the game to crash
      if not reverted while within range of the real adventurer unit.
2012-02-25 17:08:05 +04:00
Priit Laes 1299b0d4c6 Don't compile Lua on UNIX 2012-02-23 13:49:07 +02:00
Petr Mrázek 6696e79838 Disable 34.01 symbol tables 2012-02-23 09:02:10 +01:00
Petr Mrázek 2b761e450f Add the init file to builds, mention it in readme. 2012-02-23 08:57:11 +01:00
Petr Mrázek 2371b93b3d move sortable to top level 2012-02-22 23:22:41 +01:00
Petr Mrázek 390859dd98 Update xml 2012-02-22 22:58:33 +01:00
Petr Mrázek 58e3813d56 Fix more MSVC fail, make console recognize 'man' command. 2012-02-22 19:54:07 +01:00
Petr Mrázek a9c9ac98fe Silence some MSVC warnings. 2012-02-22 19:28:40 +01:00
Petr Mrázek 15cc08debc Fix the fail. 2012-02-22 19:02:06 +01:00
Petr Mrázek 0807baf0c0 Merge https://github.com/mikestewart/dfhack 2012-02-22 15:22:19 +01:00
Petr Mrázek 8ee27e182a Hidden weather command raw value override 2012-02-22 15:21:29 +01:00
Mike Stewart baea253578 Merge remote-tracking branch 'upstream/master' 2012-02-21 23:31:53 -08:00
Mike Stewart 14b471a459 Add ability menu/area map width reading and writing to the Gui module, and use the new information in follow to properly center the screen regardless of menu configuration. Also general fixing and cleanup in follow. 2012-02-21 23:30:44 -08:00
Petr Mrázek 34c9c2d663 Fix stonesense, MSVC fail 2012-02-21 18:30:31 +01:00
Petr Mrázek 2cd2ee9b0c New plugin interface 2012-02-21 18:19:17 +01:00