palettefile.cpp

Go to the documentation of this file.
00001 #include "stdafx.h"
00002 #include "palettefile.h"
00003 #include <string.h>
00004 
00005 PaletteFile::PaletteFile(FILESTRUCT* data)
00006 {
00007         if(data == NULL)
00008         {
00009                 m_nStatus = BL_ERROR;
00010                 return;
00011         }
00012 
00013         m_nStatus = BL_OK;
00014 
00015         //Get fileheader info
00016         strncpy(m_FileHeader.name, data->fileheader.name, 12);
00017         m_FileHeader.size = data->fileheader.size;      
00018         
00019         uint32 nMemOffset = 0; 
00020         memcpy(&m_Palette.palette, &data->data[nMemOffset], 768);
00021         nMemOffset += (sizeof(char) * 768);     
00022         
00023         memcpy(&m_Palette.numpalookups, &data->data[nMemOffset], 2);
00024         nMemOffset += (sizeof(char) * 2);       
00025         
00026         m_Palette.palookup = new uint8[m_Palette.numpalookups][256];
00027         memcpy(&m_Palette.palookup[0], &data->data[nMemOffset], (m_Palette.numpalookups * 256));
00028         nMemOffset += (sizeof(char) * (m_Palette.numpalookups * 256));
00029         
00030         memcpy(&m_Palette.transluc[0], &data->data[nMemOffset], 65536);
00031         nMemOffset += (sizeof(char) * 65536);                   
00032 
00033 }
00034 
00035 
00036 PaletteFile::PaletteFile(const char* sFilename)
00037 {
00038         m_nStatus = BL_OK;
00039 
00040         FILE *fp = fopen(sFilename, "rb");
00041         if(fp != NULL)
00042         {
00043                 //memcpy(&m_Palette.palette, &data->data[nMemOffset], 768);
00044                 //nMemOffset += (sizeof(char) * 768);
00045                 fread(&m_Palette.palette, sizeof(char), 768, fp);
00046 
00047                 //memcpy(&m_Palette.numpalookups, &data->data[nMemOffset], 2);
00048                 //nMemOffset += (sizeof(char) * 2);     
00049                 fread(&m_Palette.numpalookups, sizeof(char), 2, fp);
00050 
00051                 m_Palette.palookup = new uint8[m_Palette.numpalookups][256];
00052                 //memcpy(&m_Palette.palookup[0], &data->data[nMemOffset], (m_Palette.numpalookups * 256));
00053                 //nMemOffset += (sizeof(char) * (m_Palette.numpalookups * 256));
00054                 fread(&m_Palette.palookup[0], sizeof(char), (m_Palette.numpalookups*256), fp);
00055 
00056 
00057                 //memcpy(&m_Palette.transluc[0], &data->data[nMemOffset], 65536);
00058                 //nMemOffset += (sizeof(char) * 65536);
00059                 fread(&m_Palette.transluc[0], sizeof(char), 65536, fp);
00060 
00061                 fclose(fp);
00062         }
00063         else
00064         {
00065                 m_nStatus = BL_ERROR;
00066         }
00067 }
00068 
00069 PaletteFile::PaletteFile()
00070 {
00071         m_nStatus = BL_OK;
00072 }
00073 
00074 PaletteFile::~PaletteFile()
00075 {
00076 
00077         if(m_Palette.palookup)
00078         {
00079                 delete[] m_Palette.palookup;
00080         }
00081         /*
00082         if(m_Art.tiles)
00083         {
00084                 for(uint32 i = 0; i <m_Art.nNumTiles; i++)
00085                 {
00086                         //delete each tile's data
00087                         if( m_Art.tiles[i].data )
00088                         {
00089                                 delete[] m_Art.tiles[i].data;
00090                         }
00091                 }
00092                 delete[] m_Art.tiles;
00093         }
00094         */
00095 
00096 }
00097 

Generated on Sat Jan 11 23:36:56 2003 for Build-Lib by doxygen1.2.18