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