1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 04:49:54 +00:00
Commit graph

217 commits

Author SHA1 Message Date
scrawl
832eaae27b Do not apply effects with CasterLinked flag when there is no valid caster 2016-02-01 22:57:08 +01:00
scrawl
4e6a60672d When a spell explodes on an actor do not apply it to that actor twice (Fixes #3142) 2016-01-12 00:40:09 +01:00
scrawl
689dea4cb3 Add instant spell effects to the actor's magic effect list
Via http://forum.openmw.org/viewtopic.php?f=2&t=3212&start=20#p36208
2015-12-17 19:49:37 +01:00
scrawl
34f48d63f3 Apply spell absorption once per effect (Fixes #2942) 2015-12-09 00:35:54 +01:00
scrawl
783594033a Optimize MWMechanics::Spells
Use pointers as map keys instead of string IDs. Resolves a nasty performance bottleneck on functions like hasCommonDisease() that previously had to look up all contained spells from the ESM store on every call. hasCommonDisease() is called hundreds of times per frame by the AI target update since it's used to calculate target disposition.

The total cost of hasCommonDisease() was 2.7% of the frame loop, now it's negligible.
2015-11-27 01:07:15 +01:00
scrawl
7b6fe149f2 getSpellSuccessChance return 0 for used powers (Fixes #2944) 2015-10-05 15:41:43 +02:00
Marc Zinnschlag
a52b947efe Merge remote-tracking branch 'dteviot/MagicEffectsRefactorDraft3' 2015-08-23 12:11:30 +02:00
dteviot
5dd0ad6841 Fixed rest of travis errors. 2015-08-21 22:41:31 +12:00
dteviot
77a1d947cc extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
dteviot
85bc41dedb replaced FLT_MAX with numeric_limits. 2015-08-21 19:34:28 +12:00
dteviot
0ee7407101 extracted common sub-expressions. 2015-08-20 18:17:02 +12:00
scrawl
d76fb2d266 Apply disintegrate only to weapons and armor (Fixes #2853) 2015-08-14 13:38:39 +02:00
scrawl
1e18a73b1c Don't play magic effect sounds & visual effects for unsuitable targets (Fixes #2811) 2015-08-13 17:08:21 +02:00
scrawl
211deeb63e Don't attempt to lock or unlock unsuitable objects (Fixes #2826) 2015-08-13 17:08:21 +02:00
scrawl
278a078e9d Unify magic effect tick functions
- Removes duplicated code
- Handle some zero-duration instant effects that were not handled before (disintegrate, sun damage, elemental damage)
2015-07-18 20:39:45 +02:00
scrawl
974fda5bde Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	extern/sdl4ogre/sdlwindowhelper.cpp
2015-06-03 03:18:29 +02:00
scrawl
de8e5f0db1 Restore projectiles 2015-06-01 21:41:13 +02:00
scrawl
fd50be0fb8 Restore various gameplay 2015-05-30 01:00:24 +02:00
scrawl
d1b6289cad Don't teleport followers when using teleportation spells 2015-05-22 19:57:02 +02:00
scrawl
8c810e3620 Move rng to components 2015-04-22 17:58:55 +02:00
scrawl
c92592493e OpenMW: create a window and render the starting cell(s) 2015-04-12 15:38:30 +02:00
scrawl
4e69e7cc0f OpenMW compiles and runs w/o render window 2015-04-01 17:02:15 +02:00
dteviot
3f28634d1f consolidate random number logic
Note, I suspect Rng::rollClosedProbability() is not needed.  The only difference between it and rollProbability() is that one time in 37k (on Windows), it will give an output of 1.0.
On some versions of Linux, the value of 1.0 will occur about 1 time in 4 billion.
2015-03-15 14:07:47 +13:00
scrawl
3879ce6ac1 Get rid of "player" string checks (Fixes #2216) 2015-03-11 23:07:39 +01:00
dteviot
ca8c8c6aa4 fixing MSVC 2013 warning C4244: & C4305
conversion from 'const float' to 'int', possible loss of data
conversion from 'double' to 'int', possible loss of data
conversion from 'float' to 'int', possible loss of data
2015-03-08 17:42:07 +13:00
dteviot
45b6538820 fixed MSVC 2013 warning C4800
forcing value to bool 'true' or 'false'
2015-03-06 23:19:57 +13:00
scrawl
a653716e2c Fix for damage/restore effects using the instant apply path when they have a duration 2015-03-01 22:22:20 +01:00
scrawl
f82751422d Fix constant effect restore enchantments being applied incorrectly (Fixes #2408) 2015-02-28 16:31:22 +01:00
scrawl
77bb77b367 Fix for instant restore effects (Fixes #2392) 2015-02-23 19:07:12 +01:00
dteviot
8d7de7d1ec Telekinesis allows safe opening of traps (Fixes #1916)
When trap activated at beyond normal activation distance, assume telekinesis used and detonate trap at trapped object's location.
Also some minor code refactoring of spellcasting.
1. Corrected parameter passed to explodeSpell().
2. For loop now correctly does an early exit.
3. Removed duplicated tests.
2015-02-17 22:14:25 +13:00
scrawl
378e91545d Fix Tribunal/BM summon effects not working 2015-01-23 15:34:47 +01:00
Marc Zinnschlag
38a413a483 Merge remote-tracking branch 'scrawl/master' 2015-01-07 20:22:15 +01:00
scrawl
13c5bd5cc2 Enchanting: fix skill-based cast cost bonus being applied twice 2015-01-07 04:41:12 +01:00
scrawl
992b87ea44 Reset existing summons when the spell is re-casted (Fixes #2135) 2015-01-06 16:11:10 +01:00
scrawl
f267497c03 Allow separate summoned creature instances for each spell ID (Fixes #2194) 2015-01-06 16:11:05 +01:00
Marc Zinnschlag
31f6ccdf4d Merge remote-tracking branch 'internecine/bug2031' 2015-01-06 09:43:59 +01:00
Internecine
e1fdcb608e Fixed incorrect index 2015-01-06 15:00:24 +13:00
Internecine
a7a3ab0c78 Fixed instant negative dynamic stat changes being applied as positive 2015-01-01 21:26:09 +13:00
scrawl
363d1f9207 Merge remote-tracking branch 'upstream/master' 2014-12-30 23:01:45 +01:00
scrawl
de9d347018 Fix on touch area effect spells (Fixes #2233) 2014-12-28 01:51:12 +01:00
Internecine
5f9540318a Fixed incorrect indexes 2014-12-27 19:49:14 +13:00
Internecine
a87fe71ddf Added a helper function to handle dynamic stat changes 2014-12-27 19:46:54 +13:00
scrawl
f931ba2efc Fix some static analysis issues (coverity) 2014-12-24 15:45:12 +01:00
Alexander "Ace" Olofsson
462b41a3a8 Missing files, aka; Why you shouldn't stresscommit 2014-12-19 11:26:54 +01:00
Internecine
edc51ab768 Removed debug output 2014-11-05 15:26:13 +13:00
Internecine
6741fbe7a9 Fixes bug #2031 2014-11-05 15:22:44 +13:00
scrawl
8cb09e89ed Make spells cast by scripts always succeed (Fixes #1993) 2014-10-12 17:18:27 +02:00
Marc Zinnschlag
744c56943a Merge remote-tracking branch 'jordan-ayers/topic/misc-cleanup' 2014-10-07 18:03:25 +02:00
scrawl
5c3bc6563b Fix divisions by zero in normalizedEncumbrance 2014-10-05 15:50:01 +02:00
Jordan Ayers
663647bee8 Simplify getEffectMultiplier.
Both return cases were same, except for some overflow conditions.
2014-10-04 15:28:58 -05:00
scrawl
56cd0da522 Fix potential infinite recursion when an area effect spell is reflected (Fixes #1896) 2014-09-09 04:44:14 +02:00
scrawl
58945c557a Add sound for casting enchanted item with insufficent charge (Fixes #1857) 2014-08-30 02:47:35 +02:00
MiroslavR
fc789265e2 Spells that always succeed should not increase your skill when you cast them 2014-08-24 20:36:31 +02:00
scrawl
d8943aef2f Encapsulate magic effect magnitude (Feature #1489) 2014-08-17 03:58:04 +02:00
scrawl
2bfcec53bf Don't show sMagicInvalidTarget for soultrap on NPCs (Fixes #1762)
Note the message was accurate, since NPCs can't be soultrapped. Maybe vanilla doesn't show it to not spam the screen with message boxes when attacking with a "soultrap on strike" weapon...
2014-08-06 20:13:58 +02:00
scrawl
175cc98e64 Make magic effects with no corresponding resistance attribute unresistable (Fixes #1727) 2014-07-31 01:14:44 +02:00
scrawl
78bd516ab4 Show sMagicInvalidTarget for an invalid soultrap target (Fixes #1728) 2014-07-30 15:26:10 +02:00
scrawl
5349699172 Only show "target resists magic" message for spells cast by player 2014-07-28 17:54:48 +02:00
scrawl
90b2709d6c Allow absorption of non-harmful spells (Fixes #1693)
Also fix absorption being calculated for each effect rather than the whole spell.
2014-07-25 19:56:06 +02:00
scrawl
6d794dac69 Add missing messagebox for spell lock and unlock success 2014-07-20 17:09:55 +02:00
scrawl
20a0040bdb Apply elemental shield magnitude to element resistance (Closes #1121) 2014-07-16 10:58:28 +02:00
scrawl
479f248c1d Use spell effect range type, not base effect (applied to spellcasting code) 2014-07-12 18:53:15 +02:00
scrawl
e95483c40f Fix crash for on target spells cast by non-actors (Fixes #1529) 2014-06-18 16:57:53 +02:00
scrawl
fe1e6a2719 Make Weakness effects apply to all subsequent effects within the same spell (Fixes #1150) 2014-06-18 16:57:53 +02:00
scrawl
039398c8ae Basic RefData and CellRef change tracking
Wrapped item charge handling in getItemHealth function
2014-05-25 14:30:07 +02:00
scrawl
e5a21aca53 Refactor projectiles to no longer use MW-objects 2014-05-16 13:33:30 +02:00
scrawl
2f13a17a39 Add some more safety checks to spellcasting 2014-05-15 09:54:10 +02:00
scrawl
a609dc5674 Fix exception when getting hit by a trap 2014-05-15 09:54:10 +02:00
scrawl
9052cc4a57 Savegame: store ActiveSpells 2014-05-14 23:54:15 +02:00
scrawl
dfacf8c044 Change ActiveSpells to use ActorId 2014-05-14 07:14:08 +02:00
scrawl
99b4bc721b Don't attempt to inflict spells on dead actors 2014-05-14 05:37:53 +02:00
scrawl
6c7b3074f5 Fix self-defense for creatures when attacked with a spell 2014-05-14 05:31:19 +02:00
Thoronador
1b8c975d5b minor performance improvements in apps/openmw
Checking for emptiness using size() might be inefficient, because
it can take linear time, while empty() is guaranteed to take only
constant time.

For non-primitive types, postfix ++ operators are inefficient
compared to prefix ++ operators, because post-increment usually
involves keeping a copy of the previous value around.
2014-04-27 19:10:23 +02:00
scrawl
04964595ef Fixes #1270, Fixes #1201: Update active weapon/spell icons every frame 2014-04-26 16:44:20 +02:00
Thomas
f6deca7c80 Fixed various issues caused by late-night coding. Also added "unlock" message to unlocked doors 2014-04-23 13:02:51 -04:00
Thomas
61341d4206 Removed mLocked, kept it as "Negative lock level means unlocked" 2014-04-23 10:00:18 -04:00
Thomas
cac8e52154 Seperated locked and lock level, to allow for relocking doors to previous lock level.
The data is stored in the esm as -lockLevel if unlocked; lockLevel if locked. While not tested, it should not present any problems.
2014-04-23 05:12:07 -04:00
scrawl
4625adfb7f Fix typo in a condition. 2014-04-18 11:43:37 +02:00
scrawl
12de0afb03 Feature #50: Spawn projectiles
Fix a bug in copyObjectToCell.
Make actor rotations more consistent.
2014-03-08 01:31:27 +01:00
Marc Zinnschlag
367919200f moved CellRefList into a separate file 2014-02-23 20:11:05 +01:00
Marc Zinnschlag
7693f712bc started making CellStore into a proper class; encapsulated mCell member 2014-02-21 11:35:46 +01:00
Emanuel Guevel
6a4820c0f7 Show a message when the player attempts to cast a disabled spell 2014-02-11 14:52:58 +01:00
scrawl
ea7e0abdc2 Move WhenStrikes skill success to a more appropriate place 2014-01-29 15:37:26 +01:00
scrawl
851a7d5014 Feature #957: Handle area effects for "on touch" range 2014-01-21 12:30:15 +01:00
scrawl
525ce2f042 Some cleanup - move definitions to implementation file 2014-01-18 10:52:16 +01:00
scrawl
f78b846f9e Handle CasterLinked magic effect flag 2014-01-12 10:21:49 +01:00
scrawl
44b2380874 Closes #947: Decrease fatigue when running, swimming and attacking 2014-01-11 22:28:50 +01:00
scrawl
dddc0979a2 Fix another fatigue cap issue 2014-01-11 22:28:50 +01:00
scrawl
3896c88403 Use VFX_DefaultCast / VFX_DefaultHit if the magic effect does not specify any 2014-01-11 05:58:05 +01:00
scrawl
909494ff35 Implement Assault crimes. In other words, NPCs now fight back! 2014-01-11 03:08:16 +01:00
scrawl
3bf36515d5 Implement Trespassing crime 2014-01-10 21:26:24 +01:00
scrawl
6f9113fe88 Add preliminary implementation of PayFine, PayFineThief and GoToJail instructions 2014-01-09 01:49:58 +01:00
scrawl
098f9712f1 Add getPlayerPtr() utility method. Reduces dependencies a lot. 2014-01-08 18:39:44 +01:00
scrawl
557652112f Show the target HP bar also when casting a heal effect (same as MCP) 2014-01-04 04:21:44 +01:00
scrawl
366801f3d5 Implement explodeSpell instruction (like Cast, with caster = target) 2014-01-03 04:44:50 +01:00
scrawl
b42240be6d Implement Damage/restore skill/attribute effects. Use dedicated classes for skill and attribute values (instead of Stat<T>) since there are some important differences. 2014-01-03 03:48:43 +01:00
scrawl
299690631f Implement SoulTrap magic effect 2014-01-02 21:21:28 +01:00
scrawl
596e0c8a49 Correct Dispel effect (use magnitude as chance) 2014-01-02 20:15:07 +01:00
scrawl
8e5cae1081 Implement mark/recall magic effects 2014-01-01 17:06:21 +01:00
scrawl
69ba8a40bf Fix weird formatting added during the merge 2014-01-01 16:13:20 +01:00
scrawl
b3cd10dbea Remove redundant setTeleported calls 2014-01-01 15:18:25 +01:00
Marc Zinnschlag
c3482b6f24 Merge remote-tracking branch 'scrawl/master'
Conflicts:
	apps/openmw/mwmechanics/spellcasting.cpp
2014-01-01 15:05:42 +01:00
Marc Zinnschlag
5fa9aa5d1e Merge remote-tracking branch 'lgro/issue417_apply_weather_instantly_when_teleporting'
Conflicts:
	apps/openmw/mwworld/weather.cpp
	apps/openmw/mwworld/worldimp.cpp
2014-01-01 14:57:14 +01:00
scrawl
ea3b88951a Implement divine/almsivi intervention magic effects 2014-01-01 02:22:11 +01:00
Lukasz Gromanowski
e9844e1b37 Fixes #417: Apply weather instantly when teleporting
Changed teleporting detection from "position tracking" to manually
setting "teleportation" flag ( player->setTeleported(true) ).

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
2013-12-31 20:40:23 +01:00
scrawl
5054d8e6c1 Bug #1055: Check power use and mana before starting cast animation 2013-12-26 22:06:13 +01:00
scrawl
076cc9230b First try at handling target magic 2013-11-28 17:31:17 +01:00
scrawl
14c9a4e1d3 Cap enchantment casting cost to 1 as displayed in enchanting window. Display current enchantment charge in spell window. 2013-11-23 23:12:54 +01:00
scrawl
4aa9f3bcef Don't set the enchanted item in HUD for "WhenStrikes" enchantments 2013-11-23 22:48:56 +01:00
scrawl
bf153e1c8e Fix bug applying instant effects 2013-11-21 00:41:52 +01:00
scrawl
f3ff2e4260 Handle Unreflectable flag 2013-11-19 17:33:02 +01:00
scrawl
c03c82c78a Apply disease resistance manually as according to wiki 2013-11-19 17:15:17 +01:00
scrawl
654b7d9ba5 Apply disease resistance manually as according to wiki 2013-11-19 16:52:26 +01:00
scrawl
74e42a2d02 Add missing skill increases for Enchant skill 2013-11-19 07:39:07 +01:00
scrawl
6902569d03 Implement Absorb effects (AbsorbHealth, etc) 2013-11-18 05:01:36 +01:00
scrawl
a420698237 Don't try to absorb or reflect for self casted spells 2013-11-17 23:41:24 +01:00
scrawl
0dc2e829dd Lots of cleanup. Implemented Absorb and Resist. Implemented several instant effects. Added hand VFX. 2013-11-17 23:31:08 +01:00