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

533 commits

Author SHA1 Message Date
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
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Marc Zinnschlag
b410d87aae Merged pull request #1952 2018-10-03 13:19:28 +02:00
Andrei Kortunov
07ccc5abdb Remove non-looping effects after rest 2018-10-01 21:57:13 +04:00
Andrei Kortunov
8af021d729 Restore dynamic stats for actors in inactive cells (bug #1875) 2018-09-26 07:46:28 +04:00
Andrei Kortunov
cd60d4fdf0 Store character controller in the variable make code less bulk 2018-09-22 21:13:00 +04:00
Andrei Kortunov
2ac2d01432 Optimize drowning state update 2018-09-22 21:12:56 +04:00
Andrei Kortunov
1634284739 Cache player's position outside of loops 2018-09-21 22:39:47 +04:00
Andrei Kortunov
b9346798c6 Optimize combat music update 2018-09-21 22:34:18 +04:00
Andrei Kortunov
fb484c6fde Optimize AI loop a bit 2018-09-21 19:02:28 +04:00
Capostrophic
7ef6fa9f61 Remove deprecated GMST get* functions 2018-08-29 18:38:12 +03:00
Andrei Kortunov
60698e6f8a Optimize new magic effects update system 2018-08-26 21:02:14 +04:00
Capostrophic
910065f38f Make some more optimizations to actor processing loops 2018-08-21 17:02:56 +03:00
Capostrophic
b77d733c3e Fix freeze in getActorsSidingWith 2018-08-21 16:47:29 +03:00
Bret Curtis
3c827da702
Merge branch 'master' into combat_anims 2018-08-19 10:03:39 +02:00
Marc Zinnschlag
3489951410 Merged pull request #1866 2018-08-17 09:36:44 +02:00
Andrei Kortunov
16edac8c47 Fix incorrect 'preparing' word spelling 2018-08-16 17:47:06 +04:00
Bret Curtis
dcd381049c
Merge pull request #1872 from akortunov/extended_logging
Use new logging system
2018-08-16 11:38:29 +02:00
Andrei Kortunov
5a4d0cec3a Use new logging system for game itself 2018-08-14 23:05:43 +04:00
Capostrophic
22162dcbda
Replace std::find with std::set::find where applicable 2018-08-14 18:14:43 +03:00
Capostrophic
53599290c3 Make search for followers in getEnemiesNearby recursive 2018-08-14 16:14:48 +03:00
Capostrophic
7029ed0e8d Refactor follower and enemy actor processing
Make another exception for wander packages when finding allies (bug #4304)
2018-08-14 15:36:52 +03:00
Allofich
fd89fa415a Do modifiers for dynamic stats before attributes
(Fixes #4231)
2018-08-13 21:59:27 +09:00
Allofich
2cc1b52baf Drain and fortify fixes for dynamicStats
(Fixes #3049)
2018-08-13 21:59:26 +09:00
Andrei Kortunov
cde95979d0 Fix combat engagement for creatures 2018-08-10 09:29:01 +04:00
Andrei Kortunov
126b2fdd42 Use the isPlayer variable to do not check if the current actor is player every time 2018-08-09 11:16:19 +04:00
Andrei Kortunov
51af729305 Do not use headtracking in the 1st-person view (bug #4573) 2018-08-08 23:29:03 +04:00
Andrei Kortunov
6d5d0039ec Make sure we apply OT_Murder only once 2018-07-28 20:45:33 +04:00
Andrei Kortunov
3d1daaebab Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
Andrei Kortunov
ee45f54b53 Refactor AiTemporaryStorage usage 2018-06-27 12:48:34 +04:00
Marc Zinnschlag
2a52ade219 Merged pull request #1760 2018-06-19 11:26:41 +02:00
Andrei Kortunov
e08b0d3070 Ignore lights without CanCarry flags when NPC selects torch (bug #4457) 2018-06-16 17:34:49 +04:00
Andrei Kortunov
9c3da41130 Add murder bounty when a player follower commits murder (bug #2852) 2018-06-15 14:31:09 +04:00
Andrei Kortunov
61c968d550 Ignore broken items when search for replacement (bug #4453) 2018-06-13 18:39:02 +04:00
Andrei Kortunov
9c45cc7e48 Use player reference instead of pointer 2018-06-12 22:05:00 +04:00
Andrei Kortunov
9fd2d57b86 Move previous items to player 2018-06-10 16:21:19 +04:00
Andrei Kortunov
f977c6876f Bound items: store item ID instead of pointer 2018-06-10 16:21:19 +04:00
Andrei Kortunov
4de9d9fa77 Split adjustBoundItem() 2018-06-10 16:21:19 +04:00
Andrei Kortunov
d1b1cb748d Reequip previous item only if the expired bound item was equipped 2018-06-10 16:21:19 +04:00
Andrei Kortunov
9b72a6ac69 Use the MWWorld::Ptr() instead of string ID 2018-06-10 16:21:19 +04:00
Andrei Kortunov
0375bedab2 Equip previous item after a bound item expires (bug #2326) 2018-06-10 16:21:19 +04: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
scrawl
c6abec1e51
Merge pull request #1641 2018-04-02 17:53:30 +00:00
Capostrophic
42b7846f81 Replace a redundant playerAllies check with a boolean (Fixes #4229) 2018-03-23 18:45:39 +03:00
Nelsson Huotari
63e34a5575 Typofix: updateCrimePersuit -> ...Pursuit 2018-03-23 14:10:43 +02:00
Andrei Kortunov
a0a30cdbf5 AI: hide torches during bad weather (bug #4334) 2018-03-19 08:03:53 +04:00
Andrei Kortunov
bd6c7de579 Do not unequip two-handed weapon when equipping torch 2018-03-19 08:03:53 +04:00
scrawl
bba9a8dd91
Don't update off-screen animations
Make flying creatures animate in-place when out of processing range
2018-01-11 01:49:35 +00:00
Allofich
e0c54b3f39 Stop guards trying to arrest player when calm
(Fixes #3863)
2017-12-05 23:53:02 +09:00
Andrei Kortunov
b9d9660efd Update music state in the menu mode (bug #3664) 2017-11-28 20:49:48 +04:00
scrawl
5fe68ab062
Merge pull request #1419 2017-11-27 21:13:11 +00:00
Andrei Kortunov
8c0dcd8b2b Do not track a nearest actor during combat and pursue (bug #4179) 2017-11-11 19:46:59 +04:00
Andrei Kortunov
9943bd4d74 AiWander fast forwarding improvements (bug #3638) 2017-11-11 15:31:06 +04:00
Andrei Kortunov
e2afd3690c Remove item by id from InventoryStore 2017-10-06 10:54:25 +04:00
scrawl
b24fd77ea2 Merge pull request #1488 from akortunov/equipfix
AI: Autoequip armor when bound armor spell expires
2017-10-01 16:06:26 +00:00
Andrei Kortunov
21b6bd176f AI: Autoequip armor when bound armor spell expires 2017-10-01 17:11:30 +04:00
Andrei Kortunov
f26206b630 Make unconscious actors do not speak and do not track targets 2017-09-30 20:55:42 +04:00
scrawl
5ebb43a422 Merge pull request #1467 from akortunov/guifixes
Restack soulgems when use SoulTrap
2017-09-20 14:15:49 +00:00
Andrei Kortunov
9342a0254f Restack soulgems when use SoulTrap 2017-09-20 10:44:24 +04:00
scrawl
ed5b6320f3 Merge pull request #1463 from akortunov/getdetected
Allow to use GetDetected without a reference
2017-09-19 20:15:16 +00:00
Andrei Kortunov
65d8e2ff5d Allow to use GetDetected without a reference (bug #3110) 2017-09-18 21:46:57 +04:00
AnyOldName3
0be7e2a5a5 Fix really obvious flaw with ignored records not being skipped that I missed 2017-09-17 14:16:17 +01:00
AnyOldName3
5a5cb1a160 Check death counts are for valid actors before loading them 2017-09-17 14:09:29 +01:00
Chris Robinson
780e82480d Make the PlayMode and PlayType enums scoped
Also shorten them by putting them in the MWSound namespace
2017-09-15 02:36:59 -07:00
Andrei Kortunov
661232222f Allow guards to attack fighting creatures only in fAlarmRadius range 2017-09-10 15:26:48 +04:00
Andrei Kortunov
a5b01fefec Allow to interrupt an attack, if attack button is held 2017-09-01 14:28:21 +04:00
scrawl
dc53573de4 Merge pull request #1405 from akortunov/stancechangefixes
Do not allow player to change weapon/spell during attack or spellcast
2017-08-29 23:11:23 +00:00
Andrei Kortunov
fb45995a41 Do not allow player to change weapon/spell during attack or spellcasting (bug #2445) 2017-08-29 15:53:23 +04:00
scrawl
2611377081 Merge pull request #1350 from akortunov/deathanimationfix
Do not allow to loot fighting actors during death animation (bug #3528)
2017-08-18 22:04:12 +00:00
Andrei Kortunov
641a6cd842 Added a delay before summoned creature corpse despawning 2017-08-18 11:58:28 +04:00
Andrei Kortunov
bc7353f100 Check animation state for GetPCRunning and GetPCSneaking 2017-08-16 20:30:47 +04:00
scrawl
631d79f1c8 Merge pull request #1346 from akortunov/aibreathe
AiBreathe AI package (feature #1374)
2017-07-28 20:50:04 +00:00
Andrei Kortunov
920021c61b Update effects during rest (bug #3679) 2017-07-28 16:50:52 +04:00
Andrei Kortunov
548814bfbc Added AiBreathe package (feature #1374) 2017-07-25 10:58:04 +04:00
scrawl
1956602aa2 Merge pull request #1262 from Allofich/warnings
Fix more warnings
2017-04-21 14:34:36 +02:00
Allofich
ff3cb18d4f Fix shadowing warnings 2017-04-21 11:06:18 +09:00
Allofich
ff3e307059 Pass parameters by const reference 2017-04-20 23:47:03 +09:00
Allofich
2e5fd74db0 Fix invalid iterator warning 2017-04-20 19:30:35 +09:00
Andrei Kortunov
04eb4ea6b6 Check for disabled levitation (fixes #3766) 2017-04-19 18:38:25 +04:00
Andrei Kortunov
c3fd327bb2 Fixed drowning widget initialization 2017-04-19 08:48:16 +04:00
Allofich
470988f9ef Minor changes to getActorsSidingWith 2017-04-13 04:45:44 +09:00
Allofich
6272e1c674 Cache allies found while iterating engageCombat
(Fixes #3814)
2017-04-13 02:02:38 +09:00
Andrei Kortunov
14b59e0e4b Vanilla-like tgm (fixes #3798) 2017-03-25 22:40:11 +04:00
scrawl
29556a1802 More consistent wording of errors/warnings
A Warning indicates a potential problem in the content file(s) that the user told OpenMW to load. E.g. this might cause an object to not display at all or as intended, however the rest of the game will run fine.

An Error, however, is more likely to be a bug with the engine itself - it means that basic assumptions have been violated and the engine might not run correctly anymore.

The above mostly applies to errors/warnings during game-play; startup issues are handled differently: when a file is completely invalid/corrupted to the point that the engine can not start, that might cause messages that are worded as Error due to the severity of the issue but are not necessarily the engine's fault.

Hopefully, being a little more consistent here will alleviate confusion among users as to when a log message should be reported and to whom.
2017-03-04 21:48:31 +01:00
scrawl
1692b7f38e Merge pull request #1209 from dhustkoder/master
Added ConstContainerStoreIterator (Task #3092)
2017-03-02 18:36:21 +01:00
Rafael Moura
18a4b64f1a Porting more ContainerStoreIterator usage to const version #2 2017-02-27 21:50:10 +00:00
scrawl
6f4c03aa32 Avoid retrieving setting every frame 2017-02-26 17:34:24 +01:00
scrawl
183c46b0ef Fix summoning effects 2017-02-14 07:58:16 +01:00
scrawl
5a12407436 Revert "Rearranged check for better performance"
This reverts commit 332ceb51a2.
2017-02-11 17:53:11 +01:00
scrawl
332ceb51a2 Rearranged check for better performance 2017-02-10 06:48:03 +01:00
Allofich
5d2090684a Store mHitAttemptActorId in save files 2017-02-07 01:26:26 +09:00
Allofich
25c64dbb0f Make combat engagement logic more like vanilla
(Fixes #2678, Fixes #3705)
2017-02-07 01:25:12 +09:00
scrawl
bc29a99a53 Fix broken timer 2017-02-06 05:10:40 +01:00
scrawl
3065600a86 Skip expensive visitEffectSources call if no summoned creatures or summon effects are active 2017-02-05 02:26:28 +01:00
scrawl
a2cede8f34 Add timer for updateEquippedLight 2017-02-05 02:26:28 +01:00
Allofich
f2240dde9c Allow command spells to work when cast by AI on AI
(Fixes #3723)
2017-01-15 01:56:22 +09:00
Allofich
e825010107 Apply command spell effects on impact
Command spells should apply their effects, including taking an actor out
of combat, every time a spell successfully hits, even if a previous
command effect is still active.
2017-01-15 01:53:22 +09:00
scrawl
212e85e810 Merge pull request #1174 from Allofich/combat
Adjustments to AI combat engaging and disengaging
2017-01-01 19:36:09 +01:00
Allofich
54fa921dad Change some AI combat engagements to not need LOS 2016-12-26 22:42:46 +09:00
Allofich
6fa0354a17 Make AI attack player also if it attacks follower 2016-12-26 22:42:45 +09:00