From 47d064a62bc0efaf6553679e3f53bdadf1b7bc36 Mon Sep 17 00:00:00 2001 From: otya128 Date: Mon, 10 Jul 2017 20:26:23 +0900 Subject: [PATCH] Fix VM.restoreData --- SMILEBASIC/VM.d | 1 + SMILEBASIC/builtinfunctions.d | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/SMILEBASIC/VM.d b/SMILEBASIC/VM.d index ddb6a38..2108b04 100644 --- a/SMILEBASIC/VM.d +++ b/SMILEBASIC/VM.d @@ -375,6 +375,7 @@ class VM currentData.index = currentData.table.label[name.name]; else if (name.name in slot.globalData.table.label) { + currentData.table = slot.globalData.table; currentData.index = slot.globalData.table.label[name.name]; } else diff --git a/SMILEBASIC/builtinfunctions.d b/SMILEBASIC/builtinfunctions.d index f1edba8..ffef798 100644 --- a/SMILEBASIC/builtinfunctions.d +++ b/SMILEBASIC/builtinfunctions.d @@ -1861,7 +1861,6 @@ class BuiltinFunction if(va_args[0].isString) { VM vm = p.vm; - vm.pushDataIndex(); vm.restoreData(va_args[0].castDString); auto count = vm.readData().castInteger;//読み込むスプライト数 int defno = 0;//? @@ -1877,7 +1876,6 @@ class BuiltinFunction p.sprite.SPDEFTable[defno] = SpriteDef(U, V, W, H, HX, HY, cast(SpriteAttr)ATTR); defno++; } - vm.popDataIndex(); return; } throw new IllegalFunctionCall("SPDEF");