Quietust
e483e7439f
Fix problems with NONE for item types and subtypes
2014-05-22 08:18:01 -05:00
Alexander Gavrilov
415cdad489
Make using new for allocating DF objects with vtables a compile-time error.
...
When done from plugins, it doesn't correctly initialize the vtable
because of some weird things MSVC does, so the only safe way is to
use df::allocate<df::foo>(). For consistency, it is also enforced
for code in the main library. It reveals the issue in the digging
invaders plugin, first found by warmist.
This change is linked to a modification in df-structures codegen.
2014-04-30 21:28:02 +04:00
Alexander Gavrilov
98325757e2
Fix signed-unsigned mismatch warnings in the new item value code.
...
Unsigned comparison allows catching negatives in the same check too.
Also, it didn't check the values in getValue.
2014-04-30 20:44:22 +04:00
Quietust
0f4684f29d
Add Items::getItemBaseValue and Items::getValue, available from Lua
2014-04-25 11:04:21 -05:00
Quietust
57fbb1004b
Assorted cleanup
2014-04-23 08:23:34 -05:00
Alexander Gavrilov
7aecffe0cd
Update structures and fix broken things.
2014-04-04 22:34:39 +04:00
Quietust
3f2e583746
Naming consistency
2012-11-16 15:35:34 -06: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
3ff5d38a5c
Add a few utility functions to the main library.
2012-10-30 12:40:26 +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
2b1d856214
Add a few utility functions to the lua api.
2012-10-20 17:06:33 +04:00
Petr Mrázek
8812238bf6
Update license, add contributors file, bump release number
2012-09-30 04:03:37 +02:00
Alexander Gavrilov
24772f4dbc
Add an api function for destroying items.
2012-09-14 18:49:02 +04:00
Alexander Gavrilov
7c71aeab5f
Add function for making item projectiles.
2012-09-12 18:17:42 +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
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
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
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
Alexander Gavrilov
2c0024adc9
Make Items::getPosition exactly match the DF original in behavior.
2012-05-17 19:56:55 +04:00
harlanplayford
27ca317871
Added new method - Items::moveToInventory(...)
...
Signed-off-by: playfordh <harlanplayford@gmail.com>
2012-05-15 06:01:59 -04:00
Alexander Gavrilov
5afe2ca002
Update dfhack for specific_ref.
2012-05-03 11:47:04 +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
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
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
Petr Mrázek
8a847dbaba
Tweaks and cleanups
...
Removed t_virtual.
Made lua use C++ compiler
Removed many silly exception types from Error.h and renamed the rest.
Removed Brush classes from tiletypes plugin.
2012-03-24 12:13:51 +01:00
Alexander Gavrilov
f84b1539a8
Change to the traits representation of enum and bitfield properties.
2012-03-15 20:46:08 +04:00
Alexander Gavrilov
8cc82d5876
Make plugins accept explicit output stream references.
...
This is an incompatible change to the plugin ABI.
The Console is not thread-safe unless used indirectly
via color_ostream_proxy, so everything should use their
per-thread stream.
2012-03-10 15:55:42 +04:00
Petr Mrázek
7fe8762852
Get rid of Simple namespace, Gui module is now a namespace.
2012-03-03 14:38:24 +01:00
Quietust
9afcea3deb
In all loops that iterate across a vector, use a size_t as the index
2012-01-31 10:55:38 -06:00
Quietust
a82f4c9138
Cleanup code to get rid of MSVC warning C4482
2012-01-31 10:17:27 -06:00
Quietust
ccad6efeb8
Remove UTF-8 BOMs
2012-01-27 09:47:14 -06:00
Quietust
cc7c7795a1
Kill the Units module, and add another pair of methods to the Items module to simplify some things
2012-01-24 11:32:34 -06:00
Quietust
6adadb396e
df::tool_uses is now implicitly int16_t, so no more enum_field<> here
2012-01-23 19:40:02 -06:00
Quietust
8052305c2e
Cleanup the Units module
2012-01-21 13:03:39 -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
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
Alexander Gavrilov
bcb51d8ff7
Use the announcement API to report starting and stopping workflow jobs.
2012-01-15 15:39:20 +04:00
Alexander Gavrilov
7f5aa4de62
Support the most important job types in workflow.
2012-01-10 17:23:37 +04:00
Alexander Gavrilov
50386f66a3
Update structures and implement modifying the job_item item type.
2012-01-09 16:20:17 +04:00
Petr Mrázek
86464b99cc
Remove DfVector, break MSVC builds until further notice.
2012-01-04 01:45:11 +01:00
Petr Mrázek
9db20bd84d
Header changes/cleanup.
2011-12-31 12:48:42 +01:00
Petr Mrázek
f7d78539d3
Renaming Creatures to Units
2011-12-02 10:56:40 +01: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
dca4c43b0b
Creatures module rewrite
2011-09-18 13:49:10 +02: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
0defcc9889
Making Items a bit more sane. It's still using Accessors though.
2011-07-20 10:41:13 +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
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
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
61dea59e29
Fix a big heap of warnings.
2011-05-15 22:24:40 +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
03a3f29871
Fix misplaced exports
2011-04-28 05:10:37 +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
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
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
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
bb04aa1a32
Linux header cleanups. Windows side will follow.
2011-04-10 10:19:15 +02:00
Petr Mrázek
b94ddf50d0
Eliminated silly dependency cascade within the library. Some documentation tweaks.
2011-03-18 08:53:59 +01:00
Petr Mrázek
eb1a0b6b22
A little cleanup in Context.cpp, started work on 31.19
2011-02-16 19:29:16 +01:00
Petr Mrázek
457b331be7
Small fixes
2010-11-03 10:45:29 +01:00
reverb
4edd33e13a
Fix crash when deallocating items module
2010-10-28 17:22:56 -05:00
unknown
ba88c86670
dfitemdump appears to work. Materials still buggy (Pig Iron Bar != Mule Bar). This has been bugged since .12 or earlier
2010-10-19 05:07:07 -05:00
Petr Mrázek
95abf6e605
All the modules *should* now use the new offset storage properly. Maybe, needs testing :)
2010-08-30 00:08:17 +02:00
Petr Mrázek
1bceac2343
Rename memory_info and its factory class.
2010-08-20 14:10:05 +02:00
Petr Mrázek
ec35663b62
Common base for all modules
2010-06-25 07:11:26 +02:00
Petr Mrázek
04b71f154c
Fun and games. Also turning old DFWindow class into a module tracked by Context.
2010-05-26 12:24:45 +02:00
Petr Mrázek
966a145b3e
Moving stuff around, part 3
2010-05-26 08:42:09 +02:00
Petr Mrázek
b710ed687a
Moving stuff around, part 2
2010-05-26 06:48:23 +02:00