Implement SPSET(3)

This commit is contained in:
otya128 committed 2016-12-31 20:09:38 +09:00
1 parent 4866a1d32d
commit 4b41376cb5
2 files changed
+15

No files matched your search

+11
View File
@@ -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))
+4
View File
@@ -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++)