From 3491e513533064166ea3e0d4cd62a3b8787e3ce7 Mon Sep 17 00:00:00 2001 From: megazig Date: Wed, 23 Sep 2009 00:17:24 -0500 Subject: changed texture coordinates to s/t pairs --- brlyt.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- general.h | 2 +- 2 files changed, 92 insertions(+), 14 deletions(-) diff --git a/brlyt.c b/brlyt.c index 291f597..3d3c6fa 100644 --- a/brlyt.c +++ b/brlyt.c @@ -656,12 +656,25 @@ void PrintBRLYTEntry_pic1(brlyt_entry entry, u8* brlyt_file, mxml_node_t *tag) { float texcoords[8]; BRLYT_ReadDataFromMemory(texcoords, brlyt_file, sizeof(texcoords)); - int i; + set = mxmlNewElement(coordinates, "set"); - for(i = 0; i < 8; i++) - { - coord = mxmlNewElement(set, "coord"); mxmlNewTextf(coord, 0, "%f", float_swap_bytes(texcoords[i])); - } + + coord = mxmlNewElement(set, "coordTL"); + mxmlElementSetAttrf( coord , "s" , "%f" , float_swap_bytes(texcoords[0]) ); + mxmlElementSetAttrf( coord , "t" , "%f" , float_swap_bytes(texcoords[1]) ); + + coord = mxmlNewElement(set, "coordTR"); + mxmlElementSetAttrf( coord , "s" , "%f" , float_swap_bytes(texcoords[2]) ); + mxmlElementSetAttrf( coord , "t" , "%f" , float_swap_bytes(texcoords[3]) ); + + coord = mxmlNewElement(set, "coordBL"); + mxmlElementSetAttrf( coord , "s" , "%f" , float_swap_bytes(texcoords[4]) ); + mxmlElementSetAttrf( coord , "t" , "%f" , float_swap_bytes(texcoords[5]) ); + + coord = mxmlNewElement(set, "coordBR"); + mxmlElementSetAttrf( coord , "s" , "%f" , float_swap_bytes(texcoords[6]) ); + mxmlElementSetAttrf( coord , "t" , "%f" , float_swap_bytes(texcoords[7]) ); + } } @@ -3265,16 +3278,81 @@ void WriteBRLYTEntry( mxml_node_t * tree , mxml_node_t * node , u8** tagblob , u { picCoords = realloc(picCoords, sizeof(float) * 8 * sets); mxml_node_t *valnode; - for (valnode=mxmlFindElement(setnode, setnode, "coord", NULL, NULL, MXML_DESCEND) ; valnode != NULL ; valnode=mxmlFindElement(valnode, setnode, "coord", NULL, NULL, MXML_DESCEND) ) + valnode=mxmlFindElement(setnode, setnode, "coordTL", NULL, NULL, MXML_DESCEND); + if ( valnode != NULL ) { + float tempCoordGotten , coordGotten; + char tempCoord[256]; - char tempCoord[256]; - int j; for (j=0;j<256;j++) tempCoord[j]=0; - get_value(valnode, tempCoord, 256); - float tempCoordGotten = atof(tempCoord); - float coordGotten = float_swap_bytes(tempCoordGotten); - memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); - numberOfPicCoords++; + memset( tempCoord , 0 , 256 ); + strcpy( tempCoord , mxmlElementGetAttr( valnode , "s" ) ); + tempCoordGotten = atof(tempCoord); + coordGotten = float_swap_bytes(tempCoordGotten); + memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); + numberOfPicCoords++; + + strcpy( tempCoord , mxmlElementGetAttr( valnode , "t" ) ); + tempCoordGotten = atof(tempCoord); + coordGotten = float_swap_bytes(tempCoordGotten); + memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); + numberOfPicCoords++; + } + valnode=mxmlFindElement(setnode, setnode, "coordTR", NULL, NULL, MXML_DESCEND); + if ( valnode != NULL ) + { + float tempCoordGotten , coordGotten; + char tempCoord[256]; + + memset( tempCoord , 0 , 256 ); + strcpy( tempCoord , mxmlElementGetAttr( valnode , "s" ) ); + tempCoordGotten = atof(tempCoord); + coordGotten = float_swap_bytes(tempCoordGotten); + memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); + numberOfPicCoords++; + + strcpy( tempCoord , mxmlElementGetAttr( valnode , "t" ) ); + tempCoordGotten = atof(tempCoord); + coordGotten = float_swap_bytes(tempCoordGotten); + memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); + numberOfPicCoords++; + } + valnode=mxmlFindElement(setnode, setnode, "coordBL", NULL, NULL, MXML_DESCEND); + if ( valnode != NULL ) + { + float tempCoordGotten , coordGotten; + char tempCoord[256]; + + memset( tempCoord , 0 , 256 ); + strcpy( tempCoord , mxmlElementGetAttr( valnode , "s" ) ); + tempCoordGotten = atof(tempCoord); + coordGotten = float_swap_bytes(tempCoordGotten); + memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); + numberOfPicCoords++; + + strcpy( tempCoord , mxmlElementGetAttr( valnode , "t" ) ); + tempCoordGotten = atof(tempCoord); + coordGotten = float_swap_bytes(tempCoordGotten); + memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); + numberOfPicCoords++; + } + valnode=mxmlFindElement(setnode, setnode, "coordBR", NULL, NULL, MXML_DESCEND); + if ( valnode != NULL ) + { + float tempCoordGotten , coordGotten; + char tempCoord[256]; + + memset( tempCoord , 0 , 256 ); + strcpy( tempCoord , mxmlElementGetAttr( valnode , "s" ) ); + tempCoordGotten = atof(tempCoord); + coordGotten = float_swap_bytes(tempCoordGotten); + memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); + numberOfPicCoords++; + + strcpy( tempCoord , mxmlElementGetAttr( valnode , "t" ) ); + tempCoordGotten = atof(tempCoord); + coordGotten = float_swap_bytes(tempCoordGotten); + memcpy(&picCoords[numberOfPicCoords], &coordGotten, sizeof(float)); + numberOfPicCoords++; } sets++; } diff --git a/general.h b/general.h index 5fe9f5b..6b8670b 100644 --- a/general.h +++ b/general.h @@ -7,7 +7,7 @@ #define BENZIN_VERSION_MAJOR 1 #define BENZIN_VERSION_MINOR 9 -#define BENZIN_VERSION_BUILD 4 +#define BENZIN_VERSION_BUILD 5 #define BENZIN_VERSION_OTHER "BETA" #define INFORMATION_TEXT \ -- cgit v1.3.1