1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-30 03:45:32 +00:00
Commit graph

2774 commits

Author SHA1 Message Date
David Cernat
889bcec7f8 Add OpenMW commits up to 1 Sep 2018
# Conflicts:
#	apps/openmw/mwbase/world.hpp
#	apps/openmw/mwclass/creature.cpp
#	apps/openmw/mwclass/npc.cpp
#	apps/openmw/mwgui/jailscreen.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwmechanics/difficultyscaling.cpp
#	apps/openmw/mwscript/transformationextensions.cpp
#	apps/openmw/mwworld/worldimp.hpp
2019-08-20 11:31:51 +03:00
David Cernat
84cab59057 Add OpenMW commits up to 19 Aug 2018
# Conflicts:
#	.travis.yml
#	CI/before_install.linux.sh
#	CI/before_script.linux.sh
#	apps/openmw/engine.cpp
#	apps/openmw/main.cpp
#	apps/openmw/mwgui/windowmanagerimp.cpp
#	apps/openmw/mwmechanics/actors.hpp
#	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
#	apps/openmw/mwscript/aiextensions.cpp
#	apps/openmw/mwscript/containerextensions.cpp
#	apps/openmw/mwscript/dialogueextensions.cpp
#	apps/openmw/mwworld/cellstore.cpp
#	apps/openmw/mwworld/containerstore.cpp
#	apps/openmw/mwworld/scene.cpp
#	apps/openmw/mwworld/worldimp.cpp
#	components/misc/debugging.hpp
2019-08-20 10:06:15 +03:00
David Cernat
0339958e21 [General] Rename Log class into TimedLog 2019-08-19 21:39:33 +03:00
David Cernat
ab93b5ddc5 [General] Use PlayerItemUse packets when using items through quick keys 2019-08-16 05:50:07 +03:00
David Cernat
57f84914c3 [Client] Prevent permanent deletion of player markers on cell changes 2019-07-14 22:42:55 +03:00
David Cernat
94a9292cc6 [Client] Use correct index when unassigning quickkeys from WindowManager 2019-07-01 13:48:45 +03:00
David Cernat
49fa35a516 [Client] Use ObjectActivate packets when picking up items from inventory 2019-06-09 01:00:01 +03:00
uramer
3b2098382b update player map markers when client changes cell 2019-03-21 16:27:15 +01: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
David Cernat
906d2a837d [Client] Send PlayerInventory packets when recharging items w/ soulgems 2018-12-30 11:58:33 +02: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
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
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