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

Go to full version