1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-21 11:53:51 +00:00
Commit graph

3184 commits

Author SHA1 Message Date
Andrei Kortunov
8df8bd3f37 Use C++11-style loops in the GUI instead of iterators 2019-03-02 13:27:59 +04:00
Bret Curtis
735bcf17c2 Merge branch 'boost-gcd-deprecation' into 'master'
Fix boost deprecation warning

See merge request OpenMW/openmw!66
2019-02-26 18:02:01 +00:00
AnyOldName3
cd4303da23 Add preprocessor check to determine which common_factor header to use. 2019-02-26 17:03:07 +00:00
Capostrophic
216e1ab16f Always include <memory> for smart pointers in MWGui 2019-02-25 18:50:51 +03:00
Capostrophic
8ecd0b82a4 Replace Boost format and replace_all where possible 2019-02-24 03:20:20 +03:00
Bret Curtis
d4564a9be7
Merge pull request #2180 from akortunov/includes
Remove redundant includes
2019-02-24 01:14:16 +01:00
Andrei Kortunov
fcdb0c16bf Update jail state once instead of for every single hour 2019-02-23 09:17:06 +04:00
Andrei Kortunov
3032b177a1 Remove redundant includes 2019-02-23 08:02:12 +04:00
Capostrophic
58788de7c4 Get rid of Boost.Array 2019-02-22 23:16:34 +03:00
Bret Curtis
212f097b3c
Merge pull request #2172 from akortunov/pvs_fix
Fix some issues, found by PVS-Studio
2019-02-22 15:01:37 +01:00
Bret Curtis
55fc04e462
Merge pull request #2175 from Capostrophic/includes
Include cleanup
2019-02-22 14:56:20 +01:00
Capostrophic
c03ed4cd50 Include cleanup 2019-02-19 18:40:33 +03:00
Andrei Kortunov
9de0c9045a Fix API usage errors 2019-02-17 14:29:39 +04:00
Andrei Kortunov
dc6ef15571 Simplify loop in the addSkills() 2019-02-17 14:29:39 +04:00
Andrei Kortunov
ad9412a117 Remove some redundant checks 2019-02-17 14:29:36 +04:00
Andrei Kortunov
18a59df050 Throw exceptions by value instead of reference 2019-02-17 10:24:25 +04:00
AnyOldName3
89d4d3be08 Fix boost deprecation warning 2019-02-13 14:49:36 +00:00
Capostrophic
e9c6c11418 Fix hiding three-tab (Cyrillic) topic index 2019-02-08 10:53:50 +03:00
Andrei Kortunov
8580a58ba0 Optimize HUD update (do not do unnecessary work) 2019-01-25 21:15:29 +04:00
David Cernat
f481c85e07 [Client] Use ADD before REMOVE for PlayerInventory in repair/recharge
Previously, when recharging or repairing an item, the client sent a PlayerInventory packet to the server with the old version of the item that was supposed to be removed and then it sent a PlayerInventory packet with the new version of the item that was supposed to be added.

Unfortunately, the current CoreScripts make it so custom items using generated IDs have their records deleted when they are completely removed from the world, however briefly, even if they are added back immediately afterwards. In practice, this meant that – before this commit – recharging or repairing a custom item led to its removal from the player inventory stored on the server, followed by the deletion of its record, followed by its readdition to the inventory (but with the record staying deleted). Logging out and logging back in immediately prevented the player from receiving the item anymore because of its now non-existent record.
2019-01-11 13:08:26 +02:00
Andrei Kortunov
0937f02598 Get rid of unnecessary string streams 2019-01-07 21:08:16 +04:00
David Cernat
906d2a837d [Client] Send PlayerInventory packets when recharging items w/ soulgems 2018-12-30 11:58:33 +02:00
Ilya Zhuravlev
1bdec2399f Make sure CopyFramebufferToTextureCallback is only called once and not every frame 2018-12-25 11:56:24 -05:00
Ilya Zhuravlev
8e7c01b561 loadingscreen: Fix UaF in loading screen.
When the CopyFramebufferToTextureCallback callback is called, in its operator() it resets setInitialDrawCallback by providing a NULL pointer.
However, this causes the callback to get deleted. In turn, the "this" pointer is invalidated.
When execution returns to DrawCallback::run, it accesses a _nestedCallback member of deleted "this" which is UB.
2018-12-24 14:18:26 -05:00
Andrei Kortunov
a53333c3d5 Native animated containers support (feature #4730) 2018-12-13 23:11:16 +04:00
David Cernat
afd17e5a48 [Client] Don't finish drag & drop that is supposed to be unsuccessful
This prevents items from vanishing when your attempt to drop them in a full container is denied.
2018-12-06 18:11:52 +02:00
Bret Curtis
a21792657a
Merge pull request #2034 from akortunov/guifixes
Improve GUI cleanup
2018-11-15 07:31:57 +01:00
Andrei Kortunov
5e071e3eb0 Add a missing check if mPtr is empty (bug #4715) 2018-11-13 10:32:23 +04:00
Andrei Kortunov
71f1a53090 Improve tooltips cleanup (bug #4714) 2018-11-13 10:00:12 +04:00
Andrei Kortunov
d2613e35a2 Fix some Clang 7 warnings 2018-11-09 19:42:59 +04:00
Bret Curtis
3cd59d4a89
Merge pull request #1993 from akortunov/loadingbar
Center progress bar when there are active messageboxes
2018-10-28 14:43:33 +01:00
Andrei Kortunov
6e05853478 Center progress bar when there are active messageboxes (bug #4691) 2018-10-28 14:40:48 +04:00
Marc Zinnschlag
9dd0d641bc Merged pull request #1931 2018-10-28 11:02:33 +01:00
Capostrophic
19ce1abcdf Fix selected weapon HUD durability percentage 2018-10-26 12:53:15 +03:00
Andrei Kortunov
e7de6b974a Optimize actors processing
1. Do not update physics and animations for actors outside processing range (bug #4647)
2. Do not render such actors
3. Add transparency to actors near processing border, so they will not pop up suddenly
2018-10-25 22:52:59 +04:00
Capostrophic
c3e8d536cd Implement getNormalizedEnchantmentCharge() method and use it 2018-10-25 16:16:07 +03:00
Capostrophic
54bd7b2dcf Implement getItemNormalizedHealth() method and use it 2018-10-25 15:45:31 +03:00
Capostrophic
67de61e1fb Avoid item condition and charge zero divisions 2018-10-24 19:06:55 +03:00
David Cernat
d9dd7073cf [General] Send certain packets only when logged in
Previously, client mods adding packet-sending scripts to the spawn area made clients send the associated packets as soon as they inputted their character name when joining a server using those mods. This made the clients either get disconnected for not replying to a handshake first, or it made them get kicked for sending object packets that are disallowed for players who are not logged in.

To fix this, LocalPlayer's hasFinishedCharGen() has been replaced with isLoggedIn(), because the former was already returning true when players inputted their names.
2018-10-13 15:36:13 +03:00
Marc Zinnschlag
b30e309532 Merged pull request #1967 2018-10-13 11:15:45 +02:00
Andrei Kortunov
dad0b78901 Avoid overflow when handling output characters (bug #4676) 2018-10-12 20:41:03 +04:00
Capostrophic
47b1b0ac39 Re-fix water reflections while making a no-GUI screenshot 2018-10-10 22:44:26 +03:00
Marc Zinnschlag
2d87d1d9d2 Merged pull request #1959 2018-10-10 15:05:29 +02:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Capostrophic
09aecb955c getSkill usage cleanup (bug #4671) 2018-10-08 17:06:30 +03:00
Capostrophic
674e33170b Fix quick key system regressions (bug #4662) 2018-09-30 21:16:02 +03:00
Marc Zinnschlag
0e06a25f21 Merged pull request #1935 2018-09-25 12:11:20 +02:00
Sergey Fukanchik
44bcd9b25f Fix tab characters 2018-09-23 02:46:29 +03:00
Sergey Fukanchik
c50ee22772 Wrap up World::canRest() implementation by moving enemiesNearby() from InputManager::rest() to World::canRest(). 2018-09-23 01:52:56 +03:00
Andrei Kortunov
b3fd173e00 Check if current weapon has health at all in HUD (bug #4648) 2018-09-22 06:51:56 +04:00
Marc Zinnschlag
7be9f2ca45 Merged pull request #1891 2018-09-21 11:38:19 +02:00
Andrei Kortunov
bdd9eba2b8 Use C++ limits instead of C ones 2018-09-20 16:02:26 +04:00
Andrei Kortunov
276b7830a9 Mass potion creation (feature #4642) 2018-09-20 15:45:14 +04:00
Marc Zinnschlag
82d37dda20 Merged pull request #1927 2018-09-20 13:31:41 +02:00
Andrei Kortunov
6d0e6ab012 Use book font by default in the text formatter 2018-09-17 22:24:21 +04:00
Andrei Kortunov
dda02bd696 Do not use book fonts for dialogue window 2018-09-17 19:56:36 +04:00
Andrei Kortunov
70ed8fd1a9 Use constants instead of widely used magic numbers (task #4645) 2018-09-17 19:22:50 +04:00
Marc Zinnschlag
06b2a23e74 Merged pull request #1768 2018-09-17 12:10:21 +02:00
Bret Curtis
6035636e29
Merge pull request #1915 from akortunov/enterfix
Disable repeating for Accept GUI action
2018-09-14 15:17:47 +02:00
Marc Zinnschlag
252ed9bd4b Merged pull request #1914 2018-09-13 11:53:21 +02:00
Capostrophic
664c630ac0 Don't make sTo strings static references 2018-09-12 16:36:03 +03:00
Andrei Kortunov
e300a16b24 Use field for columns count instead of out integer 2018-09-12 14:31:01 +04:00
Andrei Kortunov
7a986f38da Support for user-defined TrueType fonts 2018-09-12 14:31:01 +04:00
Andrei Kortunov
c9c0230d2a Scale journal fonts separately from common ones 2018-09-12 14:31:01 +04:00
Andrei Kortunov
f89393fd62 Validate 'ttf resolution' option value 2018-09-12 14:31:01 +04:00
Andrei Kortunov
adbaeb7cca Improve GUI scaling (bug #3288) 2018-09-12 14:31:01 +04:00
Marc Zinnschlag
6100e34051 Merged pull request #1912 2018-09-12 12:04:49 +02:00
Andrei Kortunov
9918212a1e Set focus to Close button when opening the container window (bug #4333) 2018-09-11 11:22:26 +04:00
Andrei Kortunov
c2c24a76a4 Handle MyGUI exceptions inside destructors 2018-09-11 11:11:27 +04:00
Andrei Kortunov
269ef7a559 Disable repeating for ENTER key in GUI 2018-09-10 12:55:00 +04:00
Andrei Kortunov
33a66b778f Disable repeating for Accept action in keyboard navigation (bug #4260) 2018-09-09 23:10:09 +04:00
Capostrophic
702868255a Use sTo GMST in spellmaking menu (feature #4636) 2018-09-09 13:56:58 +03:00
Marc Zinnschlag
ef72024e2c Merged pull request #1902 2018-09-01 11:01:05 +02:00
Capostrophic
b673cdf70e Grant Enchant experience even if recharging fails (bug #4622) 2018-08-30 23:52:33 +03:00
Capostrophic
7ef6fa9f61 Remove deprecated GMST get* functions 2018-08-29 18:38:12 +03:00
Marc Zinnschlag
21d414187f Merged pull request #1896 2018-08-29 12:05:50 +02:00
David Cernat
3bd8aa82fe [General] Reduce inventory-sending hooks to just 2 in ContainerStore
Whenever an item is added to or removed from the player's ContainerStore, that player sends a PlayerInventory packet with just that addition or removal.

This eliminates all the unnecessary packet spam related to oversized PlayerInventory packets that had existed in one form or another since the initial implementation of inventory sync in 1b259e2d33

Additionally, move booleans from BasePlayer to LocalPlayer when they are only needed on the client, and make the usage of the isReceivingQuickKeys boolean consistent with the new isReceivingInventory boolean by having them both in the processors of their associated packets.
2018-08-28 05:01:52 +03:00
Andrei Kortunov
8fa6c6f726 Update pinned windows in-game (bug #4560) 2018-08-27 09:44:04 +04:00
Sophie Kirschner
a1e076a37e Merge branch 'master' into pineapple/fix-video-incomplete-type-2
Resolve merge issues related to CHANGELOG.md

* master:
  Optimize skinning (task #4605)
  Update changelog
  Update some comments
  Set the OpenAL source offset after setting the buffer
  Make Move and MoveWorld console commands move actors standing on moving object (bug #2274)
  Adding Changelog entry
  Allow messageboxes arguments to have newline characters (bug #3836)
  Check for impact immediately when launch a projectile (bug #3059)
  Fix gold count calculation in pickupObject (bug #4604)
  Correct special case soundgen comparisons
  Move "land" check earlier
  Fixes #3681
  Play landing sound manually and ignore land soundgen textkeys (bug #2256)
  Make some more optimizations to actor processing loops
  Fix freeze in getActorsSidingWith
  Addiong missing "to" word
  Adding common problems that were previous on the site FAQ
  Treat <> and << operators as < and  >< and >> as > in scripts
  stage1: priorities for event music and other minor improvements to the music system

# Conflicts:
#	CHANGELOG.md
2018-08-26 12:05:02 +03:00
Sophie Kirschner
dd01c4d224 Fix: 'sizeof' to an incomplete type 'Video::VideoPlayer'
Alternate solution to same problem reported in https://github.com/OpenMW/openmw/pull/1888
2018-08-25 11:53:43 +03:00
Capostrophic
3f76f1d3ed Fix gold count calculation in pickupObject (bug #4604) 2018-08-22 22:35:22 +03:00
David Cernat
03832f933b [Client] Send only individual items in PlayerInventory packets
For a long time, whenever a PlayerInventory packet was sent, it contained all the items in the player's inventory, because that's how Koncord originally implemented it and I always had too many other priorities to go back and rework it.

From now on, clients only send PlayerInventory packet with the one item added or removed, with the single exception being trading with merchants, where the entire inventory is still sent for the time being.
2018-08-21 10:10:06 +03:00
David Cernat
45b011452e [Client] Combine methods for sending spell packets into a single one 2018-08-21 01:20:30 +03:00
David Cernat
a083439139 Merge pull request #469 from davidcernat/master while resolving conflicts
# Conflicts:
#	apps/openmw/main.cpp
#	apps/openmw/mwbase/world.hpp
#	apps/openmw/mwdialogue/dialoguemanagerimp.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwscript/dialogueextensions.cpp
#	apps/openmw/mwworld/worldimp.hpp
2018-08-20 14:08:44 +03:00
Marc Zinnschlag
088463ebe6 Merged pull request #1868 2018-08-17 09:37:49 +02:00
Capostrophic
372697489b Fix Equip command infinite loop (bug #3072) 2018-08-17 02:52:18 +03:00
Andrei Kortunov
5a4d0cec3a Use new logging system for game itself 2018-08-14 23:05:43 +04:00
Andrei Kortunov
9dfd775bf2 Implement GetPCTraveling console command 2018-08-13 08:30:50 +04:00
David Cernat
8df08c7d10 [General] Implement PlayerItemUse packet
Players can no longer unilaterally use items on themselves in their inventory. When they try to use an item, they send a PlayerItemUse packet to the server with the item's details. A serverside script can then check the item and either send the packet back to make the item use go through or drop it.
2018-08-09 18:25:20 +03:00
Marc Zinnschlag
fe19d8ff35 Merged pull request #1857 2018-08-09 13:52:51 +02:00
Andrei Kortunov
6202b4eca9 Do not touch GUI modes when taking screenshots (bug #4528) 2018-08-08 22:10:53 +04:00
Capostrophic
e9e9c0dd6b Fix guild guide fast travelling to exteriors time 2018-08-08 12:46:36 +03:00
Capostrophic
bcd9cc4baa Check the actor cell instead of the destination cell in fast travel price logic 2018-08-08 02:07:48 +03:00
Marc Zinnschlag
b75b5d139a Merged pull request #1845 2018-08-05 12:28:38 +02:00
Capostrophic
7087bad580 Use special behavior for all topics with reserved names (bug #4557) 2018-08-05 12:39:53 +03:00
Andrei Kortunov
b0f2e00e7f Make forcegreeting a non-op for non-actor objects (bug #4553) 2018-08-05 09:31:45 +04:00
Marc Zinnschlag
452a706047 Merged pull request #1837 2018-08-04 10:26:44 +02:00
Andrei Kortunov
eeffe2e557 Check if item model exists inside drag and drop functions 2018-08-03 16:42:43 +04:00
Marc Zinnschlag
eb5f558f6f Merged pull request #1839 2018-08-03 12:53:55 +02:00
Capostrophic
3ac030d75a
Handle explicit calls before handling quotes 2018-08-02 09:49:53 +03:00
Capostrophic
fa6c205e5d Make tab autocompletion work with explicit reference calls 2018-08-02 03:24:31 +03:00
Andrei Kortunov
12144de8ed Initialize missing variables 2018-08-01 20:18:37 +04:00
Andrei Kortunov
c0bed0fde2 Handle case when index < 0 2018-08-01 20:17:59 +04:00
Andrei Kortunov
a08048da4e Avoid dereference after null check 2018-08-01 19:30:30 +04:00
Capostrophic
ab29f9e13f Add permanent barter disposition change option (feature #3103) 2018-08-01 17:31:35 +03:00
Andrei Kortunov
0f2c3ecb17 Rescale player avatar (bug #4539) 2018-07-30 17:41:43 +04:00
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.
2018-07-30 10:56:26 +03:00
Capostrophic
9c8e284ead Fix quick key activation delay code (regression #4536) 2018-07-29 12:52:29 +03:00
David Cernat
d93b67ef21 [General] Sync soul refIds for items and add related script functions 2018-07-26 22:37:04 +03:00
Capostrophic
cac2bc768e
Fix NPC "can't teach more" message (bug #4494) 2018-07-25 12:34:33 +03:00
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.
2018-07-24 20:58:55 +03:00
David Cernat
36ac2d9de4 [Client] Set packetOrigin for all ObjectList packets sent 2018-07-23 01:39:43 +03:00
David Cernat
63a86f145d [Client] Record type of each InterpreterContext for later checking 2018-07-23 00:46:07 +03:00
David Cernat
2189ea1a63 [Client] Clean up sending of Container packets 2018-07-22 16:43:27 +03:00
David Cernat
21d5bb4d4e
Merge pull request #460 from OpenMW/master
Add 0.7.0 commits up to 20 Jul 2018
2018-07-21 05:59:57 +03:00
David Cernat
b6db570d9c [Client] Display uniqueIndexes in a less confusing way in console 2018-07-19 11:57:06 +03:00
Andrei Kortunov
edd5769022 Show magic items count in spells window (feature #4509) 2018-07-16 14:11:03 +04:00
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
2018-07-14 03:57:05 +03:00
David Cernat
09da24f1ea [General] Rename all instances of refNumIndex into refNum
This creates symmetry with mpNum and should cause less confusion in the future.
2018-07-13 04:12:03 +03:00
Marc Zinnschlag
ee759effce Merged pull request #1798 2018-07-11 10:06:30 +02:00
Andrei Kortunov
c77c50e92b Make Equip console command to bypass most of restrictions (bug #4460) 2018-07-11 00:06:21 +04:00
David Cernat
4d4bced929 [Client] Allow singleplayer-only saves in main menu during multiplayer 2018-07-09 22:53:18 +03:00
terrabyte25
48296a7452
Update trainingwindow.cpp 2018-07-09 23:13:52 +04:00
David Cernat
6ff7fa525e [Client] Disable autosaving when waiting 2018-07-08 23:04:30 +03:00
Capostrophic
bded697f07
Make Goodbye block using hyperlinks 2018-07-06 19:38:36 +03:00
David Cernat
c2411982d2 [Client] Log object refNumIndexes and mpNums in a consistent way 2018-07-04 21:54:11 +03:00
David Cernat
7775780ad7 [Cllient] Update multiplayer code for handling quick keys 2018-07-04 05:56:10 +03:00
David Cernat
a236ffc4be Merge pull request #456 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	README.md
#	apps/openmw/mwgui/quickkeysmenu.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwmechanics/combat.cpp
2018-07-04 01:52:29 +03:00
Thunderforge
7cbc4eeb49 Adding missing override keywords
Prevents compiler warnings such as this:

```
/Users/Will/CLionProjects/OpenMW/apps/openmw/mwgui/windowbase.hpp:65:22: warning: 'onOpen' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        virtual void onOpen();
                     ^
/Users/Will/CLionProjects/OpenMW/apps/openmw/mwgui/windowbase.hpp:38:22: note: overridden virtual function is here
        virtual void onOpen() {}
                     ^
```
2018-07-01 19:17:50 -05:00
Finbar Crago
5d9035c6b2 [Fixes #4482] Missing HandToHand on key quick key 0 (introduced in MR !11 for issue #4480)
because apparently i can't count to ten...
2018-07-01 13:46:23 +10:00
Finbar Crago
09c9bd34c3 cleanup more unnecessary struct keywords... 2018-06-30 12:43:50 +10:00
Finbar Crago
596be205c1 cleanup unnecessary struct keywords... 2018-06-29 23:43:51 +10:00
Finbar Crago
2722ca50fb fix QuickKeysMenu crash on reopening window after item drop + pickup [see: !11#note_85086570] 2018-06-29 23:32:05 +10:00
Finbar Crago
ed71656ea6 fix updateActivatedQuickKey() crash
keyboard numbers don't start at zero...
2018-06-29 01:58:57 +10:00
Finbar Crago
24d5fb09da fix crash on simultaneous key presses 2018-06-28 22:55:02 +10:00
Finbar Crago
80a3f0a0d4 switch mSelectedIndex/mActivatedIndex int to mSelected/mActivated keyData pointers 2018-06-28 17:02:25 +10:00
Finbar Crago
335e2c5897 add keyData struct + general cleanup 2018-06-28 13:27:08 +10:00
David Cernat
b81ca18316 [Client] Don't clear container Ptrs when disposing of corpses
The reason for this is that only the server should be determine whether a corpse can be disposed of or not.
2018-06-28 01:45:15 +03:00
Finbar Crago
cac6d59140 Merge branch 'master' into fix_quickkey_segfalt 2018-06-27 12:58:43 +10:00
Finbar Crago
43c9fd4cec check MWWorld::Ptr != NULL for MWGui ItemPtr tooltips 2018-06-26 13:41:53 +10:00
Finbar Crago
186ec8c50f rm ContainerStore/refItem 2018-06-26 13:35:04 +10:00
Marc Zinnschlag
705b2dca0e Merged pull request #1777 2018-06-25 11:58:12 +02:00
Finbar Crago
46c6abcf54 add string vectors for name/id in QuickKeysMenu for item lookups 2018-06-25 16:02:28 +10:00
Andrei Kortunov
441463327c Validate map size 2018-06-25 09:57:40 +04:00
Capostrophic
35b0546737 Consider <p> tag when discarding post-EOL tag text (regression #4473) 2018-06-23 14:27:40 +03:00
Finbar Crago
da4c55d5ad prevent segfalt in QuickKeysMenu when item has been removed from player inventory
added a MWWorld::ContainerStore to hold item copies which are then used to find
real items with findReplacement().

(storing the RefId could be a better solution but would probably leave tooltips broken...)
2018-06-23 17:51:32 +10:00
David Cernat
fd05beef94 [Client] Don't delete disposed of corpses on client
Clients should instead await a server reply approving the deletion.
2018-06-20 02:01:19 +03:00
Miloslav Číž
d629c30fdb
Merge branch 'master' into screenshot360 2018-06-13 21:16:28 +02:00
Andrei Kortunov
61c968d550 Ignore broken items when search for replacement (bug #4453) 2018-06-13 18:39:02 +04:00
Capostrophic
1c8a20a54a Set ok button focus in settings window by default (fixes #4368) 2018-06-12 19:45:43 +03:00
Bret Curtis
7310e3c8c2
Merge pull request #1748 from akortunov/bookfix
Do not show any book text after last <BR> tag
2018-06-11 17:08:26 +02:00
Andrei Kortunov
66a46ff03c Do not show any book text after last <BR> tag. 2018-06-11 11:22:56 +04:00
Capostrophic
d43766d3c9 Make WakeUpPC interrupt waiting if it was supposed to be (fixes #3629) 2018-06-10 18:42:18 +03:00
David Cernat
2a3c74bfcc Merge pull request #447 from OpenMW/master while resolving conflicts
# Conflicts:
#	README.md
2018-06-08 06:01:00 +03:00
Capostrophic
1a354f88ac Make choices trigger goodbye if Goodbye is used (fixes #3897) 2018-06-07 22:09:55 +03:00
Capostrophic
191cc76378 Consider faction ownerships in item stolen checks (fixes #4293) 2018-06-03 10:22:20 +03:00
David Cernat
669d4d3d7e
Merge pull request #440 from OpenMW/master
Add OpenMW commits up to 27 May 2018
2018-05-27 16:10:16 +03:00
Andrei Kortunov
1abff5365b Capitalize enchanted items names again in spells window 2018-05-24 13:03:47 +04:00
Andrei Kortunov
afae398b5c Use utf8 lowercase function for journal index to avoid code duplication 2018-05-24 12:53:06 +04:00
Andrei Kortunov
b5374029e5 Implement case-insensitive search in spell window 2018-05-24 12:39:00 +04:00
Andrei Kortunov
9ac752ea70 Implement filtering in the spells window 2018-05-24 10:48:46 +04:00
David Cernat
031a80ed5a [Client] Don't advance time when waiting, traveling, training or jailed 2018-05-23 05:49:51 +03:00
David Cernat
1e749938fb
Merge pull request #426 from OpenMW/master
Add OpenMW commits up to 15 May 2018
2018-05-15 21:01:33 +03:00
Bret Curtis
c75d774356
Merge pull request #1692 from akortunov/playsound
Prevent PlaySound overlapping
2018-05-15 19:03:01 +02:00
David Cernat
9b9dd4abaf
Merge pull request #425 from OpenMW/master
Add OpenMW commits up to 13 May 2018
2018-05-13 19:27:34 +03:00
David Cernat
78234f9071 [General] Rename Event into ObjectList & WorldObject into BaseObject 2018-05-13 00:42:24 +03:00
David Cernat
6bf3a0be1e [General] Rename WorldPackets into ObjectPackets for clarity 2018-05-12 19:40:00 +03:00
David Cernat
57b791ea2a [Client] Show selected object's refNum & mpNum in console window title
This allows for much easier debugging of all objects and actors.
2018-05-11 00:46:24 +03:00
David Cernat
32d71de2f5 Update MapWindow every frame, not just when it's open (bug #4279) 2018-05-09 07:33:45 +03:00
David Cernat
715012f087 [General] Implement sending of image data for map tiles in PlayerMap 2018-05-08 05:57:04 +03:00
Andrei Kortunov
4872edc5ed Prevent PlaySound overlapping 2018-05-01 16:24:32 +04:00
David Cernat
02eef933fd
Merge pull request #411 from OpenMW/master
Add OpenMW commits up to 19 Apr 2018
2018-04-21 17:00:55 +03:00
scrawl
5d1b40c5ea
Merge pull request #1678 2018-04-19 12:18:24 +00:00
David Cernat
57070b7f5c [Client] Disable automatic transition to other chargen menus from OpenMW
Previously, after finishing the TES3MP chargen once, mCreationStage was set to 4 in OpenMW, which in turn made it impossible to go through only specific chargen menus again as the result of the relevant TES3MP script function (tes3mp.SetCharGenStage(pid, startStage, endStage) in 0.6.3, player:setCharGenStages(startStage, endStage) in 0.7). In other words, trying to allow a player to just choose their class again made it so the player started at that menu and went through all the other subsequent menus as well, i.e. the player went through the class, birthsign and review menus.
2018-04-19 13:47:42 +03:00
Capostrophic
8617d0603b Display a message if a spell the player tries to use via a quick key is missing (fixes #4391) 2018-04-18 19:10:46 +03:00
David Cernat
9e5ddeac50
Merge pull request #408 from OpenMW/master
Add OpenMW commits up to 18 Apr 2018
2018-04-18 18:05:09 +03:00
tri4ng1e
d310d36ea3
[Fix] Some PVS-Studio and cppcheck fixes 2018-04-18 12:36:10 +00:00
tri4ng1e
d4d1703bcf
Some PVS-Studio and cppcheck fixes
cppcheck:
[apps/esmtool/record.cpp:697]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1126]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1138]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/niftest/niftest.cpp:36]: (performance) Function parameter 'filename' should be passed by reference.
[apps/niftest/niftest.cpp:41]: (performance) Function parameter 'filename' should be passed by reference.
[apps/opencs/model/prefs/boolsetting.cpp:25]: (warning) Possible leak in public function. The pointer 'mWidget' is not deallocated before it is allocated.
[apps/opencs/model/prefs/shortcuteventhandler.cpp:52]: (warning) Return value of std::remove() ignored. Elements remain in container.
[apps/openmw/mwstate/quicksavemanager.cpp:5]: (performance) Variable 'mSaveName' is assigned in constructor body. Consider performing initialization in initialization list.

PVS-Studio:
apps/opencs/model/filter/parser.cpp  582  warn  V560 A part of conditional expression is always true: allowPredefined.
apps/opencs/view/world/referencecreator.cpp  67  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/world/referencecreator.cpp  74  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !completed.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !error.empty().
apps/opencs/model/tools/pathgridcheck.cpp  32  err  V517 The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. Check lines: 32, 34.
apps/opencs/model/world/refidadapterimp.cpp  1376  err  V547 Expression 'subColIndex < 3' is always true.

apps/openmw/mwgui/widgets.hpp  318  warn  V703 It is odd that the 'mEnableRepeat' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:318, MyGUI_ScrollBar.h:179.
apps/openmw/mwgui/widgets.hpp  319  warn  V703 It is odd that the 'mRepeatTriggerTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:319, MyGUI_ScrollBar.h:180.
apps/openmw/mwgui/widgets.hpp  320  warn  V703 It is odd that the 'mRepeatStepTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:320, MyGUI_ScrollBar.h:181
apps/openmw/mwmechanics/actors.cpp  1425  warn  V547 Expression '!detected' is always true.
apps/openmw/mwmechanics/character.cpp  2155  err  V547 Expression 'mode == 0' is always true.
apps/openmw/mwmechanics/character.cpp  1192  warn  V592 The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
apps/openmw/mwmechanics/character.cpp  521  warn  V560 A part of conditional expression is always true: (idle == mIdleState).
apps/openmw/mwmechanics/pathfinding.cpp  317  err  V547 Expression 'mPath.size() >= 2' is always true.
apps/openmw/mwscript/interpretercontext.cpp  409  warn  V560 A part of conditional expression is always false: rank > 9.
apps/openmw/mwgui/windowbase.cpp  28  warn  V560 A part of conditional expression is always true: !visible.
apps/openmw/mwgui/journalwindow.cpp  561  warn  V547 Expression '!mAllQuests' is always false.
apps/openmw/mwgui/referenceinterface.cpp  18  warn  V571 Recurring check. The '!mPtr.isEmpty()' condition was already verified in line 16.
apps/openmw/mwworld/scene.cpp  463  warn  V547 Expression 'adjustPlayerPos' is always true.
apps/openmw/mwworld/worldimp.cpp  409  err  V766 An item with the same key '"sCompanionShare"' has already been added.
apps/openmw/mwworld/cellstore.cpp  691  warn  V519 The 'state.mWaterLevel' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 689, 691.
apps/openmw/mwworld/weather.cpp  1125  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1123, 1125.
apps/openmw/mwworld/weather.cpp  1137  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1135, 1137.

apps/wizard/unshield/unshieldworker.cpp  475  warn  V728 An excessive check can be simplified. The '(A && B) || (!A && !B)' expression is equivalent to the 'bool(A) == bool(B)' expression.
apps/wizard/installationpage.cpp  163  warn  V735 Possibly an incorrect HTML. The "</p" closing tag was encountered, while the "</span" tag was expected.

components/fontloader/fontloader.cpp  427  err  V547 Expression 'i == 1' is always true.
components/nifosg/nifloader.cpp  282  warn  V519 The 'created' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 278, 282.
components/esm/loadregn.cpp  119  err  V586 The 'clear' function is called twice for deallocation of the same resource. Check lines: 112, 119.
components/esm/cellref.cpp  178  warn  V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 175, 178.
components/esmterrain/storage.cpp  235  warn  V560 A part of conditional expression is always true: colStart == 0.
components/esmterrain/storage.cpp  237  warn  V560 A part of conditional expression is always true: rowStart == 0.
2018-04-18 12:36:10 +00:00
David Cernat
17678ee60f
Merge pull request #407 from OpenMW/master
Add OpenMW commits up to 17 Apr 2018
2018-04-17 15:25:28 +03:00
Andrei Kortunov
174b3d2249 Reset an inventory filter after reload or a new game start (bug #4392) 2018-04-13 09:19:49 +04:00
David Cernat
fa652964fd
Merge pull request #403 from OpenMW/master
Add OpenMW commits up to 9 Apr 2018
2018-04-10 06:43:24 +03:00
scrawl
35300c04cd
Merge pull request #1671 2018-04-09 20:23:35 +00:00
Capostrophic
cddc0914c8 Option to charge for all companions travelling (fixes #4064) 2018-04-09 19:19:50 +03:00
David Cernat
d8b48f6cf4 [Client] Remove redundant container methods from CellController 2018-04-01 07:11:43 +03:00
David Cernat
ac82124a5d Merge pull request #395 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwmechanics/actors.cpp
2018-03-29 07:28:30 +03:00
David Cernat
5f6ddcfc59 [General] Rework container sync to prevent item duping
A main priority in TES3MP development is to avoid making major changes to OpenMW code, so as to avoid merge conflicts in the future. Whenever avoiding potential conflicts seems especially difficult for the proper implementation of a particular multiplayer feature, that multiplayer feature is often put off until later or partially implemented with the intent of being revisited in the future.

Container sync is the perfect example. Previously, the OpenMW code for container actions was kept exactly as it was, with clients unilaterally accepting their own container changes as per singleplayer-specific code, with only the addition that clients sent container packets every time they made a change in a container, packets which were then forwarded unquestioningly by the server to other players. This meant that two players clicking on the same item in a container at the same time both managed to take it, thus duplicating the item.

Immediately after the packets were already forwarded, server scripts were able to check for incorrect changes, such as the removal of more items than should have existed in a container, but they had to send their own packets that attempted to fix what had already been accepted on the initial client and then forwarded to all clients, which was quite onerous in some scenarios, such as when a player on a slow connection immediately dropped items in the world after taking them from a container (which is why the default TES3MP serverside scripts made no attempt at sending corrective packets at all, preferring to expect the matter to be solved in a later C++ implementation).

This commit fixes item duping in containers by preventing container actions from initially running on clients and by ending the automatic forwarding of container packets by the server. Instead, clients now send container packets that act as requests for container actions, and serverside scripts have to forward these requests themselves. In other words, without a matching Container event in the server's Lua scripts, players are completely unable to affect containers for themselves or for others.

To forward a received Container packet, the following line must be used in a Container event in the Lua scripts:

tes3mp.SendContainer(true, true)

When an invalid action count is used in a container request, the serverside scripts can amend it using the following new function:

tes3mp.SetReceivedContainerItemActionCount(objectIndex, itemIndex, actionCount)

Thus, the serverside scripts are able to allow only container actions that are correct based on their own recorded contents for that container.

The OpenMW code allowing unilateral container actions in mwgui/container.cpp is now prevented from executing. When a player's container request is returned to them, code in mwmp/WorldEvent.cpp simulates those container actions instead.
2018-03-26 19:27:36 +03:00
David Cernat
bb15ee9215 [Client] Make it possible to get ContainerWindow from elsewhere in code 2018-03-24 09:00:15 +02:00
scrawl
edb57306b6
Merge pull request #1628 2018-03-16 23:25:29 +00:00
elsid
a26483ab26 Fix memory leak
There is no delete for TextFormat objects in PageDisplay destructor.
2018-03-13 21:32:59 +03:00
Andrei Kortunov
e0aa5e8e79 Prevent overlapping for journal and books scrolling 2018-03-11 16:19:37 +04:00
David Cernat
b7c6261e16 Merge pull request #392 from OpenMW/master while resolving conflicts
# Conflicts:
#	README.md
2018-03-09 21:07:46 +02:00
scrawl
e81faf5f2f
Add an option to disable GUI keyboard navigation (Bug #4333) 2018-03-08 23:39:35 +00:00
scrawl
870c658500
Remove missing souls, remove some runaway exceptions (Fixes #4111) 2018-03-08 23:38:04 +00:00
scrawl
bf78c18296
Merge pull request #1624 2018-03-07 18:12:32 +00:00
Capostrophic
3b922d810a Don't use floating point arithmetics for formatted count (Bug #4346) 2018-03-07 15:36:10 +03:00
Capostrophic
60a663ef58 Account for all possible count values in getCountString (Bug #4346) 2018-03-06 16:50:38 +03:00
David Cernat
c18d07827d [Client] Hide difficulty widget because it has no use in multiplayer 2018-03-01 09:31:21 +02:00
David Cernat
9e10eb9c84
Merge pull request #389 from OpenMW/master
Add OpenMW commits up to 24 Feb 2018
2018-02-25 22:05:32 +02:00
David Cernat
03266d7648 [Client] Prevent guards from arresting players who are currently jailed 2018-02-25 21:33:04 +02:00
Miloslav Číž
db6107f12f
Merge branch 'master' into screenshot360 2018-02-25 11:25:19 +01:00
Capostrophic
089666dd68
Round up displayed encumbrance 2018-02-24 15:13:14 +03:00
David Cernat
53d758ba16
Merge pull request #385 from OpenMW/master
Add OpenMW commits up to 13 Feb 2018
2018-02-13 05:22:41 +02:00
scrawl
123f7b83d5
Make the CompositeMapRenderer use available time and add related setting 2018-02-13 00:40:41 +00:00
David Cernat
74765b3ace [General] Implement selected spell sync as part of PlayerMiscellaneous 2018-02-06 06:36:46 +02:00
David Cernat
420dab10e1 [General] Track objects directly placed by players in ObjectPlace
This allows the OnPCDrop variable to get set correctly even when object placements have to go through the server first in order to gain a unique multiplayer index (mpNum).

Among other things, this makes it possible to roll marijuana joints in the popular mod "Tribunal Code Patch".
2018-01-28 17:46:51 +02:00
David Cernat
5d4b97645d Merge pull request #374 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/CMakeLists.txt
2018-01-27 22:52:59 +02:00
David Cernat
e3bc11d9eb [Client] Fix ListBox overlap crashes by removing ListBoxes properly 2018-01-27 15:41:11 +02:00
David Cernat
5894ffae7d [Client] Ignore dynamic object placements or spawns in packets 2018-01-17 11:01:31 +02:00
David Cernat
f746958afa [Client] Send enchantmentCharge for items added or removed in containers 2018-01-17 08:10:49 +02:00
scrawl
2caaa48b91
Workaround to make sure message box remains on top (Fixes #4298) 2018-01-14 00:27:53 +00:00
David Cernat
4caf7ca30a [Client] Add temporary fix for crashes caused by custom GUI elements 2018-01-06 20:16:32 +02:00
David Cernat
db0e0d376e [Client] Use new code to set the console's Ptrs from server scripts
Previously, reusing the console's object selection code made it so using the same Ptr twice in a row was akin to clicking on the same object twice in the console window, i.e. the object was deselected the second time around. Additionally, that same code was setting key focus to the hidden console window, preventing players from moving until they activated another window (such as their inventory or chat window).
2017-12-26 15:04:28 +02:00
David Cernat
cac2c6c1e8 Merge pull request #360 from TES3MP/0.6.1-openmw-updates while resolving conflicts 2017-12-25 02:25:01 +02:00
David Cernat
ecb0ad0d77 Merge pull request #359 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
2017-12-25 02:03:02 +02:00
David Cernat
535fba0cb3 [Client] Finish drag and drops when arrested or teleported by server 2017-12-16 07:21:02 +02:00
David Cernat
ebf88d12a3 [Client] Send PlayerInventory packet after buying skill training 2017-12-13 05:46:48 +02:00
David Cernat
0ad9c99cf4 [Client] Send PlayerInventory packet after completing a vendor trade 2017-12-12 15:18:56 +02:00
Andrei Kortunov
29b2308b2c Do not display cyrillic soft/hard signs in the journal index 2017-12-04 22:42:17 +04:00
David Cernat
07f0cc2b0e
Merge pull request #353 from OpenMW/master
Add OpenMW commits up to 4 Dec 2017
2017-12-04 04:38:38 +02:00
scrawl
ff1226c96b
Merge pull request #1575 2017-12-03 22:22:29 +00:00
Andrei Kortunov
8decd35607 Fixes crash on quickload from the container menu (bug #4239) 2017-12-03 21:49:13 +04:00
David Cernat
e7f20e7daf Merge pull request #351 from OpenMW/master while resolving conflicts
# Conflicts:
#	CMakeLists.txt
#	README.md
2017-11-30 10:06:38 +02:00
scrawl
47a5229eed
Merge pull request #1564 2017-11-29 22:10:36 +00:00
David Cernat
22521578eb
Merge pull request #349 from OpenMW/master
Add OpenMW commits up to 28 Nov 2017
2017-11-29 03:52:15 +02:00
Grigorii Latyshev
2abb1a2ec2 Added checkMagicka parameter 2017-11-28 23:35:54 +01:00
Grigorii Latyshev
ce32462358 Move code to apps/openmw/mwmechanics/spellcasting.cpp, move reduce mana code to CastSpell::cast(const ESM::Spell*) 2017-11-26 13:58:04 +01:00
scrawl
88ec6179ff
Merge pull request #1566 from akortunov/guifixes
Set default values for class and birthsign select menus
2017-11-25 22:58:40 +00:00
Andrei Kortunov
55db3c2712 Set default values for class and birthsign select menus (bug #4226) 2017-11-25 11:35:29 +04:00
David Cernat
d06817a356
Merge pull request #347 from OpenMW/master
Add OpenMW commits up to 25 Nov 2017
2017-11-25 08:54:22 +02:00
Grigorii Latyshev
32096ae0cc Fix displayed spell success chance in God Mode 2017-11-25 01:47:18 +01:00
scrawl
665ca5b2d5
Merge pull request #1558 from akortunov/rusjournal
Cyrillic journal index (bug #2485)
2017-11-24 23:17:28 +00:00
scrawl
8226c8dc92
Merge pull request #1560 from akortunov/guifixes
Fix the Topics button position if the Tribunal is not installed
2017-11-24 23:16:33 +00:00
Grigorii Latyshev
a7c953b318 Display 0 chance for spell if player does not have enought magic energy 2017-11-24 15:06:07 +01:00
David Cernat
2373be9735
Merge pull request #345 from OpenMW/master
Add OpenMW commits up to 23 Nov 2017
2017-11-24 05:46:53 +02:00
Andrei Kortunov
94c0e3ed10 Move toUpper() from StringUtils to the JournalViewModel 2017-11-23 19:37:45 +04:00
Andrei Kortunov
4f190bf7f4 Do not show carriage return characters (bug #3696) 2017-11-23 14:58:20 +04:00
Andrei Kortunov
4d384889af Fix the Topics button position if the Tribunal is not installed 2017-11-23 10:14:45 +04:00
David Cernat
656453725b
Merge pull request #343 from OpenMW/master
Add OpenMW commits up to 23 Nov 2017
2017-11-23 04:51:13 +02:00
David Cernat
6668b9ab42 [General] Implement ConsoleCommand packet 2017-11-23 00:21:47 +02:00
Andrei Kortunov
86a17b1e3e Get rid of the redundant Utf8Stream when during journal index creation 2017-11-22 09:06:54 +04:00
Andrei Kortunov
3571f7f413 Remove getEncoding() from WindowManager 2017-11-22 08:32:38 +04:00
Andrei Kortunov
5f41f7c48d Clean code up a bit 2017-11-21 13:03:38 +04:00
Andrei Kortunov
ba91cd658b Convert topic name to Unicode 2017-11-21 12:31:23 +04:00
Andrei Kortunov
f0ca3eabd3 Merge from upstream master 2017-11-21 09:39:54 +04:00
Andrei Kortunov
a83a43e376 Determine when need to use the Cyrillic journal index 2017-11-21 09:32:35 +04:00
scrawl
719255c5c6
Merge pull request #1557 from akortunov/journalfix
[Feedback needed] Handle 128px Tx_menubook_topics textures
2017-11-20 23:07:18 +00:00
Andrei Kortunov
ce5bdd6361 Split the JournalBooks::createTopicIndexBook() 2017-11-20 22:25:53 +04:00
Andrei Kortunov
a391990f2a Provide multibyte toLower() and single chars comparator 2017-11-20 21:30:46 +04:00
Andrei Kortunov
4dcaf040e6 A Russian journal index 2017-11-20 19:37:24 +04:00
Andrei Kortunov
60d0c83cca Handle 128px Tx_menubook_topics textures 2017-11-20 17:39:28 +04:00
Miloslav Číž
ea2bbce68a Fix memory leak in WindowManager 2017-11-18 19:27:09 +01:00
Miloslav Číž
3ae5310567 use loading screen to freeze the screen 2017-11-16 22:08:33 +01:00
David Cernat
5aff515d3f
Merge pull request #337 from OpenMW/master
Add OpenMW commits up to 15 Nov 2017
2017-11-16 08:49:56 +02:00
scrawl
7c5d2a1ac4 Update dialogue topics list after result script is run
Regression from 0.42.
2017-11-15 17:20:06 +00:00
David Cernat
2ba1c84cf7 Merge pull request #335 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwgui/container.cpp
2017-11-12 06:35:15 +02:00
scrawl
98b4f9c596
Merge pull request #1549 from akortunov/itemmodels
Item models reworking
2017-11-11 22:12:07 +00:00
Andrei Kortunov
03f129b53c remove redundant allowedToInsertItems() function from ItemModel 2017-11-11 11:58:22 +04:00
Andrei Kortunov
99517d83ea Bound items detection refactoring 2017-11-11 11:58:22 +04:00
Andrei Kortunov
a02124f884 Handle item owners during pickpocketing 2017-11-11 11:58:18 +04:00
Andrei Kortunov
3694b6ec90 Move onClose() check to item models 2017-11-10 10:58:43 +04:00
Andrei Kortunov
ac33ff9482 Move onDropItem() check to item models 2017-11-10 10:58:43 +04:00
Andrei Kortunov
3604b73d60 Move onTakeItem() to item models 2017-11-10 10:58:40 +04:00
David Cernat
f2a6957e16 Merge pull request #331 from OpenMW/master while resolving conflicts 2017-11-10 08:43:50 +02:00
scrawl
e42bd71081 Add missing WaitDialog::clear() (Fixes #4196) 2017-11-08 00:24:04 +00:00
scrawl
e6303c578c
Merge pull request #1530 from rexelion/curseitemfix
Trigger OnActivate when item is picked up through the inventory (Issue #3726)
2017-11-05 15:35:39 +00:00
rexelion
8c2cc0f42f break invisibility first 2017-11-04 00:44:16 +00:00
rexelion
bcbfa5fe1e prevent activation, leave the rest to the script 2017-11-04 00:38:33 +00:00
rexelion
a9e5e19482 OnActivate is triggered when the item is picked up 2017-10-31 22:33:26 +00:00
David Cernat
a31d43965f
Merge pull request #328 from OpenMW/master
Add OpenMW commits up to 31 Oct 2017
2017-10-31 06:22:57 +02:00
rexelion
e8743f3f79 check the presence of OnActivate using the SuppressActivate flag instead of looking for keywords 2017-10-30 21:16:25 +00:00
Miloslav Číž
3c65bdaf14 weapon cycle fix 2017-10-30 18:05:45 +01:00
rexelion
4e6f53d6f1 item added to the player and OnActivate is triggered when the inventory is closed 2017-10-29 11:45:17 +00:00
David Cernat
50d5fffb7f [General] Add and implement PlayerQuickKeys packet 2017-10-25 07:21:00 +03:00
David Cernat
dd25c7db4e Merge pull request #324 from OpenMW/master
Add OpenMW commits up to 24 Oct 2017
2017-10-24 19:36:14 +03:00
scrawl
e564dd842e Refactor dialogue responses to make sure messages from scripts are printer afterwards, not before the dialogue response (Fixes #4166)
Don't delete Link objects prematurely (Fixes #4171)
2017-10-23 23:33:06 +00:00
scrawl
2a0b2c4e24 Hide modal window before deleting it (Fixes #4168) 2017-10-23 23:33:05 +00:00
David Cernat
360cf2ead7 Merge pull request #321 from OpenMW/master
Add OpenMW commits up to 22 Oct 2017
2017-10-23 14:51:29 +03:00
scrawl
8b19a8b7f6 Merge pull request #1513 from lukago/feature4082b
Feature #4082: use many ingredients/potions instantly
2017-10-22 20:51:14 +00:00
David Cernat
3a9e5e3a7b Merge pull request #319 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwworld/worldimp.hpp
2017-10-22 20:27:44 +03:00
lukago
b6cb3b445c use getIndex to handle other windows, nullsafe fixes 2017-10-21 23:34:57 +02:00
Andrei Kortunov
eaff7e30aa Fix a 'Good Beast' companion window 2017-10-21 16:56:21 +04:00
lukago
a3225364ff refactor, use dragItem method 2017-10-19 17:43:27 +02:00
lukago
43f94a8890 simplify drag and drop on avatar for potions and ingredients 2017-10-19 16:50:04 +02:00
David Cernat
e164e6305e Merge pull request #313 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	CMakeLists.txt
#	apps/openmw/mwgui/jailscreen.cpp
#	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
2017-10-16 07:37:29 +03:00
scrawl
03554b2f4b Fix some style issues flagged by cppcheck 2017-10-15 17:06:58 +02:00
scrawl
624046c558 Fix unused event handler 2017-10-15 17:06:58 +02:00
scrawl
548af6dbfb Fix jail screen fading 2017-10-14 14:03:16 +00:00
David Cernat
41ff3fee89 Merge pull request #310 from OpenMW/master while resolving conflicts
# Conflicts:
#	CMakeLists.txt
2017-10-09 14:41:55 +03:00
scrawl
479f9535b4 Allow training window exit() 2017-10-08 20:38:20 +00:00
scrawl
9cde3e4408 Merge pull request #1495 from akortunov/regressions
Add showsInInventory() check to the ContainerItemModel
2017-10-08 14:09:59 +00:00
Andrei Kortunov
ea3729790f Add showsInInventory() check to the ContainerItemModel 2017-10-08 09:20:07 +04:00
David Cernat
711c4d83da [Client] Fix build after recent OpenMW changes to GUI 2017-10-07 23:33:36 +03:00
David Cernat
3e8d7c8416 Merge pull request #306 from OpenMW/master
Add OpenMW commits up to 7 Oct 2017
2017-10-07 21:54:21 +03:00
scrawl
7021d354c6 Merge pull request #1493 from akortunov/regressions
Regression fixes
2017-10-06 16:21:16 +00:00
scrawl
2805781542 Fix a crash when exit() already hides the window (Fixes #4148) 2017-10-06 16:18:57 +00:00
Andrei Kortunov
ad27e0f945 Fix owned tooltip in the spellwindow 2017-10-06 11:38:27 +04:00
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
2017-10-06 04:10:04 +03:00
scrawl
842a42ee66 Fix non-top level Windows accepting key focus 2017-10-05 18:41:02 +02:00
scrawl
cd437f094d Fix exiting savegamedialog with 'esc' when no game is running 2017-10-05 18:35:09 +02:00
scrawl
d94235e3a7 Update the saves list/preview image when character selection changes to make it more convenient to flip through characters with the keyboard 2017-10-04 16:00:39 +00:00
scrawl
12510efab7 Fade screen out during loading screen (when travelling) 2017-10-04 16:00:38 +00:00
scrawl
a4737d8417 Use MyGUI frame events for ScreenFader 2017-10-04 16:00:38 +00:00
scrawl
e4f0f7157a Fix pinned windows not being updated 2017-10-04 16:00:37 +00:00
scrawl
49a0922f1b Remove 'visibility mask' gui feature which did not end up being useful 2017-10-04 16:00:37 +00:00
scrawl
7c68ed04b2 Don't require modal windows to be removed in the same order they were added 2017-10-04 16:00:37 +00:00
scrawl
b5c9977a7b Merge pull request #1489 from akortunov/guifixes
Use an "owned crosshair" feature for items in containers
2017-10-04 15:59:43 +00:00
Andrei Kortunov
1cb7ed5db1 Use owned tooltips for items in containers correctly 2017-10-04 12:13:45 +04:00
scrawl
433028e8d7 Fix GUI regressions 2017-10-03 22:07:56 +00:00
scrawl
302e3c8b3d Merge pull request #1486 from akortunov/pickpocketfix
Fix some issues with pickpocketing (bug #4131)
2017-10-01 16:05:38 +00:00
Andrei Kortunov
34895157f9 Consider taking items from unconscious NPC as a theft 2017-09-30 20:22:26 +04:00
Andrei Kortunov
04452b0949 Use a pickpocket crime instead of theft when pickpocketing was failed 2017-09-30 20:11:53 +04:00
scrawl
3c62a8c5c2 Fix console selected object persisting on a new game 2017-09-30 15:40:47 +00:00
scrawl
097b9d90bc Fix travel service not showing 2017-09-30 15:40:47 +00:00
scrawl
5b10e3128e Use first resolution in fullscreen if current is not supported (Fixes #4113) 2017-09-29 14:58:25 +00:00
scrawl
64e27c032b Merge pull request #1481 from scrawl/keyfocus
WindowManager overhaul & improved keyboard support
2017-09-28 22:34:05 +00:00
scrawl
7bb0a76df2 Fix tooltips showing when cursor isn't visible 2017-09-28 19:42:16 +02:00
scrawl
14c9e858c8 Check to make sure button is enabled 2017-09-28 17:00:07 +00:00
scrawl
6ec66fa95f Restore keyfocus to goodbye when selecting a topic 2017-09-28 16:57:55 +00:00
scrawl
0ae009eb21 Hide message box before deleting it
Fixes a crash when closing the game window during the 'plugin mismatch' dialog. Modal windows have to be hidden before they are deleted to prevent a dangling pointer in WindowManager.
2017-09-27 22:19:42 +02:00
scrawl
d53e7f8a3c Remove redundant code
Already worked around in WindowBase::setVisible
2017-09-27 22:07:49 +02:00
scrawl
0deda69a27 Fix wrong skin for levelup attribute values 2017-09-27 22:04:36 +02:00
scrawl
e9d81fdf5a Fix being able to escape interactive messageboxes 2017-09-27 22:00:20 +02:00
scrawl
db650df416 Fix 'blocking' messageboxes not handling key focus properly 2017-09-27 21:41:22 +02:00
scrawl
a0f5e32113 Fix 'new game' from the main menu not removing menu afterwards 2017-09-27 21:38:15 +02:00
scrawl
0ee57effcc Make 'Delete game' button not accept keyfocus, to prevent accidents 2017-09-27 12:56:12 +00:00
scrawl
c7a82704c6 Fix key focus resets in SaveGameDialog 2017-09-27 12:56:11 +00:00
scrawl
3d2ad2d339 Include cleanup 2017-09-27 12:56:09 +00:00
scrawl
87311d86b5 Fix what looks like a copy/paste error 2017-09-27 12:56:08 +00:00
scrawl
7a3fbfb34a Slightly improve journal window keyboard navigation 2017-09-27 12:56:05 +00:00
scrawl
05814c0929 Add key focus handling for WaitDialog
Default is 'until healed'. Up/Down arrows change the hour slider and implicitely change the button to 'Wait'.
2017-09-27 12:56:03 +00:00
scrawl
8964fc93d6 Fix dialogue window not being exited properly 2017-09-27 12:56:02 +00:00
scrawl
7a64098da3 Avoid rebuilding the dialogue topics pane unnecessarily
Also retaining key focus.
2017-09-27 12:56:02 +00:00
scrawl
22929e53fa Don't ignore my own advice
Can't wait until MyGUI 3.2.2 is a build dependency, then we can use key focus events to handle the SDL text input.
2017-09-27 12:55:58 +00:00
scrawl
1714271a76 Improve KeyboardNavigation to better handle modal windows
It's no longer possible to cycle to widgets that aren't part of the current modal window.

The window manager will remember the focused widget of a modal window on a limited basis (it'll be discarded when a different modal window opens).
2017-09-27 12:55:58 +00:00
scrawl
41fe16013b Select first widget if we can't find the current widget 2017-09-27 12:55:55 +00:00
scrawl
475ac46f3e Workaround keyfocus issues in current versions of MyGUI 2017-09-27 12:55:54 +00:00
scrawl
010a7ea5b3 Fix tooltip widgets being set to accept key focus 2017-09-27 12:55:52 +00:00
scrawl
2514cc5cc8 Workaround key focus being reset in BookWindow when next/prev are hidden 2017-09-27 12:55:50 +00:00
scrawl
fce9a14986 Hide the mouse cursor until it's used 2017-09-27 12:55:48 +00:00
scrawl
9b91ea5d34 Exit drag-and-drop if dragged item is deleted (Fixes #3097) 2017-09-26 16:51:19 +02:00
scrawl
2ce79e07a4 Refactor dialogue GUI to talk to the dialogue manager, not the other way around and not both ways.
- Fix memory leaks in DialogueWindow
- Fix Link objects being deleted from their own event handler
2017-09-25 23:38:28 +02:00
scrawl
c5613e384e Remove duplicate disposition code 2017-09-25 21:30:03 +02:00
scrawl
36c192a1dd Undo the console portion of 84657271c7 because it results in the console forgetting its object on opening 2017-09-25 21:15:38 +02:00
scrawl
717e68fab2 Remove redundant resetHistory argument 2017-09-25 19:58:34 +02:00
scrawl
e14573fa8c Add missing null check 2017-09-25 19:53:42 +02:00
scrawl
19e07fad30 Remove redundant Services enum 2017-09-25 19:52:20 +02:00
scrawl
f8ffd85146 Topic passed to keywordSelected() no longer has to be lower case
Remove redundant mDialogueMap
2017-09-25 19:03:38 +02:00
scrawl
b7752ec52d Make TradeWindow not depend on DialogueWindow 2017-09-25 18:07:49 +02:00
scrawl
d78e822833 Add 'delay' argument for screen fading operations 2017-09-25 00:47:10 +02:00
scrawl
c035548f37 Make Tab work if selected widget is marked as not needing keyfocus 2017-09-25 00:47:09 +02:00
scrawl
94b538ac82 Fix crash due to not calling WindowModal::onClose() 2017-09-25 00:47:08 +02:00
scrawl
67dc4e019a Make Enter on trade window price attempt the trade 2017-09-25 00:47:07 +02:00
scrawl
8ae7e4c958 Make Enter on a name edit accept the dialog 2017-09-25 00:47:07 +02:00
scrawl
843106fc61 Handle the wait progress bar as part of the GUI mode 2017-09-25 00:47:06 +02:00
scrawl
9ed1b16553 Extend code that detects whether a key was consumed by the GUI (Fixes #4016) 2017-09-25 00:47:05 +02:00
scrawl
0e57f1317b Remove redundant setVisible(false) 2017-09-25 00:47:05 +02:00
scrawl
331192f2d6 Improve keyboard navigation of book/scroll windows 2017-09-25 00:47:04 +02:00
scrawl
d58ff4a736 Remove obsolete Container GUI keyboard handling 2017-09-24 19:08:16 +02:00
scrawl
c0d8bef82f Call changeInputMode() from updateVisible() 2017-09-24 19:08:16 +02:00
scrawl
222defc6d8 Extend HUD::clear() 2017-09-24 19:08:16 +02:00
scrawl
f6c227b966 Reset screen faders in clear()
Fixes a black screen when loading a game while waiting/resting.
2017-09-24 19:08:15 +02:00
scrawl
d10985e481 Remove unneeded window pointers 2017-09-24 19:08:15 +02:00
scrawl
f67dbc8aa0 Remove redundant update function 2017-09-24 19:08:15 +02:00
scrawl
e7d2a8a4dc Call clear() for every window 2017-09-24 19:08:15 +02:00
scrawl
c6c01870ec Call onResChange for every window 2017-09-24 19:08:15 +02:00
scrawl
2b03bc0c56 Call WindowBase::onFrame() for every active window 2017-09-24 19:08:15 +02:00
scrawl
ba7ae2663f Use a generic container to delete windows 2017-09-24 19:08:15 +02:00
scrawl
32f9c8058a Remove redundant RestBed gui mode 2017-09-24 19:08:14 +02:00
scrawl
9ead331741 Fix pinned windows showing in other GUI modes 2017-09-24 19:08:14 +02:00
scrawl
65a707348c Make Tab select the first widget if none is selected 2017-09-24 19:08:14 +02:00
scrawl
5f440a29bd Remember key focus per GUI mode
Among other things, this will remember the focused button in the container window, allowing quick looting of multiple containers.
2017-09-24 19:08:14 +02:00
scrawl
35110fb2f8 Remove unused and slightly broken custom button titles in ConfirmationDialog 2017-09-24 19:08:14 +02:00
scrawl
ad4b91131f toggleGui renamed to toggleHud, remove unused variable 2017-09-24 19:08:14 +02:00
scrawl
be19f51013 Adjust some more windows to be keyboard friendlier 2017-09-24 19:08:14 +02:00
scrawl
4fff2e2e34 Refactor exitCurrentGuiMode 2017-09-24 19:08:13 +02:00
scrawl
20766fb508 Associate open/close sounds with the GUI mode 2017-09-24 19:08:13 +02:00
scrawl
531e7ac586 Allow drag-and-drop to be cancelled (Esc or Inventory key) 2017-09-24 19:08:13 +02:00
scrawl
269094ba8d Restore the previous key focus widget when exiting modal dialog 2017-09-24 19:08:13 +02:00
scrawl
bbafe1e456 Remove redundant player cell variable 2017-09-24 19:08:13 +02:00
scrawl
84657271c7 Improve WindowManager API with a generic way of passing a Ptr to the opened GUI window 2017-09-24 19:08:12 +02:00
scrawl
3820416277 Refactor the unholy mess that is WindowManager::updateVisible
GUI modes are now defined in a general and extensible way. The next commits are going to take advantage of this.
2017-09-24 19:08:12 +02:00
scrawl
01391b7eed Rename WindowBase's open/close to onOpen/onClose 2017-09-24 19:08:12 +02:00
scrawl
5482ad0482 Fix tab completion in console to not cycle key focus 2017-09-24 19:08:11 +02:00
scrawl
c203a0774a Adjust some layouts to take better advantage of keyboard navigation 2017-09-24 19:08:11 +02:00
scrawl
c11fe6788f Add basic keyboard navigation for the GUI
(Shift)Tab cycles, arrow keys move to the next button in that direction, Enter/Space accepts.

Note: Unless MyGUI is hacked to bits, clicking on an empty space will annoyingly reset the key focus. Not sure how to deal with that yet.

The visual highlight for selected buttons requires MyGUI commit 632d007429d0bf0c7d7f6c5db4a08353a63dd839 or later to appear (to be released in 3.2.3).
2017-09-24 19:08:11 +02:00
scrawl
b22fedf4ae Check 'sYes' in addition to 'sOk' for message box's default keyfocus 2017-09-24 19:08:11 +02:00
David Cernat
73e7aa838d Merge pull request #296 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwgui/container.cpp
2017-09-22 19:12:41 +03:00
scrawl
0e648222b8 Merge pull request #1446 from akortunov/takeallfix
Do not allow to equip a replacement, when take all items from a dead corpse
2017-09-22 09:14:21 +00:00
Andrei Kortunov
4580024d76 Unequip all items from dead corpse when take all items (bug #4095) 2017-09-22 12:32:47 +04:00
scrawl
f004622530 Fix global map arrow/button not showing for a split second when the window is opened for the first time 2017-09-20 22:24:20 +00:00
scrawl
fa364726b8 Merge pull request #1468 from akortunov/itemsorting
Improve item sorting in inventory and containers
2017-09-20 22:22:56 +00:00
scrawl
7dec773ea9 Fix global map arrow/button not showing for a split second when the window is opened for the first time 2017-09-20 23:03:14 +02:00
Andrei Kortunov
771f58ce58 Remove unwanted warnings 2017-09-20 19:47:14 +04:00
David Cernat
7f0ea7d01f Merge pull request #294 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwmechanics/character.cpp
2017-09-20 16:52:44 +03:00
Andrei Kortunov
9d826b2deb Improve item sorting in inventory and containers 2017-09-20 11:57:00 +04:00
scrawl
26e3de1025 Merge pull request #1464 from akortunov/guifixes
Fixed padding of MessageBox buttons
2017-09-19 20:16:09 +00:00
David Cernat
4d4eb1bb9f Merge pull request #292 from OpenMW/master
Add OpenMW commits up to 18 Sep 2017
2017-09-19 09:40:45 +03:00
Andrei Kortunov
2806a35a61 Fixed padding of MessageBox buttons 2017-09-18 23:09:38 +04:00
scrawl
c39c29722b Merge pull request #1459 from akortunov/cyclingfix
Cycle only through weapons which player can equip
2017-09-17 13:17:41 +00:00
Andrei Kortunov
10a0136b4a Cycle only through weapons which can be equipped by player (bug #4104) 2017-09-17 17:14:50 +04:00