This commit is contained in:
parent
108577f6df
commit
857d559974
1 changed files with 41 additions and 20 deletions
|
@ -18,25 +18,38 @@ u8 CLayerCollision::s_collisionTable[]=
|
||||||
{
|
{
|
||||||
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,
|
||||||
|
|
||||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
|
||||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
|
||||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
|
||||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||||
|
|
||||||
1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
|
1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
|
||||||
8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1,
|
8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1,
|
||||||
16,16,15,15,14,14,13,13,12,12,11,11,10,10, 9, 9,
|
|
||||||
9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,
|
|
||||||
|
|
||||||
9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,
|
9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,
|
||||||
16,16,15,15,14,14,13,13,12,12,11,11,10,10, 9, 9,
|
16,16,15,15,14,14,13,13,12,12,11,11,10,10, 9, 9,
|
||||||
1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
|
|
||||||
8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1,
|
|
||||||
|
|
||||||
1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,
|
1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,
|
||||||
16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
|
16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
|
||||||
16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
|
};
|
||||||
1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,
|
|
||||||
|
|
||||||
|
static const u8 s_collisionTileRemapTable[17]=
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
6,
|
||||||
|
7,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,6 +63,17 @@ CLayerCollision::CLayerCollision(sLayerHdr *Hdr)
|
||||||
MapWidth=LayerHdr->Width;
|
MapWidth=LayerHdr->Width;
|
||||||
MapHeight=LayerHdr->Height;
|
MapHeight=LayerHdr->Height;
|
||||||
// printf("COLLISION LAYER = %i %i\n",MapWidth,MapHeight);
|
// printf("COLLISION LAYER = %i %i\n",MapWidth,MapHeight);
|
||||||
|
|
||||||
|
// Convert the collision data to the new format..
|
||||||
|
u8 *map,originalTile,finalTile;
|
||||||
|
int i;
|
||||||
|
map=Map;
|
||||||
|
for(i=0;i<MapWidth*MapHeight;i++)
|
||||||
|
{
|
||||||
|
originalTile=*map;
|
||||||
|
finalTile=(originalTile&0xe0)|s_collisionTileRemapTable[originalTile&0x1f];
|
||||||
|
*map++=finalTile;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -275,9 +299,6 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
f4=GetPrimF4();
|
f4=GetPrimF4();
|
||||||
setXYWH(f4,x,y,16,16);
|
setXYWH(f4,x,y,16,16);
|
||||||
setRGB0(f4,colour->r,colour->g,colour->b);
|
setRGB0(f4,colour->r,colour->g,colour->b);
|
||||||
|
@ -285,7 +306,7 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
AddPrimToList(f4,0);
|
AddPrimToList(f4,0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 2:
|
||||||
f3=GetPrimF3();
|
f3=GetPrimF3();
|
||||||
setXY3(f3,x+16,y+16,
|
setXY3(f3,x+16,y+16,
|
||||||
x,y+16,
|
x,y+16,
|
||||||
|
@ -295,7 +316,7 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
AddPrimToList(f3,0);
|
AddPrimToList(f3,0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6:
|
case 3:
|
||||||
f3=GetPrimF3();
|
f3=GetPrimF3();
|
||||||
setXY3(f3,x,y+16,
|
setXY3(f3,x,y+16,
|
||||||
x+16,y+16,
|
x+16,y+16,
|
||||||
|
@ -305,7 +326,7 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
AddPrimToList(f3,0);
|
AddPrimToList(f3,0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9:
|
case 4:
|
||||||
f4=GetPrimF4();
|
f4=GetPrimF4();
|
||||||
setXY4(f4,x+16,y,
|
setXY4(f4,x+16,y,
|
||||||
x,y+8,
|
x,y+8,
|
||||||
|
@ -316,7 +337,7 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
AddPrimToList(f4,0);
|
AddPrimToList(f4,0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 10:
|
case 5:
|
||||||
f4=GetPrimF4();
|
f4=GetPrimF4();
|
||||||
setXY4(f4,x,y,
|
setXY4(f4,x,y,
|
||||||
x+16,y+8,
|
x+16,y+8,
|
||||||
|
@ -327,7 +348,7 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
AddPrimToList(f4,0);
|
AddPrimToList(f4,0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 13:
|
case 6:
|
||||||
f3=GetPrimF3();
|
f3=GetPrimF3();
|
||||||
setXY3(f3,x+16,y+16,
|
setXY3(f3,x+16,y+16,
|
||||||
x,y+16,
|
x,y+16,
|
||||||
|
@ -337,7 +358,7 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
AddPrimToList(f3,0);
|
AddPrimToList(f3,0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 14:
|
case 7:
|
||||||
f3=GetPrimF3();
|
f3=GetPrimF3();
|
||||||
setXY3(f3,x,y+16,
|
setXY3(f3,x,y+16,
|
||||||
x+16,y+16,
|
x+16,y+16,
|
||||||
|
@ -346,7 +367,7 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
setSemiTrans(f3,semiTrans);
|
setSemiTrans(f3,semiTrans);
|
||||||
AddPrimToList(f3,0);
|
AddPrimToList(f3,0);
|
||||||
break;
|
break;
|
||||||
|
/*
|
||||||
case 15:
|
case 15:
|
||||||
f3=GetPrimF3();
|
f3=GetPrimF3();
|
||||||
setXY3(f3,x+16,y,
|
setXY3(f3,x+16,y,
|
||||||
|
@ -366,7 +387,7 @@ void CLayerCollision::render(DVECTOR &MapPos)
|
||||||
setSemiTrans(f3,semiTrans);
|
setSemiTrans(f3,semiTrans);
|
||||||
AddPrimToList(f3,0);
|
AddPrimToList(f3,0);
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
default:
|
default:
|
||||||
f4=GetPrimF4();
|
f4=GetPrimF4();
|
||||||
setXYWH(f4,x,y,16,16);
|
setXYWH(f4,x,y,16,16);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue