Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 03 Jun 2014, 16:54
Hrm, thought I'd fixed this one. Should have it fixed in a few hours.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)
Edit: I can't replicate this. Could I get the quest file from you?
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by 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
Myron
- Starcomet
- Posts: 4
- Joined: 02 Jun 2014, 21:25
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by 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)
Re: Bug Reports (snapshot builds)
by 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?
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?
-
rikimbo - Posts: 52
- Joined: 25 Mar 2014, 14:15
- Location: Winnipeg
- Has thanked: 10 times
- Been thanked: 7 times
Re: Bug Reports (snapshot builds)
by 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)
by 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.
-
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)
by 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"
I'm guessing since I didn't really have a deck "loaded" the deck editor didn't know how to handle the action.
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)
by 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:
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.
Re: Bug Reports (snapshot builds)
by friarsol » 08 Jun 2014, 23:59
FYI, if you're just using a beta release, please post bug reports in the release thread from where you downloaded that release.jlands wrote:(I hope this is the right section to post this...)
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by 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:
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
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by 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
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 09 Jun 2014, 17:18
Just tested it, and unfortunately it does not.timmermac wrote:Does that also explain the constant flickering of the display between phases when buffing enchantments and artifacts are in play?

-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by 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.
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.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by drdev » 09 Jun 2014, 22:34
Can something similar be done for the mobile game. The flickering issue is even worse there for global p/t boosters.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.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 09 Jun 2014, 22:46
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.drdev wrote:Can something similar be done for the mobile game. The flickering issue is even worse there for global p/t boosters.
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.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Who is online
Users browsing this forum: No registered users and 18 guests