Commit graph

16170 commits

Author SHA1 Message Date
David Cernat
e3e1cfc549 [Client] Add forgotten comparison in crimeTime and deathTime check 2018-07-06 20:49:08 +03:00
David Cernat
4eb72eecb1 [Client] Fix crash for invalid CellRefs in MechanicsHelper::getTarget() 2018-07-06 18:39:14 +03:00
David Cernat
4b30a44816 [Client] Compare crimeTime and deathTime when NPCs forgive player crimes
Previously, all crime witnesses stopped being hostile to a respawning player for as long as the player's diedSinceArrestAttempt was true. That meant that, in an area with no guards to arrest the player, crime witnesses did not enage in combat with the player at all ever again until diedSinceArrestAttempt became false.

This commit makes it so the time of the last crime is recorded for each witness, and that is then compared with the time of the LocalPlayer's last death for a one-time crime forgiveness during that player's current life.

This is essentially a gameplay adjustment for "singleplayer with respawns," and will have to be reworked to make sense for every player in multiplayer, though that requires reworking the crime system as a whole and is thus on hold.
2018-07-06 14:17:54 +03:00
David Cernat
c23fc3446f [Client] Avoid sending map tiles for Wilderness cells 2018-07-06 03:54:34 +03:00
David Cernat
17c234d9ca [Client] Use initial values for LocalPlayer and LocalActor killers 2018-07-06 02:07:55 +03:00
David Cernat
97cd3effa7 [Client] Make actor debug consistent with object debug 2018-07-06 00:32:45 +03:00
David Cernat
b0bd12f9dd Merge branch '0.6.3' of https://github.com/TES3MP/openmw-tes3mp into 0.6.3 2018-07-05 22:28:40 +03:00
David Cernat
c075496748 [General] Replace deathReason in death packets with a killer variable
Add serverside script functions for determining the killers of both players and actors.

Use unsigned ints for script functions returning an object or actor's refNumIndex or mpNum.

Remove updateDeadState() from LocalPlayer and make its code part of updateStatsDynamic() for simplicity.
2018-07-05 22:24:51 +03:00
David Cernat
934e592bdb [Server] Make spacing in CharClass consistent with other categories 2018-07-05 20:27:42 +03:00
David Cernat
e8ce009521 [Server] Use regular int as return value for GetObjectSummonerPid()
Additionally, clarify descriptions of script functions for getting information about summoners.
2018-07-05 20:26:23 +03:00
David Cernat
f02492a593 [General] Temporarily include target names in mwmp::Target
These will be removed once the server can get the names matching refIds by reading content files.
2018-07-05 19:40:28 +03:00
David Cernat
691b332d03 [Client] Use MechanicsHelper::getTarget() for summoners in ObjectList 2018-07-05 16:38:03 +03:00
David Cernat
130a32ebb0 [Client] Add new methods for handling mwmp::Target in MechanicsHelper 2018-07-05 16:36:52 +03:00
Koncord
470ea50b54 [General] Use LuaJit instead default Lua 2018-07-05 19:21:53 +08:00
David Cernat
7010575075 [Server] Return -1 in GetObjectSummonerPid() when the player is invalid 2018-07-05 02:05:10 +03:00
David Cernat
76731f5def [Client] Don't remove SummonKeys with actorIds of -1
This prevents summon duplication caused by a SummonKey sometimes being deleted immediately after being created, before the server can send back an ObjectSpawn packet spawning a creature that can be attached to the SummonKey.
2018-07-05 01:11:45 +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
3438061b55 [Server] Add script function for getting a summoner's pid
Additionally, fix typos in the comments for other script functions relating to summoners.
2018-07-04 04:26:44 +03:00
David Cernat
8a23a96da4 [Client] Update initialization of AiFollow packages in multiplayer code 2018-07-04 04:00:12 +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
Koncord
1f4e6e9114 [General] Add integrity checks to Handshake packet 2018-07-03 18:41:03 +08:00
Koncord
fa2bf0663e [General] Simplify vectorContains 2018-07-03 18:41:03 +08:00
Marc Zinnschlag
908af3720f Merged pull request #1791 2018-07-03 09:37:51 +02:00
Marc Zinnschlag
e50c3657b3 Merged merge request !16 2018-07-03 09:05:59 +02:00
Doc West
e9cc697b60 Sort EnumDelegate values by name 2018-07-03 00:52:23 +02:00
David Cernat
3aa125ceda [Server] Add script functions for getting a summoner's refId and indexes 2018-07-03 00:54:08 +03:00
Koncord
53346e2663 [Client] Return 0 if effect not found 2018-07-03 03:43:38 +08:00
Koncord
c5c1a160b2 [Client] Comment out an unused variable 2018-07-03 03:35:48 +08:00
Koncord
895634cd16 [General] Change type of MpNum to "unsigned int" 2018-07-03 03:25:54 +08:00
Koncord
d999cc0d55 [General] Add packetValid flag to packets 2018-07-03 02:06:52 +08:00
David Cernat
f9ebe400f7 [Server] Add script function for checking if object's summoner is player 2018-07-02 18:32:42 +03:00
Koncord
d162f6fd3a [General] Explicitly use limitations of the master server 2018-07-02 23:29:07 +08:00
Koncord
62877f38b7 [General] Remove Terra support
Use LuaJIT instead.
2018-07-02 23:07:09 +08:00
Koncord
685a80887b Remove Pawn support 2018-07-02 23:00:35 +08:00
Andrei Kortunov
f4330cf057 Editor: limit FPS in 3D preview windows (feature #3641) 2018-07-02 12:20:34 +04: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
David Cernat
bef53749ed [General] Replace BaseObject's hasMaster variable with isSummon
Additionally, add a GetObjectSummonState() script function to the server.
2018-07-02 02:25:06 +03:00
David Cernat
8ce225b1cc [Client] Use the casters of damage-dealing spells as death reasons 2018-07-02 00:42:32 +03: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
David Cernat
958b220835 [General] Send summon duration to server in ObjectSpawn packets 2018-07-01 00:43:29 +03:00
Marc Zinnschlag
2ea85d0bb6 Merge remote-tracking branch 'gl_finbar-crago/fix_quickkey_segfalt' 2018-06-30 10:17:05 +02:00
Finbar Crago
09c9bd34c3 cleanup more unnecessary struct keywords... 2018-06-30 12:43:50 +10:00
Capostrophic
6e9c08083d
Add missing empty attacker checks 2018-06-29 20:35:45 +03:00
Capostrophic
bccba24c40 Make unarmed creature attacks not affect armor condition (fixes #2455) 2018-06-29 20:18:28 +03:00
Finbar Crago
69cd7031e7 Merge branch 'master' into fix_quickkey_segfalt 2018-06-29 23:46:36 +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
7ae388086b Merge branch 'master' into fix_quickkey_segfalt 2018-06-29 12:34:53 +10:00
Thunderforge
72f6b1a693 Separating "Game" Advanced Settings into "Game Mechanics" and "User Interface" 2018-06-28 20:13:18 -05: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
Bret Curtis
f07d50e5bf
Merge pull request #1785 from akortunov/warnfix
Fix some GCC warnings
2018-06-28 10:33:51 +02:00
Finbar Crago
d790a27060 Merge branch 'master' into fix_quickkey_segfalt 2018-06-28 18:16:00 +10:00
Andrei Kortunov
d9a1de0ec7 Do not use deprecated function 2018-06-28 11:13:32 +04:00
Andrei Kortunov
5455490ad2 Avoid fall-through in spell selection 2018-06-28 11:12:48 +04: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
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.
2018-06-28 04:53:00 +03:00
David Cernat
84af9d9999 [Server] Reorder world map script functions 2018-06-28 03:48:16 +03: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
Nikolay Kasyanov
5fcb091127 Replace FIXME with a detailed explanation of the issue 2018-06-27 22:40:09 +02:00
Nikolay Kasyanov
9c78364c45 Revert "Merge pull request #1771 from Xenkhan/master"
This reverts commit 9667dd051c, reversing
changes made to f52e06fc19.
2018-06-27 22:19:09 +02:00
David Cernat
7ffdb18bf9 [General] Implement ActorDeath packet, part 1
ActorDeath packets are sent for dead actors before their StatsDynamic packets. They contain the actor's deathReason in a manner similar to that of PlayerDeath packets.

A future commit will replace the deathReason with a variable named killer which will be an mwmp::Target.
2018-06-27 21:47:55 +03:00
Andrei Kortunov
3c7ab976c3 Ignore movement from scripted animations (bug #4475) 2018-06-27 08:22:45 +04:00
Finbar Crago
cac6d59140 Merge branch 'master' into fix_quickkey_segfalt 2018-06-27 12:58:43 +10:00
David Cernat
15bfa30070 [Server] Make it possible to resend received worldstates 2018-06-27 02:00:16 +03:00
David Cernat
7060ff59c5 [Client] Enforce the default global map cell size in multiplayer 2018-06-27 01:23:48 +03:00
David Cernat
fec500c4b0 [Client] Reduce container debug spam by requiring VERBOSE logging for it 2018-06-26 23:40:19 +03:00
David Cernat
914b79fcc9 [General] Make it possible to check which placed objects have containers 2018-06-26 16:56:08 +03: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
Marc Zinnschlag
baeaff2309 Merged pull request #1778 2018-06-25 11:57:45 +02:00
Andrei Kortunov
97d8cc0efe Check if the local was not found, just for sure 2018-06-25 11:21:00 +04:00
Andrei Kortunov
7dff8d8fe2 Check cell for null 2018-06-25 10:26:58 +04: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
Andrei Kortunov
359e748c28 Initialize some missing fields in constructors 2018-06-25 09:35:42 +04:00
David Cernat
deda6ec071 [Client] Don't send WorldMap packets for already explored map tiles 2018-06-25 02:34:11 +03:00
Capostrophic
ecafcefae9
Fall back to regular head when getVampireHead fails 2018-06-24 14:39:48 +03: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
5bb2ba1e9e [General] Limit maximum imageData size in WorldMap packets 2018-06-23 02:33:34 +03:00
Bret Curtis
a55583a395
Merge branch 'master' into master 2018-06-21 22:22:01 +02:00
David Cernat
7e90d1f2a4 [Client] Fix interior-to-exterior and v.v. cell transitions for actors
Make sure only players who are cell authorities can get actors to teleport across cells for them, and display a message box for players who are not cell authorities.
2018-06-21 16:44:49 +03:00
Xenkhan
405a0caf29
Remove unneeded whitespace 2018-06-20 13:56:00 -05:00
Xenkhan
5a4817c147
Get rid of reinterpret_cast<> 2018-06-20 13:33:59 -05:00
Marc Zinnschlag
22eb037c18 Merged pull request #1773 2018-06-20 19:08:50 +02:00
Bret Curtis
6655b7e512
Merge pull request #1740 from nikolaykasyanov/software-cursor-decompression
Decompress cursors using SDL software renderer on Mac or if OSG >= 3.5.8 or if OPENMW_DECOMPRESS_TEXTURES is set
2018-06-20 17:19:48 +02:00
Marc Zinnschlag
6315848620 Merged merge request !2 2018-06-20 16:02:54 +02:00
Bret Curtis
b619c0de2d
Merge pull request #1772 from akortunov/deathanim
Fast-forward death animation to end if death animation was finished earlier
2018-06-20 13:28:36 +02:00
Andrei Kortunov
c195144b17 Take transformation from first node with given name in file (bug #4469) 2018-06-20 14:24:32 +04:00
Atahualpa
c0fc615cd6 Adds the option to ignore "Base" records when running the verifier. (fixes #4466)
Improves previous commit:
1. Initialise mIgnoreBase boolean member with FALSE.
2. Remove isBaseOnly() function and replace with direct use of Record member.
2018-06-20 11:29:38 +02:00
Bret Curtis
664edc5a39
Merge pull request #1757 from akortunov/musicfix
Handle exception when try to load non-music file
2018-06-20 11:18:50 +02:00
Andrei Kortunov
c9756cee4c Fast-forward death animation to end if death animation was finished earlier (regression #4468) 2018-06-20 12:37:58 +04: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
David Cernat
c3c7f2c8f9 [Server] Don't automatically synchronize ObjectDelete packets 2018-06-20 02:00:12 +03:00
Atahualpa
9d61d76e92 Adds the option to ignore "Base" records when running the verifier. (fixes #4466)
Adds a boolean setting to the user preferences. This setting is locally saved to all OpenMW-CS check stages. When a verification is done, the setting is updated on setup for each check stage. If set to true, the boolean value is then used to skip the verification process for every base record - minus some special cases where, e.g., counters are to be set first.

Related issue:
- Fixes #4466: Editor: Add option to ignore base records when running verifier (https://gitlab.com/OpenMW/openmw/issues/4466)

Tests:
The changes were successfully tested in OpenMW-CS by creating faulty "Base" and "Modified" records for every record type (if possible) and, then, running the verifier with and without the option respectively.
2018-06-20 00:20:03 +02:00
Xenkhan
24ddb66af9
Retrieve SDL window settings instead of using magic numbers 2018-06-19 15:03:30 -05:00