SaveScum / skyrim-plugin-decoding-project

Automatically exported from code.google.com/p/skyrim-plugin-decoding-project
0 stars 0 forks source link

Error adding a new master to plugin with own navmeshes #106

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
Described here
http://forums.bethsoft.com/topic/1440522-relz-tes5edit/page__view__findpost__p__
22224519
Generally updating references in navmesh causes array error.

What is the expected output?
No error.

What do you see instead?
exception class   : ERangeError
exception message : Range check error.

What version of the product are you using? On what operating system?
3.0.28 Windows 7 x64

Please provide any additional information below.

Original issue reported on code.google.com by zila...@gmail.com on 10 Feb 2013 at 7:22

GoogleCodeExporter commented 9 years ago
Assertion in : wbNVNMParentDecider
Assertion is due to calling getNativeValue on the record with the previous 
FormID (ie 010003D2) and not the new (ie 020003D2). Checking for CELL signature 
can catch that silently.
Remaining bug: The reference ParentCell does not get updated and remains 
010003D2.

Other unrelated bug in the same function: Checking twice for 
Assigned(MainRecord) where the second time should be Assigned(rDATA).

Original comment by HuguesLe...@gmail.com on 10 Feb 2013 at 2:04

GoogleCodeExporter commented 9 years ago
The wrong ID is called because in TwbGroupRecord.MasterCountUpdated inherited 
is called before updating the grStruct.grsLabel, and thats the ID being looked 
for.

Inverting does not solve the remaining bug yet.

Original comment by HuguesLe...@gmail.com on 10 Feb 2013 at 2:37

GoogleCodeExporter commented 9 years ago
When did this bug appear? I've been adding masters successfully in the past, 
however maybe all those plugins didn't have navmeshes.

Original comment by zila...@gmail.com on 10 Feb 2013 at 2:44

GoogleCodeExporter commented 9 years ago
I can't tell. I did use and test AddMasters before. But I don't build interiors.

The decider code looks unchanged since r1045, the reference version I made when 
starting on the project, as for TwbGroupRecord.MasterCountUpdated I see it in 
FNVDump sources v3.0.21

Might be a long standing bug never encountered ?

Original comment by HuguesLe...@gmail.com on 10 Feb 2013 at 3:05

GoogleCodeExporter commented 9 years ago
Now the bug about union that results in FormID not being updated during 
AddMasters, that one is all on me!
It works when Union resolve to Struct, Array or Union, but not for a simple 
ValueBase.
This is because I do not treat value base as container so they keep displaying 
just like they did before introducing complex union, but I did not take that 
into account for MasterCountUpdated.

Original comment by HuguesLe...@gmail.com on 10 Feb 2013 at 3:53

GoogleCodeExporter commented 9 years ago
Yes might me an old bug, just hope you'll be able to eliminate it. Debugging 
the inner code of xEdit gives me headache, I'm so used to modern garbage 
collected languages and loose typing :(

Original comment by zila...@gmail.com on 10 Feb 2013 at 4:02

GoogleCodeExporter commented 9 years ago
So, here comes another headache... :)
By duplicating TwbValue.MasterCountUpdated (and other Master related function 
to be safe) as TwbUnion.MasterCountUpdated I correctly detect and update the 
FormID.
My question is that it looks like any override of 
TwbContainer.MasterCountUpdated is identical. If so, maybe it would be cleaner 
and safer to override once as TwbDataContainer.MasterCountUpdated ?

Original comment by HuguesLe...@gmail.com on 10 Feb 2013 at 4:18

GoogleCodeExporter commented 9 years ago
Might not be good at TwbDataContainer level, its just an abstract storage of 
anything. Manipulating FORMID value is a higher logical/structural level.
But in the end, it is up to you to decide.

Original comment by zila...@gmail.com on 10 Feb 2013 at 4:41

GoogleCodeExporter commented 9 years ago
The soon to be uploaded version will not reconfigure the code as I would have 
to check every case that are not affected at the moment. I'll look at it 
"someday"...

By the way I checked Clean Masters and it looked like it is working properly.

Original comment by HuguesLe...@gmail.com on 10 Feb 2013 at 4:45

GoogleCodeExporter commented 9 years ago
r1186 is expected to solve all of that issue.

Original comment by HuguesLe...@gmail.com on 10 Feb 2013 at 5:16

GoogleCodeExporter commented 9 years ago

Original comment by HuguesLe...@gmail.com on 14 Mar 2013 at 5:31