ok, getting a little busy with some things, so i wanted to go ahead and post some of th einfo i have so far in hopes that those able to make sens of it will be able to use it accordingly and move things even further forward.
i am still working on determining the purpose of most of the values in the flags fields but i have commented at least the most important one concerning this update, the values used to determine the vertex declaration(s) used. As i mentioned previously this is probably also a custom material class used by the engine so it probably has shader references as well, but i have not put breakpoints at the other direct3d functions with regard to this yet.
here is the way the vertex declaration value is used when modifying the material information. Each material keeps the addresses of 2 of these declaration structures. i am still in the process of determining how it decides which one to use for each object. Also since declarations 0 and 5 are the same the objects will usually use 5 in the index values if you look at the files themselves, but so far these values have not been touched again in the code once determined from the object's material index.
and here are the data values used in all of the vertex declaration created through the course of the game so far. The information above determines which are selected, so some of them are not all that important to file formats, those not being used often pertaining to other visual effects not present in the file, like some of the water rendering, etc. Soory, like i said, i have not coded things up into a viewer yet, so i have not yet taken the time to relate everything back into values relevant to direct3d, but they are simply the values inorder used to populate a D3DVERTEXELEMENT9 structure array for use in CreateVertexDeclaration calls. If i happen to do this before anyone else gets to it i will post things in code form.
Code: Select all
// vertex declarations
// 0EE78680 - [00] - same as [05]
0, 0, 10, 0, 0, 0
0, 8, 5, 0, 2, 0
0, 12, 8, 0, 1, 0
0, 16, 8, 0, 3, 0
0, 20, 8, 0, 6, 0
0, 24, 15, 0, 5, 0
0, 28, 15, 0, 5, 1
FF, 0, 17, 0, 0, 0
// 0EE787C0 - [01]
0, 0, 2, 0, 0, 0
0, 12, 8, 0, 3, 0
0, 16, 8, 0, 6, 0
0, 20, 15, 0, 5, 0
0, 24, 15, 0, 5, 1
0, 28, 15, 0, 5, 2
1, 0, 15, 0, 5, 3
FF, 0, 17, 0, 0, 0
// 0EE78860 - [02]
0, 0, 10, 0, 0, 0
0, 8, 5, 0, 2, 0
0, 12, 5, 0, 2, 1
0, 16, 8, 0, 1, 0
0, 20, 8, 0, 1, 1
0, 24, 8, 0, 3, 0
0, 28, 15, 0, 5, 0
1, 0, 15, 0, 5, 1
1, 4, 8, 0, 6, 0
FF, 0, 17, 0, 0, 0
// 0EE782A0 - [03]
0, 0, 2, 0, 0, 0
0, 12, 4, 0, 10, 0
0, 16, 1, 0, 5, 0
FF, 0, 17, 0, 0, 0
// 0EE78330 - [04]
0, 0, 2, 0, 0, 0
0, 12, 4, 0, 10, 0
0, 16, 1, 0, 5, 0
0, 24, 1, 0, 5, 1
FF, 0, 17, 0, 0, 0
// 0EE78680 - [05] - same as [00]
0, 0, 10, 0, 0, 0
0, 8, 5, 0, 2, 0
0, 12, 8, 0, 1, 0
0, 16, 8, 0, 3, 0
0, 20, 8, 0, 6, 0
0, 24, 15, 0, 5, 0
0, 28, 15, 0, 5, 1
FF, 0, 17, 0, 0, 0
// 0EE78570 - [06]
0, 0, 2, 0, 0, 0
0, 12, 8, 0, 3, 0
0, 16, 8, 0, 6, 0
0, 20, 15, 0, 5, 0
0, 24, 15, 0, 5, 1
0, 28, 15, 0, 5, 2
FF, 0, 17, 0, 0, 0
// 0EE78720 - [07]
0, 0, 10, 0, 0, 0
0, 8, 5, 0, 2, 0
0, 12, 5, 0, 2, 1
0, 16, 8, 0, 1, 0
0, 20, 8, 0, 1, 1
0, 24, 8, 0, 3, 0
0, 28, 15, 0, 5, 0
FF, 0, 17, 0, 0, 0
// 0EE78910 - [08]
0, 0, 2, 0, 0, 0
0, 12, 8, 0, 3, 0
0, 16, 8, 0, 6, 0
0, 20, 15, 0, 5, 0
0, 24, 15, 0, 5, 1
0, 28, 4, 0, 10, 0
FF, 0, 17, 0, 0, 0
// 0EE789B0 - [09]
0, 2, 0, 0, 0, 0
0, 12, 8, 0, 3, 0
0, 16, 8, 0, 6, 0
0, 20, 15, 0, 5, 0
0, 24, 15, 0, 5, 1
0, 28, 4, 0, 10, 0
1, 0, 15, 0, 5, 2
FF, 0, 17, 0, 0, 0
// 0EE78BB0 - [10]
0, 0, 10, 0, 0, 0
0, 8, 5, 0, 2, 0
0, 12, 8, 0, 1, 0
0, 16, 8, 0, 3, 0
0, 20, 5, 0, 5, 0
0, 24, 15, 0, 5, 1
0, 28, 15, 0, 5, 2
FF, 0, 17, 0, 0, 0
// 0EE78C50 - [11]
0, 0, 10, 0, 0, 0
0, 8, 5, 0, 2, 0
0, 12, 8, 0, 1, 0
0, 16, 8, 0, 3, 0
0, 20, 5, 0, 5, 0
0, 24, 15, 0, 5, 1
0, 28, 15, 0, 5, 2
1, 0, 8, 0, 6, 0
FF, 0, 17, 0, 0, 0
// 0EE78D00 - [12]
0, 0, 10, 0, 0, 0
0, 8, 5, 0, 2, 0
0, 12, 8, 0, 1, 0
0, 16, 8, 0, 3, 0
0, 20, 8, 0, 6, 0
0, 24, 15, 0, 5, 0
0, 28, 4, 0, 10, 0
FF, 0, 17, 0, 0, 0
// 0EE783D0 - [13]
0, 0, 2, 0, 0, 0
0, 12, 5, 0, 2, 0
0, 16, 5, 0, 2, 1
0, 20, 8, 0, 1, 0
0, 24, 8, 0, 1, 1
0, 28, 0, 0, 3, 0
0, 32, 0, 0, 6, 0
0, 36, 9, 0, 5, 0
0, 40, 9, 0, 5, 1
0, 44, 9, 0, 5, 2
0, 48, 9, 0, 5, 3
0, 52, 4, 0, 10, 0
FF, 0, 17, 0, 0, 0
// 0EE78A50 - [14]
0, 0, 10, 0, 0, 1
0, 8, 5, 0, 2, 0
0, 12, 8, 0, 1, 0
0, 24, 15, 0, 5, 0
0, 28, 15, 0, 5, 1
2, 0, 10, 0, 0, 2
2, 8, 8, 0, 3, 0
2, 12, 8, 0, 6, 0
FF, 0, 17, 0, 0, 0
// 0EE78B00 - [15]
0, 0, 10, 0, 0, 1
0, 8, 5, 0, 2, 0
0, 12, 8, 0, 1, 0
0, 24, 15, 0, 5, 0
0, 28, 4, 0, 10, 0
2, 0, 10, 0, 0, 0
2, 8, 8, 0, 3, 0
2, 12, 8, 0, 6, 0
FF, 0, 17, 0, 0, 0
// 0EE78490 - [16]
0, 0, 0, 0, 0, 0
FF, 0, 17, 0, 0, 0
// 0EE785E0 - [?0]
0, 0, 3, 0, 0, 0
0, 16, 3, 0, 2, 0
0, 32, 3, 0, 2, 1
0, 48, 3, 0, 1, 0
0, 64, 3, 0, 1, 1
0, 80, 3, 0, 3, 0
0, 96, 3, 0, 6, 0
0, 112, 3, 0, 5, 0
0, 128, 3, 0, 5, 1
0, 144, 3, 0, 5, 2
0, 160, 3, 0, 5, 3
0, 176, 3, 0, 10, 0
0, 192, 3, 0, 7, 0
FF, 0, 17, 0, 0, 0
// 0EE78520 - [?1] - empty?
0, 0, 0, 0, 0, 0
FF, 0, 17, 0, 0, 0
-------------------------------------
// 0EE78DA0 - [?2]
0, 0, 2, 0, 0, 0
0, 12, 4, 0, 10, 0
0, 16, 10, 0, 5, 0
0, 24, 5, 0, 5, 1
0, 28, 5, 0, 5, 2
FF, 0, 17, 0, 0, 0
// 0EE78E40 - [?3]
0, 0, 2, 0, 0, 0
0, 12, 4, 0, 10, 0
0, 16, 10, 0, 5, 0
0, 24, 9, 0, 5, 1
FF, 0, 17, 0, 0, 0
// 0F800680 - [?4]
0, 0, 2, 0, 0, 0
0, 12, 1, 0, 5, 0
0, 20, 2, 0, 5, 1
0, 32, 2, 0, 5, 2
0, 44, 2, 0, 3, 0
FF, 0, 17, 0, 0, 0
// 0F800720 - [?5]
0, 0, 2, 0, 0, 0
FF, 0, 17, 0, 0, 0
Let me know if there is anything you need clarified. i'll report when i have any new findings.
Hope this helps.