From 5f69126a35d7ec5738dd1e4d0108824c7ce08f67 Mon Sep 17 00:00:00 2001 From: otya128 Date: Mon, 3 Jul 2017 19:22:55 +0900 Subject: [PATCH] Implement SPSCALE ID OUT X,Y --- SMILEBASIC/builtinfunctions.d | 12 ++++++++++++ SMILEBASIC/sprite.d | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/SMILEBASIC/builtinfunctions.d b/SMILEBASIC/builtinfunctions.d index 754e4fb..a403b69 100644 --- a/SMILEBASIC/builtinfunctions.d +++ b/SMILEBASIC/builtinfunctions.d @@ -1932,6 +1932,18 @@ class BuiltinFunction } p.sprite.spscale(i, x, y); } + static void SPSCALE(PetitComputer p, int i, out double x, out double y) + { + if (!p.sprite.isValidSpriteId(i)) + { + throw new OutOfRange(smilebasicFunctionName, 1); + } + if (!p.sprite.isSpriteDefined(i)) + { + throw new IllegalFunctionCall("SPSCALE", 1); + } + p.sprite.getspscale(i, x, y); + } static void SPROT(PetitComputer p, int i, double rot) { if (!p.sprite.isValidSpriteId(i)) diff --git a/SMILEBASIC/sprite.d b/SMILEBASIC/sprite.d index 0b5cc06..512da81 100644 --- a/SMILEBASIC/sprite.d +++ b/SMILEBASIC/sprite.d @@ -1030,6 +1030,15 @@ class Sprite sprites[i].scaley = y; } } + void getspscale(int i, out double x, out double y) + { + i = spid(i); + synchronized (this) + { + x = sprites[i].scalex; + y = sprites[i].scaley; + } + } void sprot(int i, double rot) { i = spid(i);