From 1f721c00024eb040f88acbce4ffc2e1a7a6b5cd9 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 2 May 2023 15:08:48 +0800 Subject: [PATCH] fix blackscreen --- forge-gui-mobile/src/forge/adventure/stage/MapSprite.java | 8 ++++++-- .../src/forge/adventure/world/BiomeSprites.java | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/forge-gui-mobile/src/forge/adventure/stage/MapSprite.java b/forge-gui-mobile/src/forge/adventure/stage/MapSprite.java index 0698fb08198..5fc4bfaa6cc 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/MapSprite.java +++ b/forge-gui-mobile/src/forge/adventure/stage/MapSprite.java @@ -1,6 +1,7 @@ package forge.adventure.stage; import com.badlogic.gdx.graphics.g2d.Batch; +import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; @@ -56,8 +57,11 @@ public class MapSprite extends Actor { BiomeSpriteData data = WorldSave.getCurrentSave().getWorld().getObject(entry.getValue()); if (data.layer != layer) continue; - Actor sprite = new MapSprite(entry.getKey(), WorldSave.getCurrentSave().getWorld().getData().GetBiomeSprites().getSprite(data.name, (int) entry.getKey().x + (int) entry.getKey().y * 11483), null); - actorGroup.add(sprite); + Sprite biomeSprite = WorldSave.getCurrentSave().getWorld().getData().GetBiomeSprites().getSprite(data.name, (int) entry.getKey().x + (int) entry.getKey().y * 11483); + if (biomeSprite != null) { //null means invalid and will cause blackscreen, investigate why this would happen... + Actor sprite = new MapSprite(entry.getKey(), biomeSprite, null); + actorGroup.add(sprite); + } } return actorGroup; } diff --git a/forge-gui-mobile/src/forge/adventure/world/BiomeSprites.java b/forge-gui-mobile/src/forge/adventure/world/BiomeSprites.java index 5a307b99e6b..49107d0f16c 100644 --- a/forge-gui-mobile/src/forge/adventure/world/BiomeSprites.java +++ b/forge-gui-mobile/src/forge/adventure/world/BiomeSprites.java @@ -28,7 +28,12 @@ public class BiomeSprites { if (sprites.isEmpty()) { sprites.addAll(textureAtlasBuffer.createSprites(name)); } - return sprites.get(seed % sprites.size); + int index = seed % sprites.size; + if (index >= sprites.size || index < 0) { + System.err.println("Invalid index: " + index + " [" + name + "]"); + return null; + } + return sprites.get(index); } public BiomeSpriteData getSpriteData(String name) {