1
0

Fix SPOFS

This commit is contained in:
otya128
2016-12-23 15:26:39 +09:00
parent 4ca392b40b
commit eacf57205e
2 changed files with 9 additions and 10 deletions

View File

@@ -1385,27 +1385,26 @@ class BuiltinFunction
{
p.sprite.spshow(id);
}
static void SPOFS(PetitComputer p, int id, DefaultValue!double x, DefaultValue!double y, DefaultValue!(int, false) z)
static void SPOFS(PetitComputer p, int id, DefaultValue!double x, DefaultValue!double y, DefaultValue!(double, false) z)
{
if (x.isDefault || y.isDefault)
{
double x_, y_;
int z_;
double x_, y_, z_;
p.sprite.getspofs(id, x_, y_, z_);
x.setDefaultValue(x_);
y.setDefaultValue(y_);
}
if(z.isDefault)
{
p.sprite.spofs(id, cast(int)x, cast(int)y);
p.sprite.spofs(id, cast(double)x, cast(double)y);
}
else
{
p.sprite.spofs(id, cast(int)x, cast(int)y, cast(int)z);
p.sprite.spofs(id, cast(double)x, cast(double)y, cast(double)z);
}
}
@StartOptional("z")
static void SPOFS(PetitComputer p, int id, out double x, out double y, out int z)
static void SPOFS(PetitComputer p, int id, out double x, out double y, out double z)
{
p.sprite.getspofs(id, x, y, z);
}

View File

@@ -182,7 +182,7 @@ struct SpriteData
int defno;
double x, y;
int homex, homey;
int z;/*!*/
double z;/*!*/
int u, v, w, h;//個々で保持してるみたい,SPSETをして後でSPDEFをしても変化しない
uint color;
double[8] var = 0;
@@ -626,7 +626,7 @@ class Sprite
foreach(i, ref s; sprites)
{
//if(!s.define) continue;
auto zet = s.z + 256;
auto zet = cast(int)s.z + 256;
listptr[i].sprite = &s;
if(bucketsptr[zet])
{
@@ -895,7 +895,7 @@ class Sprite
sprites[id].linky = cast(int)(y + (sprites[id].parent ? sprites[id].parent.linky : 0));
}
}
void spofs(int id, double x, double y, int z)
void spofs(int id, double x, double y, double z)
{
id = spid(id);
synchronized (this)
@@ -909,7 +909,7 @@ class Sprite
}
zChange = true;
}
void getspofs(int id, out double x, out double y, out int z)
void getspofs(int id, out double x, out double y, out double z)
{
id = spid(id);
x = sprites[id].x;