From 27e8cb7ba5f334b63aee7a1d5b52aaef58906917 Mon Sep 17 00:00:00 2001 From: megazig Date: Fri, 15 May 2009 10:35:54 -0500 Subject: added findings from tests --- brlan.c | 53 +++++++++++++++++++++++++++++++---- brlyt.c | 94 ++++++++++++++++++++++++++++++++++++--------------------------- brlyt.h | 16 +++++++---- general.h | 55 +------------------------------------ 4 files changed, 113 insertions(+), 105 deletions(-) diff --git a/brlan.c b/brlan.c index 329a803..d34a3c3 100644 --- a/brlan.c +++ b/brlan.c @@ -32,6 +32,7 @@ fourcc tag_FourCCs[] = { "RLPA", "RLTS", "RLVI", "RLVC", "RLMC", "RLTP" }; char tag_types_list[15][24]; char tag_types_rlmc_list[15][24]; +char tag_types_rlvc_list[15][24]; static size_t BRLAN_fileoffset = 0; FILE* xmlanout; @@ -171,12 +172,13 @@ void parse_brlan(char* filename, char *filenameout) { memset(tag_types_list[i], 0, 24); memset(tag_types_rlmc_list[i], 0, 24); + memset(tag_types_rlvc_list[i], 0, 24); } strcpy(tag_types_list[0], "X Translation"); strcpy(tag_types_list[1], "Y Translation"); strcpy(tag_types_list[2], "Z Translation"); - strcpy(tag_types_list[3], "0x03"); - strcpy(tag_types_list[4], "0x04"); + strcpy(tag_types_list[3], "X Flip"); + strcpy(tag_types_list[4], "Y Flip"); strcpy(tag_types_list[5], "Angle"); strcpy(tag_types_list[6], "X Zoom"); strcpy(tag_types_list[7], "Y Zoom"); @@ -206,6 +208,23 @@ void parse_brlan(char* filename, char *filenameout) strcpy(tag_types_rlmc_list[14], "0x0E"); strcpy(tag_types_rlmc_list[15], "0x0F"); + strcpy(tag_types_rlvc_list[0], "Top Left R"); + strcpy(tag_types_rlvc_list[1], "Top Left G"); + strcpy(tag_types_rlvc_list[2], "Top Left B"); + strcpy(tag_types_rlvc_list[3], "Top Left A"); + strcpy(tag_types_rlvc_list[4], "Top Right R"); + strcpy(tag_types_rlvc_list[5], "Top Right G"); + strcpy(tag_types_rlvc_list[6], "Top Right B"); + strcpy(tag_types_rlvc_list[7], "Top Right A"); + strcpy(tag_types_rlvc_list[8], "Bottom Left R"); + strcpy(tag_types_rlvc_list[9], "Bottom Left G"); + strcpy(tag_types_rlvc_list[10], "Bottom Left B"); + strcpy(tag_types_rlvc_list[11], "Bottom Left A"); + strcpy(tag_types_rlvc_list[12], "Bottom Right R"); + strcpy(tag_types_rlvc_list[13], "Bottom Right G"); + strcpy(tag_types_rlvc_list[14], "Bottom Right B"); + strcpy(tag_types_rlvc_list[15], "Bottom Right A"); + BRLAN_fileoffset = 0; brlan_header header; BRLAN_ReadDataFromMemoryX(&header, data, sizeof(brlan_header)); @@ -369,6 +388,7 @@ void create_entries_from_xml(mxml_node_t *tree, mxml_node_t *node, brlan_entry * strcpy(tag_type, mxmlElementGetAttr(node, "type")); char rlmc_type[5] = {'R', 'L', 'M', 'C'}; + char rlvc_type[5] = {'R', 'L', 'V', 'C'}; for(i = 0; i < 16; i++) memset(temp3[i], 0, 24); @@ -379,7 +399,12 @@ void create_entries_from_xml(mxml_node_t *tree, mxml_node_t *node, brlan_entry * { temp3[x][i] = toupper(tag_types_rlmc_list[x][i]); } - } else { + } else if(memcmp(tag_type, rlvc_type, 4) == 0) { + for(i = 0; i < strlen(tag_types_rlvc_list[x]); i++) + { + temp3[x][i] = toupper(tag_types_rlvc_list[x][i]); + } + } else { for(i = 0; i < strlen(tag_types_list[x]); i++) { temp3[x][i] = toupper(tag_types_list[x][i]); @@ -625,12 +650,13 @@ void write_brlan(char *infile, char* outfile) { memset(tag_types_list[i], 0, 24); memset(tag_types_rlmc_list[i], 0, 24); + memset(tag_types_rlvc_list[i], 0, 24); } strcpy(tag_types_list[0], "X Translation"); strcpy(tag_types_list[1], "Y Translation"); strcpy(tag_types_list[2], "Z Translation"); - strcpy(tag_types_list[3], "0x03"); - strcpy(tag_types_list[4], "0x04"); + strcpy(tag_types_list[3], "X Flip"); + strcpy(tag_types_list[4], "Y Flip"); strcpy(tag_types_list[5], "Angle"); strcpy(tag_types_list[6], "X Zoom"); strcpy(tag_types_list[7], "Y Zoom"); @@ -660,6 +686,23 @@ void write_brlan(char *infile, char* outfile) strcpy(tag_types_rlmc_list[14], "0x0E"); strcpy(tag_types_rlmc_list[15], "0x0F"); + strcpy(tag_types_rlvc_list[0], "Top Left R"); + strcpy(tag_types_rlvc_list[1], "Top Left G"); + strcpy(tag_types_rlvc_list[2], "Top Left B"); + strcpy(tag_types_rlvc_list[3], "Top Left A"); + strcpy(tag_types_rlvc_list[4], "Top Right R"); + strcpy(tag_types_rlvc_list[5], "Top Right G"); + strcpy(tag_types_rlvc_list[6], "Top Right B"); + strcpy(tag_types_rlvc_list[7], "Top Right A"); + strcpy(tag_types_rlvc_list[8], "Bottom Left R"); + strcpy(tag_types_rlvc_list[9], "Bottom Left G"); + strcpy(tag_types_rlvc_list[10], "Bottom Left B"); + strcpy(tag_types_rlvc_list[11], "Bottom Left A"); + strcpy(tag_types_rlvc_list[12], "Bottom Right R"); + strcpy(tag_types_rlvc_list[13], "Bottom Right G"); + strcpy(tag_types_rlvc_list[14], "Bottom Right B"); + strcpy(tag_types_rlvc_list[15], "Bottom Right A"); + FILE* fpx = fopen(infile, "r"); if(fpx == NULL) { printf("xmlan couldn't be opened!\n"); diff --git a/brlyt.c b/brlyt.c index b6343b6..5c1eb48 100644 --- a/brlyt.c +++ b/brlyt.c @@ -209,7 +209,7 @@ void PrintBRLYTEntry_lyt1(brlyt_entry entry, u8* brlyt_file, mxml_node_t *tag) BRLYT_fileoffset = entry.data_location; BRLYT_ReadDataFromMemory(&data, brlyt_file, sizeof(brlyt_lytheader_chunk)); mxmlElementSetAttrf(tag, "type", "%c%c%c%c", entry.magic[0], entry.magic[1], entry.magic[2], entry.magic[3]); - a = mxmlNewElement(tag, "a"); mxmlNewTextf(a, 0, "%08x", data.a); + a = mxmlNewElement(tag, "a"); mxmlNewTextf(a, 0, "%02x", data.a); size = mxmlNewElement(tag, "size"); width = mxmlNewElement(size, "width"); mxmlNewTextf(width, 0, "%f", float_swap_bytes(data.width)); height = mxmlNewElement(size, "height"); mxmlNewTextf(height, 0,"%f", float_swap_bytes(data.height)); @@ -486,8 +486,8 @@ void PrintBRLYTEntry_pic1(brlyt_entry entry, u8* brlyt_file, mxml_node_t *tag) size = mxmlNewElement(tag, "size"); width = mxmlNewElement(size, "width"); mxmlNewTextf(width, 0, "%f", float_swap_bytes(data.width)); height = mxmlNewElement(size, "height"); mxmlNewTextf(height, 0, "%f", float_swap_bytes(data.height)); - mxml_node_t *tpl, *color, *vtx, *coordinates, *set, *coord; - tpl = mxmlNewElement(tag, "tpl"); mxmlElementSetAttrf(tpl, "name", "%s", getMaterial(short_swap_bytes(data2.mat_off))); + mxml_node_t *material, *color, *vtx, *coordinates, *set, *coord; + material = mxmlNewElement(tag, "material"); mxmlElementSetAttrf(material, "name", "%s", getMaterial(short_swap_bytes(data2.mat_off))); color = mxmlNewElement(tag, "colors"); int n; for (n=0;n<4;n++) { @@ -555,7 +555,7 @@ void PrintBRLYTEntry_txt1(brlyt_entry entry, u8* brlyt_file, mxml_node_t *tag) void PrintBRLYTEntry_mat1(brlyt_entry entry, u8* brlyt_file, mxml_node_t *tag) { - mxml_node_t *entries, *colors, *black_color, *white_color, *unk2, *tev_k, *flags; + mxml_node_t *entries, *colors, *forecolor, *backcolor, *unk2, *tev_k, *flags; brlyt_numoffs_chunk data; BRLYT_fileoffset = entry.data_location; BRLYT_ReadDataFromMemory(&data, brlyt_file, sizeof(brlyt_numoffs_chunk)); @@ -575,13 +575,13 @@ void PrintBRLYTEntry_mat1(brlyt_entry entry, u8* brlyt_file, mxml_node_t *tag) colors = mxmlNewElement(entries, "colors"); int i; for (i=0;i<4;i++) { - black_color = mxmlNewElement(colors, "black_color"); - mxmlNewTextf(black_color, 0, "%d", short_swap_bytes(data3.black_color[i])); + forecolor = mxmlNewElement(colors, "forecolor"); + mxmlNewTextf(forecolor, 0, "%d", short_swap_bytes(data3.forecolor[i])); } for (i=0;i<4;i++) { - white_color = mxmlNewElement(colors, "white_color"); - mxmlNewTextf(white_color, 0, "%d", short_swap_bytes(data3.white_color[i])); + backcolor = mxmlNewElement(colors, "backcolor"); + mxmlNewTextf(backcolor, 0, "%d", short_swap_bytes(data3.backcolor[i])); } for (i=0;i<4;i++) { @@ -602,30 +602,31 @@ void PrintBRLYTEntry_mat1(brlyt_entry entry, u8* brlyt_file, mxml_node_t *tag) memcpy(materials+lengthOfMaterials, data3.name, 1+strlen(data3.name)); lengthOfMaterials = newSize; - mxml_node_t *material, *wrap_t, *wrap_s; + mxml_node_t *texture, *wrap_t, *wrap_s; int n = 0; for (n;n> 4) + 3; - inp++; - u16 repOff = data[inp] | ((rep & 0x0F) << 8); - inp++; - - if(repOff <= retoff) { - fatal("Offset too high!\nQuitting\n"); - } - - while(repLength > 0) { - ret[retoff] = ret[(retoff - repOff) - 1]; - repLength--; - retoff++; - } - }else{ - ret[retoff] = data[inp]; - retoff++; - inp++; - } - bitmask = bitmask << 1; - } - } -} -*/ -- cgit v1.3.1