Commit Graph

137 Commits (1f2349ef6e82b7b1b82e1de6db2776e2043fb18d)

Author SHA1 Message Date
David Cernat b57807407a [General] Implement RecordDynamic packet, part 1
Spell, potion, enchantment, creature, NPC, armor, book, clothing, miscellaneous and weapon record data can now be sent in a RecordDynamic packet. Additionally, the packets include data related to associated magical effects (for spells, potions and enchantments), data related to default inventory contents (for creatures and NPCs) and data related to body parts affected (for armor and clothing).

The server now has associated script functions for setting most of the details of the above, with the main exception being individual creature and NPC stats.

Records can either be created entirely from scratch or can use an existing record (set via the baseId variable) as a starting point for their values. In the latter case, only the values that are specifically set override the starting values. Creature and NPC records also have an inventoryBaseId that can be used on top of the baseId to base their inventories on another existing record.

The client's RecordHelper class has been heavily expanded to allow for the above mentioned functionality.

When players create spells, potions and enchantments as part of regular gameplay, they send RecordDynamic packets that provide the server with the complete details of the records that should be created. When they create enchantments, they also provide the server with armor, book, clothing and weapon records corresponding to the items they've enchanted.

This functionality added by this packet was originally supposed to be exclusive to the rewrite, but I've gone ahead and tried to provide it for the pre-rewrite in a way that can mostly be reused for the rewrite.
7 years ago
David Cernat 6cb5ac6e63 Merge pull request #457 from OpenMW/master while resolving conflicts
Conflicts:
	CMakeLists.txt
	apps/openmw/engine.cpp
	apps/openmw/main.cpp
	apps/openmw/mwgui/windowmanagerimp.cpp
	apps/openmw/mwmechanics/character.cpp
	components/CMakeLists.txt
7 years ago
Andrei Kortunov c77c50e92b Make Equip console command to bypass most of restrictions (bug #4460) 7 years ago
Koncord fa2bf0663e [General] Simplify vectorContains 7 years ago
David Cernat 9102df7fde [General] Make WorldCollisionOverride also work with specific refIds
For now, this only makes it possible to enforce collision for specific refIds for placed objects.
7 years ago
David Cernat 3efe05a88e [General] Implement WorldCollisionOverride packet 7 years ago
Andrei Kortunov 164e3d12fe Display weapon reach on tooltips in feet. 7 years ago
Andrei Kortunov 0d7279ea2a Fixes a regression with bound weapons equipping (bug #4050) 7 years ago
Andrei Kortunov fb45995a41 Do not allow player to change weapon/spell during attack or spellcasting (bug #2445) 7 years ago
Bret Curtis d785344fad purge all instances of <boost/shared_ptr.hpp>, clean up unused headers 8 years ago
Andrei Kortunov 506cc47c9d Add option to show reach and attack speed for melee weapons 8 years ago
Andrei Kortunov 1286754fb3 Add a new option to show arrow damage (feature #2923) 8 years ago
Allofich 502a26a7ff Use getWeightString() to avoid casting to int 9 years ago
Allofich caf025f93d Don't show 0 weight tooltips except for potions 9 years ago
scrawl 32d5dece58 Add count argument to getToolTipInfo 9 years ago
scrawl b0894ea20d Accept a ConstPtr in hasToolTip 9 years ago
scrawl 04f7a8f8eb Remove redundant getId function 9 years ago
scrawl c43f80633a Accept a ConstPtr in getEnchantmentPoints 9 years ago
scrawl 648ee6e7fb Accept a ConstPtr in applyEnchantment 9 years ago
scrawl da7ebfde99 Accept a ConstPtr in copyToCell 9 years ago
scrawl d77f785cbc Accept a ConstPtr in get*SoundId 9 years ago
scrawl dc92fefd2b Accept a ConstPtr in canBeEquipped, getEquipmentSlots & hasItemHealth 9 years ago
scrawl e0bb284804 Accept a ConstPtr in getWeight 9 years ago
scrawl 0047a2d330 Accept a ConstPtr in canSell 9 years ago
scrawl 2bc851c7d3 Accept a ConstPtr in getEnchantment 9 years ago
scrawl beb8805a12 Accept a ConstPtr in getInventoryIcon 9 years ago
scrawl f258c5c508 Accept a ConstPtr in getModel 9 years ago
scrawl d9bbd83b09 Accept a ConstPtr in getToolTipInfo
Accept a ConstPtr in functions used by getToolTipInfo
9 years ago
scrawl b48445dea7 Accept a ConstPtr in getScript 9 years ago
scrawl fc449233be Restore support for inserting objects into a cell 9 years ago
scrawl 0975f60d59 Stub out CellStore::get<T> accessors in preparation of reference movement between cells 9 years ago
scrawl 67bd6cd708 Remove empty line at the beginning of files
git ls-files -z | xargs -0 sed -i '1{/^$/d}'
10 years ago
scrawl 47758c11cd Readded collision objects and movement physics 10 years ago
scrawl c31b416ba1 Move physicssystem to a new mwphysics module 10 years ago
dteviot e197f5318b fixing MSVC 2013 warning C4244: & C4305
conversion from 'const float' to 'int', possible loss of data
conversion from 'double' to 'int', possible loss of data
conversion from 'float' to 'int', possible loss of data
10 years ago
scrawl 0497a40d09 Fix incorrect sound for thrown weapons 10 years ago
scrawl 41b3a9dba9 Rewrite animated collision shape support (Fixes #2123) 10 years ago
scrawl bc686c93b5 Potential fix for thrown weapons being regarded as broken 10 years ago
Alexander "Ace" Olofsson 462b41a3a8 Missing files, aka; Why you shouldn't stresscommit 10 years ago
scrawl 99c276baa9 Set weapon Magical flag when enchanting a weapon 10 years ago
scrawl 59720b7dc6 Implement MagicItems flag for vendors (Fixes #1861) 10 years ago
scrawl 75366b2e37 Implement CellRef's faction rank (rank requirement to use item) 11 years ago
scrawl 2b57c7fa67 Use CellRef's global variable to disable owner (Fixes #1677) 11 years ago
scrawl 4aab4e1c26 Ignore item condition when determining value, except in trade (Fixes #1557) 11 years ago
scrawl 91ed5183c8 Show base item value in tooltip, not real value (Fixes #1469) 11 years ago
scrawl 039398c8ae Basic RefData and CellRef change tracking
Wrapped item charge handling in getItemHealth function
11 years ago
scrawl a05c8fd3ce Make applyEnchantment return the record ID instead of modifying Ptr 11 years ago
Emanuel Guevel 1e4a854433 Remove static method MWWorld::Class::get(&Ptr)
It was just adding a level of indirection to Ptr.getClass().
All the call were replaced by that instead. The number of lines changed
is important, but the change itself is trivial, so everything should be
fine. :)
11 years ago
Marc Zinnschlag 83ded18af0 encapsulated reference collections 11 years ago
scrawl 190512156d Use some more GMSTs for enchanting 11 years ago