Commit Graph

1814 Commits (d6bbb6808b5705aa1b3344961b3eb155797eef9e)

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