Commit Graph

1887 Commits (6fa3f92f2134cb4e6f079e582302d7978c97b724)

Author SHA1 Message Date
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
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