It is currently 15 Aug 2025, 02:32
   
Text Size

SVN Bug Reports

Post MTG Forge Related Programming Questions Here

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

Re: SVN Bug Reports

Postby Chris H. » 04 Feb 2011, 12:02

I have only spent a few minutes lately in quest mode so that I could check out the new work. Have not had much time recently to play a quest. :( Too busy with dev work. :)

The java heap and slow downs that I am noticing are taking place in the constructed mode deck editor and constructed mode game matches. I even got a couple of slow downs and java heap errors while using LQ pics + old GUI + constructed mode game matches while testing new cards.
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: SVN Bug Reports

Postby Chris H. » 04 Feb 2011, 14:23

Chris H. wrote:The java heap and slow downs that I am noticing are taking place in the constructed mode deck editor and constructed mode game matches. I even got a couple of slow downs and java heap errors while using LQ pics + old GUI + constructed mode game matches while testing new cards.
`
I launched forge via the run-forge.jar this time without increasing the heap space. Played a test deck in constructed mode. Clicked on the computer's graveyard button and got the following error exception.

I tried clicking on my player panel buttons and I get the same result. I can close the error exception window and can view the dialog with the card list but the dialog does not contain an icon.

I quit forge and this time increased the heap space before running forge and was able to play test the same test deck. I clicked on the buttons in both player panels and the dialog displayed the icon this time and I did not get a java heap space error.

Code: Select all
An error has occured. You can copy/paste this message or save it to a file.
Please report this, plus what you tried to do, to:
   http://www.slightlymagic.net/forum/viewforum.php?f=26
If you don't want to register an account, you can mail it directly to
   mtgerror@yahoo.com


java.lang.OutOfMemoryError: Java heap space


Version:
Forge -- official beta: $Date: 2011-01-06 11:34:48 -0500 (Thu, 06 Jan 2011) $, SVN revision: $Revision: 4891 $

OS: Mac OS X Version: 10.6.6 Architecture: x86_64

Java Version: 1.6.0_22 Vendor: Apple Inc.

Detailed error trace:
java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space
   at com.apple.eawt._AppDockIconHandler.getDockIconImage(_AppDockIconHandler.java:68)
   at com.apple.eawt.Application.getDockIconImage(Application.java:329)
   at com.apple.laf.AquaImageFactory$2.run(AquaImageFactory.java:71)
   at com.apple.laf.AquaImageFactory$2.run(AquaImageFactory.java:69)
   at java.security.AccessController.doPrivileged(Native Method)
   at com.apple.laf.AquaImageFactory.getGenericJavaIcon(AquaImageFactory.java:69)
   at com.apple.laf.AquaImageFactory.getThisApplicationsIcon(AquaImageFactory.java:58)
   at com.apple.laf.AquaImageFactory$1.createImage(AquaImageFactory.java:29)
   at com.apple.laf.AquaIcon$CachingScalingIcon.getOptimizedImage(AquaIcon.java:133)
   at com.apple.laf.AquaIcon$CachingScalingIcon.getImage(AquaIcon.java:126)
   at com.apple.laf.AquaIcon$CachingScalingIcon.paintIcon(AquaIcon.java:168)
   at javax.swing.plaf.IconUIResource.paintIcon(IconUIResource.java:55)
   at javax.swing.plaf.basic.BasicLabelUI.paint(BasicLabelUI.java:150)
   at com.apple.laf.AquaLabelUI.paint(AquaLabelUI.java:26)
   at javax.swing.plaf.ComponentUI.update(ComponentUI.java:153)
   at javax.swing.JComponent.paintComponent(JComponent.java:752)
   at javax.swing.JComponent.paint(JComponent.java:1029)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:34)
   at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
   at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
   at java.awt.Container.paint(Container.java:1793)
   at java.awt.Window.paint(Window.java:3375)
   at sun.awt.RepaintArea.paintComponent(RepaintArea.java:276)
   at sun.awt.RepaintArea.paint(RepaintArea.java:241)
   at apple.awt.ComponentModel.handleEvent(ComponentModel.java:263)
   at apple.awt.CWindow.handleEvent(CWindow.java:517)
   at java.awt.Component.dispatchEventImpl(Component.java:4790)
   at java.awt.Container.dispatchEventImpl(Container.java:2143)
   at java.awt.Window.dispatchEventImpl(Window.java:2478)
   at java.awt.Component.dispatchEvent(Component.java:4544)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
   at java.awt.Dialog$1.run(Dialog.java:1046)
   at java.awt.Dialog$3.run(Dialog.java:1098)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.awt.Dialog.show(Dialog.java:1096)
   at java.awt.Component.show(Component.java:1563)
   at java.awt.Component.setVisible(Component.java:1515)
   at java.awt.Window.setVisible(Window.java:842)
   at java.awt.Dialog.setVisible(Dialog.java:986)
   at forge.error.ErrorViewer.showDialog(ErrorViewer.java:123)
   at forge.error.ErrorViewer.showError(ErrorViewer.java:74)
   at forge.error.ErrorViewer.showError(ErrorViewer.java:53)
   at forge.error.ExceptionHandler.handle(ExceptionHandler.java:42)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at java.awt.EventDispatchThread.handleException(EventDispatchThread.java:415)
   at java.awt.EventDispatchThread.processException(EventDispatchThread.java:321)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:313)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
   at java.awt.Dialog$1.run(Dialog.java:1046)
   at java.awt.Dialog$3.run(Dialog.java:1098)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.awt.Dialog.show(Dialog.java:1096)
   at java.awt.Component.show(Component.java:1563)
   at java.awt.Component.setVisible(Component.java:1515)
   at java.awt.Window.setVisible(Window.java:842)
   at java.awt.Dialog.setVisible(Dialog.java:986)
   at forge.gui.ListChooser.show(ListChooser.java:158)
   at forge.gui.GuiUtils.getChoices(GuiUtils.java:141)
   at forge.gui.GuiUtils.getChoiceOptional(GuiUtils.java:109)
   at forge.GuiDisplay3$ZoneAction.actionPerformed(GuiDisplay3.java:1167)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
   at java.awt.Component.processMouseEvent(Component.java:6352)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
   at java.awt.Component.processEvent(Component.java:6117)
   at java.awt.Container.processEvent(Container.java:2085)
   at java.awt.Component.dispatchEventImpl(Component.java:4714)
   at java.awt.Container.dispatchEventImpl(Container.java:2143)
   at java.awt.Component.dispatchEvent(Component.java:4544)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
   at java.awt.Container.dispatchEventImpl(Container.java:2129)
   at java.awt.Window.dispatchEventImpl(Window.java:2478)
   at java.awt.Component.dispatchEvent(Component.java:4544)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.OutOfMemoryError: Java heap space
   at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
   at java.awt.image.Raster.createPackedRaster(Raster.java:458)
   at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
   at java.awt.image.BufferedImage.<init>(BufferedImage.java:343)
   at apple.awt.CImage.<init>(CImage.java:163)
   at apple.awt.CImage$Creator.createImageWithSize(CImage.java:59)
   at apple.awt.CImage$Creator.createImage(CImage.java:45)
   at apple.awt.CImage$Creator.createImage(CImage.java:35)
   at com.apple.eawt._AppDockIconHandler.getDockIconImage(_AppDockIconHandler.java:66)
   at com.apple.eawt.Application.getDockIconImage(Application.java:329)
   at com.apple.laf.AquaImageFactory$2.run(AquaImageFactory.java:71)
   at com.apple.laf.AquaImageFactory$2.run(AquaImageFactory.java:69)
   at java.security.AccessController.doPrivileged(Native Method)
   at com.apple.laf.AquaImageFactory.getGenericJavaIcon(AquaImageFactory.java:69)
   at com.apple.laf.AquaImageFactory.getThisApplicationsIcon(AquaImageFactory.java:58)
   at com.apple.laf.AquaImageFactory$1.createImage(AquaImageFactory.java:29)
   at com.apple.laf.AquaIcon$CachingScalingIcon.getOptimizedImage(AquaIcon.java:133)
   at com.apple.laf.AquaIcon$CachingScalingIcon.getImage(AquaIcon.java:126)
   at com.apple.laf.AquaIcon$CachingScalingIcon.paintIcon(AquaIcon.java:168)
   at javax.swing.plaf.IconUIResource.paintIcon(IconUIResource.java:55)
   at javax.swing.plaf.basic.BasicLabelUI.paint(BasicLabelUI.java:150)
   at com.apple.laf.AquaLabelUI.paint(AquaLabelUI.java:26)
   at javax.swing.plaf.ComponentUI.update(ComponentUI.java:153)
   at javax.swing.JComponent.paintComponent(JComponent.java:752)
   at javax.swing.JComponent.paint(JComponent.java:1029)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
   at javax.swing.JComponent.paint(JComponent.java:1038)
   at javax.swing.JComponent.paintChildren(JComponent.java:862)
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: SVN Bug Reports

Postby lazylockie » 04 Feb 2011, 20:45

r6102

The Oblivion Ring / Journey to Nowhere leaves-play trigger isn't working. The card keeps exiled when I bounce/destroy O-Ring

I think this is a known issue, but Venser, the Sojourner +2 (and probably other cards with similar abilities) is bringing back the exiled cards tapped. I think it might be related with the Defined$ Remembered parameter.

Also, Hellkite Igniter is currently named helllkite_igniter.txt (with an additional L)
lazylockie
 
Posts: 508
Joined: 13 Jul 2010, 22:44
Has thanked: 74 times
Been thanked: 15 times

Re: SVN Bug Reports

Postby Corwin72 » 04 Feb 2011, 20:58

build 6089
Flametoung Kavu is being played by the opponent with no other creatures in play. The CIP effect is either not having an effect or not triggering.
User avatar
Corwin72
 
Posts: 793
Joined: 15 Sep 2009, 13:26
Location: Grayson, Ga
Has thanked: 25 times
Been thanked: 9 times

Re: SVN Bug Reports

Postby friarsol » 04 Feb 2011, 21:15

Corwin72 wrote:build 6089
Flametoung Kavu is being played by the opponent with no other creatures in play. The CIP effect is either not having an effect or not triggering.
The targeting issue was already fixed in r6098. In certain cases, the AI is not abiding by all mandatory triggers right now.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby friarsol » 04 Feb 2011, 21:50

lazylockie wrote:r6102
I think this is a known issue, but Venser, the Sojourner +2 (and probably other cards with similar abilities) is bringing back the exiled cards tapped. I think it might be related with the Defined$ Remembered parameter.

Also, Hellkite Igniter is currently named helllkite_igniter.txt (with an additional L)
Venser is fixed. It's not related to the Remembered parameter since it doesn't use the Remembered parameter.

Hellkite Igniter also fixed.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby Jaedayr » 04 Feb 2011, 21:54

r6103

Tokens created with the second ability of Rhys the Redeemed do not have the color of the copied token. They appear to be colorless. Also the token created from my 1/3 pet wall did not come into play with the Defender keyword.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Corwin72 » 05 Feb 2011, 02:37

Build 6112

I cast All Is Dust when the AI has a Oblivion Ring in play(Steel Overseer with counters removed).

I receive an error that starts with:
Index: 0, Size: 0


I can provide the rest of the error if more info is needed.
User avatar
Corwin72
 
Posts: 793
Joined: 15 Sep 2009, 13:26
Location: Grayson, Ga
Has thanked: 25 times
Been thanked: 9 times

Re: SVN Bug Reports

Postby friarsol » 05 Feb 2011, 02:41

Corwin72 wrote:Build 6112

I cast All Is Dust when the AI has a Oblivion Ring in play(Steel Overseer with counters removed).

I receive an error that starts with:
Index: 0, Size: 0


I can provide the rest of the error if more info is needed.
You have to at least provide the top few calls in the stack. A 0 index means nothing. (ALso, Oblivion Ring doesn't keep track of Counters like Oubliette does)
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby Corwin72 » 05 Feb 2011, 04:43

I was wondering if it was because the Oblivion Ring was Sacrificed instead of destroyed.

Detailed error trace:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at forge.CardList.getCard(Unknown Source)
at forge.CardList.get(Unknown Source)
at forge.AbilityFactory_ChangeZone.changeKnownOriginCanPlayAI(Unknown Source)
at forge.AbilityFactory_ChangeZone.changeZoneCanPlayAI(Unknown Source)
at forge.AbilityFactory_ChangeZone.access$0(Unknown Source)
at forge.AbilityFactory_ChangeZone$1.doTrigger(Unknown Source)
at forge.TriggerHandler$1.doTrigger(Unknown Source)
at forge.TriggerHandler.runSingleTrigger(Unknown Source)
at forge.TriggerHandler.runTrigger(Unknown Source)
at forge.GameAction.moveTo(Unknown Source)
at forge.GameAction.moveToGraveyard(Unknown Source)
at forge.GameAction.sacrificeDestroy(Unknown Source)
at forge.GameAction.sacrifice(Unknown Source)
at forge.CardFactory_Sorceries$89.resolve(Unknown Source)
at forge.MagicStack.resolveStack(Unknown Source)
at forge.Phase.passPriority(Unknown Source)
at forge.ComputerAI_General.stackResponse(Unknown Source)
at forge.ComputerAI_General.stack_not_empty(Unknown Source)
at forge.InputControl.updateInput(Unknown Source)
at forge.GuiInput.update(Unknown Source)
at java.util.Observable.notifyObservers(Unknown Source)
at java.util.Observable.notifyObservers(Unknown Source)
at forge.MyObservable.updateObservers(Unknown Source)
at forge.InputControl.resetInput(Unknown Source)
at forge.Phase.passPriority(Unknown Source)
at forge.Input_PassPriority.selectButtonOK(Unknown Source)
at forge.GuiInput.selectButtonOK(Unknown Source)
at forge.GuiDisplay4.okButtonActionPerformed(Unknown Source)
at forge.GuiDisplay4.access$3(Unknown Source)
at forge.GuiDisplay4$25.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
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.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)
User avatar
Corwin72
 
Posts: 793
Joined: 15 Sep 2009, 13:26
Location: Grayson, Ga
Has thanked: 25 times
Been thanked: 9 times

Re: SVN Bug Reports

Postby Chris H. » 05 Feb 2011, 18:57

Boy am I having more than my share of java heap space errors. :(

Using r6128 I set up a project without any pictures in the pics folder. I ran the forge jar outside of Eclipse and I did not increase the heap space before I launched the jar. I thought that the LQ pics may have been a problem so I removed all pics from the pics folder before I started.

I am attempting to play a constructed mode match not a quest match. I selected random theme decks for both the computer and I to play. Forge came up with this java heap space error while it was notifying me that some of the cards in the computer deck may be unplayable by the AI.

The dialog displayed no icon and I got this error. Note that this happened before I could even get to the battlefield window to start the game.

The error exception window will not allow me to save the error message and it is pegging my processor at near 100%. I took a couple of screen shots instead.

`
Attachments
dialog.jpg
error.jpg
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: SVN Bug Reports

Postby Chris H. » 05 Feb 2011, 19:35

I removed the newgame_background.jpg file and was able to start a new random theme match using the new GUI in constructed mode. I was able to finish the match without any java heap space errors and the game was at a reasonably fast pace. Hmmm. Once again I did not increase the java heap space before launching.

I placed all of the card jpgs back into the pics folder and re-tried the above test. No java heap space errors but the game did slow down by the end of the match.
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: SVN Bug Reports

Postby friarsol » 05 Feb 2011, 21:13

Chris H. wrote:I removed the newgame_background.jpg file and was able to start a new random theme match using the new GUI in constructed mode. I was able to finish the match without any java heap space errors and the game was at a reasonably fast pace. Hmmm. Once again I did not increase the java heap space before launching.

I placed all of the card jpgs back into the pics folder and re-tried the above test. No java heap space errors but the game did slow down by the end of the match.
Interesting. We should look into how its being loaded and see if it can be tweaked. If its going to cause problems then we should find a better solution.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby Fnoed » 06 Feb 2011, 00:22

I could reproduce the slowdown and "fixed" it by clearing the image cache on match starts. Can anyone else confirm that this is a valid work-around?
Fnoed
 
Posts: 84
Joined: 20 Dec 2010, 01:03
Has thanked: 0 time
Been thanked: 3 times

Re: SVN Bug Reports

Postby Chris H. » 06 Feb 2011, 00:42

I think that Snacko and Silly Freak are the closet thing to having an expert for this type of situation. Unfortunately, they tend to get real busy on other projects but they do provide some code and advice on occasion.

You could merge your "clear image cache" as a fix for people to test out. If Snacko and Silly Freak have any input we could then shift gears at that time.

I try to play my matches without setting the java heap space any higher than the default. I feel that there must be a number of people who download forge from rares google page and never come here to this forum. These people may not even know that the java heap space can be set to a higher value. :D
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

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 5 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 5 users online :: 0 registered, 0 hidden and 5 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 5 guests

Login Form