From 2e63654c20b04ceaff4ebe983694a61336de601b Mon Sep 17 00:00:00 2001 From: megazig Date: Sun, 19 Apr 2009 15:59:10 -0500 Subject: BRLAN IS FIXED 100 PERCENT --- brlan.c | 31 ++++++++++++++----------------- general.h | 2 +- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/brlan.c b/brlan.c index b87ecfa..1d2f7bb 100644 --- a/brlan.c +++ b/brlan.c @@ -171,8 +171,6 @@ void parse_brlan(char* filename) BRLAN_fileoffset = be32(pai1_header.entry_offset) + short_swap_bytes(header.pai1_offset); BRLAN_ReadDataFromMemory(taglocations, data, tagcount * sizeof(u32)); - //for(i=0;i= 1) { somethingIsSet = 1; - //BRLAN_fileoffset += sizeof(u32); BRLAN_ReadDataFromMemory(&offsetToExtras, data, 4); } @@ -447,7 +444,7 @@ u32 create_entries_from_xml(mxml_node_t *tree, mxml_node_t *node, brlan_entry *e u32 fillerInt = be32(0x60); if (entr->flags & 0x02000000) { - fillerInt = be32(0x60); // sizeof(wholeFile) - + fillerInt = be32(0x60); fwrite(&fillerInt, sizeof(u32), 1, fp); BRLAN_fileoffset += 4; } @@ -458,7 +455,6 @@ u32 create_entries_from_xml(mxml_node_t *tree, mxml_node_t *node, brlan_entry *e u32* entryinfolocs = (u32*)calloc(head->entry_count, sizeof(u32)); for(x = 0; x < head->entry_count; x++) { entryinfolocs[x] = ftell(fp); -// entry[x].offset = entryinfolocs[x] - sizeof(brlan_entry); // F I X + M E if (x>0) { entry[x].offset = entry[x-1].offset + sizeof(tag_entryinfo) + (entryinfo[x-1].coord_count * sizeof(tag_data)); @@ -489,18 +485,13 @@ u32 create_entries_from_xml(mxml_node_t *tree, mxml_node_t *node, brlan_entry *e } WriteBRLANEntry(entr, fp); - // write the final tag if flag & 0x02000000 mxml_node_t *addonnode = NULL; mxml_node_t *addonsubnode = NULL; mxml_node_t *addonsubsubnode = NULL; tag_header addonTagHeader; -// tag_entry *addonTagEntry; tag_entry addonTagEntry[256]; -// tag_entryinfo *addonTagEntryInfo; tag_entryinfo addonTagEntryInfo[256]; -// tag_data *addonTagData; tag_data *addonTagData[1024]; -// tag_data2 *addonTagData2; tag_data2 *addonTagData2[1024]; char tempChar[256]; if(entr->flags & 0x02000000) @@ -548,7 +539,7 @@ u32 create_entries_from_xml(mxml_node_t *tree, mxml_node_t *node, brlan_entry *e for(addonsubnode = mxmlFindElement(entrynode, entrynode, "triplet", NULL, NULL, MXML_DESCEND); addonsubnode != NULL; addonsubnode = mxmlFindElement(addonsubnode, entrynode, "triplet", NULL, NULL, MXML_DESCEND)) { addonTagEntryInfo[addonTagHeader.entry_count].unk1 = short_swap_bytes(0x0200); - addonTagEntryInfo[addonTagHeader.entry_count].coord_count +=1; + addonTagEntryInfo[addonTagHeader.entry_count].coord_count += 1; u32 tC = addonTagEntryInfo[addonTagHeader.entry_count].coord_count; addonTagData[addonTagHeader.entry_count] = realloc(addonTagData[addonTagHeader.entry_count], sizeof(tag_data) * tC); // S E R I O U S H E L P N E E D E D // @@ -605,10 +596,12 @@ u32 create_entries_from_xml(mxml_node_t *tree, mxml_node_t *node, brlan_entry *e addonTagData2[addonTagHeader.entry_count][tC-1].padding = short_swap_bytes((short)strtoul(tempChar, NULL, 16)); } } - addonTagEntry[addonTagHeader.entry_count].offset = sizeof(tag_header); - if (addonTagHeader.entry_count > 1) - addonTagEntry[addonTagHeader.entry_count].offset = addonTagEntry[addonTagHeader.entry_count-1].offset + (sizeof(tag_data) * addonTagEntryInfo[addonTagHeader.entry_count-1].coord_count) + sizeof(tag_header); u32 eC = addonTagHeader.entry_count; + u32 cC = addonTagEntryInfo[eC].coord_count; + addonTagEntry[addonTagHeader.entry_count].offset = sizeof(tag_header); + if (addonTagHeader.entry_count > 0) + addonTagEntry[addonTagHeader.entry_count].offset = addonTagEntry[addonTagHeader.entry_count-1].offset + sizeof(tag_entryinfo) + (sizeof(tag_data) * cC); + addonTagEntryInfo[eC].coord_count = short_swap_bytes(addonTagEntryInfo[eC].coord_count); addonTagHeader.entry_count++; } @@ -616,18 +609,22 @@ u32 create_entries_from_xml(mxml_node_t *tree, mxml_node_t *node, brlan_entry *e fwrite(&addonTagHeader, sizeof(tag_header), 1, fp); int l; for (l=0;l