From 917a3b4a965ea1a1617d51049d768fd96b6c9b1f Mon Sep 17 00:00:00 2001 From: drdev Date: Sun, 1 Jun 2014 19:32:12 +0000 Subject: [PATCH] Fix crash with ListChooser for pick a pile effects --- .../src/forge/card/CardRenderer.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index 68285c066d2..2a01c671d80 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -208,15 +208,26 @@ public class CardRenderer { } public static void drawCardListItem(Graphics g, FSkinFont font, FSkinColor foreColor, Card card, int count, float x, float y, float w, float h) { - drawCardListItem(g, font, foreColor, getCardArt(card), card.getRules(), card.getCurSetCode(), - card.getRarity(), card.getNetAttack(), card.getNetDefense(), - card.getCurrentLoyalty(), count, x, y, w, h); + CardRules cardRules = card.getRules(); + if (cardRules != null) { + drawCardListItem(g, font, foreColor, getCardArt(card), cardRules, card.getCurSetCode(), + card.getRarity(), card.getNetAttack(), card.getNetDefense(), + card.getCurrentLoyalty(), count, x, y, w, h); + } + else { //if fake card, just draw card name centered + g.drawText(card.getName(), font, foreColor, x, y, w, h, false, HAlignment.CENTER, true); + } } public static void drawCardListItem(Graphics g, FSkinFont font, FSkinColor foreColor, PaperCard paperCard, int count, float x, float y, float w, float h) { CardRules cardRules = paperCard.getRules(); - drawCardListItem(g, font, foreColor, getCardArt(paperCard), cardRules, paperCard.getEdition(), - paperCard.getRarity(), cardRules.getIntPower(), cardRules.getIntToughness(), - cardRules.getInitialLoyalty(), count, x, y, w, h); + if (cardRules != null) { + drawCardListItem(g, font, foreColor, getCardArt(paperCard), cardRules, paperCard.getEdition(), + paperCard.getRarity(), cardRules.getIntPower(), cardRules.getIntToughness(), + cardRules.getInitialLoyalty(), count, x, y, w, h); + } + else { //if fake card, just draw card name centered + g.drawText(paperCard.getName(), font, foreColor, x, y, w, h, false, HAlignment.CENTER, true); + } } public static void drawCardListItem(Graphics g, FSkinFont font, FSkinColor foreColor, TextureRegion cardArt, CardRules cardRules, String set, CardRarity rarity, int power, int toughness, int loyalty, int count, float x, float y, float w, float h) { float cardArtHeight = h + 2 * FList.PADDING;