New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Mutable ESM records (#2798) #2870
Conversation
no |
Adding it to the list then. |
You may need to revise container behavior too, see UESP notes on AddItem. |
And actor behaviour, looking at that. Beth sure came up with some interesting functionality... |
Also maybe it is worth to implement different tasks in different PR's. For example, containers are not really related to AddSpell or SetFight. |
Yeah, splitting between actor and non-actor stuff might be wise. |
Just a comment... if you are going to be touching the for loops, could you perhaps clean them up ta bit? For example, you could pull this up into one readable line.
|
Just a something I noticed that you can really clean up the readability of the code you are already touching anyway. Take advantage of modern C++ ;D |
gcc wasn't happy about that...
|
Right... so that's a pretty ridiculous problem. Can't the unit tests just pull in the apps/openmw cmake list so I don't have to manually tell it to build every (transitively) included cpp file? |
Run CMake with |
That's really not what I mean. Anyway, sleepy time, g'night. |
Probably you mean to setup build targets properly. For now there is no library build target including |
I think that's what I want, but I know just about nothing about CMake. The way unit tests are built strikes me as pretty fragile at the moment - with the upside of reduced build time, of course. |
and
|
Nearly there I think. Still kinda need to sync actors with the base record as I don't think instances can have their own spell lists at all. |
How does this correspond to your list of check boxes in the OP? |
The current changes are working towards the second checkbox. |
|
radioactive ;) |
But can we have Capo sing the song for the release trailer? :D |
I do not remember merging this explicitly... I did merge #2980 though. |
I guess it's technically correct since this PR is a subset of the other one at the moment. If it doesn't reopen automatically when I get started on the last item, I'll just make a new one. |
Container notes
|
If I remembered correctly, there is an another system. In Morrowind all containers or actors with the same ID use shared inventory, so Additem/RemoveItem affects all instances, including newly-spawned ones. It is also possible to add levelled items here. Just select object in console. If there is only object ID, then object should not have its own inventory. If there is an eight digit suffix (e.g. "hul00000000"), object has an unique inventory. Also such "shared" inventories seem to be resolved temporary in Morrowind - of you open a container without taking any items and use save/load, there will be different items. Once you take an item from container, its content becomes fixed and restock stops to work for it. In OpenMW once you open a container, it get a permanent resolved inventory, but restocking still works. It leads to exploits, also it makes merchant items in OpenMW less random than in Morrowind:
|
This is what the MCP has to say:
The impression I was getting was that the shared inventory is just a temporary view of the base record (i.e., levelled lists are resolved) that only gets saved once a change is made to it. The note on merchants is interesting. I'll definitely need to do some testing in that regard. Also negative quantities are always pretty odd. |
Since rot provided a nice list, I'll just copy the things that I'm sure need doing.
Levelled lists have been in for years and I haven't checked how faction reactions and weather are handled... but I think those also work?
Leavingscript records, when editing local variables with "scriptID".localvar
. I know that syntax works, but does it work like it's supposed to?