Commit Graph

3486 Commits (750b3cb8850a3ce186666e0b57c4922387402d8c)

Author SHA1 Message Date
Pauli 645ec0d591 Improve kittens thread safety and shutdown with core
The bools could use acquire&release memory order or even relaxed but I
didn't think code was worth auditing for such low level optimizations.
Sequantial consistent is fast enough but much harder to use incorrectly.

The timeLast is protected by CoreSuspender lock. plugin_update is only
called when CoreSuspender lock is held.

The last_menu is protected by trackmenu_flg loads and stores.
2018-06-30 21:53:12 +03:00
Pauli 0727403ac1 Fix devel plugins linking in linux 2018-06-30 21:12:42 +03:00
lethosor 105ddd86d8 Merge remote-tracking branch 'suokko/jsoncpp_upgrade_to_submodule' into develop 2018-06-29 22:33:00 -04:00
Pauli afd942a94b ruby: Support automatic array size from index-enum 2018-06-26 23:48:54 +03:00
Pauli 1fc37f8ddc Checke Console::lineedit error return values
Console::lineedit can return -1 to indicate input error and -2 to
indicate the program is closing. But most users don't check possible
unusual return values which can lead to exit hang.
2018-06-22 17:57:37 +03:00
lethosor 9c7bd562d4 fix-unit-occupancy, autogems: stop running while embarking
Related to #1286 fix
2018-06-21 16:16:54 -04:00
lethosor 46e31305a1 Merge remote-tracking branch 'PatrikLundell/embark-assistant' into develop 2018-06-21 15:54:03 -04:00
lethosor f20dae5a4c Merge remote-tracking branch 'suokko/fix_dramp_to_check_jobs_1228' into develop 2018-06-21 15:20:41 -04:00
PatrikLundell 8e1a1851be Removed temporary comments 2018-06-21 21:00:59 +02:00
PatrikLundell 9a8e251853 Updated evil weather 2018-06-21 20:51:36 +02:00
PatrikLundell f02f4b8bcc Updated evil weather 2018-06-21 20:51:05 +02:00
PatrikLundell 91aa16216b Updated evil weather 2018-06-21 20:50:30 +02:00
PatrikLundell 1382c04696 Updated evil weather 2018-06-21 20:49:49 +02:00
PatrikLundell 14b0ea5b98 Updated evil weather 2018-06-21 20:49:08 +02:00
PatrikLundell ad5328e119 Updated evil weather 2018-06-21 20:48:35 +02:00
lethosor 42eadf97b0 Update stonesense (#1302, dfhack/df-structures#247) 2018-06-21 12:00:12 -04:00
lethosor d9917e9a1d cxxrandom: remove pragmas, fix format warnings, misc. cleanup 2018-06-21 12:00:04 -04:00
lethosor 7a5e7c7c86 Rename unit_flags1.dead to killed, update submodules/changelog
Follow-up for dfhack/df-structures#247
2018-06-21 11:17:09 -04:00
lethosor 46b6bfd3f7 Merge remote-tracking branch 'suokko/fix_stocks_to_filter_military_items_1288' into develop 2018-06-21 00:04:06 -04:00
lethosor b2fd0b062b Merge remote-tracking branch 'PatrikLundell/dead_plugins' into develop 2018-06-20 16:18:07 -04:00
Pauli 72029e7de9 Avoid closing DF if launching command-prompt from prompt 2018-06-20 22:16:23 +03:00
Pauli 9b6781f0f2 Temporary lower command-prompt when executing the command
command-prompt viewscreen may affect command execution if they are
looking for UI state. To make commands execute simillary to hotkeys or
console commands the viewscreen needs to removed from the top position.

Fixes #1194
2018-06-20 21:51:45 +03:00
lethosor cdca28ddfa Merge branch 'develop' of gh:dfhack/dfhack into develop 2018-06-20 12:10:52 -04:00
lethosor 7036cc376b Fix warnings in devel plugins introduced by #1302 2018-06-20 12:03:14 -04:00
lethosor 6077a8ce4c Merge remote-tracking branch 'suokko/printf_warnings' into develop 2018-06-20 11:25:14 -04:00
lethosor 862fa08ba6 Merge remote-tracking branch 'cppcooper/cxxrandom-rel' into develop 2018-06-20 11:00:43 -04:00
Pauli f90eebdd2d Add designation job check to deramp
Fixes #1228
2018-06-20 15:54:31 +03:00
Pauli bd0d36ec82 Fix stockpile inventory not to include inventory items
Inventory items have stale position information. The coordinates can be
very old if item is owned and continuesly carried for long time. The fix
checks if item is carried. To avoid filtering carried items that are
assigned (containers) to the stockpile the assignment needs to be
checked.

Fixes #1288
2018-06-19 18:06:28 +03:00
Pauli 9c59b7ff48 Fix unlikely memory leaks if Screen::show fails
The Screen::show takes ownership of the screen pointer. I decided to
switch the parameter to std::unique_ptr to make the pointer ownership
explicit. The unique_ptr then provides automatic screen destruction in
Screen::show unless pointer is inserted or is already in the linked list
that is managed by df.
2018-06-19 16:41:31 +03:00
Pauli 6f7ace1f6d stockpiles: Fix unusable and usable loading for weapon and armor
Fixes #1294
2018-06-14 22:22:51 +03:00
Pauli 2b79b4cce7 Use jsoncpp 1.8.4 as a submodule
This makes jsoncpp a submodule that can be build directly from git
sources. This changes depends/jsoncpp to depends/jsoncpp-sub to avoid
filename conflict if someone tries to use git bisect.

jsoncpp library name changes to jsoncpp_lib_static.

jsoncpp version is the latest tagged release.
2018-06-14 21:20:46 +03:00
lethosor aac892c560 Adapted to changed Units functions
Squashed version of #1307

Closes #1307
2018-06-14 10:30:35 -04:00
PatrikLundell cf780ce035 dead flag -> !isActive 2018-06-14 12:35:17 +02:00
PatrikLundell cac749429a dead flag -> !isActive 2018-06-14 12:34:41 +02:00
PatrikLundell 3be27a49b5 dead flag -> !isInactive 2018-06-14 12:33:18 +02:00
PatrikLundell f076d00ede dead flag -> !isActive 2018-06-14 12:32:38 +02:00
PatrikLundell b38dfe2e43 dead flag -> !isActive 2018-06-14 12:31:52 +02:00
PatrikLundell da0aa85b05 dead flag -> !isActive 2018-06-14 12:31:15 +02:00
PatrikLundell aa361f3a0d dead flag -> !isActive 2018-06-14 12:30:41 +02:00
PatrikLundell 6901c53bd5 dead flag -> !isActive 2018-06-14 12:29:48 +02:00
PatrikLundell 897a818f4c Switch to Units functions 2018-06-14 09:42:45 +02:00
lethosor 39194e5e38 Merge remote-tracking branch 'suokko/cxx14_enabling' into develop (actually c++11) 2018-06-13 16:08:41 -04:00
lethosor cddb1b59e1 title-version: move to bottom of options screen
This avoids overlapping the window border when a world is loaded
2018-06-13 15:57:13 -04:00
lethosor de0521e618 title-version: add to options screen 2018-06-12 16:38:53 -04:00
lethosor 40d0d946a4 autogems: avoid crash with non-workshop links, add some logging
Also update changelog, including revflood change

Fixes #1303
2018-06-12 12:17:04 -04:00
Pauli 8f2cf3ad26 Fix printf format warnings 2018-06-11 19:57:06 +03:00
Pauli 01abcb756e Request c++14 support from compilers
All platforms seems to either have compiler supporting c++14. Windows
already requires msvc2015 that supports c++14 which should make it
minimal issue to require c++14 support from all compilers because gcc
is pretty easy to upgrade.
2018-06-10 23:15:33 +03:00
Quietust 8717144f14 Fix revflood bug, was revealing some tiles from below inappropriately
When scanning floor tiles from below, don't just leave them hidden, but
skip checking neighbors as well
2018-06-09 14:19:52 -06:00
lethosor 7e57450e78 Change buildingplan quality adjustment keys per #1284 comment, for consistency 2018-06-08 22:25:56 -04:00
lethosor c4692b1c8d Merge remote-tracking branch 'TotallyGatsby/buildingplanmax' into develop 2018-06-08 22:07:54 -04:00
PatrikLundell 0ec3df6022 dead/killed flags 2018-06-08 11:09:11 +02:00
PatrikLundell 654f798b83 dead/killed flags 2018-06-08 11:08:35 +02:00
lethosor 03968db344 Fix GCC warnings in 'tweak kitchen-prefs-all' and dev plugins 2018-06-01 10:02:38 -04:00
lethosor f57327e7c8 Fix periodic events in several plugins
Also stop running buildingplan/fortplan while loading a world, and stop running
autogems while paused

Fixes #1286
2018-05-29 23:24:02 -04:00
Vitaly Pronkin 06b9dc0c1c remove trailing spaces 2018-05-25 12:43:30 +12:00
Vitaly Pronkin a44f5b57cb don't need this 2018-05-25 01:34:57 +12:00
Vitaly Pronkin 0217916568 mousequery plugin with TWBT modifications 2018-05-25 01:07:12 +12:00
lethosor e206a6d88b mousequery: leave menus safely, without looping
Fixes #1285
2018-05-22 16:37:44 -04:00
lethosor 5f81cac3b7 dwarfmonitor.lua: use dmerror() consistently 2018-05-21 21:23:52 -04:00
Phillip Spiess 3e54a136fd Use two keys for min/max 2018-05-20 20:50:42 -07:00
Phillip Spiess 385ac3f9f5 Add 'Max Quality' setting to buildingplan 2018-05-20 14:36:50 -07:00
lethosor 50a863a48e Fix Kitchen.h include (case-sensitive) 2018-05-17 20:11:46 -04:00
lethosor b551e70ffa prospector: Avoid crashing due to invalid vein materials
Fixes #1276, ref #1277
2018-05-17 19:56:48 -04:00
lethosor 759ba5c420 New tweak: kitchen-prefs-all
Options to toggle brew/cook for all listed items

Also fixed kitchen lua docs and moved kitchen search option
2018-05-17 19:47:56 -04:00
lethosor 17ba492992 Add some exclusion functions to Kitchen module, expose to Lua, fix build 2018-05-17 19:34:03 -04:00
lethosor fa8a2fa670 Merge branch 'develop' of gh:dfhack/dfhack into develop 2018-05-17 00:12:59 -04:00
lethosor 79a0794658 Add kitchen preferences search 2018-05-17 00:11:52 -04:00
Japa b6c6b4a8a0
Merge pull request #1252 from JapaMala/remote_reader
Bump RFR version number.
2018-05-17 07:48:18 +05:30
lethosor c85274eb01 tweak max-wheelbarrow: fix conflict with building renaming
Reported by xordae on bay12:
http://www.bay12forums.com/smf/index.php?topic=164123.msg7762438#msg7762438
2018-05-16 16:51:45 -04:00
lethosor 0be16d4422 New tweak: stone-status-all
Adds an option to toggle the economic status of all stones

Also suggested by xq on IRC
2018-05-14 22:54:20 -04:00
lethosor 914b376082 Add stone status search
Suggested by xq on IRC
2018-05-14 22:30:21 -04:00
Ben Lubar ee85ed4011
Remove $(NOINHERIT) from Stonesense 2018-05-14 00:56:18 -05:00
Ben Lubar f838b5695d
Remove $(NOINHERIT) which was inexplicably included in a bunch of plugins. 2018-05-14 00:12:22 -05:00
lethosor 06031bdd0e Merge branch 'develop' of gh:dfhack/dfhack into develop 2018-05-13 13:11:29 -04:00
lethosor e2cd1fca58 Reorder dfhack-md5 GCC flags, fix another embark-assistant warning 2018-05-13 13:09:51 -04:00
Ben Lubar 586051510c
Update stonesense. 2018-05-13 10:38:59 -05:00
lethosor 016dab3990 Fix more warnings, including stonesense 2018-05-12 22:10:07 -04:00
lethosor e9ec08f419 Add Buildings::getRoomDescription(), moved from search plugin, +cleanup 2018-05-12 17:00:21 -04:00
lethosor 7d0df117ee dwarfmonitor: fix typo in function name 2018-05-12 14:59:26 -04:00
lethosor ad518faeec cursecheck: Replace setUnitNickname (older) with Units::setNickname 2018-05-12 14:59:04 -04:00
lethosor c15571caa0 Move isRouteVehicle, isSquadEquipment from workflow to Items module 2018-05-12 14:49:30 -04:00
lethosor abb903d28f command-prompt: support getSelectedPlant() 2018-05-12 13:02:52 -04:00
lethosor a34b34d3cb Move a few item functions from autotrade/stocks into DFHack::Items 2018-05-12 12:04:46 -04:00
Lethosor fbe652d7a0
Merge pull request #1265 from db48x/allow-calling-blueprint-from-lua
this allows the blueprint plugin to be called from lua
2018-05-11 23:52:16 -04:00
lethosor 018deec912 Fix another occasional segfault in block-labors
Fixes #1057
2018-05-11 22:18:26 -04:00
lethosor 9d353c1ea7 tweak block-labors: fix crash if unit is null
Fixes #1057
2018-05-11 10:21:05 -04:00
Ben Lubar 58636f5a27
Make 32-bit Linux builds also check for undefined symbols. 2018-05-10 11:20:19 -05:00
lethosor 8e76c612f6 Add SDL to RFR libs on Linux 2018-05-09 21:48:27 -04:00
lethosor 77ee74be50 Only require symbols to be defined in plugins
Core uses some unresolved symbols on Linux
2018-05-09 21:36:51 -04:00
Daniel Brooks a550c81628 update the CMakeList to link the blueprint plugin against the lua library 2018-05-09 18:25:26 -07:00
Daniel Brooks b127522992 Merge branch 'develop' into allow-calling-blueprint-from-lua 2018-05-09 12:55:17 -07:00
lethosor 2ada907420 Move stockpiles option (load/save) below stocks/autodump/etc
Fixes #1161
2018-05-09 10:33:41 -04:00
lethosor ead0092765 Ignore added stockpile keys when renaming stockpiles
Fixes #1267
2018-05-09 10:25:55 -04:00
lethosor 2a52582c1f Add Gui::inRenameBuilding 2018-05-09 10:23:05 -04:00
Daniel Brooks d15f87715e update comments 2018-05-08 13:04:14 -07:00
Daniel Brooks 554814920b this allows the blueprint plugin to be called from lua 2018-05-08 11:42:41 -07:00
lethosor 9d7feaf39d autogems: load blacklist from autogems.json
Closes #1027
2018-05-05 12:49:06 -04:00
lethosor 60d1c270c2 Display autogems config option 2018-05-04 23:07:21 -04:00
Josh Cooper bc32d15bea [Release] cxxrandom v2.0
Major Revision
update v2.0
=-=-=-=-=
Native functions(exported to lua):
-GenerateEngine:  returns engine id              (args: seed)
-DestroyEngine:   destroys corresponding engine  (args: rngID)
-NewSeed          re-seeds engine                (args: rngID, seed)
-rollInt          generates random integer       (args: rngID, min, max)
-rollDouble       generates random double        (args: rngID, min, max)
-rollNormal       generates random normal[gaus.] (args: rngID, avg, stddev)
-rollBool         generates random boolean       (args: rngID, chance)
-MakeNumSequence  returns sequence id            (args: start, end)
-AddToSequence    adds a number to the sequence  (args: seqID, num)
-ShuffleSequence  shuffles the number sequence   (args: rngID, seqID)
-NextInSequence   returns the next number in seq.(args: seqID)

Lua plugin functions:
-MakeNewEngine    returns engine id              (args: seed)

Lua plugin classes:
-crng
    methods:
        -init(id, df, dist)     :: constructor
            id                           - Reference ID of engine to use in RNGenerations
            df (optional)                - bool indicating whether to destroy the Engine when the crng object is garbage collected
            dist (optional)              - lua number distribution to use
        -__gc()                 :: destructor
        -changeSeed(seed)       :: alters engine's seed value
        -setNumDistrib(distrib) :: set's the number distribution crng object should use
            distrib                      - number distribution object to use in RNGenerations
        -next()                 :: returns the next number in the distribution
        -shuffle()              :: effectively shuffles the number distribution
-normal_distribution
    methods:
        -init(avg, stddev)      :: constructor
        -next(id)               :: returns next number in the distribution
            id                           - engine ID to pass to native function
-real_distribution
    methods:
        -init(min, max)         :: constructor
        -next(id)               :: returns next number in the distribution
            id                           - engine ID to pass to native function
-int_distribution
    methods:
        -init(min, max)         :: constructor
        -next(id)               :: returns next number in the distribution
            id                           - engine ID to pass to native function
-bool_distribution
    methods:
        -init(min, max)         :: constructor
        -next(id)               :: returns next boolean in the distribution
            id                           - engine ID to pass to native function
-num_sequence
    methods:
        -init(a, b)             :: constructor
        -add(num)               :: adds num to the end of the number sequence
        -shuffle()              :: shuffles the sequence of numbers
        -next()                 :: returns next number in the sequence

Adds missing function exports.

Fixes numerous problems I won't go into
2018-04-29 21:08:44 -07:00
Josh Cooper 23b2d5eba5 Merge branch cxxrandom
Implements helper functions for random number generation.
Implemented using C++11 <random> library.

Exported Lua Functions:
- seedRNG(seed)
- rollInt(min, max)
- rollDouble(min, max)
- rollNormal(mean, std_deviation)
- rollBool(chance_for_true)
- resetIndexRolls(string, array_length)  --String identifies the instance of SimpleNumDistribution to reset
- rollIndex(string, array_length)        --String identifies the instance of SimpleNumDistribution to use
                                         --(Shuffles a vector of indices, Next() increments through then reshuffles when end() is reached)

 On branch cxxrandom-rel
 Changes to be committed:
   modified:   plugins/CMakeLists.txt
   new file:   plugins/cxxrandom.cpp
   new file:   plugins/lua/cxxrandom.lua

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Squashed commit of the following:

commit 3a7ef70d45f3e0c2fe367141dd0349dddaaff60d
Merge: fd9f1982 7aa0608c
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Fri Dec 22 22:17:27 2017 -0800

    Merge remote-tracking branch 'origin/temp' into cxxrandom

commit 7aa0608cb85dcf82686193db7a6e9d1318f5f2a5
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Thu Dec 21 21:43:35 2017 -0800

    Revises cxxrandom plugin

    New functions:
    - seedRNG(ushort seed)
        --lua exported
    - GetDistribContainer()
        --internal singleton
    - RNG()
        --internal singleton

    Summary:
    - Removed class CXXRNG
        --Refactored functions that used CXXRNG

     Changes to be committed:
            modified:   plugins/cxxrandom.cpp

commit b42979818a01c1121eace7b1ac14676f5ad5d8b2
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Wed Dec 20 13:21:49 2017 -0800

    Fixes plugin_init()

    Misread the lines indicated by lethosor to be excluded, had broken the plugin in the process.
     Changes to be committed:
    	modified:   plugins/cxxrandom.cpp

commit 753a00a14d9e6519d299638e014abf30509940af
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Wed Dec 20 12:36:17 2017 -0800

    Cleans up cxxrandom.cpp

    DFHack contributions specifies:
    -spaces instead of tabs, so tabs were converted.
    -C++ headers before dfhack stuff, so it was done

    *Also added author name, creation date, and last updated date.

     Changes to be committed:
    	modified:   plugins/cxxrandom.cpp

commit 498ebe4b8fdccc01ac1f169269f3093c830a8a10
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Tue Dec 19 22:51:58 2017 -0800

    Updates cxxrandom, fixes instance leak

    deleted header
    moved definition to cpp file #lethosor

    fixed singleton instance, no longer a pointer
    commented out dfhack commands, now only init/shutdown and exported lua functions

    	modified:   cxxrandom.cpp
    	deleted:    cxxrandom.h

commit 821044bef2a0201d0d74192e445c7b29766b42a1
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Sun Dec 17 04:01:11 2017 -0800

    Fixes RollIndex and Renames RollNormal

    Renamed the Normal Distribution RNG function to fit the standard.
    Now named RollNormal(m,s)

    Fixed some wonky white space in the lua macro export block.

    Fixed a stupid mistake with the RollIndex output. (it was outputting 0's)

    Updated usage details.

     Changes to be committed:
    	modified:   plugins/cxxrandom.cpp

commit 1536f43d137b6bc55d55759b43bdccf6ff429b33
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Fri Dec 15 08:50:08 2017 -0800

    Fixes/Improves cxxrandom

    Modified return types
    Corrected index distribution code

commit 8629c7e1509522cb0cc4b649914b90d033cb4763
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Thu Dec 14 19:02:29 2017 -0800

    Implements SimpleNumDistribution

    Exported additional functions to lua.
    Functions allow the generation of random 0-N index values.
    Generation promises all unique values [0,N] will be returned once each when generation is run N times.

     On branch cxxrandom
     Changes to be committed:
    	modified:   plugins/cxxrandom.cpp
    	modified:   plugins/cxxrandom.h

commit f035f3d20415790542cf83e5e696261661d911f3
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Wed Dec 13 23:55:39 2017 -0800

    Implements cxxrandom

    cxxrandom was implemented using a singleton.
    This singleton provides an interface for generating uniform numbers, or numbers in a normal distribution, and also booleans(given the probability for the true outcome)
    The singleton interface is wrapped in functions which are exposed for lua usage.

    Integrated into plugins/CMakeLists.txt

     On branch dev
     Changes to be committed:
    	modified:   CMakeLists.txt
    	new file:   cxxrandom.cpp
    	new file:   cxxrandom.h
    	new file:   lua/cxxrandom.lua
2018-04-29 21:08:44 -07:00