Merge commit 'origin' into bartavelle

develop
simon 2010-04-21 11:00:36 +02:00
commit a9fe256189
1 changed files with 3 additions and 3 deletions

@ -159,16 +159,16 @@ int main (int numargs, const char ** args)
int32_t idx = p->readDWord(block.origin + block_feature1); int32_t idx = p->readDWord(block.origin + block_feature1);
if(idx != -1) if(idx != -1)
{ {
uint64_t region_x_local = cursorX / 48 + regionX; uint64_t bigblock_x = cursorX / 48 + regionX;
// blah, dumb disassembly. too tired to think // blah, dumb disassembly. too tired to think
uint16_t v12 = ((region_x_local % 16) + region_x_local) / 16; uint16_t v12 = ((bigblock_x % 16) + bigblock_x) / 16;
uint64_t region_y_local = (cursorY / 48 + regionY) / 16; uint64_t region_y_local = (cursorY / 48 + regionY) / 16;
// deref pointer to the humongo-structure // deref pointer to the humongo-structure
uint32_t base = p->readDWord(feature1_start_ptr); uint32_t base = p->readDWord(feature1_start_ptr);
// this is just a few pointers to arrays of 16B (4 DWORD) structs // this is just a few pointers to arrays of 16B (4 DWORD) structs
uint32_t array_elem = p->readDWord(base + (v12 / 16) * 4); uint32_t array_elem = p->readDWord(base + (v12 / 16) * 4);
// second element of the struct is a pointer // second element of the struct is a pointer
uint32_t wtf = p->readDWord(array_elem + (16*(region_y_local/16)) + 4); uint32_t wtf = p->readDWord(array_elem + (16*(region_y_local/16)) + 4); // rounding!
if(wtf) if(wtf)
{ {
uint32_t feat_vector = wtf + 24 * (region_y_local % 16); uint32_t feat_vector = wtf + 24 * (region_y_local % 16);