Commit Graph

90 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 8fbed1f808 [General] Remove custom data from PlayerSpellbook packet
It has never made sense to have custom spell data in PlayerSpellbook packets, so it has been removed.
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 8ae7e4c958 Make Enter on a name edit accept the dialog 7 years ago
scrawl be19f51013 Adjust some more windows to be keyboard friendlier 7 years ago
scrawl 4fff2e2e34 Refactor exitCurrentGuiMode 7 years ago
scrawl 84657271c7 Improve WindowManager API with a generic way of passing a Ptr to the opened GUI window 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 721b218cc2 Merge pull request #258 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	README.md
8 years ago
scrawl eac2e52841 Merge pull request #1329 from akortunov/priorityfix
Combat AI: make default spell priority calculation formula close to vanilla
8 years ago
David Cernat 84662ed3fe [Client] Add temporary warnings when creating custom spells and items 8 years ago
Andrei Kortunov 3ba0a336b7 Move spell magicka cost calculation to standalone function 8 years ago
David Cernat fd046e42ef Merge pull request #242 from OpenMW/master
Add OpenMW commits up to 16 Jul 2017
8 years ago
Andrei Kortunov 5be1c81913 Fixed Close button handler in EditEffectDialog (fixes #3956) 8 years ago
David Cernat e3929df38a Merge pull request #239 from OpenMW/master
Add OpenMW commits up to 14 Jul 2017
8 years ago
Andrei Kortunov 54b4d93f79 Added a special function for GUI sounds playing 8 years ago
David Cernat a82646a130 [Client] Delineate tes3mp-only code more clearly, part 2 8 years ago
David Cernat a58601fb2b [Client] Delineate tes3mp-only code more clearly, part 1 8 years ago
Koncord 7595b33461 Implement spellbook 8 years ago
scrawl 783594033a Optimize MWMechanics::Spells
Use pointers as map keys instead of string IDs. Resolves a nasty performance bottleneck on functions like hasCommonDisease() that previously had to look up all contained spells from the ESM store on every call. hasCommonDisease() is called hundreds of times per frame by the AI target update since it's used to calculate target disposition.

The total cost of hasCommonDisease() was 2.7% of the frame loop, now it's negligible.
9 years ago
dteviot 77a1d947cc extracted MWMechanics::getPlayer() 10 years ago
scrawl e66e9916db Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/opencs/CMakeLists.txt
	apps/opencs/model/doc/document.cpp
	apps/opencs/model/doc/document.hpp
10 years ago
Stanislav Bas c40987338d Scrollbars don't save their positions between openings 10 years ago
scrawl 8e0a988289 Icon fix 10 years ago
scrawl 22f01b1232 Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/launcher/graphicspage.cpp
	apps/opencs/editor.cpp
	apps/opencs/model/doc/document.cpp
	apps/opencs/view/render/cell.cpp
	apps/opencs/view/render/mousestate.cpp
	apps/opencs/view/render/textoverlay.cpp
	apps/opencs/view/render/worldspacewidget.cpp
	apps/openmw/mwclass/creature.cpp
	apps/openmw/mwclass/npc.cpp
	apps/openmw/mwgui/inventorywindow.cpp
	apps/openmw/mwgui/loadingscreen.cpp
	apps/openmw/mwgui/mapwindow.cpp
	apps/openmw/mwgui/pickpocketitemmodel.cpp
	apps/openmw/mwgui/waitdialog.cpp
	apps/openmw/mwmechanics/combat.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
	apps/openmw/mwrender/globalmap.cpp
	apps/openmw/mwworld/physicssystem.cpp
	apps/openmw/mwworld/refdata.cpp
	apps/openmw/mwworld/scene.cpp
	apps/openmw/mwworld/worldimp.cpp
	components/sdlutil/sdlinputwrapper.cpp
	extern/shiny/Main/Factory.cpp
	extern/shiny/Main/MaterialInstance.cpp
	extern/shiny/Main/Platform.cpp
	extern/shiny/Main/ShaderSet.cpp
10 years ago
Rohit Nirmal 396fba7fa9 Silence -Wreorder warnings, and remove -Wno-reorder. 10 years ago
scrawl 82c4d01b37 Add back resource handling workarounds to the gui code 10 years ago
scrawl 4e69e7cc0f OpenMW compiles and runs w/o render window 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
dteviot 45b6538820 fixed MSVC 2013 warning C4800
forcing value to bool 'true' or 'false'
10 years ago
scrawl bb718f216d Initialize ENAMstruct in SpellCreationDialog (Coverity) 10 years ago
scrawl 5b9d10f851 Reduce includes in MWGui 10 years ago
scrawl 728b842e72 Use MyGUI::utility in favor of boost lexical_cast 10 years ago
scrawl eecea4131f Reduce MyGUI includes 10 years ago
scrawl c1955ef7fa Fix enchanting dialog effect labels showing a duration for constant effects 10 years ago
scrawl 363d1f9207 Merge remote-tracking branch 'upstream/master' 10 years ago
Marc Zinnschlag da722a5cf1 Merge remote-tracking branch 'miroslavr/master' 10 years ago
scrawl 877e07823d Fix incorrect sound for spell creation success 10 years ago
MiroslavR c796589420 Allow adding multiple Attribute/Skill effects in spell making (Fixes #2224) 10 years ago
Alexander "Ace" Olofsson 462b41a3a8 Missing files, aka; Why you shouldn't stresscommit 10 years ago
scrawl 619ea846b4 Enchanting: fixed case where no range types at all are allowed (e.g. a Constant Effect item with an effect that does not allow the Self range-type) 10 years ago
scrawl 74c345f790 Enchanting: fix being able to create On Touch / On Target constant effect enchantments (this combination makes no sense) 10 years ago
Thoronador db38108801 fix uninitialized pointer variables in some classes 10 years ago
scrawl 7e10818bdf Fix uninitialized flags for custom-made spells 10 years ago
scrawl 7252cb63a6 Fix cppcheck issues 10 years ago
scrawl 6b65502557 Add properties for new widget classes to MyGUI plugin 10 years ago
MiroslavR d16e0c063c Enchanting, spellmaking dialog: check for flags when listing known effects 11 years ago
MiroslavR 1385a86bd4 Spell creation: do not add skill/attribute effects before selecting the skill or attribute 11 years ago