map_expand: optimize the C in ORCA (runs about 10x faster due to reduced multiplies etc)
This commit is contained in:
parent
a0debf876e
commit
541fe9990c
44
src/maps.c
44
src/maps.c
|
@ -68,26 +68,36 @@ static void map_eflg_expand(U8);
|
||||||
void
|
void
|
||||||
map_expand(void)
|
map_expand(void)
|
||||||
{
|
{
|
||||||
U8 i, j, k, l;
|
U16 i, j, k, l;
|
||||||
U8 row, col;
|
U16 col;
|
||||||
U16 pbnum;
|
U16 pbnum;
|
||||||
|
|
||||||
pbnum = map_submaps[game_submap].bnum + ((2 * map_frow) & 0xfff8);
|
U8* pMap_map = &map_map[0][0];
|
||||||
row = col = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < 0x0b; i++) { /* 0x0b rows of blocks */
|
U8* pBlock;
|
||||||
for (j = 0; j < 0x08; j++) { /* 0x08 blocks per row */
|
|
||||||
for (k = 0, l = 0; k < 0x04; k++) { /* expand one block */
|
pbnum = map_submaps[game_submap].bnum + ((2 * map_frow) & 0xfff8);
|
||||||
map_map[row][col++] = map_blocks[map_bnums[pbnum]][l++];
|
col = 0;
|
||||||
map_map[row][col++] = map_blocks[map_bnums[pbnum]][l++];
|
|
||||||
map_map[row][col++] = map_blocks[map_bnums[pbnum]][l++];
|
for (i = 0; i < 0x0b; i++)
|
||||||
map_map[row][col] = map_blocks[map_bnums[pbnum]][l++];
|
{ /* 0x0b rows of blocks */
|
||||||
row += 1; col -= 3;
|
for (j = 0; j < 0x08; j++)
|
||||||
}
|
{ /* 0x08 blocks per row */
|
||||||
row -= 4; col += 4;
|
|
||||||
pbnum++;
|
pBlock = &map_blocks[map_bnums[pbnum]][0];
|
||||||
}
|
|
||||||
row += 4; col = 0;
|
for (k = 0, l = 0; k < 0x04; k++)
|
||||||
|
{ /* expand one block */
|
||||||
|
pMap_map[col++] = pBlock[l++];
|
||||||
|
pMap_map[col++] = pBlock[l++];
|
||||||
|
pMap_map[col++] = pBlock[l++];
|
||||||
|
pMap_map[col] = pBlock[l++];
|
||||||
|
pMap_map+=32; col -= 3;
|
||||||
|
}
|
||||||
|
pMap_map -= (128); col += 4;
|
||||||
|
pbnum++;
|
||||||
|
}
|
||||||
|
pMap_map += 128; col = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue