aboutsummaryrefslogtreecommitdiff
path: root/brlyt.c
diff options
context:
space:
mode:
authormegazig <megazig@megazig-desktop.(none)>2009-05-15 10:35:54 -0500
committermegazig <megazig@megazig-desktop.(none)>2009-05-15 10:35:54 -0500
commit27e8cb7ba5f334b63aee7a1d5b52aaef58906917 (patch)
treee12f6e48949bc3a2c2925ebf7bbd6513b1dacb18 /brlyt.c
parent64a12be6ffdad7f3ce9c21a5ef37ff4a28412a38 (diff)
added findings from tests
Diffstat (limited to 'brlyt.c')
-rw-r--r--brlyt.c94
1 files changed, 54 insertions, 40 deletions
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<bit_extract(flaggs, 28,31);n++)
{
brlyt_texref_chunk data4;
BRLYT_ReadDataFromMemory(&data4, brlyt_file, sizeof(brlyt_texref_chunk));
int tplOffset = short_swap_bytes(data4.tex_offs);
- material = mxmlNewElement(entries, "material"); mxmlElementSetAttrf(material, "name", "%s", getTexture(tplOffset));
- wrap_s = mxmlNewElement(material, "wrap_s"); mxmlNewTextf(wrap_s, 0, "%02x", data4.wrap_s);
- wrap_t = mxmlNewElement(material, "wrap_t"); mxmlNewTextf(wrap_t, 0, "%02x", data4.wrap_t);
+ texture = mxmlNewElement(entries, "texture"); mxmlElementSetAttrf(texture, "name", "%s", getTexture(tplOffset));
+ wrap_s = mxmlNewElement(texture, "wrap_s"); mxmlNewTextf(wrap_s, 0, "%02x", data4.wrap_s);
+ wrap_t = mxmlNewElement(texture, "wrap_t"); mxmlNewTextf(wrap_t, 0, "%02x", data4.wrap_t);
}
- mxml_node_t *ua2, *dataa;
+ mxml_node_t *tex_coords, *dataa;
// # 0x14 * flags[24-27], followed by
n = 0;
for (n;n<bit_extract(flaggs, 24,27);n++)
{
- brlyt_ua2_chunk data4;
- BRLYT_ReadDataFromMemory(&data4, brlyt_file, sizeof(brlyt_ua2_chunk));
- ua2 = mxmlNewElement(entries, "ua2");
- int j; for (j=0;j<5;j++)
- {
- dataa = mxmlNewElement(ua2, "data"); mxmlNewTextf(dataa, 0, "%.10f", float_swap_bytes(data4.unk[j]));
- }
+ brlyt_tex_coords data4;
+ BRLYT_ReadDataFromMemory(&data4, brlyt_file, sizeof(brlyt_tex_coords));
+ tex_coords = mxmlNewElement(entries, "tex_coords");
+ dataa = mxmlNewElement(tex_coords, "x1"); mxmlNewTextf(dataa, 0, "%.10f", float_swap_bytes(data4.x1));
+ dataa = mxmlNewElement(tex_coords, "y1"); mxmlNewTextf(dataa, 0, "%.10f", float_swap_bytes(data4.y1));
+ dataa = mxmlNewElement(tex_coords, "angle"); mxmlNewTextf(dataa, 0, "%.10f", float_swap_bytes(data4.angle));
+ dataa = mxmlNewElement(tex_coords, "x2"); mxmlNewTextf(dataa, 0, "%.10f", float_swap_bytes(data4.x2));
+ dataa = mxmlNewElement(tex_coords, "y2"); mxmlNewTextf(dataa, 0, "%.10f", float_swap_bytes(data4.y2));
}
mxml_node_t *ua3;
@@ -1150,24 +1151,24 @@ void WriteBRLYTEntry(mxml_node_t *tree, mxml_node_t *node, u8** tagblob, u32* bl
{
mxml_node_t *valnode;
int colorNumber = 0;
- for (valnode=mxmlFindElement(setnode, setnode, "black_color", NULL, NULL, MXML_DESCEND) ; valnode != NULL ; valnode=mxmlFindElement(valnode, setnode, "black_color", NULL, NULL, MXML_DESCEND) )
+ for (valnode=mxmlFindElement(setnode, setnode, "forecolor", NULL, NULL, MXML_DESCEND) ; valnode != NULL ; valnode=mxmlFindElement(valnode, setnode, "forecolor", NULL, NULL, MXML_DESCEND) )
{
char tempCoord[256];
get_value(valnode, tempCoord, 256);
- chunk.black_color[colorNumber] = strtol(tempCoord, NULL, 10);
- chunk.black_color[colorNumber] = short_swap_bytes(chunk.black_color[colorNumber]);
+ chunk.forecolor[colorNumber] = strtol(tempCoord, NULL, 10);
+ chunk.forecolor[colorNumber] = short_swap_bytes(chunk.forecolor[colorNumber]);
colorNumber+=1;
}
colorNumber = 0;
- for (valnode=mxmlFindElement(setnode, setnode, "white_color", NULL, NULL, MXML_DESCEND) ; valnode != NULL ; valnode=mxmlFindElement(valnode, setnode, "white_color", NULL, NULL, MXML_DESCEND) )
+ for (valnode=mxmlFindElement(setnode, setnode, "backcolor", NULL, NULL, MXML_DESCEND) ; valnode != NULL ; valnode=mxmlFindElement(valnode, setnode, "backcolor", NULL, NULL, MXML_DESCEND) )
{
char tempCoord[256];
get_value(valnode, tempCoord, 256);
- chunk.white_color[colorNumber] = strtol(tempCoord, NULL, 10);
- chunk.white_color[colorNumber] = short_swap_bytes(chunk.white_color[colorNumber]);
+ chunk.backcolor[colorNumber] = strtol(tempCoord, NULL, 10);
+ chunk.backcolor[colorNumber] = short_swap_bytes(chunk.backcolor[colorNumber]);
colorNumber+=1;
}
@@ -1204,7 +1205,7 @@ void WriteBRLYTEntry(mxml_node_t *tree, mxml_node_t *node, u8** tagblob, u32* bl
matSize += sizeof(chunk);
brlyt_texref_chunk chunkTexRef;
- for(setnode = mxmlFindElement(subnode, subnode, "material", NULL, NULL, MXML_DESCEND); setnode != NULL; setnode = mxmlFindElement(setnode, subnode, "material", NULL, NULL, MXML_DESCEND))
+ for(setnode = mxmlFindElement(subnode, subnode, "texture", NULL, NULL, MXML_DESCEND); setnode != NULL; setnode = mxmlFindElement(setnode, subnode, "texture", NULL, NULL, MXML_DESCEND))
{
mxml_node_t *valnode;
char temp[256];
@@ -1232,21 +1233,34 @@ void WriteBRLYTEntry(mxml_node_t *tree, mxml_node_t *node, u8** tagblob, u32* bl
matSize += sizeof(chunkTexRef);
}
- brlyt_ua2_chunk chunkUa2;
- for(setnode = mxmlFindElement(subnode, subnode, "ua2", NULL, NULL, MXML_DESCEND); setnode != NULL; setnode = mxmlFindElement(setnode, subnode, "ua2", NULL, NULL, MXML_DESCEND))
+ brlyt_tex_coords chunkTexCoords;
+ for(setnode = mxmlFindElement(subnode, subnode, "tex_coords", NULL, NULL, MXML_DESCEND); setnode != NULL; setnode = mxmlFindElement(setnode, subnode, "tex_coords", NULL, NULL, MXML_DESCEND))
{
+ char tempCoord[256];
mxml_node_t *valnode;
- int dataNumber = 0;
- for (valnode=mxmlFindElement(setnode, setnode, "data", NULL, NULL, MXML_DESCEND) ; valnode != NULL ; valnode=mxmlFindElement(valnode, setnode, "data", NULL, NULL, MXML_DESCEND) )
- {
- char tempCoord[256];
- get_value(valnode, tempCoord, 256);
- chunkUa2.unk[dataNumber] = float_swap_bytes(atof(tempCoord));
- dataNumber+=1;
- }
- fwrite(&chunkUa2, sizeof(chunkUa2), 1, fp);
- *fileOffset = *fileOffset + sizeof(chunkUa2);
- matSize += sizeof(chunkUa2);
+ valnode=mxmlFindElement(setnode, setnode, "x1", NULL, NULL, MXML_DESCEND);
+ memset(tempCoord, 0, 256);
+ get_value(valnode, tempCoord, 256);
+ chunkTexCoords.x1 = float_swap_bytes(atof(tempCoord));
+ valnode=mxmlFindElement(setnode, setnode, "y1", NULL, NULL, MXML_DESCEND);
+ memset(tempCoord, 0, 256);
+ get_value(valnode, tempCoord, 256);
+ chunkTexCoords.y1 = float_swap_bytes(atof(tempCoord));
+ valnode=mxmlFindElement(setnode, setnode, "angle", NULL, NULL, MXML_DESCEND);
+ memset(tempCoord, 0, 256);
+ get_value(valnode, tempCoord, 256);
+ chunkTexCoords.angle = float_swap_bytes(atof(tempCoord));
+ valnode=mxmlFindElement(setnode, setnode, "x2", NULL, NULL, MXML_DESCEND);
+ memset(tempCoord, 0, 256);
+ get_value(valnode, tempCoord, 256);
+ chunkTexCoords.x2 = float_swap_bytes(atof(tempCoord));
+ valnode=mxmlFindElement(setnode, setnode, "y2", NULL, NULL, MXML_DESCEND);
+ memset(tempCoord, 0, 256);
+ get_value(valnode, tempCoord, 256);
+ chunkTexCoords.y2 = float_swap_bytes(atof(tempCoord));
+ fwrite(&chunkTexCoords, sizeof(chunkTexCoords), 1, fp);
+ *fileOffset = *fileOffset + sizeof(chunkTexCoords);
+ matSize += sizeof(chunkTexCoords);
}
brlyt_4b_chunk chunkUa3;
for(setnode = mxmlFindElement(subnode, subnode, "ua3", NULL, NULL, MXML_DESCEND); setnode != NULL; setnode = mxmlFindElement(setnode, subnode, "ua3", NULL, NULL, MXML_DESCEND))