123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- #include "StdAfx.h"
- #include "TurbineData.h"
- #include "TurbineFile.h"
- #include "Database.h"
- TurbineFile::TurbineFile(DWORD dwID)
- {
- m_dwID = dwID;
- m_pbData = NULL;
- m_dwLength = 0;
- }
- TurbineFile::TurbineFile(DWORD dwID, BYTE *data, DWORD length)
- {
- m_dwID = dwID;
- m_pbData = data;
- m_dwLength = length;
- }
- TurbineFile::~TurbineFile()
- {
- SafeDeleteArray(m_pbData);
- m_dwLength = 0;
- }
- #if 0
- void TurbineFile::Initialize(BYTE* pbDataFile, DWORD dwSectorStart, DWORD dwSectorSize, DWORD dwFileLength)
- {
- //One extra sector so it doesn't overflow.
- BYTE *pbData = new BYTE[dwFileLength + (sizeof(DWORD) * dwSectorSize)];
- BYTE *pbDataPtr = pbData;
- DWORD dwNextSector = dwSectorStart;
- DWORD dwSectorData = sizeof(DWORD) * (dwSectorSize - 1);
- while (dwNextSector)
- {
- BYTE* pbSector = pbDataFile + dwNextSector;
- dwNextSector = *((DWORD *)pbSector);
- pbSector += sizeof(DWORD);
- memcpy(pbDataPtr, pbSector, dwSectorData);
- pbDataPtr += dwSectorData;
- }
- m_pbData = pbData;
- m_dwLength = dwFileLength;
- if (m_dwID == 0xEDEAFFFF)
- {
- WORD *pwTerrain = (WORD *)(m_pbData + 8);
- WORD terrain[9][9] = //'P'
- {
- { 40, 24, 24, 24, 24, 40, 40, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 40, 40, 40 },
- { 40, 24, 24, 40, 24, 24, 40, 40, 40 },
- { 40, 24, 24, 40, 24, 24, 40, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 40, 40, 40 },
- { 40, 24, 24, 24, 24, 40, 40, 40, 40 },
- { 40, 24, 24, 40, 40, 40, 40, 40, 40 },
- { 40, 24, 24, 40, 40, 40, 40, 40, 40 },
- { 40, 24, 24, 40, 40, 40, 40, 40, 40 }
- };
- for (int x = 0; x < 9; x++) {
- for (int y = 0; y < 9; y++) {
- *pwTerrain = terrain[8 - y][x];
- pwTerrain++;
- }
- }
- }
- else if (m_dwID == 0xEEEAFFFF)
- {
- WORD *pwTerrain = (WORD *)(m_pbData + 8);
- WORD terrain[9][9] = //'H'
- {
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 24, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 }
- };
- for (int x = 0; x < 9; x++) {
- for (int y = 0; y < 9; y++) {
- *pwTerrain = terrain[8 - y][x];
- pwTerrain++;
- }
- }
- }
- else if (m_dwID == 0xEFEAFFFF)
- {
- WORD *pwTerrain = (WORD *)(m_pbData + 8);
- WORD terrain[9][9] = //'A'
- {
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 },
- { 40, 40, 24, 24, 24, 24, 40, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 24, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 }
- };
- for (int x = 0; x < 9; x++) {
- for (int y = 0; y < 9; y++) {
- *pwTerrain = terrain[8 - y][x];
- pwTerrain++;
- }
- }
- }
- else if (m_dwID == 0xF0EAFFFF)
- {
- WORD *pwTerrain = (WORD *)(m_pbData + 8);
- WORD terrain[9][9] = //'T'
- {
- { 40, 24, 24, 24, 24, 24, 24, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 24, 40, 40 },
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 }
- };
- for (int x = 0; x < 9; x++) {
- for (int y = 0; y < 9; y++) {
- *pwTerrain = terrain[8 - y][x];
- pwTerrain++;
- }
- }
- }
- else if (m_dwID == 0xEEE9FFFF)
- {
- WORD *pwTerrain = (WORD *)(m_pbData + 8);
- WORD terrain[9][9] = //'A'
- {
- { 40, 40, 40, 40, 40, 40, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 40, 40, 40, 40 },
- { 40, 40, 24, 24, 24, 24, 40, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 24, 40, 40 },
- { 40, 24, 24, 24, 24, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 },
- { 40, 24, 24, 40, 40, 24, 24, 40, 40 }
- };
- for (int x = 0; x < 9; x++) {
- for (int y = 0; y < 9; y++) {
- *pwTerrain = terrain[8 - y][x];
- pwTerrain++;
- }
- }
- }
- else if (m_dwID == 0xEFE9FFFF)
- {
- WORD *pwTerrain = (WORD *)(m_pbData + 8);
- WORD terrain[9][9] = //'C'
- {
- { 40, 40, 40, 40, 40, 40, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 24, 40, 40, 40 },
- { 40, 40, 24, 24, 24, 24, 40, 40, 40 },
- { 40, 40, 24, 24, 40, 40, 40, 40, 40 },
- { 40, 40, 24, 24, 40, 40, 40, 40, 40 },
- { 40, 40, 24, 24, 40, 40, 40, 40, 40 },
- { 40, 40, 24, 24, 40, 40, 40, 40, 40 },
- { 40, 40, 24, 24, 24, 24, 40, 40, 40 },
- { 40, 40, 40, 24, 24, 24, 40, 40, 40 }
- };
- for (int x = 0; x < 9; x++) {
- for (int y = 0; y < 9; y++) {
- *pwTerrain = terrain[8 - y][x];
- pwTerrain++;
- }
- }
- }
- else
- {
- /*FILE* cellFile = g_pDB->DataFileOpen(csprintf("land\\cell-%08X", m_dwID));
- if ( cellFile ) {
- delete [] pbData;
- m_dwLength = fsize( cellFile );
- m_pbData = new BYTE[ m_dwLength ];
- fread( m_pbData, sizeof(BYTE), m_dwLength, cellFile );
- fclose( cellFile );
- } */
- }
- /*
- BYTE *pbHeight = m_pbData + 8 + (81 * 2);
- BYTE heights[9][9] =
- {
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 }
- };
- for ( int x = 0; x < 9; x++ ) {
- for ( int y = 0; y < 9; y++ ) {
- *pbHeight = heights[y][x];
- pbHeight++;
- }
- }
- */
- }
- #endif
- BYTE *TurbineFile::GetData()
- {
- return m_pbData + sizeof(DWORD);
- }
- DWORD TurbineFile::GetLength()
- {
- return m_dwLength;
- }
|