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

269 commits

Author SHA1 Message Date
mrohrlach
9624d8aade Added new method and variable to track float remainders of disintegration effections 2016-12-09 19:48:56 -07:00
Allofich
6816e935f1 Fix fortify maximum magicka expiration (Fixes #3648) 2016-12-06 21:00:03 +09:00
Kurnevsky Evgeny
28639c3b2f Crash fix when item is disabled before it casts spell. 2016-12-03 17:13:31 +03:00
Allofich
0e429ae41d Make water walking mechanics closer to original MW 2016-11-20 22:21:33 +09:00
Allofich
610f36f47b Set magic effects that don't support variable durations to use duration of 1 2016-10-14 00:13:08 +09:00
Allofich
675bd09462 Change several instant effects to be non-instant (Fixes #2054) 2016-10-13 23:38:21 +09:00
Allofich
53e94b7c3f Fix shadowing warnings 2016-10-06 23:33:52 +09:00
Allofich
e78f02aaf2 Consider reflected/absorbed hostile spells as assaults 2016-10-02 16:08:24 +09:00
Allofich
a81a04e6d0 Remove unused line 2016-10-02 01:11:01 +09:00
Allofich
fa17784722 Change breaks to continues 2016-10-02 00:54:01 +09:00
Allofich
266ec1aadc Make AI response to spell hits more like original MW 2016-10-01 21:38:17 +09:00
Allofich
7e3cca6d37 Vfx after Divine/Almsivi intervention should be attached to player 2016-09-19 22:20:16 +09:00
Allofich
d1157b3e10 Use correct vfx for teleport spells 2016-09-19 18:12:30 +09:00
scrawl
cd4b182091 Merge pull request #1051 from Allofich/textures
Use spell effect particle textures
2016-09-18 22:37:14 +02:00
Allofich
a033ba3bd2 Override spell textures by NiTexturingProperty 2016-09-14 23:03:04 +09:00
Allofich
bce0166931 Don't play blood effects for resisted hits 2016-09-12 22:46:32 +09:00
Allofich
368828b217 Update TODO comments 2016-09-10 01:38:05 +09:00
Allofich
bca477ca8a Apply particle textures like original engine does 2016-09-08 23:59:23 +09:00
Allofich
85349da26c Add comments 2016-09-08 23:58:00 +09:00
Allofich
502a758eff Use particle texture for "hit" effects 2016-09-08 23:58:00 +09:00
Allofich
fe3a033642 Use particle textures for spell projectiles 2016-09-08 23:56:54 +09:00
scrawl
fbc9b90ebe Cleanup 2016-09-05 00:04:11 +02:00
Allofich
f8270f6bd5 Consolidations and cleanup for multi-effect spells 2016-09-05 05:30:51 +09:00
Allofich
dbd7c038b2 Add loading code for multi-effect projectiles 2016-09-05 03:45:13 +09:00
Allofich
5a0d3feb98 Use C++ int-to-string conversion 2016-09-05 02:52:44 +09:00
Allofich
60384399ee Fix errors and warnings 2016-09-05 01:39:18 +09:00
Allofich
37f07f7435 Combine into one multi-effect magic projectile 2016-09-04 22:35:29 +09:00
Allofich
10842462c7 Send lists of models and sounds to launchMagicBolt 2016-09-04 17:42:27 +09:00
Allofich
96e1726e4d Fix warnings 2016-09-04 17:42:27 +09:00
Allofich
3300ef5db7 Don't apply projectile effects multiple times 2016-09-04 17:42:27 +09:00
Allofich
f6c3a62b3e Use average speed for multiple spell projectiles 2016-09-04 17:42:27 +09:00
Allofich
f1a18027f2 Shoot projectiles of spells with multiple effects 2016-09-04 17:42:27 +09:00
Allofich
446c0a4fa8 Play all of a spell's casting effects 2016-09-04 17:42:27 +09:00
Allofich
b4577fe751 Allow multiple spell hit sounds on single target 2016-09-04 17:42:27 +09:00
Allofich
b99c2c54d8 Allow Water Walking on non-submerged creatures 2016-09-01 03:53:53 +09:00
Allofich
22b11c5947 Move Water Walking check into checkEffectTarget() 2016-08-31 23:56:31 +09:00
Allofich
f25c65260c Limit sMagicinvalidEffect to self-cast spells 2016-08-31 17:22:45 +09:00
Allofich
6c3cad238b Use castByPlayer bool 2016-08-31 17:18:23 +09:00
Allofich
a6216d883f Don't allow casting Water Walking in deep water 2016-08-31 04:37:50 +09:00
Allofich
d617651307 Don't allow re-casting of bound equipment spells 2016-08-14 02:05:23 +09:00
Allofich
4b9aff7a03 Glowupdater fix when using shaders 2016-08-10 00:43:14 +09:00
Allofich
9b2cb2fb8c Cleanups 2016-08-10 00:25:33 +09:00
Allofich
775162ccdf Rewrite spell glow implementation 2016-08-09 22:56:53 +09:00
Allofich
35c14bb9bb Minor rewrite, make "open" spells play glow effect 2016-08-09 22:56:53 +09:00
Allofich
e132b52a69 Handle spell glows within updatecallback 2016-08-09 22:56:53 +09:00
Allofich
3841a8fb40 Make non-actors glow when they cast spells 2016-08-09 22:56:53 +09:00
Allofich
dca7b4beb7 Make non-actors also play spell casting sounds 2016-08-09 22:56:53 +09:00
MiroslavR
b0fcad4cb8 Don't stack effects for scrolls of the same type (Fixes #3466) 2016-07-10 03:49:09 +02:00
Allofich
b1be3596dc Cleanup of #include statements 2016-06-18 10:56:28 +09:00
scrawl
4acfe1a7e4 Move cleanupSummonedCreature to the mechanics manager (Bug #3439) 2016-06-12 02:43:33 +02:00
scrawl
d05603c7fe Directly apply On Target 'When Strikes' enchantments instead of launching a projectile (Fixes #3212) 2016-02-22 19:42:54 +01:00
scrawl
c4d38bb42d Fix clang analyzer warnings 2016-02-16 19:17:04 +01:00
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