Implement SPSET(3)
This commit is contained in:
@@ -1474,6 +1474,17 @@ class BuiltinFunction
|
|||||||
return;
|
return;
|
||||||
p.sprite.spset(ix, u, v, w, h, cast(SpriteAttr)attr);
|
p.sprite.spset(ix, u, v, w, h, cast(SpriteAttr)attr);
|
||||||
}
|
}
|
||||||
|
static void SPSET(PetitComputer p, int defno, out int ix)
|
||||||
|
{
|
||||||
|
if (!p.sprite.isValidDef(defno))
|
||||||
|
{
|
||||||
|
throw new OutOfRange(smilebasicFunctionName, 1);
|
||||||
|
}
|
||||||
|
ix = p.sprite.allocSprite();
|
||||||
|
if (ix == -1)
|
||||||
|
return;
|
||||||
|
p.sprite.spset(ix, defno);
|
||||||
|
}
|
||||||
static void SPCHR(PetitComputer p, int id, int defno, DefaultValue!(int, false) V, DefaultValue!(int, false) W, DefaultValue!(int, false) H, DefaultValue!(int, false) ATTR)
|
static void SPCHR(PetitComputer p, int id, int defno, DefaultValue!(int, false) V, DefaultValue!(int, false) W, DefaultValue!(int, false) H, DefaultValue!(int, false) ATTR)
|
||||||
{
|
{
|
||||||
if (!p.sprite.isValidSpriteId(id))
|
if (!p.sprite.isValidSpriteId(id))
|
||||||
|
|||||||
@@ -823,6 +823,10 @@ class Sprite
|
|||||||
synchronized (this)
|
synchronized (this)
|
||||||
sprites[id] = SpriteData(id, spdef, 0/*要調査*/);
|
sprites[id] = SpriteData(id, spdef, 0/*要調査*/);
|
||||||
}
|
}
|
||||||
|
int allocSprite()
|
||||||
|
{
|
||||||
|
return allocSprite(0, petitcom.displaynum ? cast(int)sprites.length - spmax - 1 : spmax - 1);
|
||||||
|
}
|
||||||
int allocSprite(int lower, int upper)
|
int allocSprite(int lower, int upper)
|
||||||
{
|
{
|
||||||
for (int i = lower; i <= upper; i++)
|
for (int i = lower; i <= upper; i++)
|
||||||
|
|||||||
Reference in New Issue
Block a user