From 18c8f3b2dc8661637a9cba66cfbc76ac80932b1f Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 19:50:09 +0000 Subject: [PATCH 01/25] fixed Harold telling players about about expiring earnings every minute --- doc/CHANGES.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index 36aed1a549..496b3e7329 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -25,6 +25,8 @@ Changelog - improved stability of the client in uncommon situations - stat changes that occurred during zone change (like losing xp on death) did not update the stats window. - click walking is now a lot smother +- fixed Harold telling players about about expiring earnings every minute + 0.81.3 - prevent crash on "No line matching interface" (fixes #2970406) From b2bdf4ac55ef67d1e5bc042bedae8759553c66c8 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 20:08:44 +0000 Subject: [PATCH 02/25] backporting fixed typos and capitalised proper nouns by kymara --- doc/CHANGES.txt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index 496b3e7329..ea46e8ae5d 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -3,13 +3,13 @@ Changelog 0.82 *features - single click movement -- easter bunny -- pied piper quest +- Easter Bunny +- Pied Piper quest - open manual on key F1 - added /volume support for sound - asynchronous database access -- kalavan orb -- sad scientist quest +- Kalavan orb +- Sad Scientist quest *admins* - new /script AdminPortal.class @@ -24,8 +24,9 @@ Changelog - Carmen only asks for her quest if the player is at least level 2. - improved stability of the client in uncommon situations - stat changes that occurred during zone change (like losing xp on death) did not update the stats window. -- click walking is now a lot smother -- fixed Harold telling players about about expiring earnings every minute +- click walking is now a lot smoother +- fixed Harold telling players about expiring earnings every minute + 0.81.3 From 536cff582d7906d88976ea8b720c7eabb6e3a692 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 20:09:05 +0000 Subject: [PATCH 03/25] updated version number --- build.ant.properties | 2 +- runserver.bat | 2 +- runserver.sh | 2 +- src/games/stendhal/client/update/Version.java | 2 +- src/games/stendhal/common/Debug.java | 2 +- src/games/stendhal/server/core/engine/GenerateINI.java | 2 +- stendhal.jnlp | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build.ant.properties b/build.ant.properties index ed556285df..b2c07e95aa 100644 --- a/build.ant.properties +++ b/build.ant.properties @@ -76,7 +76,7 @@ version_server = http://arianne.sourceforge.net/stendhal.version # current version of stendhal version.old = 0.81 -version = 0.81.5 +version = 0.82 # javac options javac.deprecation = true diff --git a/runserver.bat b/runserver.bat index 29aca7e507..96b217b9ba 100644 --- a/runserver.bat +++ b/runserver.bat @@ -1,3 +1,3 @@ -set STENDHAL_VERSION=0.81.5 +set STENDHAL_VERSION=0.82 set LOCALCLASSPATH=.;data\script;data\conf;stendhal-server-%STENDHAL_VERSION%.jar;marauroa.jar;mysql-connector.jar;log4j.jar;commons-lang.jar;h2.jar java -Xmx400m -cp "%LOCALCLASSPATH%" marauroa.server.marauroad -c server.ini -l diff --git a/runserver.sh b/runserver.sh index 8322a4b628..dab6b1a21d 100644 --- a/runserver.sh +++ b/runserver.sh @@ -1,5 +1,5 @@ #!/bin/sh -STENDHAL_VERSION="0.81.5" +STENDHAL_VERSION="0.82" LOCALCLASSPATH=.:data/script/:data/conf/:stendhal-server-$STENDHAL_VERSION.jar:marauroa.jar:mysql-connector.jar:log4j.jar:commons-lang.jar:h2.jar diff --git a/src/games/stendhal/client/update/Version.java b/src/games/stendhal/client/update/Version.java index 0570658d44..113c8ec564 100644 --- a/src/games/stendhal/client/update/Version.java +++ b/src/games/stendhal/client/update/Version.java @@ -10,7 +10,7 @@ package games.stendhal.client.update; public class Version { /** Version Number. */ - public static final String VERSION = "0.81.5"; + public static final String VERSION = "0.82"; /** * Extract the specified number of parts from a version-string. diff --git a/src/games/stendhal/common/Debug.java b/src/games/stendhal/common/Debug.java index f34aa74bdb..3dced790db 100644 --- a/src/games/stendhal/common/Debug.java +++ b/src/games/stendhal/common/Debug.java @@ -25,7 +25,7 @@ public interface Debug { /** server version. */ // Note: This line is updated by build.xml using a regexp so be sure to adjust it in case you modify this line. - String VERSION = "0.81.5"; + String VERSION = "0.82"; /** diff --git a/src/games/stendhal/server/core/engine/GenerateINI.java b/src/games/stendhal/server/core/engine/GenerateINI.java index 815639af54..fd761758ed 100644 --- a/src/games/stendhal/server/core/engine/GenerateINI.java +++ b/src/games/stendhal/server/core/engine/GenerateINI.java @@ -233,7 +233,7 @@ public class GenerateINI { out.println(); out.println("server_typeGame=" + gameName); out.println("server_name=" + gameName + " Marauroa server"); - out.println("server_version=0.81.5"); + out.println("server_version=0.82"); out.println("server_contact=https://sourceforge.net/tracker/?atid=514826&group_id=66537&func=browse"); out.println(); out.println("# Extensions configured on the server. Enable at will."); diff --git a/stendhal.jnlp b/stendhal.jnlp index 472a2e0291..55ae6d012c 100644 --- a/stendhal.jnlp +++ b/stendhal.jnlp @@ -22,7 +22,7 @@ Some of these people are NPC, they will give you tasks to accomplish and hints t - + From 217d82fe0b2453701f44da1a3573c09f2bdba425 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 20:14:34 +0000 Subject: [PATCH 04/25] changed manual hint pointing to F1 instead of the first screen. --- src/games/stendhal/server/core/events/TutorialEventType.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/games/stendhal/server/core/events/TutorialEventType.java b/src/games/stendhal/server/core/events/TutorialEventType.java index af803bea87..241582e2a0 100644 --- a/src/games/stendhal/server/core/events/TutorialEventType.java +++ b/src/games/stendhal/server/core/events/TutorialEventType.java @@ -16,7 +16,7 @@ public enum TutorialEventType { VISIT_SEMOS_CITY( "You can get a map of Semos from Monogenes. Start by saying \"hi\". Or you can go down the steps to the dungeons and fight some creatures."), VISIT_SEMOS_DUNGEON( - "You can attack creatures by right clicking on them and choosing \"Attack\""), + "You can attack creatures by right clicking on them and choosing \"Attack\". Alternatively you can use double click."), VISIT_SEMOS_DUNGEON_2( "Be careful. If you walk deeper and deeper, the creatures will get more powerful."), VISIT_SEMOS_TAVERN( @@ -34,7 +34,7 @@ public enum TutorialEventType { FIRST_DEATH( "Oh, you have just died. But fortunately death is not permanent in this world."), TIMED_HELP( - "There is a manual with many pictures on the first screen before you login."), + "Press F1 to read the manual with many pictures."), TIMED_NAKED( "Oh, aren't you feeling cold? Right click on yourself and choose \"Set Outfit\" to get dressed."), TIMED_PASSWORD( From ca1bd904beb8afffcdb5f43f52a18f29f0ca5d12 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 20:18:43 +0000 Subject: [PATCH 05/25] fixed help about /volume --- src/games/stendhal/client/actions/HelpAction.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/games/stendhal/client/actions/HelpAction.java b/src/games/stendhal/client/actions/HelpAction.java index 554718975e..fec5c08bf1 100644 --- a/src/games/stendhal/client/actions/HelpAction.java +++ b/src/games/stendhal/client/actions/HelpAction.java @@ -49,9 +49,8 @@ class HelpAction implements SlashAction { "* Misc: ", "- /info \t\tFind out what the current server time is", "- /mute\t\tMute or unmute the sounds", - "- /volume show\t\tShow the current volume of sounds and music", - "- /volume \t\tSets the volume for the specified group" - }; + "- /volume\t\tLists or sets the volume for sound and music" + }; for (final String line : lines) { ClientSingletonRepository.getUserInterface().addEventLine(new HeaderLessEventLine(line, NotificationType.CLIENT)); From 08cb38d40c151d6424cc299c4edb320327319cbe Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 20:28:18 +0000 Subject: [PATCH 06/25] fixed price of roach to 10 in hard coded shop signs (fixes #2971215) --- data/conf/zones/kirdneh.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/conf/zones/kirdneh.xml b/data/conf/zones/kirdneh.xml index 51e278b694..cff8987b72 100644 --- a/data/conf/zones/kirdneh.xml +++ b/data/conf/zones/kirdneh.xml @@ -49,7 +49,7 @@ Whut I be buyin: cod 10 char 30 trout 45 -roach 30 +roach 10 perch 22 mackerel 20 clownfish 30 From 8129768f6978d9e10b7fe3f1f05280d94c745aa9 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 20:34:41 +0000 Subject: [PATCH 07/25] backporting fixed error in speech by kymara --- src/games/stendhal/server/maps/quests/ThePiedPiper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/games/stendhal/server/maps/quests/ThePiedPiper.java b/src/games/stendhal/server/maps/quests/ThePiedPiper.java index 45790ce0a2..09129acbea 100644 --- a/src/games/stendhal/server/maps/quests/ThePiedPiper.java +++ b/src/games/stendhal/server/maps/quests/ThePiedPiper.java @@ -469,7 +469,7 @@ import org.apache.log4j.Logger; */ private void tellAllAboutNoRatsInCity() { final String text = "Mayor Chalmers shouts: No #rats in Ados survived, "+ - "excluded those who always lived in the "+ + "only those who always lived in the "+ "haunted house. "+ "Rat hunters are welcome to get their #reward."; SingletonRepository.getRuleProcessor().tellAllPlayers(text); From 38f14edc5e92de51fab826d800a32b53a45aea8b Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 21:07:23 +0000 Subject: [PATCH 08/25] don't move on single click unless the Stendhal window was focused --- .../stendhal/client/gui/wt/GroundContainer.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/games/stendhal/client/gui/wt/GroundContainer.java b/src/games/stendhal/client/gui/wt/GroundContainer.java index b0bffa9c7b..ac402cc81a 100644 --- a/src/games/stendhal/client/gui/wt/GroundContainer.java +++ b/src/games/stendhal/client/gui/wt/GroundContainer.java @@ -26,6 +26,7 @@ import games.stendhal.client.gui.wt.core.WtDraggable; import games.stendhal.client.gui.wt.core.WtDropTarget; import java.awt.Cursor; +import java.awt.KeyboardFocusManager; import java.awt.Point; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; @@ -46,6 +47,8 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, /** the game client. */ private final StendhalClient client; + private boolean windowWasActiveOnMousePressed = true; + /** * The UI. */ @@ -93,6 +96,15 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, return null; } + /** + * remembers whether the client was active on last mouse down + */ + @Override + public synchronized void mousePressed(MouseEvent e) { + windowWasActiveOnMousePressed = (KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow() != null); + super.mousePressed(e); + } + /** * * @@ -105,6 +117,7 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, // yes, click already processed return true; } + // get clicked entity final Point2D point = screen.convertScreenViewToWorld(p); @@ -127,7 +140,9 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, return true; } } else if (getWtPanelAt(p) == null) { - createAndSendMoveToAction(point); + if (windowWasActiveOnMousePressed) { + createAndSendMoveToAction(point); + } return true; } From 397029e4b20d10e306ca27fee4b87cfe9489c725 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 24 Mar 2010 23:13:42 +0000 Subject: [PATCH 09/25] backporting clicking on portals --- .../stendhal/client/gui/j2d/entity/Portal2DView.java | 6 ++++++ .../stendhal/server/core/pathfinder/Pathfinder.java | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java b/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java index 293aa52700..142132e920 100644 --- a/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java +++ b/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java @@ -73,4 +73,10 @@ class Portal2DView extends InvisibleEntity2DView { break; } } + + @Override + public boolean isInteractive() { + return false; + } + } diff --git a/src/games/stendhal/server/core/pathfinder/Pathfinder.java b/src/games/stendhal/server/core/pathfinder/Pathfinder.java index 13263e63e8..a38218b489 100644 --- a/src/games/stendhal/server/core/pathfinder/Pathfinder.java +++ b/src/games/stendhal/server/core/pathfinder/Pathfinder.java @@ -24,7 +24,10 @@ package games.stendhal.server.core.pathfinder; import games.stendhal.common.CollisionDetection; import games.stendhal.server.core.engine.StendhalRPZone; import games.stendhal.server.entity.Entity; +import games.stendhal.server.entity.mapstuff.portal.Portal; +import games.stendhal.server.entity.player.Player; +import java.awt.Point; import java.awt.geom.Rectangle2D; import java.util.Comparator; import java.util.HashMap; @@ -264,6 +267,7 @@ class Pathfinder { * have stopped */ private void createEntityCollisionMap() { + Point targetPoint = new Point(nodeGoal.getX(), nodeGoal.getY()); collisionMap = new CollisionDetection(); collisionMap.init(zone.getWidth(), zone.getHeight()); for (final RPObject obj : zone) { @@ -275,6 +279,11 @@ class Pathfinder { final Rectangle2D area = otherEntity.getArea(otherEntity.getX(), otherEntity.getY()); + + // Hack: Allow players to move onto portals as destination + if ((entity instanceof Player) && (otherEntity instanceof Portal) && area.contains(targetPoint)) { + continue; + } collisionMap.setCollide(area, true); } } From 577133f92079ca172f89747dd282c39f5cc28f0f Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 12:19:51 +0000 Subject: [PATCH 10/25] backported fix of warning about Easter Bunny already in the NPCList (this fix is part of the released version but was not in CVS because of a CVS sever downtime) --- src/games/stendhal/server/maps/quests/MeetBunny.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/games/stendhal/server/maps/quests/MeetBunny.java b/src/games/stendhal/server/maps/quests/MeetBunny.java index 2867d43a3e..c3cae843de 100644 --- a/src/games/stendhal/server/maps/quests/MeetBunny.java +++ b/src/games/stendhal/server/maps/quests/MeetBunny.java @@ -81,7 +81,6 @@ public class MeetBunny extends AbstractQuest { addGoodbye("Don't eat too much this Easter! Bye!"); } }; - npcs.add(bunny); bunny.setEntityClass("easterbunnynpc"); bunny.initHP(100); // times out twice as fast as normal NPCs From 368846ed5a721bd97c1651b81109a5888017dbfa Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 12:20:22 +0000 Subject: [PATCH 11/25] backported fix to stop the player walking animation on collision by kiheru (this fix is part of the released version but was not in CVS because of a CVS sever downtime) --- src/games/stendhal/server/entity/player/Player.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/games/stendhal/server/entity/player/Player.java b/src/games/stendhal/server/entity/player/Player.java index dbf6ebc15c..9390fa645d 100644 --- a/src/games/stendhal/server/entity/player/Player.java +++ b/src/games/stendhal/server/entity/player/Player.java @@ -1817,7 +1817,15 @@ public class Player extends RPEntity { } @Override protected void handleObjectCollision() { - clearPath(); + if (hasPath()) { + /* + * Stop a player only if he is following a path. + * Otherwise running behind archers becomes almost + * impossible. + */ + stop(); + clearPath(); + } } From 84f054a3ff5c6258da595facad91172f729199b6 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 12:55:10 +0000 Subject: [PATCH 12/25] ignore bogus mouse click event after drag&drop on MS Windows (fixes #2976895) --- .../stendhal/client/gui/wt/GroundContainer.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/games/stendhal/client/gui/wt/GroundContainer.java b/src/games/stendhal/client/gui/wt/GroundContainer.java index ac402cc81a..aac0fe1e1e 100644 --- a/src/games/stendhal/client/gui/wt/GroundContainer.java +++ b/src/games/stendhal/client/gui/wt/GroundContainer.java @@ -48,6 +48,8 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, private final StendhalClient client; private boolean windowWasActiveOnMousePressed = true; + private int xOnMousePressed; + private int yOnMousePressed; /** * The UI. @@ -102,16 +104,27 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, @Override public synchronized void mousePressed(MouseEvent e) { windowWasActiveOnMousePressed = (KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow() != null); + xOnMousePressed = e.getX(); + yOnMousePressed = e.getY(); super.mousePressed(e); } /** + * Handles mouse click events * - * - * + * @param p point of click */ @Override public synchronized boolean onMouseClick(final Point p) { + + // on MS Windows releasing the mouse after a drag&drop action is + // counted as mouse click: https://sourceforge.net/support/tracker.php?aid=2976895 + if ((Math.abs(p.getX() - xOnMousePressed) > 10) + || (Math.abs(p.getY() - yOnMousePressed) > 10)) { + return false; + } + + // base class checks if the click is within a child if (super.onMouseClick(p)) { // yes, click already processed From bfd2a354e015c76b2b3a33bc4b70f2735885c506 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 12:57:22 +0000 Subject: [PATCH 13/25] revert because it was committed to the wrong branch --- .../stendhal/client/gui/wt/GroundContainer.java | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/games/stendhal/client/gui/wt/GroundContainer.java b/src/games/stendhal/client/gui/wt/GroundContainer.java index aac0fe1e1e..ac402cc81a 100644 --- a/src/games/stendhal/client/gui/wt/GroundContainer.java +++ b/src/games/stendhal/client/gui/wt/GroundContainer.java @@ -48,8 +48,6 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, private final StendhalClient client; private boolean windowWasActiveOnMousePressed = true; - private int xOnMousePressed; - private int yOnMousePressed; /** * The UI. @@ -104,27 +102,16 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, @Override public synchronized void mousePressed(MouseEvent e) { windowWasActiveOnMousePressed = (KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow() != null); - xOnMousePressed = e.getX(); - yOnMousePressed = e.getY(); super.mousePressed(e); } /** - * Handles mouse click events * - * @param p point of click + * + * */ @Override public synchronized boolean onMouseClick(final Point p) { - - // on MS Windows releasing the mouse after a drag&drop action is - // counted as mouse click: https://sourceforge.net/support/tracker.php?aid=2976895 - if ((Math.abs(p.getX() - xOnMousePressed) > 10) - || (Math.abs(p.getY() - yOnMousePressed) > 10)) { - return false; - } - - // base class checks if the click is within a child if (super.onMouseClick(p)) { // yes, click already processed From de3f9eaabe9d58abdea08ec604764b5854f8527b Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 13:28:27 +0000 Subject: [PATCH 14/25] read mute state on initialisation of the sound system (fixes #2977329) --- .../stendhal/client/sound/sound/ExtendedSoundManager.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/games/stendhal/client/sound/sound/ExtendedSoundManager.java b/src/games/stendhal/client/sound/sound/ExtendedSoundManager.java index bc7ee74913..7e3d23e883 100644 --- a/src/games/stendhal/client/sound/sound/ExtendedSoundManager.java +++ b/src/games/stendhal/client/sound/sound/ExtendedSoundManager.java @@ -133,6 +133,7 @@ public class ExtendedSoundManager extends SoundManagerNG implements WorldListene ExtendedSoundManager() { super(!Boolean.parseBoolean(WtWindowManager.getInstance().getProperty("sound.play", "true")), mDeviceEvaluator.createDeviceList(mAudioFormat), mAudioFormat); + initMute(); initVolumes(); } @@ -149,6 +150,12 @@ public class ExtendedSoundManager extends SoundManagerNG implements WorldListene this.getGroup("music").changeVolume(Numeric.intToFloat(config.getPropertyInt("sound.volume.music", 60), 100.0f)); } + private void initMute() { + WtWindowManager config = WtWindowManager.getInstance(); + boolean play = Boolean.parseBoolean(config.getProperty("sound.play", "true")); + mute(!play, false, new Time(0, Time.Unit.SEC)); + } + public void playerMoved() { float[] position = Algebra.vecf((float) User.get().getX(), (float) User.get().getY()); super.setHearerPosition(position); From 85464ebd21ed838c0e4ca182b960ae6ed15d1637 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 13:28:57 +0000 Subject: [PATCH 15/25] ignore bogus mouse click event after drag&drop on MS Windows (fixes #2976895) --- .../stendhal/client/gui/wt/GroundContainer.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/games/stendhal/client/gui/wt/GroundContainer.java b/src/games/stendhal/client/gui/wt/GroundContainer.java index ac402cc81a..aac0fe1e1e 100644 --- a/src/games/stendhal/client/gui/wt/GroundContainer.java +++ b/src/games/stendhal/client/gui/wt/GroundContainer.java @@ -48,6 +48,8 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, private final StendhalClient client; private boolean windowWasActiveOnMousePressed = true; + private int xOnMousePressed; + private int yOnMousePressed; /** * The UI. @@ -102,16 +104,27 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, @Override public synchronized void mousePressed(MouseEvent e) { windowWasActiveOnMousePressed = (KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow() != null); + xOnMousePressed = e.getX(); + yOnMousePressed = e.getY(); super.mousePressed(e); } /** + * Handles mouse click events * - * - * + * @param p point of click */ @Override public synchronized boolean onMouseClick(final Point p) { + + // on MS Windows releasing the mouse after a drag&drop action is + // counted as mouse click: https://sourceforge.net/support/tracker.php?aid=2976895 + if ((Math.abs(p.getX() - xOnMousePressed) > 10) + || (Math.abs(p.getY() - yOnMousePressed) > 10)) { + return false; + } + + // base class checks if the click is within a child if (super.onMouseClick(p)) { // yes, click already processed From 1b724101f9b5d07d38447027a135d5cc11da248d Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 13:29:51 +0000 Subject: [PATCH 16/25] backported fix for owning animals by kiheru (fixes #2977315) --- src/games/stendhal/server/actions/pet/OwnAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/games/stendhal/server/actions/pet/OwnAction.java b/src/games/stendhal/server/actions/pet/OwnAction.java index 54e5a2bfd7..4cd5185d7b 100644 --- a/src/games/stendhal/server/actions/pet/OwnAction.java +++ b/src/games/stendhal/server/actions/pet/OwnAction.java @@ -55,7 +55,7 @@ public class OwnAction implements ActionListener { final Entity entity = EntityHelper.entityFromTargetName(action.get(TARGET), player); if (entity != null) { - if (checkEntityIsDomesticAnimal(player, entity)) { + if (!checkEntityIsDomesticAnimal(player, entity)) { return; } From 635e237d0725e98b649101a01316cbfb3585f5e2 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 16:32:05 +0000 Subject: [PATCH 17/25] new command /clickmode to switch between single and double click for walking (fixes #2977326) --- .../client/actions/ClickModeAction.java | 34 +++++++++++++++++++ .../client/actions/SlashActionRepository.java | 3 +- .../client/gui/wt/GroundContainer.java | 8 +++-- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/games/stendhal/client/actions/ClickModeAction.java diff --git a/src/games/stendhal/client/actions/ClickModeAction.java b/src/games/stendhal/client/actions/ClickModeAction.java new file mode 100644 index 0000000000..0b9d38e422 --- /dev/null +++ b/src/games/stendhal/client/actions/ClickModeAction.java @@ -0,0 +1,34 @@ +package games.stendhal.client.actions; + +import games.stendhal.client.ClientSingletonRepository; +import games.stendhal.client.gui.chatlog.StandardEventLine; +import games.stendhal.client.gui.wt.core.WtWindowManager; + +/** + * switches between single click and double click + * + * @author hendrik + */ +public class ClickModeAction implements SlashAction { + + public boolean execute(String[] params, String remainder) { + boolean doubleClick = Boolean.parseBoolean(WtWindowManager.getInstance().getProperty("ui.doubleclick", "false")); + doubleClick = !doubleClick; + WtWindowManager.getInstance().setProperty("ui.doubleclick", Boolean.toString(doubleClick)); + if (doubleClick) { + ClientSingletonRepository.getUserInterface().addEventLine(new StandardEventLine("Click mode is now set to double click.")); + } else { + ClientSingletonRepository.getUserInterface().addEventLine(new StandardEventLine("Click mode is now set to single click.")); + } + return true; + } + + public int getMaximumParameters() { + return 0; + } + + public int getMinimumParameters() { + return 0; + } + +} diff --git a/src/games/stendhal/client/actions/SlashActionRepository.java b/src/games/stendhal/client/actions/SlashActionRepository.java index c8b9f478ef..b5dbfa3b1c 100644 --- a/src/games/stendhal/client/actions/SlashActionRepository.java +++ b/src/games/stendhal/client/actions/SlashActionRepository.java @@ -30,8 +30,9 @@ public class SlashActionRepository { actions.put("ban", new BanAction()); actions.put("clear", new ClearChatLogAction()); + actions.put("clickmode", new ClickModeAction()); actions.put("crash", new CrashClientAction()); - + actions.put("drop", new DropAction()); actions.put("faq", new FAQAction()); diff --git a/src/games/stendhal/client/gui/wt/GroundContainer.java b/src/games/stendhal/client/gui/wt/GroundContainer.java index aac0fe1e1e..c56438f7b5 100644 --- a/src/games/stendhal/client/gui/wt/GroundContainer.java +++ b/src/games/stendhal/client/gui/wt/GroundContainer.java @@ -24,6 +24,7 @@ import games.stendhal.client.gui.j2d.entity.EntityView; import games.stendhal.client.gui.wt.core.WtBaseframe; import games.stendhal.client.gui.wt.core.WtDraggable; import games.stendhal.client.gui.wt.core.WtDropTarget; +import games.stendhal.client.gui.wt.core.WtWindowManager; import java.awt.Cursor; import java.awt.KeyboardFocusManager; @@ -154,9 +155,12 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, } } else if (getWtPanelAt(p) == null) { if (windowWasActiveOnMousePressed) { - createAndSendMoveToAction(point); + boolean doubleClick = Boolean.parseBoolean(WtWindowManager.getInstance().getProperty("ui.doubleclick", "false")); + if (!doubleClick) { + createAndSendMoveToAction(point); + } } - return true; + return false; } return false; From 8f6cf92c09a172bc6d27f72687649a36cc252a60 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 16:34:59 +0000 Subject: [PATCH 18/25] removed the hint about having to change zone in the mute message since it is no longer true --- src/games/stendhal/client/actions/MuteAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/games/stendhal/client/actions/MuteAction.java b/src/games/stendhal/client/actions/MuteAction.java index b6f2025402..2155970b3e 100644 --- a/src/games/stendhal/client/actions/MuteAction.java +++ b/src/games/stendhal/client/actions/MuteAction.java @@ -29,7 +29,7 @@ class MuteAction implements SlashAction { if (play) { ClientSingletonRepository.getUserInterface().addEventLine(new StandardEventLine("Sounds are now on.")); } else { - ClientSingletonRepository.getUserInterface().addEventLine(new StandardEventLine("Sounds are now off. (You may need to change the zone to stop the background music).")); + ClientSingletonRepository.getUserInterface().addEventLine(new StandardEventLine("Sounds are now off.")); } return true; } From 4e8c30f7f2b0154f9bea417863318ef27ea1fbee Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 16:37:14 +0000 Subject: [PATCH 19/25] increased version number --- build.ant.properties | 4 ++-- runserver.bat | 2 +- runserver.sh | 2 +- src/games/stendhal/client/update/Version.java | 2 +- src/games/stendhal/common/Debug.java | 2 +- src/games/stendhal/server/core/engine/GenerateINI.java | 2 +- stendhal.jnlp | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build.ant.properties b/build.ant.properties index b2c07e95aa..1c1997922d 100644 --- a/build.ant.properties +++ b/build.ant.properties @@ -75,8 +75,8 @@ updates_server = http://arianne.sourceforge.net/stendhal/updates version_server = http://arianne.sourceforge.net/stendhal.version # current version of stendhal -version.old = 0.81 -version = 0.82 +version.old = 0.82 +version = 0.82.1 # javac options javac.deprecation = true diff --git a/runserver.bat b/runserver.bat index 96b217b9ba..e84cf0c7f4 100644 --- a/runserver.bat +++ b/runserver.bat @@ -1,3 +1,3 @@ -set STENDHAL_VERSION=0.82 +set STENDHAL_VERSION=0.82.1 set LOCALCLASSPATH=.;data\script;data\conf;stendhal-server-%STENDHAL_VERSION%.jar;marauroa.jar;mysql-connector.jar;log4j.jar;commons-lang.jar;h2.jar java -Xmx400m -cp "%LOCALCLASSPATH%" marauroa.server.marauroad -c server.ini -l diff --git a/runserver.sh b/runserver.sh index dab6b1a21d..2d38e844fc 100644 --- a/runserver.sh +++ b/runserver.sh @@ -1,5 +1,5 @@ #!/bin/sh -STENDHAL_VERSION="0.82" +STENDHAL_VERSION="0.82.1" LOCALCLASSPATH=.:data/script/:data/conf/:stendhal-server-$STENDHAL_VERSION.jar:marauroa.jar:mysql-connector.jar:log4j.jar:commons-lang.jar:h2.jar diff --git a/src/games/stendhal/client/update/Version.java b/src/games/stendhal/client/update/Version.java index 113c8ec564..ca354d09f5 100644 --- a/src/games/stendhal/client/update/Version.java +++ b/src/games/stendhal/client/update/Version.java @@ -10,7 +10,7 @@ package games.stendhal.client.update; public class Version { /** Version Number. */ - public static final String VERSION = "0.82"; + public static final String VERSION = "0.82.1"; /** * Extract the specified number of parts from a version-string. diff --git a/src/games/stendhal/common/Debug.java b/src/games/stendhal/common/Debug.java index 3dced790db..607e71d580 100644 --- a/src/games/stendhal/common/Debug.java +++ b/src/games/stendhal/common/Debug.java @@ -25,7 +25,7 @@ public interface Debug { /** server version. */ // Note: This line is updated by build.xml using a regexp so be sure to adjust it in case you modify this line. - String VERSION = "0.82"; + String VERSION = "0.82.1"; /** diff --git a/src/games/stendhal/server/core/engine/GenerateINI.java b/src/games/stendhal/server/core/engine/GenerateINI.java index fd761758ed..75362fb2ab 100644 --- a/src/games/stendhal/server/core/engine/GenerateINI.java +++ b/src/games/stendhal/server/core/engine/GenerateINI.java @@ -233,7 +233,7 @@ public class GenerateINI { out.println(); out.println("server_typeGame=" + gameName); out.println("server_name=" + gameName + " Marauroa server"); - out.println("server_version=0.82"); + out.println("server_version=0.82.1"); out.println("server_contact=https://sourceforge.net/tracker/?atid=514826&group_id=66537&func=browse"); out.println(); out.println("# Extensions configured on the server. Enable at will."); diff --git a/stendhal.jnlp b/stendhal.jnlp index 55ae6d012c..4c93625fcf 100644 --- a/stendhal.jnlp +++ b/stendhal.jnlp @@ -22,7 +22,7 @@ Some of these people are NPC, they will give you tasks to accomplish and hints t - + From ec0bd70627d868f98e89b31064129447b151fd46 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 27 Mar 2010 22:14:57 +0000 Subject: [PATCH 20/25] updated marauroa to obtain read lock before counting the number of unique ip-addresses for the statistics (fixes #2977800) --- libs/marauroa.jar | Bin 266340 -> 266355 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/libs/marauroa.jar b/libs/marauroa.jar index c5b57788555b885479532b7055c3514e4df17592..24273f583d8a96acaa2ecc3ded424874d93b9abf 100644 GIT binary patch delta 32794 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 z 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 YgkRF2`BR%fE-|D<(-MQPfq>xu2iCJY#{d8T delta 32839 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 From 4c8dcbe678e3a49320b446ea56a497f060c9bc26 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sun, 28 Mar 2010 09:47:11 +0000 Subject: [PATCH 21/25] added /clicmode to /help --- src/games/stendhal/client/actions/HelpAction.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/games/stendhal/client/actions/HelpAction.java b/src/games/stendhal/client/actions/HelpAction.java index fec5c08bf1..d3cf2b9ff0 100644 --- a/src/games/stendhal/client/actions/HelpAction.java +++ b/src/games/stendhal/client/actions/HelpAction.java @@ -47,6 +47,7 @@ class HelpAction implements SlashAction { "- /grumpy \t\tRemove status grumpy", "- /name \tGive a name to your pet", "* Misc: ", + "- /clickmode \t\t switches between single click mode and double click mode", "- /info \t\tFind out what the current server time is", "- /mute\t\tMute or unmute the sounds", "- /volume\t\tLists or sets the volume for sound and music" From aba5190b50b3da582bce4a4ed669f0dee86b420e Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sun, 28 Mar 2010 19:01:44 +0000 Subject: [PATCH 22/25] changes --- doc/CHANGES.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index ea46e8ae5d..6d710efd9c 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -1,5 +1,13 @@ Changelog --------- +0.82.1 + +- new command /clickmode to toggle between single click walking and double click walking +- fixed movement to drop target (only Microsoft Windows was affected) +- fixed /mute not being stored accross restarts +- fixed pets not ownable + + 0.82 *features - single click movement From a605d1146b80eab729f066be471a89fa6c7d91a5 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 30 Mar 2010 17:44:51 +0000 Subject: [PATCH 23/25] don't kill the client just because some zone data cannot be read --- src/games/stendhal/client/StendhalClient.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/games/stendhal/client/StendhalClient.java b/src/games/stendhal/client/StendhalClient.java index fd4482e7cb..b59307f73f 100644 --- a/src/games/stendhal/client/StendhalClient.java +++ b/src/games/stendhal/client/StendhalClient.java @@ -249,7 +249,6 @@ public class StendhalClient extends ClientFramework { handler.apply(message, world_objects); } catch (final Exception e) { logger.error("error processing message " + message, e); - System.exit(1); } } @@ -301,7 +300,6 @@ public class StendhalClient extends ClientFramework { } catch (final Exception e) { e.printStackTrace(); logger.error(e, e); - System.exit(1); } } else { logger.debug("Content " + item.name @@ -349,7 +347,6 @@ public class StendhalClient extends ClientFramework { contentHandling(item.name, new ByteArrayInputStream(item.data)); } catch (final Exception e) { logger.error("onTransfer", e); - System.exit(2); } } From b27c1c34e723cdfc3412820c5b1fb038c1d25916 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 30 Mar 2010 18:08:01 +0000 Subject: [PATCH 24/25] request retransmition of content if it cannot be loaded from cache (for example because the file got corrupted because the disk was full) --- doc/CHANGES.txt | 7 ++++++- src/games/stendhal/client/StendhalClient.java | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index 6d710efd9c..25f9af3000 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -1,7 +1,12 @@ Changelog --------- -0.82.1 +0.82.2 +*bugfixes* +- recover automatically from corrupted cache files + +0.82.1 +*bugfixes* - new command /clickmode to toggle between single click walking and double click walking - fixed movement to drop target (only Microsoft Windows was affected) - fixed /mute not being stored accross restarts diff --git a/src/games/stendhal/client/StendhalClient.java b/src/games/stendhal/client/StendhalClient.java index b59307f73f..f9014889b2 100644 --- a/src/games/stendhal/client/StendhalClient.java +++ b/src/games/stendhal/client/StendhalClient.java @@ -300,6 +300,9 @@ public class StendhalClient extends ClientFramework { } catch (final Exception e) { e.printStackTrace(); logger.error(e, e); + + // request retransmission + item.ack = true; } } else { logger.debug("Content " + item.name From 851b2b7e4ca7b6a64c8189dc01ef7eae93049794 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 30 Mar 2010 18:33:28 +0000 Subject: [PATCH 25/25] increased version number to 0.82.2 --- build.ant.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.ant.properties b/build.ant.properties index 1c1997922d..665e79b023 100644 --- a/build.ant.properties +++ b/build.ant.properties @@ -76,7 +76,7 @@ version_server = http://arianne.sourceforge.net/stendhal.version # current version of stendhal version.old = 0.82 -version = 0.82.1 +version = 0.82.2 # javac options javac.deprecation = true