From 06742f5f2cc4eed2f3ad3ae44c2544fbf8215e8e Mon Sep 17 00:00:00 2001 From: Damien Appert Date: Sun, 7 Nov 2010 01:35:27 +0000 Subject: modif lemmini + FNI.c git-svn-id: file:///var/svn/2010-netlemmings/trunk@142 077b3477-7977-48bd-8428-443f22f7bfda --- jeu-test/Lemmini/.metadata/.log | 277 ++++++ .../.projects/0.84/.markers | Bin 1253 -> 698 bytes .../.projects/0.84/org.eclipse.jdt.core/state.dat | Bin 47114 -> 47408 bytes .../.root/.indexes/properties.index | Bin 151 -> 151 bytes .../.safetable/org.eclipse.core.resources | Bin 752 -> 1115 bytes .../.settings/org.eclipse.debug.ui.prefs | 3 +- .../.settings/org.eclipse.jdt.core.prefs | 10 +- .../.settings/org.eclipse.jdt.launching.prefs | 4 +- .../.settings/org.eclipse.jdt.ui.prefs | 25 +- .../.settings/org.eclipse.ui.ide.prefs | 4 +- .../org.eclipse.debug.ui/dialog_settings.xml | 13 +- .../.plugins/org.eclipse.jdt.core/1902154957.index | Bin 74744 -> 74863 bytes .../org.eclipse.jdt.core/externalLibsTimeStamps | Bin 580 -> 580 bytes .../org.eclipse.jdt.core/nonChainingJarsCache | Bin 508 -> 508 bytes .../org.eclipse.jdt.core/savedIndexNames.txt | 20 +- .../variablesAndContainers.dat | Bin 1155 -> 1180 bytes .../org.eclipse.jdt.launching/libraryInfos.xml | 60 ++ .../QualifiedTypeNameHistory.xml | 5 +- .../org.eclipse.jdt.ui/dialog_settings.xml | 105 ++- .../org.eclipse.ui.workbench/dialog_settings.xml | 4 + .../org.eclipse.ui.workbench/workbench.xml | 418 ++++----- jeu-test/Lemmini/0.84/src/Game/GameController.java | 11 +- jeu-test/Lemmini/0.84/src/Game/Level.java | 346 +++++++- jeu-test/Lemmini/0.84/src/Lemmini.java | 987 +++++++++++---------- 24 files changed, 1550 insertions(+), 742 deletions(-) (limited to 'jeu-test') diff --git a/jeu-test/Lemmini/.metadata/.log b/jeu-test/Lemmini/.metadata/.log index 494d5ba..7b068f1 100644 --- a/jeu-test/Lemmini/.metadata/.log +++ b/jeu-test/Lemmini/.metadata/.log @@ -158,3 +158,280 @@ java.lang.ClassFormatError: Unknown constant tag 116 in class file org/eclipse/e at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337) +!SESSION 2010-11-06 20:26:40.339 ----------------------------------------------- +eclipse.buildId= +java.version=1.6.0_20 +java.vendor=Sun Microsystems Inc. +BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=fr_FR +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2010-11-06 20:26:42.354 +!MESSAGE +!STACK 0 +org.osgi.framework.BundleException: Exception in org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start() of bundle org.eclipse.equinox.p2.reconciler.dropins. + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) + at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352) + at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370) + at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337) +Caused by: java.lang.NullPointerException + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.getMatchingRepo(PlatformXmlListener.java:156) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:188) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:131) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:172) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.watchConfiguration(Activator.java:472) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:169) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) + at java.security.AccessController.doPrivileged(Native Method) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) + ... 10 more +Root exception: +java.lang.NullPointerException + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.getMatchingRepo(PlatformXmlListener.java:156) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:188) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:131) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:172) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.watchConfiguration(Activator.java:472) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:169) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) + at java.security.AccessController.doPrivileged(Native Method) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) + at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352) + at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370) + at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337) + +!ENTRY org.eclipse.ui.workbench 2 0 2010-11-06 20:26:54.617 +!MESSAGE A handler conflict occurred. This may disable some commands. +!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2010-11-06 20:26:54.618 +!MESSAGE Conflict for 'AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram': +HandlerActivation(commandId=AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram, + handler=ActionDelegateHandlerProxy(null,com.soyatec.uml.std.external.UMLCheckDiagramAction), + expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@968e429),sourcePriority=16384) +HandlerActivation(commandId=AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram, + handler=ActionDelegateHandlerProxy(null,com.soyatec.uml.std.external.UMLCheckDiagramAction), + expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@968e429),sourcePriority=16384) +!SESSION 2010-11-06 21:11:12.484 ----------------------------------------------- +eclipse.buildId= +java.version=1.6.0_22 +java.vendor=Sun Microsystems Inc. +BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=fr_FR +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2010-11-06 21:11:15.152 +!MESSAGE +!STACK 0 +org.osgi.framework.BundleException: Exception in org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start() of bundle org.eclipse.equinox.p2.reconciler.dropins. + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) + at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352) + at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370) + at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337) +Caused by: java.lang.NullPointerException + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.getMatchingRepo(PlatformXmlListener.java:156) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:188) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:131) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:172) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.watchConfiguration(Activator.java:472) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:169) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) + at java.security.AccessController.doPrivileged(Native Method) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) + ... 10 more +Root exception: +java.lang.NullPointerException + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.getMatchingRepo(PlatformXmlListener.java:156) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:188) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:131) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:172) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.watchConfiguration(Activator.java:472) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:169) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) + at java.security.AccessController.doPrivileged(Native Method) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) + at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352) + at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370) + at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337) + +!ENTRY org.eclipse.ui.workbench 2 0 2010-11-06 21:11:31.236 +!MESSAGE A handler conflict occurred. This may disable some commands. +!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2010-11-06 21:11:31.237 +!MESSAGE Conflict for 'AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram': +HandlerActivation(commandId=AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram, + handler=ActionDelegateHandlerProxy(null,com.soyatec.uml.std.external.UMLCheckDiagramAction), + expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@246ce26e),sourcePriority=16384) +HandlerActivation(commandId=AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram, + handler=ActionDelegateHandlerProxy(null,com.soyatec.uml.std.external.UMLCheckDiagramAction), + expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@246ce26e),sourcePriority=16384) +!SESSION 2010-11-06 21:28:12.065 ----------------------------------------------- +eclipse.buildId= +java.version=1.6.0_22 +java.vendor=Sun Microsystems Inc. +BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=fr_FR +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2010-11-06 21:28:15.318 +!MESSAGE +!STACK 0 +org.osgi.framework.BundleException: Exception in org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start() of bundle org.eclipse.equinox.p2.reconciler.dropins. + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) + at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352) + at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370) + at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337) +Caused by: java.lang.NullPointerException + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.getMatchingRepo(PlatformXmlListener.java:156) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:188) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:131) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:172) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.watchConfiguration(Activator.java:472) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:169) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) + at java.security.AccessController.doPrivileged(Native Method) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) + ... 10 more +Root exception: +java.lang.NullPointerException + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.getMatchingRepo(PlatformXmlListener.java:156) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:188) + at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:131) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:172) + at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.watchConfiguration(Activator.java:472) + at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:169) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) + at java.security.AccessController.doPrivileged(Native Method) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) + at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) + at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352) + at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370) + at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248) + at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337) + +!ENTRY org.eclipse.ui.workbench 2 0 2010-11-06 21:28:46.041 +!MESSAGE A handler conflict occurred. This may disable some commands. +!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2010-11-06 21:28:46.041 +!MESSAGE Conflict for 'AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram': +HandlerActivation(commandId=AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram, + handler=ActionDelegateHandlerProxy(null,com.soyatec.uml.std.external.UMLCheckDiagramAction), + expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@1bae939f),sourcePriority=16384) +HandlerActivation(commandId=AUTOGEN:::com.soyatec.uml.std.ui.check.diagram/com.soyatec.uml.std.ui.actions.check.diagram, + handler=ActionDelegateHandlerProxy(null,com.soyatec.uml.std.external.UMLCheckDiagramAction), + expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@1bae939f),sourcePriority=16384) + +!ENTRY org.eclipse.jdt.ui 4 10001 2010-11-07 00:48:21.381 +!MESSAGE Internal Error +!STACK 1 +Java Model Exception: java.net.SocketTimeoutException: Read timed out + at org.eclipse.jdt.internal.core.JavaElement.getURLContents(JavaElement.java:798) + at org.eclipse.jdt.internal.core.BinaryType.getJavadocContents(BinaryType.java:1036) + at org.eclipse.jdt.internal.core.BinaryMethod.getAttachedJavadoc(BinaryMethod.java:558) + at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:462) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo(JavadocHover.java:555) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.internalGetHoverInfo(JavadocHover.java:512) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo2(JavadocHover.java:495) + at org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.getHoverInfo2(BestMatchHover.java:129) + at org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy.getHoverInfo2(JavaEditorTextHoverProxy.java:82) + at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:166) +Caused by: java.net.SocketTimeoutException: Read timed out + at java.net.SocketInputStream.socketRead0(Native Method) + at java.net.SocketInputStream.read(SocketInputStream.java:129) + at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) + at java.io.BufferedInputStream.read(BufferedInputStream.java:317) + at sun.net.www.MeteredStream.read(MeteredStream.java:116) + at java.io.FilterInputStream.read(FilterInputStream.java:116) + at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2669) + at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) + at java.io.BufferedInputStream.read(BufferedInputStream.java:317) + at org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsByteArray(Util.java:345) + at org.eclipse.jdt.internal.core.JavaElement.getURLContents(JavaElement.java:754) + ... 9 more +Caused by: java.net.SocketTimeoutException: Read timed out + at java.net.SocketInputStream.socketRead0(Native Method) + at java.net.SocketInputStream.read(SocketInputStream.java:129) + at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) + at java.io.BufferedInputStream.read(BufferedInputStream.java:317) + at sun.net.www.MeteredStream.read(MeteredStream.java:116) + at java.io.FilterInputStream.read(FilterInputStream.java:116) + at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2669) + at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) + at java.io.BufferedInputStream.read(BufferedInputStream.java:317) + at org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsByteArray(Util.java:345) + at org.eclipse.jdt.internal.core.JavaElement.getURLContents(JavaElement.java:754) + at org.eclipse.jdt.internal.core.BinaryType.getJavadocContents(BinaryType.java:1036) + at org.eclipse.jdt.internal.core.BinaryMethod.getAttachedJavadoc(BinaryMethod.java:558) + at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:462) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo(JavadocHover.java:555) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.internalGetHoverInfo(JavadocHover.java:512) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo2(JavadocHover.java:495) + at org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.getHoverInfo2(BestMatchHover.java:129) + at org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy.getHoverInfo2(JavaEditorTextHoverProxy.java:82) + at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:166) +!SUBENTRY 1 org.eclipse.jdt.core 4 985 2010-11-07 00:48:21.425 +!MESSAGE Read timed out +!STACK 0 +java.net.SocketTimeoutException: Read timed out + at java.net.SocketInputStream.socketRead0(Native Method) + at java.net.SocketInputStream.read(SocketInputStream.java:129) + at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) + at java.io.BufferedInputStream.read(BufferedInputStream.java:317) + at sun.net.www.MeteredStream.read(MeteredStream.java:116) + at java.io.FilterInputStream.read(FilterInputStream.java:116) + at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2669) + at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) + at java.io.BufferedInputStream.read(BufferedInputStream.java:317) + at org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsByteArray(Util.java:345) + at org.eclipse.jdt.internal.core.JavaElement.getURLContents(JavaElement.java:754) + at org.eclipse.jdt.internal.core.BinaryType.getJavadocContents(BinaryType.java:1036) + at org.eclipse.jdt.internal.core.BinaryMethod.getAttachedJavadoc(BinaryMethod.java:558) + at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:462) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo(JavadocHover.java:555) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.internalGetHoverInfo(JavadocHover.java:512) + at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo2(JavadocHover.java:495) + at org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.getHoverInfo2(BestMatchHover.java:129) + at org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy.getHoverInfo2(JavaEditorTextHoverProxy.java:82) + at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:166) diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.projects/0.84/.markers b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.projects/0.84/.markers index 090b1b0..010fa90 100644 Binary files a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.projects/0.84/.markers and b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.projects/0.84/.markers differ diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.projects/0.84/org.eclipse.jdt.core/state.dat b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.projects/0.84/org.eclipse.jdt.core/state.dat index 0296168..e810cd5 100644 Binary files a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.projects/0.84/org.eclipse.jdt.core/state.dat and b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.projects/0.84/org.eclipse.jdt.core/state.dat differ diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index index 37bf957..55a02df 100644 Binary files a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index and b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index differ diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources index 206dcda..72e3c37 100644 Binary files a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs index ff6cee2..daa4437 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs @@ -1,4 +1,5 @@ -#Sat Nov 06 20:02:34 CET 2010 +#Sat Nov 06 20:31:56 CET 2010 eclipse.preferences.version=1 +preferredTargets=default\:default| org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=\n\n org.eclipse.debug.ui.user_view_bindings=\n\n\n\n\n\n diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs index 3f327f4..e56322c 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs @@ -1,8 +1,10 @@ -#Sat Nov 06 20:00:46 CET 2010 -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +#Sat Nov 06 21:11:23 CET 2010 +org.eclipse.jdt.core.compiler.compliance=1.6 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.uad,*.ucd,*.uld,*.upd,*.udd,*.uod,*.usd,*.utd,*.uud,*.odd,*.ead,*.ecd,*.eld,*.epd,*.edd,*.eod,*.esd,*.etd,*.eud,*.urd,*.uml,*.ecore eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.source=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs index 9b28e59..c555280 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs @@ -1,3 +1,3 @@ -#Sat Nov 06 20:01:07 CET 2010 +#Sat Nov 06 21:26:38 CET 2010 eclipse.preferences.version=1 -org.eclipse.jdt.launching.PREF_VM_XML=\n\n\n\n\n\n +org.eclipse.jdt.launching.PREF_VM_XML=\n\n\n\n\n\n diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs index 9ce50fb..dfe39fe 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs @@ -1,14 +1,19 @@ -#Sat Nov 06 20:00:22 CET 2010 -useQuickDiffPrefPage=true -proposalOrderMigrated=true -tabWidthPropagated=true -content_assist_proposals_background=255,255,255 -org.eclipse.jdt.ui.javadoclocations.migrated=true +#Sun Nov 07 02:26:05 CET 2010 +content_assist_proposals_foreground=26,26,26 +spelling_locale_initialized=true +content_assist_disabled_computers=org.eclipse.jdt.ui.javaAllProposalCategory\u0000org.eclipse.jdt.ui.javaNoTypeProposalCategory\u0000org.eclipse.jdt.ui.textProposalCategory\u0000org.eclipse.jdt.ui.javaTypeProposalCategory\u0000 +org.eclipse.jdt.ui.text.templates_migrated=true useAnnotationsPrefPage=true +eclipse.preferences.version=1 org.eclipse.jface.textfont=1|Monospace|10.0|0|GTK|1|; +tabWidthPropagated=true org.eclipse.jdt.ui.editor.tab.width= -org.eclipse.jdt.ui.formatterprofiles.version=11 -spelling_locale_initialized=true -eclipse.preferences.version=1 -content_assist_proposals_foreground=26,26,26 fontPropagated=true +org.eclipse.jdt.ui.javadoclocations.migrated=true +proposalOrderMigrated=true +org.eclipse.jdt.ui.formatterprofiles.version=11 +content_assist_proposals_background=255,255,255 +content_assist_number_of_computers=17 +useQuickDiffPrefPage=true +org.eclipse.jdt.ui.text.custom_templates= +content_assist_lru_history= diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs index 1ed0597..709888f 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs @@ -1,5 +1,5 @@ -#Sat Nov 06 20:00:22 CET 2010 +#Sat Nov 06 21:10:41 CET 2010 eclipse.preferences.version=1 tipsAndTricks=true -platformState=1289063488193 +platformState=1289070773896 PROBLEMS_FILTERS_MIGRATE=true diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml index 1a746de..b7bec70 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml @@ -1,20 +1,27 @@
+
+ + + + + +
- + - +
- +
diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/1902154957.index b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/1902154957.index index b15b26f..5d44139 100644 Binary files a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/1902154957.index and b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/1902154957.index differ diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps index 6251289..b38a188 100644 Binary files a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps and b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps differ diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache index 7b08a1e..c483758 100644 Binary files a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache and b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache differ diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt index b363649..817316c 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt @@ -1,11 +1,11 @@ -INDEX VERSION 1.126+/home/geekplusplus/Bureau/Projet-Lemmings/trunk/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core -3955261179.index +INDEX VERSION 1.126+/home/jazzblue/Bureau/Projet-Lemmings/trunk/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core +3856308043.index +1901393094.index +2007166458.index +1640669128.index +2106039906.index +1767688219.index 1902154957.index -2370678678.index -2587115027.index -1594113350.index -3865754283.index -837158796.index -47599848.index -1820894104.index -274907012.index +1347787028.index +29207250.index +106343698.index diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat index 2f49758..3c5af35 100644 Binary files a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat and b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat differ diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml index c834841..7a88ea5 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml @@ -18,6 +18,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml index 9e390f5..537a0a9 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml @@ -1,2 +1,5 @@ - + + + + diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml index 7e1fe39..dd3708c 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml @@ -1,23 +1,122 @@
+ + + + + + + + + +
- +
- +
- + +
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+
+ +
+
diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml index 5ca0b77..a7f611d 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml @@ -1,3 +1,7 @@
+
+ + +
diff --git a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml index a80276c..981508a 100644 --- a/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml +++ b/jeu-test/Lemmini/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml @@ -1,41 +1,69 @@ - + - + - + - + - - - - + + + + + + + - + - + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + @@ -43,17 +71,17 @@ - + - - - - + + + + - + @@ -65,7 +93,7 @@ - + @@ -89,26 +117,18 @@ + - - - - - - - - - - + @@ -126,6 +146,11 @@ + + + + + @@ -157,12 +182,13 @@ - - + + + @@ -180,32 +206,35 @@ - + + - - + + - + + + - + @@ -218,260 +247,165 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - + @@ -479,6 +413,10 @@ + + + + @@ -486,18 +424,56 @@ + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - \ No newline at end of file diff --git a/jeu-test/Lemmini/0.84/src/Game/GameController.java b/jeu-test/Lemmini/0.84/src/Game/GameController.java index f37f97d..0cc208a 100644 --- a/jeu-test/Lemmini/0.84/src/Game/GameController.java +++ b/jeu-test/Lemmini/0.84/src/Game/GameController.java @@ -150,11 +150,12 @@ public class GameController { /** sound object */ public static Sound sound; - + // pour le mode W + public static boolean modeW = false; /** the background stencil */ - private static Stencil stencil; + public static Stencil stencil; /** the background image */ - private static BufferedImage bgImage; + public static BufferedImage bgImage; /** flag: play music */ private static boolean musicOn; /** flag: play sounds */ @@ -182,7 +183,7 @@ public class GameController { /** flag: game is paused */ private static boolean paused; /** flag: cheat/debug mode is activated */ - private static boolean cheat = false; + public static boolean cheat = false; /** flag: cheat mode was activated during play */ private static boolean wasCheated = false; /** frame counter for handling opening of entries */ @@ -196,7 +197,7 @@ public class GameController { /** frame counter used to update animated sprite objects */ private static int animCtr; /** level object */ - private static Level level; + public static Level level; /** index of current difficulty level */ private static int curDiffLevel; /** index of current level pack */ diff --git a/jeu-test/Lemmini/0.84/src/Game/Level.java b/jeu-test/Lemmini/0.84/src/Game/Level.java index 55e9cfb..977d965 100644 --- a/jeu-test/Lemmini/0.84/src/Game/Level.java +++ b/jeu-test/Lemmini/0.84/src/Game/Level.java @@ -461,6 +461,300 @@ public class Level { return stencil; } + public Stencil paintLevel(final BufferedImage bgImage, final Component cmp, final Stencil s , int choix) { + // flush all resources + sprObjFront = null; + sprObjBehind = null; + sprObjects = null; + entries = null; + System.gc(); + // the screenBuffer should be big enough to hold the level + // returns stencil buffer; + int bgWidth = bgImage.getWidth(); + int bgHeight = bgImage.getHeight(); + // try to reuse old stencil + Stencil stencil; + if (s!= null && s.getWidth() == bgWidth && s.getHeight() == bgImage.getHeight()) { + s.clear(); + stencil = s; + } else + stencil = new Stencil(bgWidth,bgImage.getHeight()); + // paint terrain + for (int n = 0; n < terrain.size(); n++) { + Terrain t = terrain.get(n); + Image i = tiles[t.id]; + int width = i.getWidth(null); + int height = i.getHeight(null); + + int source[] = new int[width * height]; + PixelGrabber pixelgrabber = new PixelGrabber(i, 0, 0, width, + height, source, 0, width); + try { + pixelgrabber.grabPixels(); + } catch (InterruptedException interruptedexception) {} + int tx = t.xPos; + int ty = t.yPos; + boolean upsideDown = (t.modifier & Terrain.MODE_UPSIDE_DOWN) != 0; + boolean overwrite = (t.modifier & Terrain.MODE_NO_OVERWRITE) == 0; + boolean remove = (t.modifier & Terrain.MODE_REMOVE) != 0; + try { + for (int y = 0; y < height; y++) { + if (y + ty < 0 || y + ty >= bgHeight) + continue; + int yLineStencil = (y + ty) * bgWidth; + int yLine; + if (upsideDown) + yLine = (height - y - 1) * width; + else + yLine = y * width; + for (int x = 0; x < width; x++) { + if (x + tx < 0 || x + tx >= bgWidth) + continue; + int col = source[yLine + x]; + // ignore transparent pixels + if ((col & 0xff000000) == 0) + continue; + boolean paint = false; + if (!overwrite) { + // don't overwrite -> only paint if background is transparent + if (stencil.get(yLineStencil + tx + x) == Stencil.MSK_EMPTY) + paint = true; + } else if (remove) { + bgImage.setRGB(x + tx, y + ty, 0 /*bgCol*/); + stencil.set(yLineStencil + tx + x, Stencil.MSK_EMPTY); + } else + paint = true; + if (paint) { + if(choix==3){ + //System.out.println("couleur: "+x+" "+y+" = "+col); + bgImage.setRGB(x + tx, y + ty, -9400320); + } + // -28120 + // -2064352 + // -4173808 + // -5752816 + // -7331824 + // -9400320 + // -10485744 + // -12054520 + // -13022976 + // -13697016 + // -14655456 + // -15716593 + // -16289024 + + if (choix==0){ + bgImage.setRGB(x + tx, y + ty, col); + } + stencil.set(yLineStencil + tx + x,Stencil.MSK_BRICK); + } + } + } + } catch (ArrayIndexOutOfBoundsException ex) { + } + } + + // now for the animated objects + ArrayList oCombined = new ArrayList(64); + ArrayList oBehind = new ArrayList(64); + ArrayList oFront = new ArrayList(4); + ArrayList entry = new ArrayList(4); + AffineTransform tx; + for (int n = 0; n < objects.size(); n++) { + try { + LvlObject o = objects.get(n); + //if (sprObjAvailable[o.id].animMode != Sprite.ANIM_NONE) { + SpriteObject spr = new SpriteObject(sprObjAvailable[o.id]); + spr.setX(o.xPos); + spr.setY(o.yPos); + // affine transform for flipping + tx = AffineTransform.getScaleInstance(1, -1); + tx.translate(0, -spr.getHeight()); + AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); + BufferedImage imgSpr; + // check for entries (ignore upside down entries) + if (spr.getType() == SpriteObject.Type.ENTRY && !o.upsideDown) { + Entry e = new Entry(o.xPos+spr.getWidth()/2, o.yPos); + e.id = oCombined.size(); + entry.add(e); + spr.setAnimMode(Sprite.Animation.NONE); + } + // animated + boolean drawOnVis = o.paintMode == LvlObject.MODE_VIS_ON_TERRAIN; + boolean noOverwrite = o.paintMode == LvlObject.MODE_NO_OVERWRITE; + boolean inFront = (drawOnVis || !noOverwrite); + boolean drawFull = o.paintMode == LvlObject.MODE_FULL; + + if (inFront) + oFront.add(spr); + else + oBehind.add(spr); + oCombined.add(spr); + + // draw stencil (only for objects that are not upside down) + if (!o.upsideDown) { + for (int y = 0; y < spr.getHeight(); y++) { + if (y + spr.getY() < 0 || y + spr.getY() >= bgHeight) + continue; + int yLineStencil = (y + spr.getY()) * bgWidth; + for (int x = 0; x < spr.getWidth(); x++) { + //boolean pixOverdraw = false; + if (x + spr.getX() < 0 || x + spr.getX() >= bgWidth) + continue; + // manage collision mask + // now read stencil + int stencilVal; + stencilVal = stencil.get(yLineStencil + spr.getX()+ x); + // store object type in mask and idx in higher byte + if (/*paint &&*/ spr.getType() != SpriteObject.Type.ENTRY && spr.getType() != SpriteObject.Type.PASSIVE) + if ((spr.getMask(x,y) & 0xff000000) != 0) { // not transparent + // avoid two objects on the same stencil position + // overlap makes it impossible to delete pixels in objects (mask operations) + if (Stencil.getObjectID(stencilVal) == 0) { + stencil.or(yLineStencil + spr.getX() + x, spr.getMaskType() | Stencil.createObjectID(n)); + } // else: overlap - erased later in object instance + } + } + } + } + // remove invisible pixels from all object frames that are "in front" + // for upside down objects, just create the upside down copy + if (o.upsideDown || inFront || (choix==3)) { + for (int frame = 0; frame < spr.getNumFrames(); frame++) { + imgSpr = ToolBox.createImage(spr.getWidth(),spr.getHeight(), Transparency.BITMASK); + // get flipped or normal version + if (o.upsideDown) { + // flip the image vertically + imgSpr = op.filter(spr.getImage(frame), imgSpr); + } else { + WritableRaster rImgSpr = imgSpr.getRaster(); + rImgSpr.setRect(spr.getImage(frame).getRaster()); // just copy + } + // for "in front" objects the really drawn pixels have to be determined + if (inFront || (choix==3)) { + for (int y = 0; y < spr.getHeight(); y++) { + if (y + spr.getY() < 0 || y + spr.getY() >= bgHeight) + continue; + int yLineStencil = (y + spr.getY()) * bgWidth; + for (int x = 0; x < spr.getWidth(); x++) { + if (x + spr.getX() < 0 || x + spr.getX() >= bgWidth) + continue; + // now read stencil + int stencilVal = stencil.get(yLineStencil + spr.getX()+ x); + int stencilValMasked = stencilVal & Stencil.MSK_WALK_ON; + boolean paint = + drawFull || (stencilValMasked != 0 && drawOnVis) || (stencilValMasked == 0 && noOverwrite); + // hack for overlap: + int id = Stencil.getObjectID(stencilVal); + // check if a different interactive object was already entered at this pixel position + // however: exits must always be painted + // also: passive objects will always be painted + if ( inFront && spr.getType() != SpriteObject.Type.PASSIVE && spr.getType() != SpriteObject.Type.EXIT && id!=0 && id != n) + paint = false; + // sprite screenBuffer pixel + int imgCol = imgSpr.getRGB(x,y); + if ((imgCol & 0xff000000) == 0) + continue; + if ((!paint)||(choix==3)){ + int ccc_temp=0; + if(choix==3){ + // -28120 + // -2064352 + // -3100608 + // -4173808 + // -5210080 + // -5752816 + // -7331824 + // -8376304 + // -9400320 + // -10485744 + // -12054520 + // -13022976 + // -13697016 + // -14655456 + // -15716593 + // -16289024 + switch(stencilVal){ + case 0 : // MSK_EMPTY + ccc_temp=0; + break; + case 32 : // MSK_NO_DIG_LEFT + ccc_temp=-28120; + break; + case 64 : // MSK_NO_DIG_RIGHT + ccc_temp=-2064352; + break; + case 128 : // MSK_TRAP_DROWN + ccc_temp=-15716593; + break; + case 256 : // MSK_TRAP_REPLACE + ccc_temp=-8376304; + break; + case 512 : // MSK_TRAP_DIE + ccc_temp=-13697016; + break; + case 1024 : // MSK_EXIT + ccc_temp=-7331824; + break; + default: break; + } + } else { + ccc_temp=imgCol; + } + imgSpr.setRGB(x,y,ccc_temp&0xffffff); // imgCol set transparent + } + } + } + } + //spr.img[frame].flush(); // will be overwritten -> flush data + spr.setImage(frame,imgSpr); + } + } + } catch (ArrayIndexOutOfBoundsException ex) { + //System.out.println("Array out of bounds"); + } + } + + entries = new Entry[entry.size()]; + entries = entry.toArray(entries); + + // paint steel tiles into stencil + for (int n = 0; n < steel.size(); n++) { + Steel stl = steel.get(n); + int sx = stl.xPos; + int sy = stl.yPos; + for (int y = 0; y < stl.height; y++) { + if (y + sy < 0 || y + sy >= bgHeight) + continue; + int yLineStencil = (y + sy) * bgWidth; + for (int x = 0; x < stl.width; x++) { + if (x + sx < 0 || x + sx >= bgWidth) + continue; + int stencilVal = stencil.get(yLineStencil + x + sx); + // only allow steel on brick + if ((stencilVal & Stencil.MSK_BRICK) != 0) { + stencilVal &= ~Stencil.MSK_BRICK; + stencilVal |= Stencil.MSK_STEEL; + stencil.set(yLineStencil + x + sx, stencilVal); + } + } + } + } + // flush tiles + // if (tiles != null) + // for (int i=0; i < tiles.length; i++) + // tiles[i].flush(); + + sprObjects = new SpriteObject[oCombined.size()]; + sprObjects = oCombined.toArray(sprObjects); + sprObjFront = new SpriteObject[oFront.size()]; + sprObjFront = oFront.toArray(sprObjFront); + sprObjBehind = new SpriteObject[oBehind.size()]; + sprObjBehind = oBehind.toArray(sprObjBehind); + System.gc(); + + return stencil; + } /** * Draw opaque objects behind background image. @@ -475,8 +769,9 @@ public class Level { try { SpriteObject spr = sprObjBehind[n]; BufferedImage img = spr.getImage(); - if (spr.getX()+spr.getWidth() > xOfs && spr.getX() < xOfs+width) + if (spr.getX()+spr.getWidth() > xOfs && spr.getX() < xOfs+width){ g.drawImage(img,spr.getX()-xOfs,spr.getY(),null); + } //spr.drawHidden(offImg,xOfsTemp); } catch (ArrayIndexOutOfBoundsException ex) {} } @@ -496,8 +791,9 @@ public class Level { try { SpriteObject spr = sprObjFront[n]; BufferedImage img = spr.getImage(); - if (spr.getX()+spr.getWidth() > xOfs && spr.getX() < xOfs+width) + if (spr.getX()+spr.getWidth() > xOfs && spr.getX() < xOfs+width){ g.drawImage(img,spr.getX()-xOfs,spr.getY(),null); + } } catch (ArrayIndexOutOfBoundsException ex) {} } } @@ -577,18 +873,18 @@ public class Level { break; SpriteObject sprite = new SpriteObject(img, frames); switch (anim) { - case 0: // dont' animate - sprite.setAnimMode(Sprite.Animation.NONE); - break; - case 1: // loop mode - sprite.setAnimMode(Sprite.Animation.LOOP); - break; - case 2: // triggered animation - for the moment handle like loop - sprite.setAnimMode(Sprite.Animation.TRIGGERED); - break; - case 3: // entry animation - sprite.setAnimMode(Sprite.Animation.ONCE); - break; + case 0: // dont' animate + sprite.setAnimMode(Sprite.Animation.NONE); + break; + case 1: // loop mode + sprite.setAnimMode(Sprite.Animation.LOOP); + break; + case 2: // triggered animation - for the moment handle like loop + sprite.setAnimMode(Sprite.Animation.TRIGGERED); + break; + case 3: // entry animation + sprite.setAnimMode(Sprite.Animation.ONCE); + break; } // get object type int type = props.get("type_" + sIdx, -1); @@ -596,17 +892,17 @@ public class Level { break; sprite.setType(SpriteObject.getType(type)); switch (sprite.getType()) { - case EXIT: - case NO_DIG_LEFT: - case NO_DIG_RIGHT: - case TRAP_DIE: - case TRAP_REPLACE: - case TRAP_DROWN: - // load mask - fName = "styles/"+set + "/" + set + "om_" + Integer.toString(idx)+ ".gif"; - img = Core.loadImage(tracker, fName); - sprite.setMask(img); - break; + case EXIT: + case NO_DIG_LEFT: + case NO_DIG_RIGHT: + case TRAP_DIE: + case TRAP_REPLACE: + case TRAP_DROWN: + // load mask + fName = "styles/"+set + "/" + set + "om_" + Integer.toString(idx)+ ".gif"; + img = Core.loadImage(tracker, fName); + sprite.setMask(img); + break; } // get sound int sound = props.get("sound_" + sIdx, -1); diff --git a/jeu-test/Lemmini/0.84/src/Lemmini.java b/jeu-test/Lemmini/0.84/src/Lemmini.java index a2dfe08..d1e3083 100644 --- a/jeu-test/Lemmini/0.84/src/Lemmini.java +++ b/jeu-test/Lemmini/0.84/src/Lemmini.java @@ -102,7 +102,8 @@ public class Lemmini extends JFrame implements KeyListener { private final static int WIN_OFS = 120; /** flag: started as Webstart application */ private static boolean isWebstartApp = true; - + + private final static long serialVersionUID = 0x01; /** self reference */ @@ -636,7 +637,7 @@ public class Lemmini extends JFrame implements KeyListener { try { ServiceManager.lookup("javax.jnlp.BasicService"); } catch (UnavailableServiceException ex) {*/ - isWebstartApp = false; + isWebstartApp = false; //}; // workaround to adjust time base to 1ms under XP @@ -728,135 +729,208 @@ public class Lemmini extends JFrame implements KeyListener { int code = keyevent.getKeyCode(); if (GameController.getGameState() == GameController.State.LEVEL) { switch (code) { - case KeyEvent.VK_1: - case KeyEvent.VK_F3: - GameController.handleIconButton(Icons.Type.CLIMB); - break; - case KeyEvent.VK_2: - case KeyEvent.VK_F4: - GameController.handleIconButton(Icons.Type.FLOAT); - break; - case KeyEvent.VK_3: - case KeyEvent.VK_F5: - GameController.handleIconButton(Icons.Type.BOMB); - break; - case KeyEvent.VK_4: - case KeyEvent.VK_F6: - GameController.handleIconButton(Icons.Type.BLOCK); - break; - case KeyEvent.VK_5: - case KeyEvent.VK_F7: - GameController.handleIconButton(Icons.Type.BUILD); - break; - case KeyEvent.VK_6: - case KeyEvent.VK_F8: - GameController.handleIconButton(Icons.Type.BASH); - break; - case KeyEvent.VK_7: - case KeyEvent.VK_F9: - GameController.handleIconButton(Icons.Type.MINE); - break; - case KeyEvent.VK_8: - case KeyEvent.VK_F10: - GameController.handleIconButton(Icons.Type.DIG); - break; - case KeyEvent.VK_D: - if (GameController.isCheat()) - gp.setDebugDraw(!gp.getDebugDraw()); - break; - case KeyEvent.VK_W: - if (GameController.isCheat()) { - GameController.setNumLeft(GameController.getNumLemmingsMax()); - GameController.endLevel(); - } - break; - case KeyEvent.VK_L: // print current level on the console - if (GameController.isCheat()) - System.out.println(GameController.getLevelPack(GameController.getCurLevelPackIdx()).getInfo(GameController.getCurDiffLevel(), GameController.getCurLevelNumber()).getFileName()); - break; - case KeyEvent.VK_S: // superlemming on/off + case KeyEvent.VK_1: + case KeyEvent.VK_F3: + GameController.handleIconButton(Icons.Type.CLIMB); + break; + case KeyEvent.VK_2: + case KeyEvent.VK_F4: + GameController.handleIconButton(Icons.Type.FLOAT); + break; + case KeyEvent.VK_3: + case KeyEvent.VK_F5: + GameController.handleIconButton(Icons.Type.BOMB); + break; + case KeyEvent.VK_4: + case KeyEvent.VK_F6: + GameController.handleIconButton(Icons.Type.BLOCK); + break; + case KeyEvent.VK_5: + case KeyEvent.VK_F7: + GameController.handleIconButton(Icons.Type.BUILD); + break; + case KeyEvent.VK_6: + case KeyEvent.VK_F8: + GameController.handleIconButton(Icons.Type.BASH); + break; + case KeyEvent.VK_7: + case KeyEvent.VK_F9: + GameController.handleIconButton(Icons.Type.MINE); + break; + case KeyEvent.VK_8: + case KeyEvent.VK_F10: + GameController.handleIconButton(Icons.Type.DIG); + break; + case KeyEvent.VK_D: + if (GameController.isCheat()) + gp.setDebugDraw(!gp.getDebugDraw()); + break; + case KeyEvent.VK_W: + if (GameController.isCheat()) { + GameController.setNumLeft(GameController.getNumLemmingsMax()); + GameController.endLevel(); + } + break; + case KeyEvent.VK_L: // print current level on the console + if (GameController.isCheat()) + System.out.println(GameController.getLevelPack(GameController.getCurLevelPackIdx()).getInfo(GameController.getCurDiffLevel(), GameController.getCurLevelNumber()).getFileName()); + break; + case KeyEvent.VK_S: // superlemming on/off + if (GameController.isCheat()) + GameController.setSuperLemming(!GameController.isSuperLemming()); + else { + try{ + File file = new File(Core.resourcePath+"/level.png"); + BufferedImage tmp = GameController.getLevel().createMiniMap(null,GameController.getBgImage(), 1, 1, false); + ImageIO.write(tmp, "png", file); + } catch (Exception ex) {} + } + break; + case KeyEvent.VK_C: + if (Core.player.isCheat()) { + GameController.setCheat(!GameController.isCheat()); if (GameController.isCheat()) - GameController.setSuperLemming(!GameController.isSuperLemming()); - else { - try{ - File file = new File(Core.resourcePath+"/level.png"); - BufferedImage tmp = GameController.getLevel().createMiniMap(null,GameController.getBgImage(), 1, 1, false); - ImageIO.write(tmp, "png", file); - } catch (Exception ex) {} - } - break; - case KeyEvent.VK_C: - if (Core.player.isCheat()) { - GameController.setCheat(!GameController.isCheat()); - if (GameController.isCheat()) - GameController.setWasCheated(true); - } + GameController.setWasCheated(true); + } + else + GameController.setCheat(false); + break; + case KeyEvent.VK_F11: + case KeyEvent.VK_P: + GameController.setPaused(!GameController.isPaused()); + GameController.pressIcon(Icons.Type.PAUSE); + break; + case KeyEvent.VK_F: + case KeyEvent.VK_ENTER: + GameController.setFastForward(!GameController.isFastForward()); + GameController.pressIcon(Icons.Type.FFWD); + break; + case KeyEvent.VK_X: + if (GameController.isCheat()) + patchLevel(GameController.getLevelPack(GameController.getCurLevelPackIdx()).getInfo(GameController.getCurDiffLevel(), GameController.getCurLevelNumber()).getFileName()); + break; + case KeyEvent.VK_RIGHT /*39*/: { + if (GameController.isAdvancedSelect()) + gp.setCursor(LemmCursor.Type.RIGHT); + else { + int xOfsTemp = GameController.getxPos() + ((gp.isShiftPressed()) ? GraphicsPane.X_STEP_FAST : GraphicsPane.X_STEP); + if (xOfsTemp < Level.WIDTH-this.getWidth()) + GameController.setxPos(xOfsTemp); else - GameController.setCheat(false); - break; - case KeyEvent.VK_F11: - case KeyEvent.VK_P: - GameController.setPaused(!GameController.isPaused()); - GameController.pressIcon(Icons.Type.PAUSE); - break; - case KeyEvent.VK_F: - case KeyEvent.VK_ENTER: - GameController.setFastForward(!GameController.isFastForward()); - GameController.pressIcon(Icons.Type.FFWD); - break; - case KeyEvent.VK_X: - if (GameController.isCheat()) - patchLevel(GameController.getLevelPack(GameController.getCurLevelPackIdx()).getInfo(GameController.getCurDiffLevel(), GameController.getCurLevelNumber()).getFileName()); - break; - case KeyEvent.VK_RIGHT /*39*/: { - if (GameController.isAdvancedSelect()) - gp.setCursor(LemmCursor.Type.RIGHT); - else { - int xOfsTemp = GameController.getxPos() + ((gp.isShiftPressed()) ? GraphicsPane.X_STEP_FAST : GraphicsPane.X_STEP); - if (xOfsTemp < Level.WIDTH-this.getWidth()) - GameController.setxPos(xOfsTemp); - else - GameController.setxPos(Level.WIDTH-this.getWidth()); - } - break; } - case KeyEvent.VK_LEFT /*37*/: { - if (GameController.isAdvancedSelect()) - gp.setCursor(LemmCursor.Type.LEFT); - else { - int xOfsTemp = GameController.getxPos() - ((gp.isShiftPressed()) ? GraphicsPane.X_STEP_FAST : GraphicsPane.X_STEP); - if (xOfsTemp > 0) - GameController.setxPos(xOfsTemp); - else - GameController.setxPos(0); - } - break; } - case KeyEvent.VK_UP: { - gp.setCursor(LemmCursor.Type.WALKER); - break;} - case KeyEvent.VK_SHIFT: - gp.setShiftPressed(true); - break; - case KeyEvent.VK_SPACE: - if (GameController.isCheat()) { - Lemming l = new Lemming(gp.getCursorX(), gp.getCursorY()); - synchronized (GameController.getLemmings()) { - GameController.getLemmings().add(l); - } + GameController.setxPos(Level.WIDTH-this.getWidth()); + } + break; } + case KeyEvent.VK_LEFT /*37*/: { + if (GameController.isAdvancedSelect()) + gp.setCursor(LemmCursor.Type.LEFT); + else { + int xOfsTemp = GameController.getxPos() - ((gp.isShiftPressed()) ? GraphicsPane.X_STEP_FAST : GraphicsPane.X_STEP); + if (xOfsTemp > 0) + GameController.setxPos(xOfsTemp); + else + GameController.setxPos(0); + } + break; } + case KeyEvent.VK_UP: { + gp.setCursor(LemmCursor.Type.WALKER); + break;} + case KeyEvent.VK_SHIFT: + gp.setShiftPressed(true); + break; + case KeyEvent.VK_SPACE: + if (GameController.isCheat()) { + Lemming l = new Lemming(gp.getCursorX(), gp.getCursorY()); + synchronized (GameController.getLemmings()) { + GameController.getLemmings().add(l); } - break; - case KeyEvent.VK_PLUS: - case KeyEvent.VK_ADD: - case KeyEvent.VK_F2: - GameController.pressPlus(GameController.KEYREPEAT_KEY); - break; - case KeyEvent.VK_MINUS: - case KeyEvent.VK_SUBTRACT: - case KeyEvent.VK_F1: - GameController.pressMinus(GameController.KEYREPEAT_KEY); - break; - case KeyEvent.VK_F12: - GameController.handleIconButton(Icons.Type.NUKE); - break; + } + break; + case KeyEvent.VK_Q: + if (GameController.cheat) { + GameController.modeW=true; + // GameController.stencil = GameController.level.paintLevel(GameController.bgImage, Core.getCmp(), GameController.stencil,3); + for(int pixelj=0;pixelj 40 && yMouseScreen this.getWidth() - AUTOSCROLL_RANGE) { - xOfsTemp = GameController.getxPos() + ((shiftPressed) ? X_STEP_FAST : X_STEP); - if (xOfsTemp < Level.WIDTH-this.getWidth()) - GameController.setxPos(xOfsTemp); - else - GameController.setxPos(Level.WIDTH-this.getWidth()); - } else if (xMouseScreen < AUTOSCROLL_RANGE) { - xOfsTemp = GameController.getxPos() - ((shiftPressed) ? X_STEP_FAST : X_STEP); - if (xOfsTemp > 0) - GameController.setxPos(xOfsTemp); - else - GameController.setxPos(0); - } + case INTRO: + TextScreen.setMode(TextScreen.Mode.INTRO); + TextScreen.update(); + offGfx.drawImage(TextScreen.getScreen(), 0,0,null); + //offGfx.drawImage(LemmCursor.getImage(LemmCursor.TYPE_NORMAL), LemmCursor.x, LemmCursor.y, null); + break; + case BRIEFING: + TextScreen.setMode(TextScreen.Mode.BRIEFING); + TextScreen.update(); + offGfx.drawImage(TextScreen.getScreen(), 0,0,null); + //offGfx.drawImage(LemmCursor.getImage(LemmCursor.TYPE_NORMAL), LemmCursor.x, LemmCursor.y, null); + break; + case DEBRIEFING: + TextScreen.setMode(TextScreen.Mode.DEBRIEFING); + TextScreen.update(); + offGfx.drawImage(TextScreen.getScreen(), 0,0,null); + TextScreen.getDialog().handleMouseMove(xMouseScreen, yMouseScreen); + //offGfx.drawImage(LemmCursor.getImage(LemmCursor.TYPE_NORMAL), LemmCursor.x, LemmCursor.y, null); + break; + case LEVEL: + case LEVEL_END: + if (bgImage != null) { + GameController.update(); + // mouse movement + if (yMouseScreen > 40 && yMouseScreen this.getWidth() - AUTOSCROLL_RANGE) { + xOfsTemp = GameController.getxPos() + ((shiftPressed) ? X_STEP_FAST : X_STEP); + if (xOfsTemp < Level.WIDTH-this.getWidth()) + GameController.setxPos(xOfsTemp); + else + GameController.setxPos(Level.WIDTH-this.getWidth()); + } else if (xMouseScreen < AUTOSCROLL_RANGE) { + xOfsTemp = GameController.getxPos() - ((shiftPressed) ? X_STEP_FAST : X_STEP); + if (xOfsTemp > 0) + GameController.setxPos(xOfsTemp); + else + GameController.setxPos(0); } - // store local copy of xOfs to avoid sync problems with AWT threads - // (scrolling by dragging changes xOfs as well) - int xOfsTemp = GameController.getxPos(); + } + // store local copy of xOfs to avoid sync problems with AWT threads + // (scrolling by dragging changes xOfs as well) + int xOfsTemp = GameController.getxPos(); - //timeBaseRedraw +=GameController.timePerFrame; - int w = this.getWidth(); - int h = Level.HEIGHT; - if (h>this.getHeight()) - h = this.getHeight(); + //timeBaseRedraw +=GameController.timePerFrame; + int w = this.getWidth(); + int h = Level.HEIGHT; + if (h>this.getHeight()) + h = this.getHeight(); - Level level = GameController.getLevel(); - if (level != null) { + Level level = GameController.getLevel(); + if (level != null) { - // clear screen - offGfx.setClip(0,0,w,h); - offGfx.setBackground(level.getBgColor()); - offGfx.clearRect(0, 0, w, h); + // clear screen + offGfx.setClip(0,0,w,h); + offGfx.setBackground(level.getBgColor()); + offGfx.clearRect(0, 0, w, h); - // draw "behind" objects - GameController.getLevel().drawBehindObjects(offGfx, w, xOfsTemp); + // draw "behind" objects + GameController.getLevel().drawBehindObjects(offGfx, w, xOfsTemp); - // draw background - offGfx.drawImage(bgImage, 0, 0, w, h, xOfsTemp, 0, xOfsTemp+w, h, this); + // draw backgroundtest + offGfx.drawImage(bgImage, 0, 0, w, h, xOfsTemp, 0, xOfsTemp+w, h, this); - // draw "in front" objects - GameController.getLevel().drawInFrontObjects(offGfx, w, xOfsTemp); - } - // clear parts of the screen for menu etc. - offGfx.setClip(0,Level.HEIGHT,w,this.getHeight()); - offGfx.setBackground(Color.BLACK); - offGfx.clearRect(0,scoreY,w,this.getHeight()); - // draw counter, icons, small level pic - // draw menu - //Icons icons = GameController.getIcons(); - GameController.drawIcons(offGfx, 0, iconsY); - offGfx.drawImage(MiscGfx.getImage(MiscGfx.Index.BORDER), smallX-4, smallY-4, null); - MiniMap.draw(offGfx, smallX, smallY, xOfsTemp); - // draw counters - GameController.drawCounters(offGfx,counterY); - - // draw lemmings - offGfx.setClip(0,0,w,h); - GameController.getLemmsUnderCursor().clear(); - List lemmings = GameController.getLemmings(); - synchronized (GameController.getLemmings()) { - Iterator it = lemmings.iterator(); - while (it.hasNext()) { - Lemming l = it.next(); - int lx = l.screenX(); - int ly = l.screenY(); - int mx = l.midX()-16; - if (lx+l.width() > xOfsTemp && lx < xOfsTemp+w) { - offGfx.drawImage(l.getImage(),lx-xOfsTemp,ly,null); - if (LemmCursor.doesCollide(l, xOfsTemp)) { - GameController.getLemmsUnderCursor().add(l); - } - BufferedImage cd = l.getCountdown(); - if (cd!=null) - offGfx.drawImage(cd,mx-xOfsTemp,ly-cd.getHeight(),null); + // draw "in front" objects + GameController.getLevel().drawInFrontObjects(offGfx, w, xOfsTemp); + } + + + // clear parts of the screen for menu etc. + offGfx.setClip(0,Level.HEIGHT,w,this.getHeight()); + offGfx.setBackground(Color.BLACK); + offGfx.clearRect(0,scoreY,w,this.getHeight()); + // draw counter, icons, small level pic + // draw menu + //Icons icons = GameController.getIcons(); + GameController.drawIcons(offGfx, 0, iconsY); + offGfx.drawImage(MiscGfx.getImage(MiscGfx.Index.BORDER), smallX-4, smallY-4, null); + MiniMap.draw(offGfx, smallX, smallY, xOfsTemp); + // draw counters + GameController.drawCounters(offGfx,counterY); + + // draw lemmings + offGfx.setClip(0,0,w,h); + GameController.getLemmsUnderCursor().clear(); + List lemmings = GameController.getLemmings(); + synchronized (GameController.getLemmings()) { + Iterator it = lemmings.iterator(); + while (it.hasNext()) { + Lemming l = it.next(); + int lx = l.screenX(); + int ly = l.screenY(); + int mx = l.midX()-16; + if (lx+l.width() > xOfsTemp && lx < xOfsTemp+w) { + offGfx.drawImage(l.getImage(),lx-xOfsTemp,ly,null); + if (LemmCursor.doesCollide(l, xOfsTemp)) { + GameController.getLemmsUnderCursor().add(l); + } + BufferedImage cd = l.getCountdown(); + if (cd!=null) + offGfx.drawImage(cd,mx-xOfsTemp,ly-cd.getHeight(),null); - BufferedImage sel = l.getSelectImg(); - if (sel!=null) - offGfx.drawImage(sel,mx-xOfsTemp,ly-sel.getHeight(),null); + BufferedImage sel = l.getSelectImg(); + if (sel!=null) + offGfx.drawImage(sel,mx-xOfsTemp,ly-sel.getHeight(),null); - } - } - // draw pixels in mini map - offGfx.setClip(0,0,w,this.getHeight()); - it = lemmings.iterator(); - while (it.hasNext()) { - Lemming l = it.next(); - int lx = l.screenX(); - int ly = l.screenY(); - // draw pixel in mini map - MiniMap.drawLemming(offGfx, lx, ly); } } - Lemming lemmUnderCursor = GameController.lemmUnderCursor(LemmCursor.getType()); - offGfx.setClip(0,0,w,h); - // draw explosions - GameController.drawExplosions(offGfx,offImage[0].getWidth(), Level.HEIGHT, xOfsTemp); + // draw pixels in mini map offGfx.setClip(0,0,w,this.getHeight()); - - // draw info string - outStrGfx.clearRect(0, 0, outStrImg.getWidth(), outStrImg.getHeight()); - if (GameController.isCheat()) { - Stencil stencil = GameController.getStencil(); - if (stencil != null) { - int stencilVal = stencil.get(xMouse+yMouse*Level.WIDTH); - String test = "x: "+xMouse+", y: "+yMouse+", mask: "+(stencilVal&0xffff)+" "+Stencil.getObjectID(stencilVal); - LemmFont.strImage(outStrGfx, test); - offGfx.drawImage(outStrImg,4,Level.HEIGHT+8,null); - } - } else { - StringBuffer sb = new StringBuffer(); - sb.append("OUT "); - String s = Integer.toString(GameController.getLemmings().size()); - sb.append(s); - if (s.length()==1) - sb.append(" "); - sb.append(" IN "); - s = Integer.toString(GameController.getNumLeft()*100/GameController.getNumLemmingsMax()); - if (s.length()==1) - sb.append("0"); - sb.append(s); - sb.append("% TIME ").append(GameController.getTimeString()); - //BufferedImage iout = LemmFont.strImage(out); - String n=null; - if (lemmUnderCursor != null) { - n = lemmUnderCursor.getName(); - // display also the total number of lemmings under the cursor - int num = GameController.getLemmsUnderCursor().size(); - if (num > 1) - n = n + " " + Integer.toString(num); - } - if (n!=null) { - int ln = n.length(); - if (ln>14) - ln = 14; - sb.insert(0," ".substring(0, 14-ln)); - sb.insert(0,n); - } else - sb.insert(0," "); - LemmFont.strImage(outStrGfx, sb.toString()); + it = lemmings.iterator(); + while (it.hasNext()) { + Lemming l = it.next(); + int lx = l.screenX(); + int ly = l.screenY(); + // draw pixel in mini map + MiniMap.drawLemming(offGfx, lx, ly); + } + } + Lemming lemmUnderCursor = GameController.lemmUnderCursor(LemmCursor.getType()); + offGfx.setClip(0,0,w,h); + // draw explosions + GameController.drawExplosions(offGfx,offImage[0].getWidth(), Level.HEIGHT, xOfsTemp); + offGfx.setClip(0,0,w,this.getHeight()); + + // draw info string + outStrGfx.clearRect(0, 0, outStrImg.getWidth(), outStrImg.getHeight()); + if (GameController.isCheat()) { + Stencil stencil = GameController.getStencil(); + if (stencil != null) { + int stencilVal = stencil.get(xMouse+yMouse*Level.WIDTH); + String test = "x: "+xMouse+", y: "+yMouse+", mask: "+(stencilVal&0xffff)+" "+Stencil.getObjectID(stencilVal); + LemmFont.strImage(outStrGfx, test); offGfx.drawImage(outStrImg,4,Level.HEIGHT+8,null); } - // replay icon - BufferedImage replayImage = GameController.getReplayImage(); - if (replayImage != null) - offGfx.drawImage(replayImage,this.getWidth()-2*replayImage.getWidth(),replayImage.getHeight(),null); - // draw cursor + } else { + StringBuffer sb = new StringBuffer(); + sb.append("OUT "); + String s = Integer.toString(GameController.getLemmings().size()); + sb.append(s); + if (s.length()==1) + sb.append(" "); + sb.append(" IN "); + s = Integer.toString(GameController.getNumLeft()*100/GameController.getNumLemmingsMax()); + if (s.length()==1) + sb.append("0"); + sb.append(s); + sb.append("% TIME ").append(GameController.getTimeString()); + //BufferedImage iout = LemmFont.strImage(out); + String n=null; if (lemmUnderCursor != null) { - int lx = lemmUnderCursor.midX()-xOfsTemp; - int ly = lemmUnderCursor.midY(); - BufferedImage cursorImg = LemmCursor.getBoxImage(); - lx -= cursorImg.getWidth()/2; - ly -= cursorImg.getHeight()/2; - offGfx.drawImage(cursorImg,lx,ly,null); + n = lemmUnderCursor.getName(); + // display also the total number of lemmings under the cursor + int num = GameController.getLemmsUnderCursor().size(); + if (num > 1) + n = n + " " + Integer.toString(num); } - //offGfx.drawImage(LemmCursor.getImage(0), LemmCursor.x, LemmCursor.y, null); + if (n!=null) { + int ln = n.length(); + if (ln>14) + ln = 14; + sb.insert(0," ".substring(0, 14-ln)); + sb.insert(0,n); + } else + sb.insert(0," "); + LemmFont.strImage(outStrGfx, sb.toString()); + offGfx.drawImage(outStrImg,4,Level.HEIGHT+8,null); + } + // replay icon + BufferedImage replayImage = GameController.getReplayImage(); + if (replayImage != null) + offGfx.drawImage(replayImage,this.getWidth()-2*replayImage.getWidth(),replayImage.getHeight(),null); + // draw cursor + if (lemmUnderCursor != null) { + int lx = lemmUnderCursor.midX()-xOfsTemp; + int ly = lemmUnderCursor.midY(); + BufferedImage cursorImg = LemmCursor.getBoxImage(); + lx -= cursorImg.getWidth()/2; + ly -= cursorImg.getHeight()/2; + offGfx.drawImage(cursorImg,lx,ly,null); } + //offGfx.drawImage(LemmCursor.getImage(0), LemmCursor.x, LemmCursor.y, null); + } } // fader @@ -1335,6 +1411,7 @@ class GraphicsPane extends JPanel implements Runnable, MouseListener, MouseMotio if (timerRepaint.timePassedAdd(GameController.MICROSEC_PER_FRAME)) { // time passed -> redraw necessary redraw(); + // special handling for fast forward or super lemming mode only during real gameplay if (gameState == GameController.State.LEVEL) { // in fast forward or super lemming modes, update the game mechanics @@ -1379,22 +1456,22 @@ class GraphicsPane extends JPanel implements Runnable, MouseListener, MouseMotio leftMousePressed = false; switch (GameController.getGameState()) { - case LEVEL: - if (y > iconsY && y < iconsY+Icons.HEIGHT) { - Icons.Type type = GameController.getIconType(x); - if (type != Icons.Type.INVALID) - GameController.releaseIcon(type); - } - // always release icons which don't stay pressed - // this is to avoid the icons get stuck when they're pressed, - // the the mouse is dragged out and released outside - GameController.releasePlus(GameController.KEYREPEAT_ICON); - GameController.releaseMinus(GameController.KEYREPEAT_ICON); - GameController.releaseIcon(Icons.Type.MINUS); - GameController.releaseIcon(Icons.Type.PLUS); - GameController.releaseIcon(Icons.Type.NUKE); - mouseevent.consume(); - break; + case LEVEL: + if (y > iconsY && y < iconsY+Icons.HEIGHT) { + Icons.Type type = GameController.getIconType(x); + if (type != Icons.Type.INVALID) + GameController.releaseIcon(type); + } + // always release icons which don't stay pressed + // this is to avoid the icons get stuck when they're pressed, + // the the mouse is dragged out and released outside + GameController.releasePlus(GameController.KEYREPEAT_ICON); + GameController.releaseMinus(GameController.KEYREPEAT_ICON); + GameController.releaseIcon(Icons.Type.MINUS); + GameController.releaseIcon(Icons.Type.PLUS); + GameController.releaseIcon(Icons.Type.NUKE); + mouseevent.consume(); + break; } } @@ -1419,70 +1496,70 @@ class GraphicsPane extends JPanel implements Runnable, MouseListener, MouseMotio return; switch (GameController.getGameState()) { - case BRIEFING: - MiniMap.init(smallX, smallY, 16, 8, true); - GameController.setTransition(GameController.TransitionState.TO_LEVEL); + case BRIEFING: + MiniMap.init(smallX, smallY, 16, 8, true); + GameController.setTransition(GameController.TransitionState.TO_LEVEL); + Fader.setState(Fader.State.OUT); + mouseevent.consume(); + break; + case DEBRIEFING: + int button = TextScreen.getDialog().handleLeftClick(x,y); + switch (button) { + case TextScreen.BUTTON_CONTINUE: + GameController.nextLevel(); // continue to next level + GameController.requestChangeLevel(GameController.getCurLevelPackIdx(), GameController.getCurDiffLevel(), + GameController.getCurLevelNumber(), false); + break; + case TextScreen.BUTTON_RESTART: + GameController.requestRestartLevel(false); + break; + case TextScreen.BUTTON_MENU: + GameController.setTransition(GameController.TransitionState.TO_INTRO); Fader.setState(Fader.State.OUT); - mouseevent.consume(); + ((JFrame)Core.getCmp()).setTitle("Lemmini"); break; - case DEBRIEFING: - int button = TextScreen.getDialog().handleLeftClick(x,y); - switch (button) { - case TextScreen.BUTTON_CONTINUE: - GameController.nextLevel(); // continue to next level - GameController.requestChangeLevel(GameController.getCurLevelPackIdx(), GameController.getCurDiffLevel(), - GameController.getCurLevelNumber(), false); - break; - case TextScreen.BUTTON_RESTART: - GameController.requestRestartLevel(false); - break; - case TextScreen.BUTTON_MENU: - GameController.setTransition(GameController.TransitionState.TO_INTRO); - Fader.setState(Fader.State.OUT); - ((JFrame)Core.getCmp()).setTitle("Lemmini"); - break; - case TextScreen.BUTTON_REPLAY: - GameController.requestRestartLevel(true); - break; - case TextScreen.BUTTON_SAVEREPLAY: - String replayPath = ToolBox.getFileName(Lemmini.thisFrame,Core.resourcePath,Core.REPLAY_EXTENSIONS,false); - if (replayPath != null) { - try { - String ext = ToolBox.getExtension(replayPath); - if (ext == null) - replayPath += ".rpl"; - if (GameController.saveReplay(replayPath)) - return; - // else: no success - JOptionPane.showMessageDialog(Core.getCmp(), "Error!", "Saving replay failed", JOptionPane.INFORMATION_MESSAGE); - } catch (Exception ex) { - ToolBox.showException(ex); - } - } - break; + case TextScreen.BUTTON_REPLAY: + GameController.requestRestartLevel(true); + break; + case TextScreen.BUTTON_SAVEREPLAY: + String replayPath = ToolBox.getFileName(Lemmini.thisFrame,Core.resourcePath,Core.REPLAY_EXTENSIONS,false); + if (replayPath != null) { + try { + String ext = ToolBox.getExtension(replayPath); + if (ext == null) + replayPath += ".rpl"; + if (GameController.saveReplay(replayPath)) + return; + // else: no success + JOptionPane.showMessageDialog(Core.getCmp(), "Error!", "Saving replay failed", JOptionPane.INFORMATION_MESSAGE); + } catch (Exception ex) { + ToolBox.showException(ex); + } } - mouseevent.consume(); break; - case LEVEL: - // debug drawing - debugDraw(x,y,leftMousePressed); - if (leftMousePressed) { - if (y > iconsY && y < iconsY+Icons.HEIGHT) { - Icons.Type type = GameController.getIconType(x); - if (type != Icons.Type.INVALID) { - GameController.handleIconButton(type); - } - } else { - Lemming l = GameController.lemmUnderCursor(LemmCursor.getType()); - if (l != null) - GameController.requestSkill(l); + } + mouseevent.consume(); + break; + case LEVEL: + // debug drawing + debugDraw(x,y,leftMousePressed); + if (leftMousePressed) { + if (y > iconsY && y < iconsY+Icons.HEIGHT) { + Icons.Type type = GameController.getIconType(x); + if (type != Icons.Type.INVALID) { + GameController.handleIconButton(type); } - // check minimap mouse move - int ofs = MiniMap.move(x,y,this.getWidth()); - if (ofs != -1) - GameController.setxPos(ofs); - mouseevent.consume(); + } else { + Lemming l = GameController.lemmUnderCursor(LemmCursor.getType()); + if (l != null) + GameController.requestSkill(l); } + // check minimap mouse move + int ofs = MiniMap.move(x,y,this.getWidth()); + if (ofs != -1) + GameController.setxPos(ofs); + mouseevent.consume(); + } } } @@ -1528,36 +1605,36 @@ class GraphicsPane extends JPanel implements Runnable, MouseListener, MouseMotio public void mouseExited(final MouseEvent mouseevent) { int x = xMouseScreen + mouseDx; switch (GameController.getGameState()) { - case BRIEFING: - case DEBRIEFING: - case LEVEL: - if (x>=this.getWidth()) - x = this.getWidth()-1; - if (x<0) - x = 0; - xMouseScreen = x; - x += GameController.getxPos(); - if (x>=Level.WIDTH) - x = Level.WIDTH-1; - xMouse = x; - LemmCursor.setX(xMouseScreen/*-LemmCursor.width/2*/); - - int y = yMouseScreen + mouseDy; - if (y >= this.getHeight()) - y = this.getHeight()-1; - if (y<0) - y = 0; - yMouseScreen = y; - - y = yMouse + mouseDy; - if (y >= Level.HEIGHT) - y = Level.HEIGHT-1; - if (y<0) - y = 0; - yMouse = y; - LemmCursor.setY(yMouseScreen/*-LemmCursor.height/2*/); - mouseevent.consume(); - break; + case BRIEFING: + case DEBRIEFING: + case LEVEL: + if (x>=this.getWidth()) + x = this.getWidth()-1; + if (x<0) + x = 0; + xMouseScreen = x; + x += GameController.getxPos(); + if (x>=Level.WIDTH) + x = Level.WIDTH-1; + xMouse = x; + LemmCursor.setX(xMouseScreen/*-LemmCursor.width/2*/); + + int y = yMouseScreen + mouseDy; + if (y >= this.getHeight()) + y = this.getHeight()-1; + if (y<0) + y = 0; + yMouseScreen = y; + + y = yMouse + mouseDy; + if (y >= Level.HEIGHT) + y = Level.HEIGHT-1; + if (y<0) + y = 0; + yMouse = y; + LemmCursor.setY(yMouseScreen/*-LemmCursor.height/2*/); + mouseevent.consume(); + break; } } @@ -1569,26 +1646,26 @@ class GraphicsPane extends JPanel implements Runnable, MouseListener, MouseMotio mouseDy = 0; // check minimap mouse move switch (GameController.getGameState()) { - case LEVEL: - int x = mouseevent.getX(); - int y = mouseevent.getY(); - if (leftMousePressed) { - int ofs = MiniMap.move(x,y,this.getWidth()); - if (ofs != -1) - GameController.setxPos(ofs); - } else { - int xOfsTemp = GameController.getxPos() + (x-mouseDragStartX); - if (xOfsTemp < 0) - xOfsTemp = 0; - else if (xOfsTemp >= Level.WIDTH-this.getWidth()) - GameController.setxPos(Level.WIDTH-this.getWidth()); - else GameController.setxPos(xOfsTemp); - } - // debug drawing - debugDraw(x,y,leftMousePressed); - mouseMoved(mouseevent); - mouseevent.consume(); - break; + case LEVEL: + int x = mouseevent.getX(); + int y = mouseevent.getY(); + if (leftMousePressed) { + int ofs = MiniMap.move(x,y,this.getWidth()); + if (ofs != -1) + GameController.setxPos(ofs); + } else { + int xOfsTemp = GameController.getxPos() + (x-mouseDragStartX); + if (xOfsTemp < 0) + xOfsTemp = 0; + else if (xOfsTemp >= Level.WIDTH-this.getWidth()) + GameController.setxPos(Level.WIDTH-this.getWidth()); + else GameController.setxPos(xOfsTemp); + } + // debug drawing + debugDraw(x,y,leftMousePressed); + mouseMoved(mouseevent); + mouseevent.consume(); + break; } } @@ -1624,17 +1701,17 @@ class GraphicsPane extends JPanel implements Runnable, MouseListener, MouseMotio LemmCursor.setY(yMouseScreen/*-LemmCursor.height/2*/); switch (GameController.getGameState()) { - case INTRO: - case BRIEFING: - case DEBRIEFING: - TextScreen.getDialog().handleMouseMove(xMouseScreen, yMouseScreen); - //$FALL-THROUGH$ - case LEVEL: - mouseDx = (xMouse - oldX); - mouseDy = (yMouse - oldY); - mouseDragStartX = mouseevent.getX(); - mouseevent.consume(); - break; + case INTRO: + case BRIEFING: + case DEBRIEFING: + TextScreen.getDialog().handleMouseMove(xMouseScreen, yMouseScreen); + //$FALL-THROUGH$ + case LEVEL: + mouseDx = (xMouse - oldX); + mouseDy = (yMouse - oldY); + mouseDragStartX = mouseevent.getX(); + mouseevent.consume(); + break; } } -- cgit v1.2.3