scrawl
69c2c4fcc1
updateMergedRefs before reading MVRF tags ( Fixes #3161 )
2016-02-03 19:13:26 +01:00
scrawl
cc3563359e
Refactor local script iteration ( Fixes #2806 , Fixes #3108 )
...
This should be much safer. Don't use recursion. Don't fail if mIgnore happens to be in the list twice. Don't rely on preconditions / assertions.
2016-02-03 16:16:20 +01:00
scrawl
187d2bccda
Warn about adding a local script twice (Bug #2806 )
2016-02-03 16:09:10 +01:00
scrawl
c403a6b113
Don't apply constant magic effects to dead actors ( Fixes #3174 )
2016-02-01 22:30:08 +01:00
scrawl
aec8c38461
Move observer_ptr include where it belongs
2016-01-25 21:03:33 +01:00
Tobias Kortkamp
0659687bfb
Some fixes for building on FreeBSD
2016-01-25 14:13:16 +01:00
scrawl
b0431833a1
Fix some defects reported by Coverity CI
2016-01-21 16:08:04 +01:00
scrawl
f0971ee8ad
Implement Fixme script instruction
2016-01-20 04:07:07 +01:00
scrawl
ce9a18fb87
Merge pull request #879 from jordan-ayers/bugfix/1544
...
Improve Drop Command - Bugfix/1544
2016-01-19 15:02:51 +01:00
Jordan Ayers
c82d9a1e87
Adjust ContainerStore / InventoryStore to allow partial unequip of items.
2016-01-18 19:56:35 -06:00
scrawl
41c571d4f4
Merge branch 'master' of https://github.com/OpenMW/openmw into lighting
...
Conflicts:
apps/opencs/view/render/instancemode.cpp
2016-01-15 15:46:10 +01:00
scrawl
4f2a031f4e
Improve error message
2016-01-14 18:34:47 +01:00
scrawl
0b84b3c2cf
Don't crash when region weather chances don't add to 100
...
The invalid weather ID was resulting in out-of-bounds vector access later in the code.
2016-01-14 17:41:39 +01:00
Jordan Ayers
2ce2e8a1e7
Add missing OOB slot check to InventoryStore.
2016-01-12 21:35:23 -06:00
scrawl
ef1a1125e0
Fix an error in restocking logic ( Fixes #3131 )
2016-01-12 17:10:23 +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
6546c05428
Move Fallback map to components/
2016-01-11 23:10:16 +01:00
scrawl
4f8f166f69
Fix GetPcInJail to work as in the original engine
2016-01-11 22:57:25 +01:00
scrawl
1905f0bf2d
Add support for placing BodyParts in a cell (Bug #3118 )
2016-01-02 01:30:06 +01:00
scrawl
6fde02ea42
LocalScripts: initialize mIter
2016-01-01 02:59:55 +01:00
scrawl
f052c05018
Move werewolf functions from World to MechanicsManager
2015-12-26 18:23:13 +01:00
scrawl
a1e163ed20
Correct an error in the timestamp subtracting logic ( Fixes #3105 )
2015-12-26 00:26:13 +01:00
scrawl
e5d9ee30f4
Add count argument to copyObjectToCell
...
Fixes the gold bug introduced in c9ca5bc946
2015-12-19 16:48:32 +01:00
scrawl
32d5dece58
Add count argument to getToolTipInfo
2015-12-19 16:29:07 +01:00
scrawl
0d4729dcd5
Use the const version of CustomData::as*
2015-12-19 16:19:52 +01:00
scrawl
b0894ea20d
Accept a ConstPtr in hasToolTip
2015-12-19 16:15:45 +01:00
scrawl
29d0f448b4
Add const version of World::getAnimation
2015-12-19 16:15:45 +01:00
scrawl
51c77c5045
Accept a ConstPtr in getDoorState
2015-12-19 16:15:45 +01:00
scrawl
7a2ca5580a
Accept a ConstPtr in RippleSimulation
2015-12-19 15:51:41 +01:00
scrawl
53f4b92426
AiEscort do not follow target through doors
...
Testing revealed a problem where the guard on the prison ship would incorrectly follow the player outside. Upon further investigation in vanilla MW, it appears that with AiEscort the actor only follows the target through doors once the AiEscort package has completed, *and* no new AI package is running yet.
2015-12-19 15:15:44 +01:00
scrawl
2c51e7345f
Use a separate collision type for doors ( Fixes #1962 )
2015-12-18 18:32:42 +01:00
scrawl
a0fb31e3b1
Accept a ConstPtr in getLOS
2015-12-18 18:03:47 +01:00
scrawl
029d467ea5
Accept a ConstPtr in getItemsOwnedBy, getContainersOwnedBy
2015-12-18 18:00:18 +01:00
scrawl
388aed1748
Accept a ConstPtr in findContainer, collision script functions, getUnderwater functions
2015-12-18 17:56:48 +01:00
scrawl
ed101ad35a
Remove redundant getPlayerAnimation function
2015-12-18 17:44:57 +01:00
scrawl
c9ca5bc946
Accept a ConstPtr in placeObject
2015-12-18 17:42:59 +01:00
scrawl
6c505ca06f
Accept a ConstPtr in getHitContact
2015-12-18 17:38:21 +01:00
scrawl
0796f49c17
Accept a ConstPtr in various physics getters
2015-12-18 17:36:14 +01:00
scrawl
553132cb51
Accept a ConstPtr in launchProjectile
2015-12-18 17:13:54 +01:00
scrawl
8f9fc87565
Accept a ConstPtr in LocalScripts::setIgnore
2015-12-18 17:09:11 +01:00
scrawl
1212c07266
Pass a string by reference
2015-12-18 17:08:26 +01:00
scrawl
f35ab12979
Accept a ConstPtr in InventoryStore::isEquipped
2015-12-18 17:06:58 +01:00
scrawl
3856f931db
Accept a ConstPtr in ContainerStore::addNewStack
2015-12-18 17:04:54 +01:00
scrawl
e1c6261fee
Accept a ConstPtr in ContainerStore::getType
2015-12-18 17:03:49 +01:00
scrawl
edde5bd065
Accept a ConstPtr in ContainerStore::stacks
2015-12-18 17:01:21 +01:00
scrawl
04f7a8f8eb
Remove redundant getId function
2015-12-18 16:58:38 +01:00
scrawl
266fbbef48
Accept a ConstPtr in canLock
2015-12-18 16:50:32 +01:00
scrawl
c43f80633a
Accept a ConstPtr in getEnchantmentPoints
2015-12-18 16:48:19 +01:00
scrawl
303521002d
Accept a ConstPtr in adjustScale
2015-12-18 16:46:02 +01:00
scrawl
09bdb0ad4b
Accept a ConstPtr in getServices
2015-12-18 16:44:35 +01:00
scrawl
648ee6e7fb
Accept a ConstPtr in applyEnchantment
2015-12-18 16:43:11 +01:00
scrawl
3c98f8dde3
Accept a ConstPtr in isPersistent
2015-12-18 16:41:37 +01:00
scrawl
3fe3091275
Accept a ConstPtr in isEssential
2015-12-18 16:39:35 +01:00
scrawl
4a47fc32fa
Accept a ConstPtr in getBloodTexture
2015-12-18 16:39:08 +01:00
scrawl
2bd8d60e9f
Accept a ConstPtr in getPrimaryFaction, getPrimaryFactionRank
2015-12-18 16:33:54 +01:00
scrawl
2ac92012e8
Accept a ConstPtr in isClass
2015-12-18 16:29:30 +01:00
scrawl
5b082be79f
Accept a ConstPtr in getBaseGold
2015-12-18 16:28:20 +01:00
scrawl
da7ebfde99
Accept a ConstPtr in copyToCell
2015-12-18 16:27:18 +01:00
scrawl
954186fe1e
Accept a ConstPtr in canFly, canSwim & canWalk
2015-12-18 16:27:18 +01:00
scrawl
b09bdd6af5
Accept a ConstPtr in isBipedal
2015-12-18 16:27:18 +01:00
scrawl
92a3acfa56
Accept a ConstPtr in getBaseFightRating
2015-12-18 16:12:35 +01:00
scrawl
d120f76031
Accept a ConstPtr in getSound
2015-12-18 16:11:03 +01:00
scrawl
d77f785cbc
Accept a ConstPtr in get*SoundId
2015-12-18 16:09:54 +01:00
scrawl
dc92fefd2b
Accept a ConstPtr in canBeEquipped, getEquipmentSlots & hasItemHealth
2015-12-18 16:06:31 +01:00
scrawl
e0bb284804
Accept a ConstPtr in getWeight
2015-12-18 16:00:50 +01:00
scrawl
0047a2d330
Accept a ConstPtr in canSell
2015-12-18 15:58:45 +01:00
scrawl
2bc851c7d3
Accept a ConstPtr in getEnchantment
2015-12-18 15:56:45 +01:00
scrawl
beb8805a12
Accept a ConstPtr in getInventoryIcon
2015-12-18 15:53:47 +01:00
scrawl
f258c5c508
Accept a ConstPtr in getModel
2015-12-18 15:51:05 +01:00
scrawl
d9bbd83b09
Accept a ConstPtr in getToolTipInfo
...
Accept a ConstPtr in functions used by getToolTipInfo
2015-12-18 15:47:16 +01:00
scrawl
bc50587e71
Remove comment
2015-12-18 14:33:15 +01:00
scrawl
a344183247
Comment fix
2015-12-18 02:34:42 +01:00
scrawl
ed3486e816
Improve const-correctness in writeAdditionalState
2015-12-18 00:19:06 +01:00
scrawl
b48445dea7
Accept a ConstPtr in getScript
2015-12-18 00:12:03 +01:00
scrawl
19d87c78f2
Add CellStore::forEachConst
2015-12-17 23:59:18 +01:00
scrawl
d4eba794c3
Add ConstPtr
2015-12-17 23:34:52 +01:00
scrawl
2fe2f53b02
Set the changed flag in CellStore::search ( Fixes #3089 )
2015-12-17 22:37:41 +01:00
scrawl
04b6571d7d
Fix logic for scripting access of deleted objects
2015-12-17 20:34:50 +01:00
scrawl
e564c26314
Fix deleted objects being accessible in the Cells cache
2015-12-17 20:18:15 +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
d6bcb7906d
Fix crash in a warning message
2015-12-17 16:11:20 +01:00
scrawl
271fcb80c6
Remove container scripts before deleting container
2015-12-14 02:57:55 +01:00
scrawl
359b0b3772
Rename for clarity
2015-12-12 22:37:23 +01:00
scrawl
18cce3a6f9
Don't reset delete flag when loading reference from a save game ( Fixes #2724 )
2015-12-12 22:34:59 +01:00
scrawl
850092a5e5
Store: be consistent about struct / class usage
...
Don't inherit a struct from a class, and vice versa.
2015-12-12 22:34:59 +01:00
scrawl
cc2315a0de
Minor fix
2015-12-11 16:59:13 +01:00
scrawl
b856460f86
ESMStore: fill mIds in setUp()
2015-12-11 16:55:28 +01:00
Chris Robinson
808f701013
Use the actor's Head position for Say streams
2015-12-10 17:48:45 -08:00
Chris Robinson
a47bdecac7
Add missing include
...
Since Ptr is used directly in the header, a forward declaration isn't good
enough.
2015-12-10 17:47:55 -08:00
scrawl
57b7cac13f
Merge pull request #850 from MatthewRock/fix-2952-2
...
Fix for bug #2952 : Enchantment Merchant Items reshuffled EVERY time 'barter' is clicked
2015-12-09 20:12:45 +01:00
MatthewRock
ddd4004c95
Fix: remove space
2015-12-09 18:26:33 +01:00
MatthewRock
3b254ad631
Allows the same item to have multiple ancestors
2015-12-09 18:24:35 +01:00
scrawl
bdae572264
Merge pull request #840 from scrawl/movedrefs
...
Object movement between cells
2015-12-09 14:10:57 +01:00
scrawl
bc1f7499ab
Do not allow deleting the player object ( Fixes #2982 )
2015-12-09 00:26:39 +01:00
MatthewRock
b0e6a52595
Replace ancestor with parent
2015-12-08 22:45:16 +01:00
MatthewRock
aa721fe1f6
Fix bug 2952 with merchant and levelled items
2015-12-08 22:39:11 +01:00
Marc Zinnschlag
071ba3a4df
Merge remote-tracking branch 'scrawl/werewolf'
2015-12-08 09:28:35 +01:00
scrawl
07b064f616
Rename to lowerCaseInPlace
2015-12-07 22:49:15 +01:00
scrawl
136a425cec
Use the Werewolf field of view override ( Fixes #3064 )
...
Need to re-run the settings importer for the feature to work.
2015-12-07 16:11:47 +01:00
scrawl
621347b20f
Remove moved ref handling from listRefs()
...
Not needed since we now load cells when a reference is moved there.
2015-12-07 03:55:26 +01:00
scrawl
1875aa4a18
Restore getNearbyDoor
2015-12-07 03:53:46 +01:00
scrawl
f9dd549bff
Restore FindContainerVisitor
2015-12-07 03:47:40 +01:00
scrawl
965bea45c0
AiEscort makes the actor side with target in fights (Bug #2697 )
...
Also will follow the player through teleport doors.
2015-12-06 23:38:51 +01:00
scrawl
4b0ecaa0a0
Fix physics bug
2015-12-06 22:10:01 +01:00
scrawl
51b892195b
Restore getReadOnlyDoors()
2015-12-06 21:58:25 +01:00
scrawl
abcf91be5b
Port over more game logic to the visitor pattern
2015-12-06 20:43:50 +01:00
scrawl
9ea475d00c
Port LocalScripts::addCell to new CellStore interfaces
2015-12-06 20:33:22 +01:00
scrawl
a517f4f9ba
Add CellStore::forEachType to help with porting over game logic to the new interfaces
2015-12-06 20:32:39 +01:00
scrawl
0af33b5abd
Throw exception if moveTo() is passed an object not part of *this
2015-12-06 20:05:13 +01:00
scrawl
176a3c16f4
Resolve moved references loaded from a save game
2015-12-06 20:00:24 +01:00
scrawl
671561ea37
Write moved references to the save game file (not resolved on loading yet)
2015-12-06 19:11:25 +01:00
scrawl
2219231230
Missing updateMergedRefs()
2015-12-06 18:46:49 +01:00
scrawl
138957c49a
Special case objects with no refnum
2015-12-06 18:43:52 +01:00
scrawl
5e99a3eda6
Rename CellStore Functor to Visitor
2015-12-06 18:13:04 +01:00
scrawl
2301080c63
Load CellStore when an object is moved there
2015-12-06 18:04:48 +01:00
scrawl
811df1e97b
Pass the ESM reader list to CellStore constructor
2015-12-06 18:03:55 +01:00
scrawl
67a6a8f5d4
Make projectiles receive lighting
2015-12-05 00:44:18 +01:00
scrawl
6181594251
Disable freezeOnCull for magic projectile particles
2015-12-05 00:33:01 +01:00
scrawl
a8938589f6
Magic projectiles rotate during flight
2015-12-05 00:33:01 +01:00
scrawl
3f93af4181
Projectiles interact with the water surface ( Fixes #2986 )
2015-12-04 23:28:11 +01:00
scrawl
3dcefd17fc
Fix CellStore::count()
2015-12-04 20:03:14 +01:00
scrawl
3aa53f3cb4
Object cell movement tracker works. Savegame handling is still missing and some game functionality is still stubbed out.
2015-12-04 19:46:02 +01:00
scrawl
64b4926127
Add reference moving logic - untested
2015-12-04 18:29:41 +01:00
scrawl
7a983340bf
Add comment
2015-12-04 18:29:41 +01:00
scrawl
fc449233be
Restore support for inserting objects into a cell
2015-12-04 18:29:41 +01:00
scrawl
0975f60d59
Stub out CellStore::get<T> accessors in preparation of reference movement between cells
2015-12-04 18:29:41 +01:00
Marc Zinnschlag
e0c9265148
Merge remote-tracking branch 'origin/master'
2015-12-03 15:56:24 +01:00
scrawl
d0c6b407b4
Fix isUnderwater checks being off by one for exterior cells
2015-12-03 15:16:50 +01:00
scrawl
86881bcf39
In first person mode, attach sound listener to the camera
2015-12-03 15:16:20 +01:00
Chris Robinson
816015d6e6
Avoid inheriting from Sound for sound types
2015-12-02 16:09:24 -08:00
scrawl
3d12b2ca9d
Add NifFileManager to avoid duplicate parsing of the NIFFile in SceneManager and BulletShapeManager.
2015-12-02 14:59:32 +01:00
scrawl
cd4a1ffd16
Fast version of dynamic_cast for MWClass
2015-11-29 14:26:52 +01:00
scrawl
c9bfe01120
Fix applying of weather changes after serving a jail sentence
2015-11-28 17:57:35 +01:00
Marc Zinnschlag
6facce9d13
Merge remote-tracking branch 'origin/master'
2015-11-28 10:02:37 +01:00
scrawl
d97dda05c9
Don't attempt to play unset weather sounds
2015-11-28 05:55:36 +01:00
scrawl
4687c4baad
Do not assert() for invalid land data in plugins (Bug #3037 )
...
The resizing of LTEX store to the correct number of plugins was done in the load() method, but the load method won't be called if a plugin contains LAND records but doesn't contain LTEX records. For such plugins the Store<ESM::LandTexture>::search() function would then fail an assertion.
2015-11-27 21:57:15 +01:00
scrawl
89783e047b
Fix typo
2015-11-27 19:40:31 +01:00
Marc Zinnschlag
7cc950ed64
Merge remote-tracking branch 'origin/master'
2015-11-27 10:34:22 +01:00
scrawl
44dd62067e
Remove some unnecessary per-frame store searches
2015-11-27 02:13:56 +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
Chris Robinson
aac903484c
Remove a really unnecessary method
2015-11-25 04:24:26 -08:00
Chris Robinson
73448c72f6
Replace Play_NoTrack with playManualSound3D, and rename the latter
2015-11-25 04:24:26 -08:00
scrawl
edfcb45ad7
Fix crash when onPcEquip script removes the equipped item ( Fixes #3016 )
2015-11-24 22:55:17 +01:00
scrawl
71cd57a3b5
Optimize World::getTimeStamp
...
World::getTimeStamp was searching through the globals store on every call. Not a big issue, but slow enough to show up in the profiler.
2015-11-22 23:55:21 +01:00
scrawl
62169a7039
Use a single-precision PositionAttitudeTransform in speed critical places
2015-11-22 19:54:26 +01:00
scrawl
43de13fa99
Do not allow resting on lava
2015-11-20 19:22:31 +01:00
scrawl
2d302aef99
Implement stayOutside script variable
2015-11-20 05:05:43 +01:00
scrawl
27617468c8
Fix the collision shape not updating when scaling an object via script
2015-11-20 03:29:58 +01:00
scrawl
5f143dee2d
Fix lighting incontinuity at nightfall and sunrise
2015-11-20 03:22:35 +01:00
scrawl
3453353091
AiCombat distance check takes into account collision box ( Fixes #1699 )
2015-11-18 19:00:43 +01:00