From 0c721f2b39e2ee6aeefbec9b368bf4071c9cdd77 Mon Sep 17 00:00:00 2001 From: exch-bms2 Date: Thu, 12 Oct 2017 00:11:03 +0900 Subject: [PATCH] Skin : remove illegal offset value on prepare() --- src/bms/player/beatoraja/skin/Skin.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/bms/player/beatoraja/skin/Skin.java b/src/bms/player/beatoraja/skin/Skin.java index 2897d2f12..33e979ec3 100644 --- a/src/bms/player/beatoraja/skin/Skin.java +++ b/src/bms/player/beatoraja/skin/Skin.java @@ -6,6 +6,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.utils.IntArray; import java.util.*; import java.util.logging.Logger; @@ -124,7 +125,7 @@ public void prepare(MainState state) { if(obj.getAllDestination().length == 0) { removes.add(obj); } else { - List l = new ArrayList(); + IntArray l = new IntArray(); for(int op : obj.getOption()) { if(op > 0) { if(option.containsKey(op)) { @@ -168,11 +169,15 @@ public void prepare(MainState state) { } } } - int[] newop = new int[l.size()]; - for(int i = 0;i < newop.length;i++) { - newop[i] = l.get(i); + obj.setOption(l.toArray()); + + IntArray off = new IntArray(); + for(int offset : obj.getOffsetID()) { + if(offset > 0 && offset < SkinProperty.OFFSET_MAX + 1) { + off.add(offset); + } } - obj.setOption(newop); + obj.setOffsetID(off.toArray()); } }