Commit Graph

386 Commits (9ad8d767b4fcf0946444469d2c4072d46997b7e6)

Author SHA1 Message Date
Quietust c0a0702882 Improve error handling within Maps module - only throw exceptions if there's no meaningful return type 2012-01-19 22:11:43 -06:00
Quietust e7ecda1434 Kill the Maps module 2012-01-19 21:44:17 -06:00
Quietust e7dcd4c66a Fix stupid typo 2012-01-19 14:57:55 -06:00
Quietust 4bb724cd6c Significant cleanup of Maps module - next step will be to kill it properly 2012-01-19 14:11:52 -06:00
Alexander Gavrilov 7db467a740 Update code to accomodate the new coord/coord2d/coord_path structs.
Also replicate the methods of DFCoord.
2012-01-19 14:30:22 +04:00
Quietust 35ad84c58a angavrilov changed general_ref_type to be all uppercase 2012-01-18 08:26:08 -06:00
Quietust fd653a0227 Kill the Items module 2012-01-16 22:12:58 -06:00
Quietust 9d8c67b710 Kill the Kitchen module (which was never really a proper module to begin with) 2012-01-16 21:22:42 -06:00
Quietust 7c5835d318 t_itemref -> df::general_ref 2012-01-16 20:40:29 -06:00
Quietust 64b55acf37 df_item -> df::item, t_itemflags -> df::item_flags 2012-01-16 20:16:16 -06:00
Quietust e82055986e Only use #include <> for system libraries - for everything else, use "" 2012-01-15 14:54:14 -06:00
Petr Mrázek d972b07d57 Merge https://github.com/quietust/dfhack
Conflicts:
	plugins/autodump.cpp
	plugins/cleaners.cpp
2012-01-15 19:51:34 +01:00
Alexander Gavrilov bcb51d8ff7 Use the announcement API to report starting and stopping workflow jobs. 2012-01-15 15:39:20 +04:00
Alexander Gavrilov 0f56611edc Support showing announcements, as suggested by Q. 2012-01-15 15:19:20 +04:00
Alexander Gavrilov a31542862a Add utility functions to retrieve the selected job/unit/item.
Units can be selected via 'u', 'j', 'v' and 'k'; full-screen
unit details view not supported.

Items can be selected via 't', 'k', 'v'->inventory.

Also, when viewing a container item full-screen, the selected
contained item or unit is returned; never the container itself.

The api is used in rename to allow setting nicknames for
arbitrary units, including animals and enemies.
2012-01-14 19:31:43 +04:00
Quietust 555183cb25 Remove unreferenced variables 2012-01-11 10:57:05 -06:00
Quietust 6d2ce7b8a9 Add default return value to MaterialInfo::matches 2012-01-11 10:50:38 -06:00
Alexander Gavrilov 9a86087db5 Add timeouts when a job is cancelled, and color the command output. 2012-01-11 20:04:04 +04:00
Alexander Gavrilov 7f5aa4de62 Support the most important job types in workflow. 2012-01-10 17:23:37 +04:00
Petr Mrázek 571498ea21 Vermin tweaks. 2012-01-10 00:45:43 +01:00
Alexander Gavrilov 50386f66a3 Update structures and implement modifying the job_item item type. 2012-01-09 16:20:17 +04:00
Alexander Gavrilov ea790f1346 Move a few functions into the core, and add some more. 2012-01-08 20:02:12 +04:00
Alexander Gavrilov 64a9a49ec0 Merge remote-tracking branch 'origin/master' 2012-01-08 16:19:58 +04:00
Petr Mrázek 8a46386502 Dissolve vermin module. 2012-01-08 06:59:52 +01:00
Petr Mrázek 72016d9188 Buildings aren't a module anymore, fix probe segfaults. 2012-01-08 02:22:13 +01:00
Alexander Gavrilov 07ad9ad972 Add persistent data storage in fake historical figure names. 2012-01-07 19:21:31 +04:00
Alexander Gavrilov f5e121a196 Move a bunch of stuff from the jobutils plugin into the core. 2012-01-07 19:21:07 +04:00
Petr Mrázek a2cad00dbb Remove GetCustomWorkshopType, custom workshop types are now saner. 2012-01-06 01:08:30 +01:00
Petr Mrázek 756b8131c1 Small fix in Buildings, update stonesense. 2012-01-06 00:09:49 +01:00
Petr Mrázek 72a4698968 Merge https://github.com/angavrilov/dfhack 2012-01-05 23:54:33 +01:00
Petr Mrázek 78a98de37e Fix MSVC builds, break buildings :D 2012-01-05 23:39:14 +01:00
Alexander Gavrilov 687245abd9 Allow setting job item materials. 2012-01-05 22:04:05 +04:00
Alexander Gavrilov 99dda069de Update data definitions. 2012-01-04 18:46:39 +04:00
Petr Mrázek 86464b99cc Remove DfVector, break MSVC builds until further notice. 2012-01-04 01:45:11 +01:00
Alexander Gavrilov f8814909a9 Move the MaterialInfo class to the main library. 2012-01-03 19:25:55 +04:00
Petr Mrázek f35cdb84cd Merge https://github.com/angavrilov/dfhack
Conflicts:
	library/Core.cpp
	library/PluginManager.cpp
	library/include/Core.h
	library/include/PluginManager.h
	library/modules/Gui.cpp
	plugins/stockpiles.cpp
2011-12-31 13:09:12 +01:00
Petr Mrázek 9db20bd84d Header changes/cleanup. 2011-12-31 12:48:42 +01:00
Alexander Gavrilov b652ec4132 Implement context-sensitive keybinding support.
Allow defining commands with guard conditions, and binding
one or more commands to alphabetic and function keys. When
the relevant key is pressed, the first listed command with
successfully evaluated guard is chosen.

For consistency, the guard is also checked when the command
is invoked from the console; this requires suspending the
core inside PluginManager, before invoking plugin code.
2011-12-31 13:25:46 +04:00
Petr Mrázek b36e5ac248 Add missing files. 2011-12-07 20:50:37 +01:00
Petr Mrázek f7d78539d3 Renaming Creatures to Units 2011-12-02 10:56:40 +01:00
Petr Mrázek 44dad25690 No nullptr, propector -> prospect 2011-11-14 09:24:36 +01:00
Petr Mrázek 4f0695a6d5 Messing with materials. 2011-11-03 04:30:59 +01:00
Petr Mrázek a29bb4578f Move kitchen exclusion module methods to a source file. 2011-10-30 03:20:54 +01:00
Petr Mrázek bfc8df3005 Added plant raw struct 2011-10-28 04:40:35 +02:00
Petr Mrázek b545de7f43 Items refactor. readItem turned into copyItem, most Items methods now accept plain df_item * instead of the copies. 2011-10-26 22:18:13 +02:00
Petr Mrázek 866b63f567 More of the items overhaul 2011-10-25 13:30:41 +02:00
Petr Mrázek 2adf1d22eb Item description method found! 2011-10-25 05:31:37 +02:00
Petr Mrázek 04495a304c Kill item variable accessors. YES. 2011-10-25 04:48:06 +02:00
Petr Mrázek a83d9fa944 Added mouse position and designation coord, along with a 'trackpos' command for kittens plugin. 2011-09-26 03:39:27 +02:00
Petr Mrázek dc81367a68 Gems are now properly detected in prospector. Nuked some legacy garbage. 2011-09-24 06:48:06 +02:00
Petr Mrázek 1df71d2b7a More tweaks related to creatures, murder implication flag for items/corpse pieces. 2011-09-21 13:47:12 +02:00
Petr Mrázek dca4c43b0b Creatures module rewrite 2011-09-18 13:49:10 +02:00
Petr Mrázek 4d6ad9e073 A whole bunch of fixes for crash bugs. 2011-08-05 05:02:36 +02:00
Petr Mrázek be358ec1de Ported deramp, cleanowned and cleartask tools. 2011-08-05 00:41:31 +02:00
Petr Mrázek 331ada8f91 Don't take over console in TEXT mode. 2011-08-01 03:31:52 +02:00
Petr Mrázek 9cf69164ed BitArray implementation, now used in Maps for the flags. 2011-07-30 16:47:49 +02:00
Petr Mrázek a9a3a3ff5f Merge branch 'topic_tools' 2011-07-28 02:36:25 +02:00
Petr Mrázek 8dec3546a3 More plugin work 2011-07-26 11:01:16 +02:00
Petr Mrázek d65f5596cb Ported mode, probe. Some changes required for that. 2011-07-25 10:14:58 +02:00
Petr Mrázek a8ff3d9d48 Merge pull request #116 from matthew-cline/TOPIC-items
Improved Items module and itemhacks plugin
2011-07-25 01:10:07 -07:00
Matthew Cline 109f34cd6e Improved Items module and itemhacks plugin
Items module:
* Identified flags for "owned by hostile" and "owned by trader".
* Identified an unknown uint32_t field as being the item age.
* Added and documented ClassNameCheck for more item ref types, though
  they aren't used yet (other than to mark that item ref class as a
  "known" class).
* Added method to get list of an item's unknown item ref classes.
* Made all unknown flags have name 'unk#', instead of some also having
  the name 'u_ngrd#'.

Itemhacks plugin:
* Folded second command into "dumpitems unknown", which will list
  any items which have the unknown vector field non-empty (which seems
  to be associated with tasked items).
* "dumpitems unknown" will also dump any item with a set unknown flag
  or with item refs of an unknown class.
2011-07-24 21:35:50 -07:00
Petr Mrázek bd9643c8cc Merge branch 'dfapi'
Conflicts:
	CMakeLists.txt
	library/DFProcess-linux.cpp
	library/include/dfhack-c/modules/Creatures_C.h
	library/include/dfhack/modules/Maps.h
	library/modules/Creatures_C.cpp
2011-07-23 17:29:05 +02:00
Petr Mrázek 6b6eed34cc Merge https://github.com/zilpin/dfhack 2011-07-23 17:08:15 +02:00
Petr Mrázek caf6f881df Minimize notes module. 2011-07-23 03:25:42 +02:00
Petr Mrázek e00a4e8888 Fix ore/gem sorting. 2011-07-22 03:00:56 +02:00
Petr Mrázek 7325808c98 Fixes to materials. 2011-07-22 02:44:36 +02:00
Petr Mrázek 131c32494a Added DF material structs reversed by Quietust 2011-07-21 22:37:02 +02:00
Matthew Cline 86577d4f8a Notes module
Gets a vector of pointers to note structs
2011-07-20 18:26:52 -07:00
Petr Mrázek bde3616015 Merge pull request #110 from matthew-cline/TOPIC-inorganic
More info on inorganic materials
2011-07-20 12:35:58 -07:00
Petr Mrázek 873cbd8388 Make 'die' plugin a builtin, made the console interaction less confusing. 2011-07-20 20:58:19 +02:00
Matthew Cline 6631f97a6a More info on inorganic materials
Get value, wall tile, boulder tile, smelting info and strand extraction
info for inorganic materials.  Prospector uses this to separete out vein
materials into ores, gems and other.

Offsets provided for both Linux and Windows, but only tested on Linux.
2011-07-20 06:18:50 -07:00
Petr Mrázek 0defcc9889 Making Items a bit more sane. It's still using Accessors though. 2011-07-20 10:41:13 +02:00
zilpin 3d5169901c minor bug fixes 2011-07-18 16:34:35 -04:00
zilpin 4eb13800cd -WriteVein(), and some convenience functions for the vein bitmaps. 2011-07-18 15:55:41 -04:00
Matthew Cline a923d19f76 Get game's current world save folder
Use World::ReadWorldFolder() to get "region1" (or whatever it currently
is).  Only have offset for Linux.
2011-07-16 16:00:50 -07:00
Petr Mrázek d6d108dd34 Qt plugin fixes for windows, renamed interface to df_interface in Gui. 2011-07-16 18:10:08 +02:00
Petr Mrázek 96153a7b05 Merge branch 'dfapi' of github.com:peterix/dfhack into dfapi 2011-07-14 04:06:12 +02:00
Petr Mrázek 792d272fbf Windows side of the Console rewrite 2011-07-14 04:05:27 +02:00
Matthew Cline d1170d54c3 Vermin module and colonies plugin
This is the start of the vermin module.  Right now it just gets a list
of the positions at which vermin are created (spawn points).  Most
spawn points are invisible and transient, but colonies (ant hills and
such) are permanent and visible.  The address of the spawn points vector
is only provided for Linux 0.31.25

The colonies plugin uses the vermin module to list the location and
species of colonies, and can either wipe them all out or turn them all
into honey bee colonies.
2011-07-12 23:17:51 -07:00
Matthew Cline 5c1526d6d9 creatures: read and write pregnancy counter
Also change creaturemanger to print out the ticks-until-birth for
pregnant creatures.
2011-07-11 02:48:10 -07:00
Matthew Cline cb9c9aae7c Deal with third flag group in creatures
Added support for reading and writing the third creature flag group,
t_creaturflags3 (the offest already exists in Memory.xml).  So far I've
only figured out three of the flags (out of an apparent 13):

1) announce_titan, which causes the creature to be announced as if
   it was a titan or FB which had just arrived.

2) scuttle, which causes the creature to be die like it had been
   killed in the game.  That is, it leaves behind a corpse, and
   will generate unhappy thoughts in dwarves if approriate.

3) ghostly, for creatures which are the ghosts of dead dwarves.

I updated creaturemanager to use scuttle for --kill, and added the
action --erase to kill in the old way which doesn't leave a corpse or
creatre unhappy thoughts.
2011-07-10 04:00:52 -07:00
Petr Mrázek d894ef0ffa Hotkey UI for linux. 2011-07-09 11:33:58 +02:00
Petr Mrázek 367d79bcfa Weather plugin to mirror the weather tool. 2011-07-07 10:57:57 +02:00
Petr Mrázek 8b298f8d91 More maps tweaks, function for block event removal, added cleanmap version that nukes spatter objects instead of rewriting their
bitmaps.
2011-07-07 09:49:58 +02:00
Petr Mrázek 4ff5db06be Maps no longer copy the map block pointer array, blocks are structs, map data is public. 2011-07-07 07:00:36 +02:00
Petr Mrázek 56a409d9a4 sync, some map data structures, commented out some dead code 2011-07-06 11:13:36 +02:00
Petr Mrázek f2b91d3269 Making ready for adding plugins. Fixes all over the place, more removal of obsolete parts. 2011-06-20 01:12:07 +02:00
Petr Mrázek e0fb8f7c81 Crud removal: Context is gone. Added missing FakeSDL.h 2011-06-17 15:02:43 +02:00
Petr Mrázek 93be1eb1fb Yay, kittens! Also some license cleanup, IO thread usage, more SDL wrapping and ability to run reveal from DFHack console. 2011-06-16 23:53:39 +02:00
Petr Mrázek b29871cb8c Fixed tick count offset, hotkey support is back from the dead (untested) 2011-06-15 06:09:24 +02:00
Petr Mrázek 22b79bb46e Now works on Windows again, some more cleanups, added a singleton Core object for holding all the globals. 2011-06-14 16:13:28 +02:00
Petr Mrázek 0a428b509e Vegetation module becomes rather skeletal. 2011-06-13 21:11:02 +02:00
Petr Mrázek 511f459182 Stripped nonsense from the DFHack vector wrapper. Next step: removal. 2011-06-13 01:14:10 +02:00
Petr Mrázek 81d648dfa7 First 'working' DFHack inside DF, for 'some' values of 'working'. 2011-06-12 23:17:40 +02:00
Petr Mrázek da2fb1cb1a Fix creature owned items vector offset on Windows, added support for owned items to more versions. 2011-05-28 10:18:50 +02:00
Petr Mrázek e5e0391d76 stop dfstatus from wasting time. added 'stopwatch.h' to extras for getting accurate unix time in milliseconds 2011-05-21 21:54:53 +02:00
Petr Mrázek 61dea59e29 Fix a big heap of warnings. 2011-05-15 22:24:40 +02:00
Petr Mrázek 515f4952a9 Merge https://github.com/angavrilov/dfhack
Conflicts:
	library/include/dfhack/DFProcess.h
2011-05-15 21:50:20 +02:00
Petr Mrázek fe6eb4b70a Fix for MSVC build, added prototype cmd.exe detection on windows. 2011-05-15 05:19:51 +02:00
Petr Mrázek 43fc15476a Added ability to set trees on fire. 2011-05-15 00:26:44 +02:00
Petr Mrázek 7dbb41cc66 Add method for writing block/map feature indexes 2011-05-13 05:00:29 +02:00
Alexander Gavrilov a7be2aee33 Support actually removing owner links between items and creatures. 2011-05-12 21:10:29 +04:00
Alexander Gavrilov c7f4f8c281 Support printing refs in dfitemdump, and add methods for containers. 2011-05-12 21:10:29 +04:00
Petr Mrázek 4631ec2e0d Item quantity support for 31.25 2011-05-11 23:53:16 +02:00
Alexander Gavrilov ed1477b53d Support listing items owned by a creature. 2011-05-09 14:49:44 +04:00
Alexander Gavrilov 14f291d539 Support reading the item ID field, which is used for cross-referencing. 2011-05-09 14:04:39 +04:00
Alexander Gavrilov e993bbcb67 Implement class name caching and optimized equality check. 2011-05-09 13:48:54 +04:00
Petr Mrázek 6dc80d393f Remove silly debug output 2011-05-08 03:36:26 +02:00
Petr Mrázek 96bfec5402 The mood offset on linux was OK. General fixage of things. 2011-05-08 03:21:34 +02:00
Petr Mrázek 8c4916958e A fixme in Maps: replace feature reading with accessors 2011-05-07 20:23:31 +02:00
Petr Mrázek 8b2ab8de68 Ending the map feature failtrain. 2011-05-07 09:07:28 +02:00
Petr Mrázek 97af676bdb Fix color variable naming in t_descriptor_color 2011-05-07 03:48:41 +02:00
Petr Mrázek fc0f6f1e48 Minor rearrangement with no impact 2011-05-07 03:44:10 +02:00
Petr Mrázek 03a3f29871 Fix misplaced exports 2011-04-28 05:10:37 +02:00
Petr Mrázek f481ee7b5d Add missing stddef.h include in Creatures module. 2011-04-24 02:49:49 +02:00
Petr Mrázek bc855b296f Merge branch 'master' of https://github.com/angavrilov/dfhack 2011-04-17 16:08:13 +02:00
Petr Mrázek 6e607d45d9 Fixed mingw32 build. 2011-04-17 01:48:58 +02:00
Petr Mrázek b0cb59a3f2 The item designator tool lives again. 2011-04-16 23:57:04 +02:00
Petr Mrázek 89169053ff Item support for windows 31.25 2011-04-16 21:02:20 +02:00
Alexander Gavrilov 56b29cf12e Merge remote-tracking branch 'origin/master' 2011-04-15 10:58:09 +04:00
Petr Mrázek 34128c2f6d Item Accessor method pointer was used incorrectly. 2011-04-14 15:16:12 +02:00
Petr Mrázek 1a8c27ce01 Fix accessor mess I made. Added Accessor description dump to the dfitemdump tool and Items module. 2011-04-14 01:42:03 +02:00
Alexander Gavrilov ebc4d21e66 Improve name structure handling, and support duplicating them (on linux).
The name structure actually contains additional linguistical data,
ignoring which produces wrong renderings for non-dwarfish names.
This data also obviously has to be copied with the structure.

Copying STL strings works by replicating the shared copy logic
(i.e. incrementing the reference counter), but leaks memory owned
by the string being overwritten.
2011-04-13 20:36:10 +04:00
Petr Mrázek f5911a14a6 Some const correctness, re-enabled job printing in the creature dump tool. 2011-04-12 13:59:07 +02:00
Petr Mrázek 212500ee00 Big Items refactor, made all the Accessor offsets optional. 2011-04-11 22:13:06 +02:00
Petr Mrázek 77f0885d9e Merge https://github.com/angavrilov/dfhack into items 2011-04-11 12:48:28 +02:00
Alexander Gavrilov 2e0ec2db72 Support retrieving the item owner reference.
Reference is done by item id, and stored in some kind
of generic reference vector in the item structure.
2011-04-11 14:32:53 +04:00
Alexander Gavrilov fbf76440b5 Try to handle signed and unsigned 16-bit accessors.
Not sure whether it makes much sense, seeing as some
accessors (e.g. wear) actually return 32-bit values,
assuming that the caller would correctly sign-extend
the lower half and discard the upper.
2011-04-10 22:44:01 +04:00
Alexander Gavrilov f6ae41fe49 Provide access to item header, including flags, and wear information.
Add preliminary offsets for the item data to Memory.xml
2011-04-10 22:42:25 +04:00
Alexander Gavrilov e3897b0f93 Improve the accessor instruction parser.
Instead of hard-coding complete machine code patterns, try
to really parse a certain subset of MOV instructions.
2011-04-10 21:51:21 +04:00
Petr Mrázek 1d35044db3 Started removing C++-isms from C wrapper. Removed DFGlobal.h 2011-04-10 13:12:28 +02:00
Petr Mrázek c1deee768e Add missing files, wix build on windows. 2011-04-10 11:03:24 +02:00
Petr Mrázek d4e2850768 Make C-wrapper compile times less ridiculous. 2011-04-10 10:50:32 +02:00
Petr Mrázek bb04aa1a32 Linux header cleanups. Windows side will follow. 2011-04-10 10:19:15 +02:00
Petr Mrázek 7b1f3ce72b Job ID is a Word, not DWord. 2011-04-03 21:43:16 +02:00
Petr Mrázek 8b8c70b5ff Big creature jobs read/write fix (it was cmpletely broken) 2011-04-03 21:27:47 +02:00
Petr Mrázek 4cfc12b52b Engravings module. 2011-04-03 00:15:47 +02:00
Petr Mrázek 837ea52c22 Fix windows/wine version information bugs related to processes without a PE header. 2011-03-31 05:39:12 +02:00
doomchild 1bf6a2ea71 generally, function signatures are supposed to match between header and implementation file... 2011-03-29 10:42:04 -05:00
doomchild 4c55f54464 spelled a couple of allocator names wrong 2011-03-29 10:41:45 -05:00
doomchild cf59b7802d added getPosition 2011-03-29 10:23:04 -05:00
doomchild e34831a354 added getters/setters for cursor/view coords, window size, and screen tiles added ReadHotkeys 2011-03-29 09:59:12 -05:00
Petr Mrázek 635e1998ee Stop DFVector from accessing VersionInfo in the constructor (slight optimization). 2011-03-25 06:40:33 +01:00
Petr Mrázek 1a1a28ee3d World module offsets for windows 31.22 2011-03-25 03:27:07 +01:00
Petr Mrázek 4c030e7cc1 Some linux 31.22 offsets, slight tweaks to Materials 2011-03-25 02:31:27 +01:00
Petr Mrázek 754647fe96 The mysterious variable is mysterious, 31.22 support, needs testing 2011-03-24 23:21:50 +01:00
Petr Mrázek ecb239f64c Merge branch 'worldmap' 2011-03-24 17:43:28 +01:00
Petr Mrázek 1f4ac33200 Clarification of some values of geology and local feature reading 2011-03-24 17:41:34 +01:00
Petr Mrázek 7c971cd8f1 World coords for dfposition 2011-03-24 06:13:21 +01:00
Petr Mrázek d0a171a350 Add a form of ReadFeature applicable to already read blocks. 2011-03-24 04:39:38 +01:00