Fix SPCOL
This commit is contained in:
@@ -292,6 +292,7 @@ struct SpriteData
|
|||||||
|
|
||||||
//SPCOL
|
//SPCOL
|
||||||
SpriteCollision col;
|
SpriteCollision col;
|
||||||
|
bool enableCol;
|
||||||
}
|
}
|
||||||
class Sprite
|
class Sprite
|
||||||
{
|
{
|
||||||
@@ -1091,6 +1092,7 @@ class Sprite
|
|||||||
void spcol(int id, short sx, short sy, ushort w, ushort h, bool scale, int mask)
|
void spcol(int id, short sx, short sy, ushort w, ushort h, bool scale, int mask)
|
||||||
{
|
{
|
||||||
id = spid(id);
|
id = spid(id);
|
||||||
|
sprites[id].enableCol = true;
|
||||||
sprites[id].col.data = &sprites[id];
|
sprites[id].col.data = &sprites[id];
|
||||||
sprites[id].col.sx = sx;
|
sprites[id].col.sx = sx;
|
||||||
sprites[id].col.sy = sy;
|
sprites[id].col.sy = sy;
|
||||||
@@ -1137,11 +1139,14 @@ class Sprite
|
|||||||
}
|
}
|
||||||
int sphitsp2(int id, int start, int end)
|
int sphitsp2(int id, int start, int end)
|
||||||
{
|
{
|
||||||
for(; start <= end; start++)
|
if (!sprites[id].enableCol)
|
||||||
{
|
{
|
||||||
//自分を除外すべきか?
|
return -1;
|
||||||
if(id == start) continue;//????
|
}
|
||||||
if(sprites[id].col.detection(sprites[start]))
|
synchronized (this) for(; start <= end; start++)
|
||||||
|
{
|
||||||
|
if(id == start) continue;
|
||||||
|
if(sprites[start].enableCol && sprites[id].col.detection(sprites[start]))
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user