Aurora var region support

Firestorm patch by Cinders
Adopted from Angstrom viewer with assistance of nhede Core
and Revolution Smythe.
This commit is contained in:
Latif Khalifa
2013-09-26 04:09:01 +02:00
parent 6c1ea557b5
commit ad8ea07a7a
34 changed files with 901 additions and 174 deletions

View File

@@ -37,8 +37,6 @@ F32 const gPrehashVersionNumber = 2.000f;
char const* const _PREHASH_X = LLMessageStringTable::getInstance()->getString("X");
char const* const _PREHASH_Y = LLMessageStringTable::getInstance()->getString("Y");
char const* const _PREHASH_Z = LLMessageStringTable::getInstance()->getString("Z");
char const* const _PREHASH_SizeX = LLMessageStringTable::getInstance()->getString("SizeX");
char const* const _PREHASH_SizeY = LLMessageStringTable::getInstance()->getString("SizeY");
char const* const _PREHASH_AddFlags = LLMessageStringTable::getInstance()->getString("AddFlags");
char const* const _PREHASH_FailureInfo = LLMessageStringTable::getInstance()->getString("FailureInfo");
char const* const _PREHASH_MapData = LLMessageStringTable::getInstance()->getString("MapData");
@@ -1386,3 +1384,10 @@ char const* const _PREHASH_GroupAVSounds = LLMessageStringTable::getInstance()->
char const* const _PREHASH_AppearanceData = LLMessageStringTable::getInstance()->getString("AppearanceData");
char const* const _PREHASH_AppearanceVersion = LLMessageStringTable::getInstance()->getString("AppearanceVersion");
char const* const _PREHASH_CofVersion = LLMessageStringTable::getInstance()->getString("CofVersion");
// <FS:CR> Aurora Sim
char const* const _PREHASH_RegionSizeX = LLMessageStringTable::getInstance()->getString("RegionSizeX");
char const* const _PREHASH_RegionSizeY = LLMessageStringTable::getInstance()->getString("RegionSizeY");
char const* const _PREHASH_SizeX = LLMessageStringTable::getInstance()->getString("SizeX");
char const* const _PREHASH_SizeY = LLMessageStringTable::getInstance()->getString("SizeY");
// </FS:CR> Aurora Sim

View File

@@ -1386,4 +1386,11 @@ extern char const* const _PREHASH_GroupAVSounds;
extern char const* const _PREHASH_AppearanceData;
extern char const* const _PREHASH_AppearanceVersion;
extern char const* const _PREHASH_CofVersion;
// <FS:CR> Aurora Sim
extern char const* const _PREHASH_RegionSizeX;
extern char const* const _PREHASH_RegionSizeY;
extern char const* const _PREHASH_SizeX;
extern char const* const _PREHASH_SizeY;
// <FS:CR> Aurora Sim
#endif

View File

@@ -229,7 +229,10 @@ void decode_patch_group_header(LLBitPack &bitpack, LLGroupHeader *gopp)
gPatchSize = gopp->patch_size;
}
void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph)
// <FS:CR> Aurora Sim
//void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph)
void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph, BOOL b_large_patch)
// </FS:CR> Aurora Sim
{
U8 retvalu8;
@@ -268,15 +271,41 @@ void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph)
#endif
ph->range = retvalu16;
retvalu16 = 0;
// <FS:CR> Aurora Sim
//retvalu16 = 0;
retvalu32 = 0;
#ifdef LL_BIG_ENDIAN
ret = (U8 *)&retvalu16;
bitpack.bitUnpack(&(ret[1]), 8);
bitpack.bitUnpack(&(ret[0]), 2);
// <FS:CR> Aurora Sim
//ret = (U8 *)&retvalu16;
if(b_large_patch)
{
//todo test
ret = (U8 *)&retvalu32;
bitpack.bitUnpack(&(ret[3]), 8);
bitpack.bitUnpack(&(ret[2]), 8);
bitpack.bitUnpack(&(ret[1]), 8);
bitpack.bitUnpack(&(ret[0]), 8);
}
else
{
ret = (U8 *)&retvalu32;
bitpack.bitUnpack(&(ret[1]), 8);
bitpack.bitUnpack(&(ret[0]), 2);
}
// </FS:CR> Aurora Sim
#else
bitpack.bitUnpack((U8 *)&retvalu16, 10);
// <FS:CR> Aurora Sim
//bitpack.bitUnpack((U8 *)&retvalu16, 10);
if(b_large_patch)
bitpack.bitUnpack((U8 *)&retvalu32, 32);
else
bitpack.bitUnpack((U8 *)&retvalu32, 10);
// </FS:CR> Aurora Sim
#endif
ph->patchids = retvalu16;
// <FS:CR> Aurora Sim
//ph->patchids = retvalu16;
ph->patchids = retvalu32;
// </FS:CR> Aurora Sim
gWordBits = (ph->quant_wbits & 0xf) + 2;
}

View File

@@ -40,7 +40,10 @@ void end_patch_coding(LLBitPack &bitpack);
void init_patch_decoding(LLBitPack &bitpack);
void decode_patch_group_header(LLBitPack &bitpack, LLGroupHeader *gopp);
void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph);
// <FS:CR> Aurora Sim
//void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph);
void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph, BOOL b_large_patch);
// </FS:CR> Aurora Sim
void decode_patch(LLBitPack &bitpack, S32 *patches);
#endif

View File

@@ -73,7 +73,10 @@ public:
F32 dc_offset; // 4 bytes
U16 range; // 2 = 7 ((S16) FP range (breaks if we need > 32K meters in 1 patch)
U8 quant_wbits; // 1 = 8 (upper 4 bits is quant - 2, lower 4 bits is word bits - 2)
U16 patchids; // 2 = 10 (actually only uses 10 bits, 5 for each)
// <FS:CR> Aurora Sim
//U16 patchids; // 2 = 10 (actually only uses 10 bits, 5 for each)
U32 patchids;
// </FS:CR> Aurora Sim
};
// Compression routines