Commit Graph

72 Commits (ffi-server-rewrite)

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 5894ffae7d [Client] Ignore dynamic object placements or spawns in packets 7 years ago
David Cernat 38247ff086 Merge pull request #303 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwbase/dialoguemanager.hpp
#	apps/openmw/mwdialogue/dialoguemanagerimp.hpp
#	apps/openmw/mwgui/container.cpp
#	apps/openmw/mwgui/windowmanagerimp.cpp
#	apps/openmw/mwscript/dialogueextensions.cpp
7 years ago
scrawl 3d2ad2d339 Include cleanup 7 years ago
scrawl 8ae7e4c958 Make Enter on a name edit accept the dialog 7 years ago
scrawl 4fff2e2e34 Refactor exitCurrentGuiMode 7 years ago
scrawl 01391b7eed Rename WindowBase's open/close to onOpen/onClose 7 years ago
Andrei Kortunov e0bb9c089b Revert commit 67d59bead5 (a better
implementation found)
7 years ago
Andrei Kortunov 67d59bead5 Get only text from input fields (bug #4025) 7 years ago
David Cernat 84662ed3fe [Client] Add temporary warnings when creating custom spells and items 8 years ago
Andrei Kortunov 54b4d93f79 Added a special function for GUI sounds playing 8 years ago
scrawl a556475fae Explicitely set the user data type to avoid const/non-const mismatch 8 years ago
Allofich 125e94ef0e Fix shadowing warnings 8 years ago
scrawl 04d51d5871 Always update the ingredient icons (Fixes #3220) 9 years ago
scrawl b9d1d6144a Don't reveal unknown potion effects in alchemy window (Fixes #3146) 9 years ago
scrawl db7b80b503 Revert "Accept a ConstPtr in ItemPtr tooltips"
This reverts commit 41c8ec56e0.

Does not work due to code relying on getting the non-const Ptr from the widget. Further refactoring is needed.
9 years ago
scrawl 41c8ec56e0 Accept a ConstPtr in ItemPtr tooltips 9 years ago
Jordan Ayers cd5bef958f Remove dead code from alchemywindow.
Also align some braces.
9 years ago
dteviot 77a1d947cc extracted MWMechanics::getPlayer() 10 years ago
Stanislav Bas c40987338d Scrollbars don't save their positions between openings 10 years ago
Rohit Nirmal 396fba7fa9 Silence -Wreorder warnings, and remove -Wno-reorder. 10 years ago
scrawl eecea4131f Reduce MyGUI includes 10 years ago
scrawl eb99ed697b Reduce includes 10 years ago
Alexander "Ace" Olofsson 462b41a3a8 Missing files, aka; Why you shouldn't stresscommit 10 years ago
scrawl f2877c69d7 Fix old alchemy apparatus still showing in alchemy window after removal 10 years ago
scrawl 192069a181 Add automatic potion naming 10 years ago
scrawl cbc242d857 Move item count text to ItemWidget 10 years ago
scrawl b145d183ae Fix incorrect alchemy failure handling when an effect has a zero magnitude/duration (Fixes #1922) 10 years ago
scrawl 6db936bb3a Refactor item icon code into ItemWidget (Fixes #1391)
- Removed duplicate code
 - Fixed missing magic backgrounds during item drag&drop
 - Change background texture used for HUD icons
11 years ago
Digmaster e3e51324a4 Esc button exits all non-modal GUI windows 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
scrawl c8c0e5de38 Fixed code issues found with unity build. Missing include guards, duplicated functions, ... 11 years ago
scrawl 098f9712f1 Add getPlayerPtr() utility method. Reduces dependencies a lot. 11 years ago
scrawl 992a8e9c36 Refactor NpcAnimation: get rid of delayed update (no longer required), make sure that the Animation is set up *before* the inventory store is accessed anywhere (which now triggers auto equip and animation update). Allows better tracking of magic VFX for permanent enchantments in InventoryStore. 11 years ago
scrawl d106ed3b08 Fixed alchemy 12 years ago
scrawl 7dc30a01cd Some changes suggested by cppcheck 12 years ago
scrawl c41f119ba6 Added new game button 12 years ago
scrawl 0c4a963132 Container UI rewrite 12 years ago
Britt Mathis 60fadaeaf0 Cleaned up includes in implementation files 12 years ago
Britt Mathis f7383905b7 Finally eliminated calls to MWBase::WindowManager in constructors 12 years ago
Britt Mathis ce9bc6d9ba MwGui windowManager calls fixed to use MWBase::Environment::get().getWindowManager, filenames in MwGui now comply with naming conventions 12 years ago
scrawl e7af718b55 Remove unnecessary WindowManager::messageBox arguments 12 years ago
scrawl 9a84f6744f Fix headers including whole MyGUI.h, forward declare where appropriate, and fix some deprecated types (WidgetPtr) 12 years ago
Marc Zinnschlag b25f2e88ce Issue #492: fixed double alchemy ingredients removal 12 years ago
scrawl 646e689239 clear name edits when opening alchemy / spell creation 12 years ago
scrawl 59560e84eb small addition 12 years ago
scrawl b2b9254718 improved the ingredient GUI code (this didnt fix anything, though) 12 years ago
scrawl 28cc480ce1 fix some alchemy issues and make the gui use the new implementation 12 years ago
Marc Zinnschlag 332039da10 Issue #61: replaced 4 ingredient member variables with vector in alchemy GUI 12 years ago
Marc Zinnschlag 14833a4c3a Issue #61: More robust tools handling in alchemy window 12 years ago