It is currently 18 May 2025, 08:35
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Bug Reports (snapshot builds)

Postby KrazyTheFox » 03 Jun 2014, 16:54

rnitni wrote:Description: I open the spell shop the first time. Also, the second time I open the spell shop, I don't get an error, but just 2 Boosters to buy.
It also crashed the last two times I was ending a game with the same error.
I think this may be related to my current quest consisting only of 1 set (Limited Edition Beta, it's a quest I downloaded here made by Xyx IIRC). Adding another set solves the problem.

IndexOutOfBoundsException | Open
Code: Select all
Forge Version:    1.5.19-SNAPSHOT-r25992 (mixed revisions detected; please update from the root directory)
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_51 Oracle Corporation

java.lang.IndexOutOfBoundsException: toIndex = 2
   at java.util.ArrayList.subListRangeCheck(Unknown Source)
   at java.util.ArrayList.subList(Unknown Source)
   at forge.quest.QuestUtilCards.generateBoosterBoxesInShop(QuestUtilCards.java:608)
   at forge.quest.QuestUtilCards.generateCardsInShop(QuestUtilCards.java:680)
   at forge.quest.QuestUtilCards.getShopList(QuestUtilCards.java:704)
   at forge.screens.deckeditor.controllers.CEditorQuestCardShop.update(CEditorQuestCardShop.java:563)
   at forge.screens.deckeditor.CDeckEditorUI.setCurrentEditorController(CDeckEditorUI.java:275)
   at forge.screens.deckeditor.CDeckEditorUI.setEditorController(CDeckEditorUI.java:112)
   at forge.screens.home.quest.SSubmenuQuestUtil.showSpellShop(SSubmenuQuestUtil.java:261)
   at forge.screens.home.quest.CSubmenuDuels$1.run(CSubmenuDuels.java:38)
   at forge.toolbox.FLabel._doMouseAction(FLabel.java:289)
   at forge.toolbox.FLabel.access$1300(FLabel.java:33)
   at forge.toolbox.FLabel$6.onLeftClick(FLabel.java:327)
   at forge.toolbox.FMouseAdapter.mouseReleased(FMouseAdapter.java:245)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$200(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Hrm, thought I'd fixed this one. Should have it fixed in a few hours.

Edit: I can't replicate this. Could I get the quest file from you?
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby Starcomet » 05 Jun 2014, 04:19

I was just dueling against the computer when this happened.
Attachments
2014-06-05-00.txt
(899 Bytes) Downloaded 229 times
Sincerely,

Myron
Starcomet
 
Posts: 4
Joined: 02 Jun 2014, 21:25
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Hanmac » 05 Jun 2014, 07:00

using one of the spellbombs like Pyrite Spellbomb with Chromatic Star can cause to this:

RuntimeException | Open
Code: Select all
EDT > java.lang.RuntimeException: Cannot remove input InputPayManaOfCostPayment because it's not on top of stack. Stack = []
   at forge.match.input.InputQueue.removeInput(InputQueue.java:54)
   at forge.match.input.InputSyncronizedBase.stop(InputSyncronizedBase.java:49)
   at forge.match.input.InputPayMana.onStateChanged(InputPayMana.java:400)
   at forge.match.input.InputPayMana.showMessage(InputPayMana.java:394)
   at forge.match.input.InputBase.showMessageInitial(InputBase.java:47)
   at forge.match.input.InputProxy$2.run(InputProxy.java:85)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
   at java.awt.EventQueue.access$200(EventQueue.java:103)
   at java.awt.EventQueue$3.run(EventQueue.java:694)
   at java.awt.EventQueue$3.run(EventQueue.java:692)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
EDT > java.lang.RuntimeException: Cannot remove input InputConfirm because it's not on top of stack. Stack = []
   at forge.match.input.InputQueue.removeInput(InputQueue.java:54)
   at forge.match.input.InputSyncronizedBase.stop(InputSyncronizedBase.java:49)
   at forge.match.input.InputConfirm.done(InputConfirm.java:75)
   at forge.match.input.InputConfirm.onOk(InputConfirm.java:64)
   at forge.match.input.InputBase.selectButtonOK(InputBase.java:70)
   at forge.match.input.InputProxy.selectButtonOK(InputProxy.java:99)
   at forge.screens.match.controllers.CPrompt$2.actionPerformed(CPrompt.java:58)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
   at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
   at java.awt.Component.processMouseEvent(Component.java:6505)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3311)
   at java.awt.Component.processEvent(Component.java:6270)
   at java.awt.Container.processEvent(Container.java:2229)
   at java.awt.Component.dispatchEventImpl(Component.java:4861)
   at java.awt.Container.dispatchEventImpl(Container.java:2287)
   at java.awt.Component.dispatchEvent(Component.java:4687)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
   at java.awt.Container.dispatchEventImpl(Container.java:2273)
   at java.awt.Window.dispatchEventImpl(Window.java:2719)
   at java.awt.Component.dispatchEvent(Component.java:4687)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
   at java.awt.EventQueue.access$200(EventQueue.java:103)
   at java.awt.EventQueue$3.run(EventQueue.java:694)
   at java.awt.EventQueue$3.run(EventQueue.java:692)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
   at java.awt.EventQueue$4.run(EventQueue.java:708)
   at java.awt.EventQueue$4.run(EventQueue.java:706)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
using latest snapshot forge-gui-desktop-1.5.19-20140603.133211-4.tar.bz2
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby rikimbo » 05 Jun 2014, 23:07

I made a change to my checked out copy of the SVN that fixed the issue I posted about Licids not displaying their picture when they are in their alternate state.

I'm not sure how to go about getting the ability to commit to the repository, or if I even should. Should I post the changes here, or look into getting an account and commit privileges?
User avatar
rikimbo
 
Posts: 52
Joined: 25 Mar 2014, 14:15
Location: Winnipeg
Has thanked: 10 times
Been thanked: 7 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 06 Jun 2014, 02:08

Was playing in a Quest Tournament, and watching an AI match. One AI had a Figure of Destiny in play, and the other one has the Walker of the Grove Evoke ETB trigger on the stack. That's the only things in play that appear to be relevant.

NPE Crash | Open
Game-23 > java.lang.NullPointerException
at forge.ai.ability.AnimateAi.canPlayAI(AnimateAi.java:70)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:649)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:636)
at forge.ai.AiController.chooseSpellAbilyToPlay(AiController.java:1177)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1158)
at forge.ai.AiController.choooseSpellAbilityToPlay(AiController.java:1109)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:415)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:973)
at forge.game.GameAction.startGame(GameAction.java:1536)
at forge.game.Match.startGame(Match.java:81)
at forge.control.FControl$4.run(FControl.java:441)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Chris H. » 06 Jun 2014, 15:17

rikimbo wrote:I made a change to my checked out copy of the SVN that fixed the issue I posted about Licids not displaying their picture when they are in their alternate state.

I'm not sure how to go about getting the ability to commit to the repository, or if I even should. Should I post the changes here, or look into getting an account and commit privileges?
 
Start a new topic and include your background info and a patch file showing your bug fix. Someone with programming experience will view your patch. Afterwards someone will likely give you commit privs.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 07 Jun 2014, 21:09

Caused a simple NPE in the Deck Editor:

1) Click on the Deck Editor Tab.
2) Click on "Next Section"
3) Click on "Next Section"

Next Section NPE | Open
EDT > com.google.common.util.concurrent.UncheckedExecutionException: java.lang.ArrayIndexOutOfBoundsException: -1
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
at forge.ImageCache.getImage(ImageCache.java:204)
at forge.ImageCache.getOriginalImage(ImageCache.java:139)
at forge.toolbox.imaging.FImageUtil.getImage(FImageUtil.java:60)
at forge.gui.CardPicturePanel.getImage(CardPicturePanel.java:96)
at forge.gui.CardPicturePanel.setImage(CardPicturePanel.java:82)
at forge.gui.CardPicturePanel.setCard(CardPicturePanel.java:70)
at forge.screens.match.controllers.CPicture.showCard(CPicture.java:82)
at forge.screens.match.controllers.CPicture.showImage(CPicture.java:99)
at forge.screens.deckeditor.CDeckEditorUI.setCard(CDeckEditorUI.java:71)
at forge.screens.deckeditor.CDeckEditorUI$8.valueChanged(CDeckEditorUI.java:258)
at forge.itemmanager.views.ItemView.onSelectionChange(ItemView.java:256)
at forge.itemmanager.views.ItemListView$ItemTableModel$1.valueChanged(ItemListView.java:571)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:184)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:164)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:211)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:405)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:415)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:459)
at javax.swing.JTable.setRowSelectionInterval(JTable.java:2166)
at forge.itemmanager.views.ItemListView.onSetSelectedIndex(ItemListView.java:271)
at forge.itemmanager.views.ItemView.setSelectedIndex(ItemView.java:217)
at forge.itemmanager.views.ItemView.fixSelection(ItemView.java:145)
at forge.itemmanager.views.ItemView.refresh(ItemView.java:139)
at forge.itemmanager.ItemManager.updateView(ItemManager.java:1027)
at forge.itemmanager.ItemManager.setPoolImpl(ItemManager.java:503)
at forge.itemmanager.ItemManager.setPool(ItemManager.java:484)
at forge.screens.deckeditor.controllers.CEditorConstructed.cycleEditorMode(CEditorConstructed.java:291)
at forge.screens.deckeditor.controllers.CEditorConstructed$2.run(CEditorConstructed.java:326)
at forge.toolbox.FLabel._doMouseAction(FLabel.java:289)
at forge.toolbox.FLabel.access$1300(FLabel.java:33)
at forge.toolbox.FLabel$6.onLeftClick(FLabel.java:327)
at forge.toolbox.FMouseAdapter.mouseReleased(FMouseAdapter.java:245)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:400)
at java.util.ArrayList.get(ArrayList.java:413)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(JPEGImageReader.java:373)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(JPEGImageReader.java:476)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(JPEGImageReader.java:597)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1054)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1034)
at javax.imageio.ImageIO.read(ImageIO.java:1448)
at javax.imageio.ImageIO.read(ImageIO.java:1308)
at forge.ImageLoader._findFile(ImageLoader.java:92)
at forge.ImageLoader.load(ImageLoader.java:56)
at forge.ImageLoader.load(ImageLoader.java:17)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
... 67 more


I'm guessing since I didn't really have a deck "loaded" the deck editor didn't know how to handle the action.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby jlands » 08 Jun 2014, 23:03

(I hope this is the right section to post this...)

As of Forge beta 06-06-2014 ver 1.5.19, I am able to cast Living End for free by giving it flashback with Snapcaster Mage.

Living End ruling from The Gatherer:
10/15/2006 - This has no mana cost, which means it can't be cast with the Replicate ability of Djinn Illuminatus or by somehow giving it Flashback.
jlands
 
Posts: 6
Joined: 08 Jun 2014, 22:46
Has thanked: 1 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby friarsol » 08 Jun 2014, 23:59

jlands wrote:(I hope this is the right section to post this...)
FYI, if you're just using a beta release, please post bug reports in the release thread from where you downloaded that release.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby KrazyTheFox » 09 Jun 2014, 16:31

I noticed that I was getting 100% CPU usage (on a single core) during matches and I've tracked it down to the targeting overlays.

In the paint() method in TargetingOverlay.java:
Code: Select all

            drawArcs(g2d, colorOther, arcsOther);
            drawArcs(g2d, colorCombat, arcsCombat);

            FView.SINGLETON_INSTANCE.getFrame().repaint(); // repaint the match UI

That last line is causing an infinite re-draw of the overlays, maxing out the CPU usage on the AWT-EventQueue thread. I commented it out on my local copy and the problem appears to have been fixed without any side effects, but before I go committing the change, I want to know if anyone knows why this was coded this way in the first place so that I don't break something important.
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby timmermac » 09 Jun 2014, 16:55

Does that also explain the constant flickering of the display between phases when buffing enchantments and artifacts are in play?
"I just woke up, haven't had coffee, let alone a pee in 7 days, and I find out you stole my ass and made a ...mini-me! Carter, I should be irked currently, yes?" - Jack O'Neill
User avatar
timmermac
Tester
 
Posts: 1512
Joined: 17 May 2010, 20:36
Has thanked: 18 times
Been thanked: 95 times

Re: Bug Reports (snapshot builds)

Postby KrazyTheFox » 09 Jun 2014, 17:18

timmermac wrote:Does that also explain the constant flickering of the display between phases when buffing enchantments and artifacts are in play?
Just tested it, and unfortunately it does not. :(
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby KrazyTheFox » 09 Jun 2014, 20:31

I think I've done it! At least, for the most part.

On my local copy of the code I've identified what was causing the P/T flickering and put in some code to force the AWT update thread to wait for the the P/T calculations to finish.

It's not 100% perfect, but now it's a slightly rare occurrence instead of every single time the field is recalculated. I'll commit the code for this and the other, earlier bug fix soon. I need to do more testing here to make sure everything's working as it should be and maybe to pin down the other instance causing the flickering and eliminate it for good.
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby drdev » 09 Jun 2014, 22:34

KrazyTheFox wrote:I think I've done it! At least, for the most part.

On my local copy of the code I've identified what was causing the P/T flickering and put in some code to force the AWT update thread to wait for the the P/T calculations to finish.

It's not 100% perfect, but now it's a slightly rare occurrence instead of every single time the field is recalculated. I'll commit the code for this and the other, earlier bug fix soon. I need to do more testing here to make sure everything's working as it should be and maybe to pin down the other instance causing the flickering and eliminate it for good.
Can something similar be done for the mobile game. The flickering issue is even worse there for global p/t boosters.
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Bug Reports (snapshot builds)

Postby KrazyTheFox » 09 Jun 2014, 22:46

drdev wrote:Can something similar be done for the mobile game. The flickering issue is even worse there for global p/t boosters.
I haven't quite nailed it down to be bug free and fast. I can do one or the other at the moment, but not both. It should all be translatable to the mobile version once I figure out exactly how to prevent this particular thread race perfectly.

The problem is the UI thread drawing the cards while the game thread is collecting and updating the P/T values for each card. When the UI thread polls those values in the middle of the update, you get the flickering.
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 20 guests


Who is online

In total there are 20 users online :: 0 registered, 0 hidden and 20 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 20 guests

Login Form