Forums WoW Modding Discussion Miscellaneous [Archive] Parsing DBC files?

[Archive] Parsing DBC files?

[Archive] Parsing DBC files?

Pages (2): Previous 1 2
rektbyfaith
Administrator
0
07-04-2019, 12:13 AM
#11
Archived author: wungasaurus • Posted: 2019-07-04T00:13:17+00:00
Original source

Regardless of the size - which is given in the header! - you can do such a button. Just move all stringblock bytes a bit to the back?

Pre db2, these files are utterly simple. It is just three blocks of fixed, header given, header given size, and the most complex part is that records can point into the string block. It is just completely dumb arrays.
rektbyfaith
07-04-2019, 12:13 AM #11

Archived author: wungasaurus • Posted: 2019-07-04T00:13:17+00:00
Original source

Regardless of the size - which is given in the header! - you can do such a button. Just move all stringblock bytes a bit to the back?

Pre db2, these files are utterly simple. It is just three blocks of fixed, header given, header given size, and the most complex part is that records can point into the string block. It is just completely dumb arrays.

rektbyfaith
Administrator
0
07-06-2019, 01:31 AM
#12
Archived author: FiftyTifty • Posted: 2019-07-06T01:31:19+00:00
Original source

Quote: On 7/4/2019 at 1:13 AM, wungasaurus said:

Regardless of the size - which is given in the header! - you can do such a button. Just move all stringblock bytes a bit to the back?

Pre db2, these files are utterly simple. It is just three blocks of fixed, header given, header given size, and the most complex part is that records can point into the string block. It is just completely dumb arrays.
Still working on this, in-between the other stuff I'm doing and researching.

Made more progress. Since the string block for LightIntBand.dbc is literally a single byte with a value of 0x00, adding and removing records is painless to code. So that's a new feature; you can add and remove entries.

And since Delphi uses pointers to fill that tree panel on the left, it's also easy to make another TMemoryStream, read all the records that are still present in the tree as well as those that have been added, chuck them into an array, punt the header and string block in, and bam. New LightIntBand.dbc file that requires no other programs to work with, and it's just much easier.

Any feature requests? I'm not a proper programmer, so I won't be able to do fancy stuff.
rektbyfaith
07-06-2019, 01:31 AM #12

Archived author: FiftyTifty • Posted: 2019-07-06T01:31:19+00:00
Original source

Quote: On 7/4/2019 at 1:13 AM, wungasaurus said:

Regardless of the size - which is given in the header! - you can do such a button. Just move all stringblock bytes a bit to the back?

Pre db2, these files are utterly simple. It is just three blocks of fixed, header given, header given size, and the most complex part is that records can point into the string block. It is just completely dumb arrays.
Still working on this, in-between the other stuff I'm doing and researching.

Made more progress. Since the string block for LightIntBand.dbc is literally a single byte with a value of 0x00, adding and removing records is painless to code. So that's a new feature; you can add and remove entries.

And since Delphi uses pointers to fill that tree panel on the left, it's also easy to make another TMemoryStream, read all the records that are still present in the tree as well as those that have been added, chuck them into an array, punt the header and string block in, and bam. New LightIntBand.dbc file that requires no other programs to work with, and it's just much easier.

Any feature requests? I'm not a proper programmer, so I won't be able to do fancy stuff.

Pages (2): Previous 1 2
Recently Browsing
 1 Guest(s)
Recently Browsing
 1 Guest(s)