Forum > Random
Wiki Formatting
<< < (2/4) > >>
Ascathos:
DBC Proposal
Idea: Split DBCs for readability [paragraph:nhohd9b9]How to ?
Instead of having the scheme as following:[/paragraph:nhohd9b9]
--- Quote --- Title _____ Description [Index]
Table description according to version ______ [Description]
Structs according to version ______ [struct]Struct[/struct] --- End quote ---
[paragraph:nhohd9b9]I propose the following:[/paragraph:nhohd9b9]
--- Quote --- Title _____ Description [Index]
Existing variables that can occur in this ______ [Variables explained, subsectioned in versions and or additions by addon]
Structs according to version ______ [struct]Struct[/struct] --- End quote ---
[paragraph:nhohd9b9]Why ? This increases readability a lot. It improves looking up how certain tables works and also improves documentation.[/paragraph:nhohd9b9]
As displayed in the following pictures: [attachment=1:nhohd9b9]Right now.jpg[/attachment:nhohd9b9]
To the following: [attachment=0:nhohd9b9]Proposal.jpg[/attachment:nhohd9b9]
--- Code: ---==Variables== {| style="background:#FCFCFC; color:black"} |- !width="180" | Name !width="80" | Type !width="40" | Addon !width="250"| Description |- style="background:#E0E0E0;" | ID || Integer || {{Template:Sandbox/VersionRange|min_expansionlevel=1}} || Interal identifier |- | Duration ||Integer || {{Template:Sandbox/VersionRange|min_expansionlevel=1}} || Base Duration |- style="background:#E0E0E0;" | Dur. per Level || Integer || {{Template:Sandbox/VersionRange|min_expansionlevel=1}} || Duration Increase per Level |- | MaxDuration || Integer || {{Template:Sandbox/VersionRange|min_expansionlevel=1}} || Max Duration for this entry |}
==Structs==
===0.5.3.3368, 4.0.3.13329, 6.0.1.18179=== struct SpellDurationRec { uint32_t m_ID; uint32_t m_duration; uint32_t m_durationPerLevel; uint32_t m_maxDuration; }; --- End code ---
Synric:
My plan had been to do this this previous weekend, but RL got the best of me. Eight days from now I'll have a bit of time to myself, and I'll update the wiki.
Problem with the variable idea: We keep the information presented in order. Blizzard does not. They sometimes randomize certain DBC columns from xpac to xpac... Any ideas to get around that?
Also, the columns in a dbc can change patch to patch. Doesnt happen often but for example theres a DBC who had a column added between 3.0.2 and 3.3.5. So, at least we'd need to add patch as well as expansion.
Ascathos:
Could add versions if we are certain about things. Also, sometimes it would make sense to simply have them referred to. If a meaning changed throughout a few versions, that would also be covered
Example
Name Integer Addon Version Description __________________________________ Duration Integer < Wotlk 12100 "Base Duration for spells" Duration Integer =>Wotlk 12340 "Base Duration for everything, including life time"
Soemthing along these lines.
Synric:
Thats rare, but it does happen. (See: spellpower.db2. Originally contained manacost, turned into PowerCost basically).
Still though, how do we handle the changing columns? For example (I dont have a DBC thats done this pulled up, but it does happen), in one patch the columns could be ordered like
ID SpellID Cost Powertype etc.
and then it gets re-ordered like
Cost, PowerType, SpellID, ID
How do we handle re-orgranization between patches?
Also, how do you propose handling when a column is removed? Like spell.dbc goes from a max of 315 columns to 8. I think theres just a bit too much changing to use 1 table on the page.
Ascathos:
--- Code: ---===0.5.3.3368=== struct SpellDurationRec { uint32_t m_ID; uint32_t m_duration; uint32_t m_durationPerLevel; uint32_t m_maxDuration; }; --- End code ---
--- Code: ---===4.0.3.13329=== struct SpellDurationRec { uint32_t m_ID; uint32_t m_someRandomStuff; uint32_t m_duration; uint32_t m_durationPerLevel; uint32_t m_maxDuration; }; --- End code ---
--- Code: ---===4.0.3.13331=== struct SpellDurationRec { uint32_t m_maxDuration; uint32_t m_ID; uint32_t m_duration; uint32_t m_durationPerLevel; uint32_t m_someRandomStuff; uint32_t m_somethingElse; }; --- End code ---
Something like this I could imagine.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
|