summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS14
-rw-r--r--README2
-rw-r--r--data/help/changes.txt21
-rw-r--r--data/help/header.txt2
-rw-r--r--libs/enet/ChangeLog6
-rw-r--r--libs/enet/LICENSE2
-rw-r--r--libs/enet/include/enet/enet.h2
-rw-r--r--libs/enet/list.c2
-rw-r--r--libs/enet/peer.c2
-rw-r--r--libs/enet/protocol.c79
-rw-r--r--mana.cbp4
-rw-r--r--mana.files4
-rw-r--r--po/pt_BR.po6039
-rw-r--r--po/ru.po965
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/actorsprite.cpp12
-rw-r--r--src/being.cpp19
-rw-r--r--src/being.h6
-rw-r--r--src/chatlog.h7
-rw-r--r--src/client.cpp118
-rw-r--r--src/client.h28
-rw-r--r--src/commandhandler.h6
-rw-r--r--src/compoundsprite.cpp5
-rw-r--r--src/configuration.cpp30
-rw-r--r--src/configuration.h4
-rw-r--r--src/defaults.cpp2
-rw-r--r--src/defaults.h2
-rw-r--r--src/emoteshortcut.h6
-rw-r--r--src/equipment.h6
-rw-r--r--src/event.cpp17
-rw-r--r--src/event.h191
-rw-r--r--src/eventlistener.cpp (renamed from src/listener.cpp)13
-rw-r--r--src/eventlistener.h (renamed from src/listener.h)21
-rw-r--r--src/flooritem.h2
-rw-r--r--src/game.cpp44
-rw-r--r--src/graphics.h6
-rw-r--r--src/gui/beingpopup.h6
-rw-r--r--src/gui/buy.h8
-rw-r--r--src/gui/changeemaildialog.h8
-rw-r--r--src/gui/changepassworddialog.h8
-rw-r--r--src/gui/charcreatedialog.h6
-rw-r--r--src/gui/charselectdialog.h3
-rw-r--r--src/gui/chat.cpp22
-rw-r--r--src/gui/chat.h9
-rw-r--r--src/gui/confirmdialog.h5
-rw-r--r--src/gui/debugwindow.h3
-rw-r--r--src/gui/equipmentwindow.cpp2
-rw-r--r--src/gui/equipmentwindow.h18
-rw-r--r--src/gui/gui.cpp12
-rw-r--r--src/gui/gui.h6
-rw-r--r--src/gui/help.h3
-rw-r--r--src/gui/inventorywindow.cpp84
-rw-r--r--src/gui/inventorywindow.h21
-rw-r--r--src/gui/itemamount.cpp12
-rw-r--r--src/gui/login.h5
-rw-r--r--src/gui/ministatus.cpp13
-rw-r--r--src/gui/ministatus.h6
-rw-r--r--src/gui/npcdialog.cpp42
-rw-r--r--src/gui/npcdialog.h11
-rw-r--r--src/gui/npcpostdialog.h3
-rw-r--r--src/gui/okdialog.h5
-rw-r--r--src/gui/outfitwindow.cpp4
-rw-r--r--src/gui/outfitwindow.h6
-rw-r--r--src/gui/palette.h6
-rw-r--r--src/gui/popupmenu.cpp6
-rw-r--r--src/gui/popupmenu.h3
-rw-r--r--src/gui/quitdialog.h3
-rw-r--r--src/gui/register.h3
-rw-r--r--src/gui/sell.h8
-rw-r--r--src/gui/serverdialog.cpp55
-rw-r--r--src/gui/serverdialog.h13
-rw-r--r--src/gui/setup_keyboard.h6
-rw-r--r--src/gui/setup_video.cpp44
-rw-r--r--src/gui/setup_video.h6
-rw-r--r--src/gui/shortcutwindow.h6
-rw-r--r--src/gui/skilldialog.cpp14
-rw-r--r--src/gui/skilldialog.h5
-rw-r--r--src/gui/socialwindow.cpp7
-rw-r--r--src/gui/speechbubble.h3
-rw-r--r--src/gui/statuswindow.cpp9
-rw-r--r--src/gui/statuswindow.h9
-rw-r--r--src/gui/textdialog.h5
-rw-r--r--src/gui/textpopup.h8
-rw-r--r--src/gui/trade.h6
-rw-r--r--src/gui/truetypefont.h3
-rw-r--r--src/gui/unregisterdialog.h5
-rw-r--r--src/gui/updatewindow.h7
-rw-r--r--src/gui/viewport.cpp51
-rw-r--r--src/gui/viewport.h40
-rw-r--r--src/gui/widgets/browserbox.h6
-rw-r--r--src/gui/widgets/button.h3
-rw-r--r--src/gui/widgets/channeltab.h6
-rw-r--r--src/gui/widgets/chattab.h3
-rw-r--r--src/gui/widgets/checkbox.h6
-rw-r--r--src/gui/widgets/emoteshortcutcontainer.h6
-rw-r--r--src/gui/widgets/flowcontainer.h8
-rw-r--r--src/gui/widgets/icon.h4
-rw-r--r--src/gui/widgets/itemcontainer.cpp60
-rw-r--r--src/gui/widgets/itemcontainer.h16
-rw-r--r--src/gui/widgets/itemshortcutcontainer.h6
-rw-r--r--src/gui/widgets/label.h5
-rw-r--r--src/gui/widgets/layouthelper.h6
-rw-r--r--src/gui/widgets/listbox.h3
-rw-r--r--src/gui/widgets/passwordfield.h2
-rw-r--r--src/gui/widgets/playerbox.h3
-rw-r--r--src/gui/widgets/radiobutton.h6
-rw-r--r--src/gui/widgets/resizegrip.h6
-rw-r--r--src/gui/widgets/shoplistbox.h6
-rw-r--r--src/gui/widgets/shortcutcontainer.h6
-rw-r--r--src/gui/widgets/slider.h9
-rw-r--r--src/gui/widgets/tabbedarea.h3
-rw-r--r--src/gui/widgets/textbox.h3
-rw-r--r--src/gui/worldselectdialog.h8
-rw-r--r--src/imageparticle.h3
-rw-r--r--src/inventory.h3
-rw-r--r--src/item.cpp12
-rw-r--r--src/item.h13
-rw-r--r--src/itemshortcut.cpp6
-rw-r--r--src/itemshortcut.h6
-rw-r--r--src/localplayer.cpp24
-rw-r--r--src/localplayer.h12
-rw-r--r--src/log.h7
-rw-r--r--src/main.h2
-rw-r--r--src/map.cpp3
-rw-r--r--src/map.h9
-rw-r--r--src/net/logindata.h5
-rw-r--r--src/net/manaserv/beinghandler.cpp31
-rw-r--r--src/net/manaserv/charhandler.cpp23
-rw-r--r--src/net/manaserv/chathandler.cpp13
-rw-r--r--src/net/manaserv/connection.cpp4
-rw-r--r--src/net/manaserv/connection.h6
-rw-r--r--src/net/manaserv/effecthandler.cpp38
-rw-r--r--src/net/manaserv/effecthandler.h1
-rw-r--r--src/net/manaserv/generalhandler.cpp18
-rw-r--r--src/net/manaserv/generalhandler.h6
-rw-r--r--src/net/manaserv/inventoryhandler.cpp20
-rw-r--r--src/net/manaserv/inventoryhandler.h6
-rw-r--r--src/net/manaserv/manaserv_protocol.h8
-rw-r--r--src/net/manaserv/messagein.h3
-rw-r--r--src/net/manaserv/messageout.h6
-rw-r--r--src/net/manaserv/network.cpp4
-rw-r--r--src/net/manaserv/npchandler.cpp62
-rw-r--r--src/net/manaserv/npchandler.h2
-rw-r--r--src/net/manaserv/playerhandler.cpp2
-rw-r--r--src/net/messagein.h3
-rw-r--r--src/net/messageout.h3
-rw-r--r--src/net/tmwa/chathandler.cpp24
-rw-r--r--src/net/tmwa/gamehandler.cpp10
-rw-r--r--src/net/tmwa/gamehandler.h6
-rw-r--r--src/net/tmwa/generalhandler.cpp12
-rw-r--r--src/net/tmwa/generalhandler.h6
-rw-r--r--src/net/tmwa/inventoryhandler.cpp20
-rw-r--r--src/net/tmwa/inventoryhandler.h9
-rw-r--r--src/net/tmwa/messagein.h3
-rw-r--r--src/net/tmwa/messageout.h3
-rw-r--r--src/net/tmwa/npchandler.cpp52
-rw-r--r--src/net/tmwa/npchandler.h2
-rw-r--r--src/net/tmwa/playerhandler.cpp3
-rw-r--r--src/net/tmwa/tradehandler.cpp2
-rw-r--r--src/particle.h3
-rw-r--r--src/particleemitter.h6
-rw-r--r--src/playerinfo.cpp46
-rw-r--r--src/properties.h3
-rw-r--r--src/resources/image.h9
-rw-r--r--src/resources/imageset.h3
-rw-r--r--src/resources/itemdb.cpp2
-rw-r--r--src/resources/iteminfo.h17
-rw-r--r--src/resources/music.h6
-rw-r--r--src/resources/resource.h6
-rw-r--r--src/resources/soundeffect.h6
-rw-r--r--src/resources/spritedef.h6
-rw-r--r--src/resources/theme.cpp8
-rw-r--r--src/resources/theme.h6
-rw-r--r--src/resources/userpalette.h6
-rw-r--r--src/shopitem.h7
-rw-r--r--src/sound.cpp59
-rw-r--r--src/sound.h28
-rw-r--r--src/textmanager.h3
-rw-r--r--src/textparticle.h3
-rw-r--r--src/tileset.h3
-rw-r--r--src/utils/mkdir.cpp8
-rw-r--r--src/utils/mkdir.h4
-rw-r--r--src/utils/specialfolder.cpp6
-rw-r--r--src/utils/specialfolder.h4
-rw-r--r--src/variabledata.h7
-rw-r--r--src/vector.h9
186 files changed, 4633 insertions, 4702 deletions
diff --git a/NEWS b/NEWS
index 0d119924..42b74b82 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,17 @@
+0.5.1 (14 March 2011)
+- Added particle notification for "Unable to pick up item."
+- Added the amount of items picked up to the particle notification
+- Added more specific messages when failing to pick up an item
+- Added support for zlib map layer compression and CSV encoding
+- Fixed paste under X11
+- Fixed a segfault when attempting to buy free items
+- Fixed wallpaper loading logic
+- Fixed window icon branding on Windows
+- Fixed pick-up with joystick
+- Fixed enet and manaserv parts still being compiled in
+- Fixed query command handling
+- Updated German, French, Russian and Brazilian Portuguese translations
+
0.5.0 (3 January 2011)
- The Mana World client is now called the Mana client
- Added support for branding the client differently via command line parameter
diff --git a/README b/README
index 541d7b40..d8f25567 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
THE MANA CLIENT
===============
- Version: 0.5.0 Date: 2011-01-03
+ Version: 0.5.1 Date: 2011-03-14
Development team:
- See AUTHORS file for a list
diff --git a/data/help/changes.txt b/data/help/changes.txt
index c96b7afa..d1733f47 100644
--- a/data/help/changes.txt
+++ b/data/help/changes.txt
@@ -3,6 +3,20 @@
##3 === RECENT CHANGES ===
+ 0.5.1 (14 March 2011)
+ - Added particle notification for "Unable to pick up item."
+ - Added the amount of items picked up to the particle notification
+ - Added more specific messages when failing to pick up an item
+ - Added support for zlib map layer compression and CSV encoding
+ - Fixed paste under X11
+ - Fixed a segfault when attempting to buy free items
+ - Fixed wallpaper loading logic
+ - Fixed window icon branding on Windows
+ - Fixed pick-up with joystick
+ - Fixed enet and manaserv parts still being compiled in
+ - Fixed query command handling
+ - Updated German, French, Russian and Brazilian Portuguese translations
+
0.5.0 (3 January 2011)
- The Mana World client is now called the Mana client
- Added support for branding the client differently via command line parameter
@@ -154,10 +168,3 @@
- Fixed money value on failing to buy (from Aethyra)
- Fixed crash in right-click menu when used after a being disappeared
- 0.0.26 (29 August 2008)
- - Added support for a newer version of eAthena server
- - Added support for showing custom being effects
- - Added new features to the particle engine
- - Position names and chat such that there is no overlap, when possible
- - Fixed a crash when loading a corrupt map that has too much layer data
-
diff --git a/data/help/header.txt b/data/help/header.txt
index e68089fd..6ab8172d 100644
--- a/data/help/header.txt
+++ b/data/help/header.txt
@@ -2,7 +2,7 @@
##1 M A N A S O U R C E
##1 ==========================================
- ##2Version:##6 0.5.0 ##2Date:##6 October 2010
+ ##2Version:##6 0.5.1 ##2Date:##14 March 2011
##2 Website: http://manasource.org
diff --git a/libs/enet/ChangeLog b/libs/enet/ChangeLog
index 45f14db6..b1fc2008 100644
--- a/libs/enet/ChangeLog
+++ b/libs/enet/ChangeLog
@@ -1,3 +1,9 @@
+ENet 1.3.1 (February 10, 2011):
+
+* fixed bug in tracking of reliable data in transit
+* reliable data window size now scales with the throttle
+* fixed bug in fragment length calculation when checksums are used
+
ENet 1.3.0 (June 5, 2010):
* enet_host_create() now requires the channel limit to be specified as
diff --git a/libs/enet/LICENSE b/libs/enet/LICENSE
index df0f91e9..357a4e5c 100644
--- a/libs/enet/LICENSE
+++ b/libs/enet/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2002-2010 Lee Salzman
+Copyright (c) 2002-2011 Lee Salzman
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
diff --git a/libs/enet/include/enet/enet.h b/libs/enet/include/enet/enet.h
index 2f656d6c..b572590e 100644
--- a/libs/enet/include/enet/enet.h
+++ b/libs/enet/include/enet/enet.h
@@ -25,7 +25,7 @@ extern "C"
#define ENET_VERSION_MAJOR 1
#define ENET_VERSION_MINOR 3
-#define ENET_VERSION_PATCH 0
+#define ENET_VERSION_PATCH 1
#define ENET_VERSION_CREATE(major, minor, patch) (((major)<<16) | ((minor)<<8) | (patch))
#define ENET_VERSION ENET_VERSION_CREATE(ENET_VERSION_MAJOR, ENET_VERSION_MINOR, ENET_VERSION_PATCH)
diff --git a/libs/enet/list.c b/libs/enet/list.c
index 8487200f..1c1a8dfa 100644
--- a/libs/enet/list.c
+++ b/libs/enet/list.c
@@ -3,7 +3,7 @@
@brief ENet linked list functions
*/
#define ENET_BUILDING_LIB 1
-#include "enet/list.h"
+#include "enet/enet.h"
/**
@defgroup list ENet linked list utility functions
diff --git a/libs/enet/peer.c b/libs/enet/peer.c
index d778ce1d..e1c117f8 100644
--- a/libs/enet/peer.c
+++ b/libs/enet/peer.c
@@ -108,6 +108,8 @@ enet_peer_send (ENetPeer * peer, enet_uint8 channelID, ENetPacket * packet)
return -1;
fragmentLength = peer -> mtu - sizeof (ENetProtocolHeader) - sizeof (ENetProtocolSendFragment);
+ if (peer -> host -> checksum != NULL)
+ fragmentLength -= sizeof(enet_uint32);
if (packet -> dataLength > fragmentLength)
{
diff --git a/libs/enet/protocol.c b/libs/enet/protocol.c
index 8e26dfb2..2237ba84 100644
--- a/libs/enet/protocol.c
+++ b/libs/enet/protocol.c
@@ -172,6 +172,7 @@ enet_protocol_remove_sent_reliable_command (ENetPeer * peer, enet_uint16 reliabl
ENetOutgoingCommand * outgoingCommand;
ENetListIterator currentCommand;
ENetProtocolCommand commandNumber;
+ int wasSent = 1;
for (currentCommand = enet_list_begin (& peer -> sentReliableCommands);
currentCommand != enet_list_end (& peer -> sentReliableCommands);
@@ -201,6 +202,8 @@ enet_protocol_remove_sent_reliable_command (ENetPeer * peer, enet_uint16 reliabl
if (currentCommand == enet_list_end (& peer -> outgoingReliableCommands))
return ENET_PROTOCOL_COMMAND_NONE;
+
+ wasSent = 0;
}
if (channelID < peer -> channelCount)
@@ -221,7 +224,8 @@ enet_protocol_remove_sent_reliable_command (ENetPeer * peer, enet_uint16 reliabl
if (outgoingCommand -> packet != NULL)
{
- peer -> reliableDataInTransit -= outgoingCommand -> fragmentLength;
+ if (wasSent)
+ peer -> reliableDataInTransit -= outgoingCommand -> fragmentLength;
-- outgoingCommand -> packet -> referenceCount;
@@ -1252,7 +1256,7 @@ enet_protocol_check_timeouts (ENetHost * host, ENetPeer * peer, ENetEvent * even
return 0;
}
-static void
+static int
enet_protocol_send_reliable_outgoing_commands (ENetHost * host, ENetPeer * peer)
{
ENetProtocol * command = & host -> commands [host -> commandCount];
@@ -1262,6 +1266,7 @@ enet_protocol_send_reliable_outgoing_commands (ENetHost * host, ENetPeer * peer)
ENetChannel *channel;
enet_uint16 reliableWindow;
size_t commandSize;
+ int windowExceeded = 0, windowWrap = 0, canPing = 1;
currentCommand = enet_list_begin (& peer -> outgoingReliableCommands);
@@ -1271,37 +1276,54 @@ enet_protocol_send_reliable_outgoing_commands (ENetHost * host, ENetPeer * peer)
channel = outgoingCommand -> command.header.channelID < peer -> channelCount ? & peer -> channels [outgoingCommand -> command.header.channelID] : NULL;
reliableWindow = outgoingCommand -> reliableSequenceNumber / ENET_PEER_RELIABLE_WINDOW_SIZE;
- if (channel != NULL &&
- outgoingCommand -> sendAttempts < 1 &&
- ! (outgoingCommand -> reliableSequenceNumber % ENET_PEER_RELIABLE_WINDOW_SIZE) &&
- (channel -> reliableWindows [(reliableWindow + ENET_PEER_RELIABLE_WINDOWS - 1) % ENET_PEER_RELIABLE_WINDOWS] >= ENET_PEER_RELIABLE_WINDOW_SIZE ||
- channel -> usedReliableWindows & ((((1 << ENET_PEER_FREE_RELIABLE_WINDOWS) - 1) << reliableWindow) |
- (((1 << ENET_PEER_FREE_RELIABLE_WINDOWS) - 1) >> (ENET_PEER_RELIABLE_WINDOW_SIZE - reliableWindow)))))
- break;
-
+ if (channel != NULL)
+ {
+ if (! windowWrap &&
+ outgoingCommand -> sendAttempts < 1 &&
+ ! (outgoingCommand -> reliableSequenceNumber % ENET_PEER_RELIABLE_WINDOW_SIZE) &&
+ (channel -> reliableWindows [(reliableWindow + ENET_PEER_RELIABLE_WINDOWS - 1) % ENET_PEER_RELIABLE_WINDOWS] >= ENET_PEER_RELIABLE_WINDOW_SIZE ||
+ channel -> usedReliableWindows & ((((1 << ENET_PEER_FREE_RELIABLE_WINDOWS) - 1) << reliableWindow) |
+ (((1 << ENET_PEER_FREE_RELIABLE_WINDOWS) - 1) >> (ENET_PEER_RELIABLE_WINDOW_SIZE - reliableWindow)))))
+ windowWrap = 1;
+ if (windowWrap)
+ {
+ currentCommand = enet_list_next (currentCommand);
+
+ continue;
+ }
+ }
+
+ if (outgoingCommand -> packet != NULL)
+ {
+ if (! windowExceeded)
+ {
+ enet_uint32 windowSize = (peer -> packetThrottle * peer -> windowSize) / ENET_PEER_PACKET_THROTTLE_SCALE;
+
+ if (peer -> reliableDataInTransit + outgoingCommand -> fragmentLength > ENET_MAX (windowSize, peer -> mtu))
+ windowExceeded = 1;
+ }
+ if (windowExceeded)
+ {
+ currentCommand = enet_list_next (currentCommand);
+
+ continue;
+ }
+ }
+
+ canPing = 0;
+
commandSize = commandSizes [outgoingCommand -> command.header.command & ENET_PROTOCOL_COMMAND_MASK];
if (command >= & host -> commands [sizeof (host -> commands) / sizeof (ENetProtocol)] ||
buffer + 1 >= & host -> buffers [sizeof (host -> buffers) / sizeof (ENetBuffer)] ||
- peer -> mtu - host -> packetSize < commandSize)
+ peer -> mtu - host -> packetSize < commandSize ||
+ (outgoingCommand -> packet != NULL &&
+ (enet_uint16) (peer -> mtu - host -> packetSize) < (enet_uint16) (commandSize + outgoingCommand -> fragmentLength)))
{
host -> continueSending = 1;
break;
}
- if (outgoingCommand -> packet != NULL)
- {
- if (peer -> reliableDataInTransit + outgoingCommand -> fragmentLength > peer -> windowSize)
- break;
-
- if ((enet_uint16) (peer -> mtu - host -> packetSize) < (enet_uint16) (commandSize + outgoingCommand -> fragmentLength))
- {
- host -> continueSending = 1;
-
- break;
- }
- }
-
currentCommand = enet_list_next (currentCommand);
if (channel != NULL && outgoingCommand -> sendAttempts < 1)
@@ -1354,6 +1376,8 @@ enet_protocol_send_reliable_outgoing_commands (ENetHost * host, ENetPeer * peer)
host -> commandCount = command - host -> commands;
host -> bufferCount = buffer - host -> buffers;
+
+ return canPing;
}
static int
@@ -1391,10 +1415,9 @@ enet_protocol_send_outgoing_commands (ENetHost * host, ENetEvent * event, int ch
enet_protocol_check_timeouts (host, currentPeer, event) == 1)
return 1;
- if (! enet_list_empty (& currentPeer -> outgoingReliableCommands))
- enet_protocol_send_reliable_outgoing_commands (host, currentPeer);
- else
- if (enet_list_empty (& currentPeer -> sentReliableCommands) &&
+ if ((enet_list_empty (& currentPeer -> outgoingReliableCommands) ||
+ enet_protocol_send_reliable_outgoing_commands (host, currentPeer)) &&
+ enet_list_empty (& currentPeer -> sentReliableCommands) &&
ENET_TIME_DIFFERENCE (host -> serviceTime, currentPeer -> lastReceiveTime) >= ENET_PEER_PING_INTERVAL &&
currentPeer -> mtu - host -> packetSize >= sizeof (ENetProtocolPing))
{
diff --git a/mana.cbp b/mana.cbp
index 22b0550b..de02f73c 100644
--- a/mana.cbp
+++ b/mana.cbp
@@ -148,6 +148,8 @@
<Unit filename="src\equipment.h" />
<Unit filename="src\event.cpp" />
<Unit filename="src\event.h" />
+ <Unit filename="src\eventlistener.cpp" />
+ <Unit filename="src\eventlistener.h" />
<Unit filename="src\flooritem.cpp" />
<Unit filename="src\flooritem.h" />
<Unit filename="src\game.cpp" />
@@ -372,8 +374,6 @@
<Unit filename="src\joystick.h" />
<Unit filename="src\keyboardconfig.cpp" />
<Unit filename="src\keyboardconfig.h" />
- <Unit filename="src\listener.cpp" />
- <Unit filename="src\listener.h" />
<Unit filename="src\localplayer.cpp" />
<Unit filename="src\localplayer.h" />
<Unit filename="src\log.cpp" />
diff --git a/mana.files b/mana.files
index 13aef208..f3b79c66 100644
--- a/mana.files
+++ b/mana.files
@@ -79,6 +79,8 @@ src/emoteshortcut.h
src/equipment.h
src/event.cpp
src/event.h
+src/eventlistener.cpp
+src/eventlistener.h
src/flooritem.cpp
src/flooritem.h
src/game.cpp
@@ -303,8 +305,6 @@ src/joystick.cpp
src/joystick.h
src/keyboardconfig.cpp
src/keyboardconfig.h
-src/listener.cpp
-src/listener.h
src/localplayer.cpp
src/localplayer.h
src/log.cpp
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 1480dce7..78423e0c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6,10 +6,10 @@
msgid ""
msgstr ""
"Project-Id-Version: mana\n"
-"Report-Msgid-Bugs-To: dev@manasource.org\n"
-"POT-Creation-Date: 2010-12-13 20:04+0100\n"
-"PO-Revision-Date: 2010-02-17 04:42+0000\n"
-"Last-Translator: alms21 <alms21@gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-02-20 14:34+0100\n"
+"PO-Revision-Date: 2011-02-26 19:45-0300\n"
+"Last-Translator: alastrim <alasmirt@gmail.com>\n"
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
@@ -19,361 +19,404 @@ msgstr ""
"X-Launchpad-Export-Date: 2010-03-05 19:28+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
-#: src/client.cpp:598 src/gui/setup.cpp:43 src/gui/windowmenu.cpp:66
-msgid "Setup"
-msgstr "Configurar"
+#: ../src/gui/npcdialog.cpp:183
+msgid ""
+"\n"
+"> Next\n"
+msgstr ""
+"\n"
+"> Próximo\n"
-#: src/client.cpp:679
-#, fuzzy
-msgid "Connecting to server"
-msgstr "Conectando ao servidor de mapas..."
+#: ../src/main.cpp:60
+msgid " --no-opengl : Disable OpenGL for this session"
+msgstr " --no-opengl : Desabilita OpenGL nesta sessão"
-#: src/client.cpp:706
-#, fuzzy
-msgid "Logging in"
-msgstr "Login"
+#: ../src/main.cpp:58
+msgid " --screenshot-dir : Directory to store screenshots"
+msgstr " --screenshot-dir : Diretório onde serão salvas as screenshots"
-#: src/client.cpp:739
-msgid "Entering game world"
+#: ../src/main.cpp:52
+msgid " --update-host : Use this update host"
+msgstr " --update-host : Usa este host de update"
+
+#: ../src/main.cpp:46
+msgid " -C --config-dir : Configuration directory to use"
+msgstr " -C --config-dir : Diretório de configuração a ser usado"
+
+#: ../src/main.cpp:53
+msgid " -D --default : Choose default character server and character"
msgstr ""
+" -D --default : Escolhe um personagem e um servidor de personagem "
+"padrão"
-#: src/client.cpp:804
-#, fuzzy
-msgid "Requesting characters"
-msgstr "Selecionar personagem"
+#: ../src/main.cpp:57
+msgid " -L --localdata-dir : Directory to use as local data directory"
+msgstr ""
+" -L --localdata-dir : Diretório a ser usado como pasta de dados local"
-#: src/client.cpp:833
-#, fuzzy
-msgid "Connecting to the game server"
-msgstr "Conectando ao servidor de mapas..."
+#: ../src/main.cpp:48
+msgid " -P --password : Login with this password"
+msgstr " -P --password :Efetua login com esta senha"
-#: src/client.cpp:843
-#, fuzzy
-msgid "Changing game servers"
-msgstr "Servidor"
-
-#: src/client.cpp:872 src/client.cpp:879 src/client.cpp:1014
-#: src/gui/changeemaildialog.cpp:156 src/gui/changepassworddialog.cpp:149
-#: src/gui/charcreatedialog.cpp:177 src/gui/register.cpp:218
-#: src/gui/serverdialog.cpp:323 src/gui/unregisterdialog.cpp:133
-#: src/net/manaserv/charhandler.cpp:174 src/net/manaserv/charhandler.cpp:217
-#: src/net/tmwa/charserverhandler.cpp:134
-#: src/net/tmwa/charserverhandler.cpp:151
-msgid "Error"
-msgstr "Erro"
+#: ../src/main.cpp:47
+msgid " -U --username : Login with this username"
+msgstr " -U --username : Efetua login com este usuário"
-#: src/client.cpp:888
-msgid "Requesting registration details"
+#: ../src/main.cpp:49
+msgid " -c --character : Login with this character"
+msgstr " -c --character :Efetua login com este personagem"
+
+#: ../src/main.cpp:56
+msgid " -d --data : Directory to load game data from"
msgstr ""
+" -d --data : Pasta de onde os dados do jogo vão ser carregados"
-#: src/client.cpp:915
-#, fuzzy
-msgid "Password Change"
-msgstr "Senha:"
+#: ../src/main.cpp:45
+msgid " -h --help : Display this help"
+msgstr " -h --help : Exibe esta ajuda"
-#: src/client.cpp:916
-msgid "Password changed successfully!"
-msgstr ""
+#: ../src/main.cpp:51
+msgid " -p --port : Login server port"
+msgstr " -p --port : Porta do servidor de login"
-#: src/client.cpp:935
-#, fuzzy
-msgid "Email Change"
-msgstr "Mudar"
+#: ../src/main.cpp:50
+msgid " -s --server : Login server name or IP"
+msgstr " -s --server : Nome ou IP do servidor de login"
-#: src/client.cpp:936
-#, fuzzy
-msgid "Email changed successfully!"
-msgstr "Membro foi promovido com sucesso."
+#: ../src/main.cpp:55
+msgid " -u --skip-update : Skip the update downloads"
+msgstr " -u --skip-update : Não faz downloads de atualização"
-#: src/client.cpp:956
-#, fuzzy
-msgid "Unregister Successful"
-msgstr "Cancelar Registro"
+#: ../src/main.cpp:44
+msgid " -v --version : Display the version"
+msgstr " -v --version : Exibe a versão"
-#: src/client.cpp:957
-msgid "Farewell, come back any time..."
-msgstr ""
+#: ../src/gui/updatewindow.cpp:419
+msgid "##1 It is strongly recommended that"
+msgstr "##1 É altamente recomendado que"
+
+#: ../src/gui/updatewindow.cpp:417
+msgid "##1 The update process is incomplete."
+msgstr "##1 O processo de update está incompleto."
+
+#: ../src/gui/updatewindow.cpp:421
+msgid "##1 you try again later."
+msgstr "##1 você tente novamente mais tarde."
-#: src/client.cpp:1138 src/client.cpp:1161
+#: ../src/net/tmwa/generalhandler.cpp:228
#, c-format
-msgid "%s doesn't exist and can't be created! Exiting."
-msgstr ""
+msgid "% Accuracy"
+msgstr "% Exatidão"
-#: src/client.cpp:1281
-#, fuzzy, c-format
-msgid "Invalid update host: %s"
-msgstr "Host de atualização inválido: "
+#: ../src/net/tmwa/generalhandler.cpp:230
+#, c-format
+msgid "% Critical"
+msgstr "% Críticos"
-#: src/client.cpp:1315 src/client.cpp:1321
-msgid "Error creating updates directory!"
-msgstr "Erro ao criar pasta de atualizações!"
+#: ../src/net/tmwa/generalhandler.cpp:229
+#, c-format
+msgid "% Evade"
+msgstr "% Evasão"
-#: src/commandhandler.cpp:131 src/commandhandler.cpp:317
-msgid "Unknown command."
-msgstr "Comando desconhecido."
+#: ../src/gui/debugwindow.cpp:61 ../src/gui/debugwindow.cpp:64
+#, c-format
+msgid "%d FPS"
+msgstr "%d FPS"
-#: src/commandhandler.cpp:160
-msgid "-- Help --"
-msgstr "--Ajuda--"
+#: ../src/gui/debugwindow.cpp:56
+#, c-format
+msgid "%d FPS (OpenGL)"
+msgstr "%d FPS (OpenGL)"
-#: src/commandhandler.cpp:161
-msgid "/help > Display this help"
-msgstr "/help > Exibe ajuda"
+#: ../src/client.cpp:1102 ../src/client.cpp:1125
+#, c-format
+msgid "%s doesn't exist and can't be created! Exiting."
+msgstr "%s não existe e não pode ser criado! Saindo."
-#: src/commandhandler.cpp:163
-msgid "/where > Display map name"
-msgstr "/where > Exibe o nome do mapa"
+#: ../src/net/manaserv/chathandler.cpp:291
+#, c-format
+msgid "%s entered the channel."
+msgstr "%s entrou no canal."
-#: src/commandhandler.cpp:164
-msgid "/who > Display number of online users"
-msgstr "/who > Exibe o número de usuários online"
+#: ../src/gui/socialwindow.cpp:605
+#, c-format
+msgid "%s has invited you to join the %s party."
+msgstr "%s te convidou para entrar no grupo %s."
-#: src/commandhandler.cpp:165
-msgid "/me > Tell something about yourself"
-msgstr "/me > Diz alguma coisa sobre você"
+#: ../src/gui/socialwindow.cpp:561
+#, c-format
+msgid "%s has invited you to join the guild %s."
+msgstr "%s te convidou para entrar na guilda %s."
-#: src/commandhandler.cpp:167
-msgid "/clear > Clears this window"
-msgstr "/clear > Limpa janela atual"
+#: ../src/gui/socialwindow.cpp:600
+#, c-format
+msgid "%s has invited you to join their party."
+msgstr "%s te convidou para entrar em seu grupo."
-#: src/commandhandler.cpp:169
-msgid "/msg > Send a private message to a user"
-msgstr "/msg > Envia uma messagem privada a um usuário"
+#: ../src/net/manaserv/chathandler.cpp:322
+#, c-format
+msgid "%s has kicked %s."
+msgstr "%s expulsou %s."
-#: src/commandhandler.cpp:170
-msgid "/whisper > Alias of msg"
-msgstr "/whisper > Messagem Confidêncial"
+#: ../src/net/tmwa/partyhandler.cpp:252
+#, c-format
+msgid "%s has left your party."
+msgstr "%s saiu do seu grupo."
-#: src/commandhandler.cpp:171
-msgid "/w > Alias of msg"
-msgstr "/w > Abreviação de messagem"
+#: ../src/net/manaserv/chathandler.cpp:312
+#, c-format
+msgid "%s has set mode %s on user %s."
+msgstr "%s colocou o modo %s no usuário %s."
-#: src/commandhandler.cpp:172
-msgid "/query > Makes a tab for private messages with another user"
-msgstr "/query > Fazer um chat com outros usuários"
+#: ../src/net/tmwa/partyhandler.cpp:121
+#, c-format
+msgid "%s is already a member of a party."
+msgstr "%s já é membro de um grupo."
-#: src/commandhandler.cpp:174
-msgid "/q > Alias of query"
-msgstr "/q > Abreviação de query"
+#: ../src/net/tmwa/partyhandler.cpp:374
+#, c-format
+msgid "%s is not in your party!"
+msgstr "%s não está em seu grupo!"
-#: src/commandhandler.cpp:176
-msgid "/ignore > ignore a player"
-msgstr ""
+#: ../src/net/tmwa/partyhandler.cpp:129
+#, c-format
+msgid "%s is now a member of your party."
+msgstr "%s agora é um membro do seu grupo."
-#: src/commandhandler.cpp:177
-msgid "/unignore > stop ignoring a player"
-msgstr ""
+#: ../src/net/manaserv/partyhandler.cpp:106
+#, c-format
+msgid "%s joined the party."
+msgstr "%s entrou para o grupo."
-#: src/commandhandler.cpp:179
-msgid "/list > Display all public channels"
-msgstr "/list > Exibir todos os canais públicos"
+#: ../src/net/manaserv/chathandler.cpp:296
+#, c-format
+msgid "%s left the channel."
+msgstr "%s saiu do canal."
-#: src/commandhandler.cpp:180
-msgid "/join > Join or create a channel"
-msgstr "/join > Criar ou entrar em um canal"
+#: ../src/net/tmwa/partyhandler.cpp:125
+#, c-format
+msgid "%s refused your invitation."
+msgstr "%s recusou seu convite."
-#: src/commandhandler.cpp:182
-#, fuzzy
-msgid "/createparty > Create a new party"
-msgstr "/create > Cria um novo grupo"
+#: ../src/net/manaserv/partyhandler.cpp:123
+#, c-format
+msgid "%s rejected your invite."
+msgstr "%s recusou seu convite."
-#: src/commandhandler.cpp:183
-msgid "/party > Invite a user to party"
-msgstr "/party > Convidar um usuário para o grupo"
+#: ../src/net/manaserv/tradehandler.cpp:117
+#: ../src/net/tmwa/tradehandler.cpp:108
+#, c-format
+msgid "%s wants to trade with you, do you accept?"
+msgstr "%s quer negociar com você, você aceita?"
-#: src/commandhandler.cpp:185
-msgid "/record > Start recording the chat to an external file"
-msgstr "/record > Começar a gravar o chat em um arquivo externo"
+#: ../src/gui/widgets/chattab.cpp:152
+#, c-format
+msgid "%s whispers: %s"
+msgstr "%s envia mensagem privada: %s"
-#: src/commandhandler.cpp:187
-msgid "/toggle > Determine whether <return> toggles the chat log"
-msgstr "/toggle > Determina se <enter> alterna para o log de chat"
+#: ../src/gui/charselectdialog.cpp:392 ../src/gui/charselectdialog.cpp:393
+msgid "(empty)"
+msgstr "(vazio)"
-#: src/commandhandler.cpp:189
-msgid "/present > Get list of players present (sent to chat log, if logging)"
-msgstr ""
-"/present > Pegar a lista de jogadores presentes (Enviou log de chat. Se "
-"logando)"
+#: ../src/commandhandler.cpp:222
+msgid "*** only available to a GM ***"
+msgstr "*** Disponivel apenas para GM's ***"
-#: src/commandhandler.cpp:192
-msgid "/announce > Global announcement (GM only)"
-msgstr "/announce > Anuciamento Global (Somente GM)"
+#: ../src/gui/buy.cpp:74 ../src/gui/itemamount.cpp:102
+#: ../src/gui/npcdialog.cpp:104 ../src/gui/sell.cpp:74
+#: ../src/gui/statuswindow.cpp:430
+msgid "+"
+msgstr "+"
-#: src/commandhandler.cpp:196
-msgid "For more information, type /help <command>."
-msgstr "Para mais informações, digite /help <comando>."
+#: ../src/gui/buy.cpp:77 ../src/gui/itemamount.cpp:101
+#: ../src/gui/npcdialog.cpp:105 ../src/gui/sell.cpp:75
+#: ../src/gui/statuswindow.cpp:442
+msgid "-"
+msgstr "-"
-#: src/commandhandler.cpp:200
-msgid "Command: /help"
-msgstr "Comando: /help"
+#: ../src/commandhandler.cpp:166
+msgid "-- Help --"
+msgstr "--Ajuda--"
-#: src/commandhandler.cpp:201
-msgid "This command displays a list of all commands available."
-msgstr "Exibe uma lista de todos os comandos disponíveis."
+#: ../src/commandhandler.cpp:201
+msgid "/announce > Global announcement (GM only)"
+msgstr "/announce > Anúncio Global (Somente GM)"
-#: src/commandhandler.cpp:203
-msgid "Command: /help <command>"
-msgstr "Comando: /help <comando>"
+#: ../src/commandhandler.cpp:182
+msgid "/away > Tell the other whispering players you're away from keyboard."
+msgstr ""
+"/away > Diz que você está longe do teclado para quem te enviar uma mensagem "
+"privada ."
-#: src/commandhandler.cpp:204
-msgid "This command displays help on <command>."
-msgstr "Exibe o conteúdo de ajuda de <command>"
+#: ../src/commandhandler.cpp:173
+msgid "/clear > Clears this window"
+msgstr "/clear > Limpa janela atual"
-#: src/commandhandler.cpp:212
-msgid "Command: /announce <msg>"
-msgstr "Comando: /announce <msg>"
+#: ../src/gui/widgets/whispertab.cpp:73
+msgid "/close > Close the whisper tab"
+msgstr "/close > Fecha a aba de mensagem privada"
-#: src/commandhandler.cpp:213
-msgid "*** only available to a GM ***"
-msgstr "*** Disponivel apenas para GM's ***"
+#: ../src/commandhandler.cpp:191
+msgid "/createparty > Create a new party"
+msgstr "/createparty > Cria um novo grupo"
-#: src/commandhandler.cpp:214
-msgid "This command sends the message <msg> to all players currently online."
-msgstr "Este comando envia a mensagem <msg> para todos os jogadores online."
+#: ../src/net/tmwa/gui/partytab.cpp:64
+msgid "/exp > Show/change party experience sharing options"
+msgstr ""
+"/exp > Mostra/Modifica opções de compartilhamento de experiência do grupo"
-#: src/commandhandler.cpp:219
-msgid "Command: /clear"
-msgstr "Comando: /clear"
+#: ../src/commandhandler.cpp:167
+msgid "/help > Display this help"
+msgstr "/help > Exibe esta ajuda"
-#: src/commandhandler.cpp:220
-msgid "This command clears the chat log of previous chat."
-msgstr "Limpa os logs do chat anterior."
+#: ../src/net/tmwa/gui/guildtab.cpp:61 ../src/net/tmwa/gui/partytab.cpp:59
+msgid "/help > Display this help."
+msgstr "/help > Exibe esta ajuda."
-#: src/commandhandler.cpp:224
-#, fuzzy
-msgid "Command: /ignore <player>"
-msgstr "Comando> /item <opção>"
+#: ../src/gui/widgets/whispertab.cpp:71
+msgid "/ignore > Ignore the other player"
+msgstr "/ignore > Ignora o outro jogador"
-#: src/commandhandler.cpp:225
-#, fuzzy
-msgid "This command ignores the given player regardless of current relations."
-msgstr "Exibe o número total de jogadores online."
+#: ../src/commandhandler.cpp:185
+msgid "/ignore > ignore a player"
+msgstr "/ignore > Ignora um jogador"
-#: src/commandhandler.cpp:230
-msgid "Command: /join <channel>"
-msgstr "Comando: /join <canal>"
+#: ../src/net/tmwa/gui/guildtab.cpp:62
+msgid "/invite > Invite a player to your guild"
+msgstr "/invite > Convida um jogador para a sua guilda"
-#: src/commandhandler.cpp:231
-msgid "This command makes you enter <channel>."
-msgstr "Este comando faz você entrar em <canal>."
+#: ../src/net/tmwa/gui/partytab.cpp:60
+msgid "/invite > Invite a player to your party"
+msgstr "/invite > Convida um jogador para o seu grupo"
-#: src/commandhandler.cpp:232
-msgid "If <channel> doesn't exist, it's created."
-msgstr "Se o <canal> não existe, ele será criado."
+#: ../src/net/tmwa/gui/partytab.cpp:63
+msgid "/item > Show/change party item sharing options"
+msgstr "/item > Mostra/Muda opções de compartilhamento de itens do grupo"
-#: src/commandhandler.cpp:236
-msgid "Command: /list"
-msgstr "Comando: /list"
+#: ../src/commandhandler.cpp:189
+msgid "/join > Join or create a channel"
+msgstr "/join > Criar ou entrar em um canal"
-#: src/commandhandler.cpp:237
-msgid "This command shows a list of all channels."
-msgstr "Este comando exibe uma lista com todos os canais."
+#: ../src/gui/widgets/channeltab.cpp:53
+msgid "/kick > Kick a user from the channel"
+msgstr "/kick > Expulsa um usuário do canal"
-#: src/commandhandler.cpp:241
-msgid "Command: /me <message>"
-msgstr "Comando: /me <mensagem>"
+#: ../src/net/tmwa/gui/guildtab.cpp:64
+msgid "/kick > Kick some one from the guild you are in"
+msgstr "/kick > Expulsa alguém da guilda em que você está"
-#: src/commandhandler.cpp:242
-msgid "This command tell others you are (doing) <msg>."
-msgstr "Este comando diz aos outros o que eu estou (fazendo) <msg>."
+#: ../src/net/tmwa/gui/partytab.cpp:62
+msgid "/kick > Kick some one from the party you are in"
+msgstr "/kick > Expulsa alguém do grupo em que você está"
-#: src/commandhandler.cpp:246
-msgid "Command: /msg <nick> <message>"
-msgstr "Comando: /msg <nick> <mensagem>"
+#: ../src/net/tmwa/gui/guildtab.cpp:63
+msgid "/leave > Leave the guild you are in"
+msgstr "/leave > Sai da guilda em que você está"
-#: src/commandhandler.cpp:247
-msgid "Command: /whisper <nick> <message>"
-msgstr "Comando: /whisper <nick> <mensagem>"
+#: ../src/net/tmwa/gui/partytab.cpp:61
+msgid "/leave > Leave the party you are in"
+msgstr "/leave > Sai do grupo em que você está"
-#: src/commandhandler.cpp:248
-msgid "Command: /w <nick> <message>"
-msgstr "Comando: /w <nick> <mensagem>"
+#: ../src/commandhandler.cpp:188
+msgid "/list > Display all public channels"
+msgstr "/list > Exibir todos os canais públicos"
-#: src/commandhandler.cpp:249
-msgid "This command sends the text <message> to <nick>."
-msgstr "Este comando envia o texto <mensagem> para <nick>."
+#: ../src/commandhandler.cpp:171
+msgid "/me > Tell something about yourself"
+msgstr "/me > Diz alguma coisa sobre você"
-#: src/commandhandler.cpp:250 src/commandhandler.cpp:269
-#: src/gui/widgets/channeltab.cpp:82 src/gui/widgets/channeltab.cpp:91
-#: src/net/tmwa/gui/guildtab.cpp:75 src/net/tmwa/gui/partytab.cpp:75
-msgid "If the <nick> has spaces in it, enclose it in double quotes (\")."
-msgstr "Se <nick> possuir espaços, coloque dentro de parenteses (\")."
+#: ../src/commandhandler.cpp:175
+msgid "/msg > Send a private message to a user"
+msgstr "/msg > Envia uma messagem privada a um usuário"
-#: src/commandhandler.cpp:255
-msgid "Command: /query <nick>"
-msgstr "Comando: /query <nick>"
+#: ../src/gui/widgets/channeltab.cpp:52
+msgid "/op > Make a user a channel operator"
+msgstr "/op > Transdorma um usuário em operador do canal"
-#: src/commandhandler.cpp:256
-msgid "Command: /q <nick>"
-msgstr "Comando: /q <nick>"
+#: ../src/commandhandler.cpp:192
+msgid "/party > Invite a user to party"
+msgstr "/party > Convidar um usuário para o grupo"
-#: src/commandhandler.cpp:257
-msgid "This command tries to make a tab for whispers betweenyou and <nick>."
+#: ../src/commandhandler.cpp:198
+msgid "/present > Get list of players present (sent to chat log, if logging)"
msgstr ""
-"Este comando cria uma aba para mensagens confidenciais entre você e <nick>."
+"/present > Mostra a lista de jogadores presentes (envia para o log de chat, "
+"se estiver gravando)"
-#: src/commandhandler.cpp:262
-#, fuzzy
-msgid "Command: /createparty <name>"
-msgstr "Comando: /create <nome-do-grupo>"
+#: ../src/commandhandler.cpp:180
+msgid "/q > Alias of query"
+msgstr "/q > O mesmo que /query"
-#: src/commandhandler.cpp:263
-#, fuzzy
-msgid "This command creates a new party called <name>."
-msgstr "Estes comandos criam um novo grupo chamado <nome-do-grupo>."
+#: ../src/commandhandler.cpp:178
+msgid "/query > Makes a tab for private messages with another user"
+msgstr "/query > Abre uma aba de chat com outro usuário"
-#: src/commandhandler.cpp:267
-msgid "Command: /party <nick>"
-msgstr "Comando: /party <nick>"
+#: ../src/gui/widgets/channeltab.cpp:51
+msgid "/quit > Leave a channel"
+msgstr "/quit > Sair do canal"
-#: src/commandhandler.cpp:268 src/net/tmwa/gui/partytab.cpp:74
-msgid "This command invites <nick> to party with you."
-msgstr "Convida <nick> para um grupo com você."
+#: ../src/commandhandler.cpp:194
+msgid "/record > Start recording the chat to an external file"
+msgstr "/record > Começar a gravar o chat em um arquivo externo"
-#: src/commandhandler.cpp:274
-msgid "Command: /present"
-msgstr "Comando: /present"
+#: ../src/commandhandler.cpp:196
+msgid "/toggle > Determine whether <return> toggles the chat log"
+msgstr "/toggle > Determina se <enter> exibe a janela de chat"
-#: src/commandhandler.cpp:275
-msgid ""
-"This command gets a list of players within hearing and sends it to either "
-"the record log if recording, or the chat log otherwise."
-msgstr ""
-"Este comando obtém uma lista dos Jogadores ao alcance e a envia para o log "
-"de registro do chat ou, caso haja uma gravação em andamento, para o log de "
-"gravação."
+#: ../src/gui/widgets/channeltab.cpp:50
+msgid "/topic > Set the topic of the current channel"
+msgstr "/topic > Setar o tópico deste canal"
-#: src/commandhandler.cpp:281
-msgid "Command: /record <filename>"
-msgstr "Comando: /record <nome_do_arquivo>"
+#: ../src/gui/widgets/whispertab.cpp:72
+msgid "/unignore > Stop ignoring the other player"
+msgstr "/unignore > Para de ignorar o outro jogador"
-#: src/commandhandler.cpp:282
-msgid "This command starts recording the chat log to the file <filename>."
-msgstr ""
-"Este comando inicia a gravação do registro de bate-papo para o arquivo "
-"<nome_do_arquivo>."
+#: ../src/commandhandler.cpp:186
+msgid "/unignore > stop ignoring a player"
+msgstr "/unignore > Deixa de ignorar um jogador"
-#: src/commandhandler.cpp:284
-msgid "Command: /record"
-msgstr "Comando: /record"
+#: ../src/gui/widgets/channeltab.cpp:49
+msgid "/users > Lists the users in the current channel"
+msgstr "/users > Listar os usuários deste canal"
-#: src/commandhandler.cpp:285
-msgid "This command finishes a recording session."
-msgstr "Este comando finaliza a sessão de gravação."
+#: ../src/commandhandler.cpp:177
+msgid "/w > Alias of msg"
+msgstr "/w > O mesmo que /msg"
-#: src/commandhandler.cpp:289
-msgid "Command: /toggle <state>"
-msgstr "Comando: /toggle <estado>"
+#: ../src/commandhandler.cpp:169
+msgid "/where > Display map name"
+msgstr "/where > Exibe o nome do mapa"
-#: src/commandhandler.cpp:290
+#: ../src/commandhandler.cpp:176
+msgid "/whisper > Alias of msg"
+msgstr "/whisper > O mesmo que /msg"
+
+#: ../src/commandhandler.cpp:170
+msgid "/who > Display number of online users"
+msgstr "/who > Exibe o número de usuários online"
+
+#: ../src/gui/charcreatedialog.cpp:73 ../src/gui/charcreatedialog.cpp:76
+#: ../src/gui/outfitwindow.cpp:66
+msgid "<"
+msgstr "<"
+
+#: ../src/net/tmwa/gui/partytab.cpp:97
msgid ""
-"This command sets whether the return key should toggle the chat log, or "
-"whether the chat log turns off automatically."
+"<policy> can be one of \"1\", \"yes\", \"true\" to enable experience "
+"sharing, or \"0\", \"no\", \"false\" to disable experience sharing."
msgstr ""
-"Este comando define se a tecla enter deve alternar para o log do chat ou se "
-"o log do chat fica oculto automaticamente."
+"<policy> pode ser \"1\", \"yes\" e \"true\" para habilitar compartilhamento "
+"de experiência, ou \"0\", \"no\" e \"false\" para desabilitar."
-#: src/commandhandler.cpp:292
+#: ../src/net/tmwa/gui/partytab.cpp:87
+msgid ""
+"<policy> can be one of \"1\", \"yes\", \"true\" to enable item sharing, or "
+"\"0\", \"no\", \"false\" to disable item sharing."
+msgstr ""
+"<policy> pode ser \"1\", \"yes\" e \"true\" para habilitar compartilhamento "
+"de itens, ou \"0\", \"no\" e \"false\" para desabilitar."
+
+#: ../src/commandhandler.cpp:309
msgid ""
"<state> can be one of \"1\", \"yes\", \"true\" to turn the toggle on, or "
"\"0\", \"no\", \"false\" to turn the toggle off."
@@ -381,3439 +424,3326 @@ msgstr ""
"<estado> pode ser \"1\", \"yes\" e \"true\" para ativar ou \"0\", \"no\" e "
"\"false\" para desativar."
-#: src/commandhandler.cpp:295
-msgid "Command: /toggle"
-msgstr "Comando: /toggle"
-
-#: src/commandhandler.cpp:296
-msgid "This command displays the return toggle status."
-msgstr "Este comando mostra o status do botão alternar."
-
-#: src/commandhandler.cpp:300 src/gui/widgets/whispertab.cpp:95
-#, fuzzy
-msgid "Command: /unignore <player>"
-msgstr "Comando> /item <opção>"
-
-#: src/commandhandler.cpp:301
-msgid "This command stops ignoring the given player if they are being ignored"
-msgstr ""
-
-#: src/commandhandler.cpp:306
-msgid "Command: /where"
-msgstr "Comando: /where"
-
-#: src/commandhandler.cpp:307
-msgid "This command displays the name of the current map."
-msgstr "Mostra o nome do mapa atual."
-
-#: src/commandhandler.cpp:311
-msgid "Command: /who"
-msgstr "Comando: /who"
+#: ../src/gui/charcreatedialog.cpp:70 ../src/gui/charcreatedialog.cpp:75
+#: ../src/gui/outfitwindow.cpp:67
+msgid ">"
+msgstr ">"
-#: src/commandhandler.cpp:312
-msgid "This command displays the number of players currently online."
-msgstr "Exibe o número total de jogadores online."
+#: ../src/gui/setup_players.cpp:206 ../src/gui/setup_video.cpp:153
+msgid "???"
+msgstr "???"
-#: src/commandhandler.cpp:318
-msgid "Type /help for a list of commands."
-msgstr "Digite /help para uma lista de todos os comandos."
+#: ../src/gui/socialwindow.cpp:566
+msgid "Accept Guild Invite"
+msgstr "Aceitar convite para a guilda"
-#: src/commandhandler.cpp:384
-msgid "Cannot send empty whispers!"
-msgstr "Não é possível enviar mensagens particulares vazias!"
+#: ../src/gui/socialwindow.cpp:613
+msgid "Accept Party Invite"
+msgstr "Aceitar convite para o grupo"
-#: src/commandhandler.cpp:392
+#: ../src/gui/socialwindow.cpp:466
#, c-format
-msgid ""
-"Cannot create a whisper tab for nick \"%s\"! It either already exists, or is "
-"you."
-msgstr ""
-"Não é possível criar uma aba de mensagem particular para o nick \"%s\"! Ou "
-"ela já existe ou é você mesmo."
+msgid "Accepted guild invite from %s."
+msgstr "Aceitou convite para a guilda de %s."
-#: src/commandhandler.cpp:406
+#: ../src/gui/socialwindow.cpp:447
#, c-format
-msgid "Requesting to join channel %s."
-msgstr "Solicitando entrada no canal %s."
+msgid "Accepted party invite from %s."
+msgstr "Aceitou convite para o grupo de %s."
-#: src/commandhandler.cpp:419 src/net/tmwa/gui/partytab.cpp:109
-msgid "Party name is missing."
-msgstr "Falta o nome do grupo."
+#: ../src/game.cpp:720
+msgid "Accepting incoming trade requests"
+msgstr "Aceitando propostas de negócios"
-#: src/commandhandler.cpp:432 src/commandhandler.cpp:509
-#: src/commandhandler.cpp:531
-msgid "Please specify a name."
-msgstr ""
+#: ../src/net/manaserv/tradehandler.cpp:96
+msgid "Accepting incoming trade requests."
+msgstr "Aceitando propostas de negócios."
-#: src/commandhandler.cpp:450
-msgid "Return toggles chat."
-msgstr "Enter alterna para o chat."
+#: ../src/net/tmwa/charserverhandler.cpp:105
+msgid "Access denied. Most likely, there are too many players on this server."
+msgstr "Acesso negado. Provavelmente há jogadores demais neste servidor."
-#: src/commandhandler.cpp:450
-msgid "Message closes chat."
-msgstr "A mensagem fecha o chat."
+#: ../src/gui/charselectdialog.cpp:117
+msgid "Account and Character Management"
+msgstr "Gerenciamento de Conta e Personagem"
-#: src/commandhandler.cpp:459
-msgid "Return now toggles chat."
-msgstr "Agora enter alterna para o chat."
+#: ../src/net/manaserv/loginhandler.cpp:272
+msgid "Account banned"
+msgstr "Conta banida"
-#: src/commandhandler.cpp:463
-msgid "Message now closes chat."
-msgstr "Agora a mensagem fecha o chat."
+#: ../src/net/manaserv/loginhandler.cpp:93
+msgid "Account banned."
+msgstr "Conta banida."
-#: src/commandhandler.cpp:476 src/commandhandler.cpp:489
-msgid "Show IP: On"
-msgstr ""
+#: ../src/net/tmwa/loginhandler.cpp:162
+msgid "Account expired."
+msgstr "A conta expirou."
-#: src/commandhandler.cpp:476 src/commandhandler.cpp:485
-msgid "Show IP: Off"
-msgstr ""
+#: ../src/net/manaserv/loginhandler.cpp:124
+#: ../src/net/manaserv/loginhandler.cpp:155
+msgid "Account not connected. Please login first."
+msgstr "Conta não conectada. Por favor, efetue o login primeiro."
-#: src/commandhandler.cpp:515
-msgid "Player already ignored!"
-msgstr ""
+#: ../src/net/tmwa/loginhandler.cpp:86
+msgid "Account was not found. Please re-login."
+msgstr "Conta não encontrada. Por favor, tente novamente."
-#: src/commandhandler.cpp:522
-#, fuzzy
-msgid "Player successfully ignored!"
-msgstr "Grupo criado."
+#: ../src/gui/changeemaildialog.cpp:49 ../src/gui/changepassworddialog.cpp:52
+#, c-format
+msgid "Account: %s"
+msgstr "Conta: %s"
-#: src/commandhandler.cpp:524
-#, fuzzy
-msgid "Player could not be ignored!"
-msgstr "Impossível enviar mensagem privada, você foi ignorado pelo usuário."
+#: ../src/gui/trade.cpp:75
+msgid "Add"
+msgstr "Adicionar"
-#: src/commandhandler.cpp:539
-msgid "Player wasn't ignored!"
-msgstr ""
+#: ../src/gui/popupmenu.cpp:171
+msgid "Add name to chat"
+msgstr "Adicionar nome ao chat"
-#: src/commandhandler.cpp:544
-msgid "Player no longer ignored!"
-msgstr ""
+#: ../src/gui/popupmenu.cpp:190 ../src/gui/popupmenu.cpp:378
+msgid "Add to chat"
+msgstr "Adicionar ao chat"
-#: src/commandhandler.cpp:546
-#, fuzzy
-msgid "Player could not be unignored!"
-msgstr "Impossível enviar mensagem privada, você foi ignorado pelo usuário."
+#: ../src/net/manaserv/stats.cpp:68 ../src/net/tmwa/generalhandler.cpp:218
+msgid "Agility"
+msgstr "Agilidade"
-#: src/commandhandler.h:31
+#: ../src/net/manaserv/stats.cpp:70 ../src/net/tmwa/generalhandler.cpp:102
#, c-format
-msgid "Options to /%s are \"yes\", \"no\", \"true\", \"false\", \"1\", \"0\"."
-msgstr ""
-"Opções para /%s são \"yes\" e \"no\", \"true\" e \"false\", \"1\" e \"0\"."
+msgid "Agility %+d"
+msgstr "Agilidade %+d"
-#: src/game.cpp:172
-msgid "General"
-msgstr "Geral"
+#: ../src/net/tmwa/charserverhandler.cpp:260
+msgid "Agility:"
+msgstr "Agilidade:"
-#: src/game.cpp:342
-#, fuzzy
-msgid "Screenshot saved as "
-msgstr "Screenshot salvo em ~/"
+#: ../src/gui/trade.cpp:54
+msgid "Agree trade"
+msgstr "Aceitar negociação"
-#: src/game.cpp:347
-msgid "Saving screenshot failed!"
-msgstr "Falha ao salvar screenshot!"
+#: ../src/gui/trade.cpp:55
+msgid "Agreed. Waiting..."
+msgstr "Aceitou. Aguarde..."
-#: src/game.cpp:378
-#, fuzzy
-msgid "The connection to the server was lost."
-msgstr "A conexão com o servidor caiu, o jogo será fechado."
+#: ../src/gui/itemamount.cpp:105
+msgid "All"
+msgstr "Tudo"
-#: src/game.cpp:382
-msgid "Network Error"
-msgstr "Erro de conexão"
+#: ../src/gui/setup_players.cpp:224
+msgid "Allow trading"
+msgstr "Permitir negociações"
-#: src/game.cpp:721
-msgid "Ignoring incoming trade requests"
-msgstr "Ignorando propostas de negócios"
+#: ../src/gui/setup_players.cpp:226
+msgid "Allow whispers"
+msgstr "Permitir mensagens particulares"
-#: src/game.cpp:726
-msgid "Accepting incoming trade requests"
-msgstr "Aceitando propostas de negócios"
+#: ../src/net/manaserv/loginhandler.cpp:90
+#: ../src/net/manaserv/loginhandler.cpp:269
+msgid "Already logged in."
+msgstr "Já está conectado."
-#: src/game.cpp:954
-#, fuzzy
-msgid "Could Not Load Map"
-msgstr "Impossível carregar mapa"
+#: ../src/gui/recorder.cpp:96
+msgid "Already recording."
+msgstr "Já está gravando."
+
+#: ../src/gui/setup_video.cpp:262
+msgid "Ambient FX"
+msgstr "Ambiente FX"
-#: src/game.cpp:955
+#: ../src/gui/debugwindow.cpp:121
#, c-format
-msgid "Error while loading %s"
-msgstr "Erro ao carregar %s"
+msgid "Ambient FX: %s"
+msgstr "Ambiente FX: %s"
-#: src/gui/beingpopup.cpp:76
-#, fuzzy, c-format
-msgid "Party: %s"
-msgstr "Grupo (%s)"
+#: ../src/net/tmwa/partyhandler.cpp:304
+#, c-format
+msgid "An unknown member tried to say: %s"
+msgstr "Um membro desconhecido tentou dizer: %s"
-#: src/gui/buy.cpp:49 src/gui/buy.cpp:78 src/gui/buysell.cpp:47
-msgid "Buy"
-msgstr "Comprar"
+#: ../src/net/manaserv/beinghandler.cpp:317
+#: ../src/net/tmwa/playerhandler.cpp:120
+msgid "Annihilated."
+msgstr "Aniquilado."
-#: src/gui/buy.cpp:69 src/gui/buy.cpp:261 src/gui/sell.cpp:71
-#: src/gui/sell.cpp:288
-#, c-format
-msgid "Price: %s / Total: %s"
-msgstr "Preço: %s / Total: %s"
+#: ../src/gui/setup.cpp:51
+msgid "Apply"
+msgstr "Aplicar"
-#. TRANSLATORS: This is a narrow symbol used to denote 'increasing'.
-#. You may change this symbol if your language uses another.
-#: src/gui/buy.cpp:74 src/gui/itemamount.cpp:112 src/gui/npcdialog.cpp:124
-#: src/gui/sell.cpp:74 src/gui/statuswindow.cpp:463
-msgid "+"
-msgstr ""
+#: ../src/gui/setup_video.cpp:469
+msgid "Applying change to OpenGL requires restart."
+msgstr "Aplicando mudança a OpenGL requer reiniciar o jogo."
-#. TRANSLATORS: This is a narrow symbol used to denote 'decreasing'.
-#. You may change this symbol if your language uses another.
-#: src/gui/buy.cpp:77 src/gui/itemamount.cpp:111 src/gui/npcdialog.cpp:125
-#: src/gui/sell.cpp:75 src/gui/statuswindow.cpp:475
-msgid "-"
+#: ../src/gui/setup_video.cpp:461
+msgid ""
+"Applying change to OpenGL requires restart. In case OpenGL messes up your "
+"game graphics, restart the game with the command line option \"--no-opengl\"."
msgstr ""
+"Mudanças no OpenGL requerem o reinício do cliente. Caso o OpenGL atrapalhe o "
+"seu gráfico, abra o jogo através da linha de comando com a seguinte opção: "
+"\"--no-opengl\"."
-#: src/gui/buy.cpp:79 src/gui/quitdialog.cpp:40 src/gui/quitdialog.cpp:42
-#: src/gui/quitdialog.cpp:43 src/gui/sell.cpp:77 src/gui/serverdialog.cpp:228
-#: src/keyboardconfig.cpp:102
-msgid "Quit"
-msgstr "Sair"
+#: ../src/gui/charselectdialog.cpp:70
+msgid "Are you sure you want to delete this character?"
+msgstr "Tem certeza que deseja excluir este personagem?"
-#: src/gui/buy.cpp:80 src/gui/sell.cpp:78 src/gui/statuswindow.cpp:384
-#: src/gui/statuswindow.cpp:462 src/gui/statuswindow.cpp:496
-msgid "Max"
-msgstr "Máximo"
+#: ../src/gui/socialwindow.cpp:168
+#, c-format
+msgid "Are you sure you want to leave guild %s?"
+msgstr "Tem certeza que deseja sair da guilda %s?"
-#: src/gui/buysell.cpp:38
-msgid "Shop"
-msgstr "Loja"
+#: ../src/gui/socialwindow.cpp:247
+#, c-format
+msgid "Are you sure you want to leave party %s?"
+msgstr "Tem certeza que deseja sair do grupo %s?"
-#: src/gui/buysell.cpp:47 src/gui/sell.cpp:49 src/gui/sell.cpp:76
-msgid "Sell"
-msgstr "Vender"
+#: ../src/gui/setup_keyboard.cpp:86
+msgid "Assign"
+msgstr "Atribuir"
-#: src/gui/buysell.cpp:47 src/gui/changeemaildialog.cpp:55
-#: src/gui/changepassworddialog.cpp:58 src/gui/charcreatedialog.cpp:79
-#: src/gui/connectiondialog.cpp:44 src/gui/itemamount.cpp:114
-#: src/gui/npcpostdialog.cpp:57 src/gui/popupmenu.cpp:175
-#: src/gui/popupmenu.cpp:194 src/gui/popupmenu.cpp:389
-#: src/gui/quitdialog.cpp:47 src/gui/register.cpp:74 src/gui/setup.cpp:51
-#: src/gui/socialwindow.cpp:275 src/gui/textdialog.cpp:40
-#: src/gui/unregisterdialog.cpp:56 src/gui/updatewindow.cpp:144
-msgid "Cancel"
-msgstr "Cancelar"
+#: ../src/keyboardconfig.cpp:44 ../src/net/tmwa/generalhandler.cpp:224
+msgid "Attack"
+msgstr "Ataque"
-#: src/gui/changeemaildialog.cpp:45 src/gui/changeemaildialog.cpp:54
-msgid "Change Email Address"
-msgstr "Alterar e-mail"
+#: ../src/resources/itemdb.cpp:53
+#, c-format
+msgid "Attack %+d"
+msgstr "Ataque %+d"
-#: src/gui/changeemaildialog.cpp:49 src/gui/changepassworddialog.cpp:52
+#: ../src/gui/popupmenu.cpp:87 ../src/gui/popupmenu.cpp:158
#, c-format
-msgid "Account: %s"
-msgstr "Conta: %s"
+msgid "Attack %s"
+msgstr "Ataque %s"
-#: src/gui/changeemaildialog.cpp:51
-#, fuzzy
-msgid "Type new email address twice:"
-msgstr "Digite o novo endereço de email duas vezes:"
+#: ../src/gui/chat.cpp:325
+msgid "Attendance written to record log."
+msgstr "Presença gravada no registro do log."
-#: src/gui/changeemaildialog.cpp:127
-#, fuzzy, c-format
-msgid "The new email address needs to be at least %d characters long."
-msgstr "O nome do usuário precisa ter pelo menos %d caracteres."
+#: ../src/gui/setup_audio.cpp:47
+msgid "Audio"
+msgstr "Ãudio"
-#: src/gui/changeemaildialog.cpp:134
-#, fuzzy, c-format
-msgid "The new email address needs to be less than %d characters long."
-msgstr "O nome do usuário tem que ser inferior a %d caracteres."
+#: ../src/net/tmwa/generalhandler.cpp:129
+msgid "Authentication failed."
+msgstr "Falha de autenticação."
-#: src/gui/changeemaildialog.cpp:141
-#, fuzzy
-msgid "The email address entries mismatch."
-msgstr "O novo endereço de email já existe."
+#: ../src/localplayer.cpp:1458
+msgid "Away"
+msgstr "Fora do Teclado"
-#: src/gui/changepassworddialog.cpp:47 src/gui/changepassworddialog.cpp:56
-#: src/gui/charselectdialog.cpp:128
-msgid "Change Password"
-msgstr "Alterar senha"
+#: ../src/gui/popupmenu.cpp:100
+#, c-format
+msgid "Befriend %s"
+msgstr "Amizade %s"
-#: src/gui/changepassworddialog.cpp:61 src/gui/login.cpp:55
-#: src/gui/register.cpp:68 src/gui/unregisterdialog.cpp:53
-msgid "Password:"
-msgstr "Senha:"
+#: ../src/gui/userpalette.cpp:91
+msgid "Being"
+msgstr "Personagem"
-#: src/gui/changepassworddialog.cpp:63
-#, fuzzy
-msgid "Type new password twice:"
-msgstr "Digite a nova senha duas vezes:"
+#: ../src/net/tmwa/playerhandler.cpp:132
+msgid "Bereft of life, you rest in peace."
+msgstr "Sem vida, você descansa em paz."
-#: src/gui/changepassworddialog.cpp:110
-msgid "Enter the old password first."
-msgstr ""
+#: ../src/playerrelations.cpp:342
+msgid "Blink name"
+msgstr "Piscar nome"
-#: src/gui/changepassworddialog.cpp:116
-#, fuzzy, c-format
-msgid "The new password needs to be at least %d characters long."
-msgstr "A senha deve ter pelo menos %d caracteres."
+#: ../src/gui/setup_colors.cpp:138
+msgid "Blue:"
+msgstr "Azul:"
-#: src/gui/changepassworddialog.cpp:123
-#, fuzzy, c-format
-msgid "The new password needs to be less than %d characters long."
-msgstr "A senha deve ser menor que %d caracteres."
+#: ../src/gui/setup_video.cpp:166
+msgid "Bubbles with names"
+msgstr "Bolhas com nomes"
-#: src/gui/changepassworddialog.cpp:130
-msgid "The new password entries mismatch."
-msgstr ""
+#: ../src/gui/setup_video.cpp:165
+msgid "Bubbles, no names"
+msgstr "Bolhas, sem nomes"
-#: src/gui/charcreatedialog.cpp:53
-msgid "Create Character"
-msgstr "Criar Personagem"
+#: ../src/gui/buy.cpp:49 ../src/gui/buy.cpp:78 ../src/gui/buysell.cpp:47
+msgid "Buy"
+msgstr "Comprar"
-#: src/gui/charcreatedialog.cpp:67 src/gui/login.cpp:54
-#: src/gui/register.cpp:67
-msgid "Name:"
-msgstr "Nome:"
+#: ../src/gui/setup_joystick.cpp:38 ../src/gui/setup_joystick.cpp:76
+msgid "Calibrate"
+msgstr "Calibrar"
-#. TRANSLATORS: This is an arrow symbol used to denote 'next'.
-#. You may change this symbol if your language uses another.
-#: src/gui/charcreatedialog.cpp:70 src/gui/charcreatedialog.cpp:75
-#: src/gui/outfitwindow.cpp:67
-msgid ">"
-msgstr ""
+#: ../src/gui/buysell.cpp:47 ../src/gui/changeemaildialog.cpp:55
+#: ../src/gui/changepassworddialog.cpp:58 ../src/gui/charcreatedialog.cpp:79
+#: ../src/gui/connectiondialog.cpp:44 ../src/gui/itemamount.cpp:104
+#: ../src/gui/npcpostdialog.cpp:57 ../src/gui/popupmenu.cpp:175
+#: ../src/gui/popupmenu.cpp:194 ../src/gui/popupmenu.cpp:380
+#: ../src/gui/quitdialog.cpp:47 ../src/gui/register.cpp:74
+#: ../src/gui/setup.cpp:51 ../src/gui/socialwindow.cpp:279
+#: ../src/gui/textdialog.cpp:40 ../src/gui/unregisterdialog.cpp:56
+#: ../src/gui/updatewindow.cpp:144
+msgid "Cancel"
+msgstr "Cancelar"
-#. TRANSLATORS: This is an arrow symbol used to denote 'previous'.
-#. You may change this symbol if your language uses another.
-#: src/gui/charcreatedialog.cpp:73 src/gui/charcreatedialog.cpp:76
-#: src/gui/outfitwindow.cpp:66
-msgid "<"
+#: ../src/commandhandler.cpp:422
+#, c-format
+msgid ""
+"Cannot create a whisper tab for nick \"%s\"! It either already exists, or is "
+"you."
msgstr ""
+"Não é possível criar uma aba de mensagem privada para o nick \"%s\"! Ou ela "
+"já existe ou é você mesmo."
-#: src/gui/charcreatedialog.cpp:74
-#, fuzzy
-msgid "Hair color:"
-msgstr "Cor do Cabelo:"
-
-#: src/gui/charcreatedialog.cpp:77
-#, fuzzy
-msgid "Hair style:"
-msgstr "Estilo do Cabelo:"
-
-#: src/gui/charcreatedialog.cpp:78 src/gui/charselectdialog.cpp:392
-#: src/gui/socialwindow.cpp:329
-msgid "Create"
-msgstr "Criar"
+#: ../src/gui/socialwindow.cpp:624
+msgid "Cannot create party. You are already in a party"
+msgstr "Não foi possível criar o grupo. Você já faz parte de um."
-#: src/gui/charcreatedialog.cpp:80 src/gui/register.cpp:90
-msgid "Male"
-msgstr "Homem"
+#: ../src/net/tmwa/playerhandler.cpp:380
+msgid "Cannot raise skill!"
+msgstr "Impossível aumentar o atributo!"
-#: src/gui/charcreatedialog.cpp:81 src/gui/register.cpp:91
-msgid "Female"
-msgstr "Mulher"
+#: ../src/gui/widgets/whispertab.cpp:52
+msgid "Cannot send empty chat!"
+msgstr "Não é possível enviar chat vazio!"
-#: src/gui/charcreatedialog.cpp:99 src/gui/charcreatedialog.cpp:251
-#, c-format
-msgid "Please distribute %d points"
-msgstr "Por favor distribua %d pontos"
+#: ../src/commandhandler.cpp:401
+msgid "Cannot send empty whispers!"
+msgstr "Não é possível enviar mensagens privadas vazias!"
-#: src/gui/charcreatedialog.cpp:178
-msgid "Your name needs to be at least 4 characters."
-msgstr "Seu nome precisa ter no mínimo 4 caracteres."
+#: ../src/net/tmwa/specialhandler.cpp:162
+msgid "Cannot shout!"
+msgstr "Impossivel gritar!"
-#: src/gui/charcreatedialog.cpp:242
-msgid "Character stats OK"
-msgstr "Status do personagem OK"
+#: ../src/net/tmwa/charserverhandler.cpp:109
+msgid "Cannot use this ID."
+msgstr "Não é possível usar este ID."
-#: src/gui/charcreatedialog.cpp:256
-#, c-format
-msgid "Please remove %d points"
-msgstr "Por favor remova %d pontos"
+#: ../src/gui/trade.cpp:102
+msgid "Change"
+msgstr "Mudar"
-#: src/gui/charselectdialog.cpp:69
-msgid "Confirm Character Delete"
-msgstr "Confimar exclusão do personagem"
+#: ../src/gui/charselectdialog.cpp:150
+msgid "Change Email"
+msgstr "Alterar email"
-#: src/gui/charselectdialog.cpp:70
-msgid "Are you sure you want to delete this character?"
-msgstr "Tem certeza que deseja excluir este personagem?"
+#: ../src/gui/changeemaildialog.cpp:45 ../src/gui/changeemaildialog.cpp:54
+msgid "Change Email Address"
+msgstr "Alterar e-mail"
-#: src/gui/charselectdialog.cpp:117
-msgid "Account and Character Management"
-msgstr "Gerenciamento de Conta e Personagem"
+#: ../src/gui/worldselectdialog.cpp:76
+msgid "Change Login"
+msgstr "Trocar Login"
-#: src/gui/charselectdialog.cpp:127
-msgid "Switch Login"
-msgstr ""
+#: ../src/gui/changepassworddialog.cpp:47
+#: ../src/gui/changepassworddialog.cpp:56 ../src/gui/charselectdialog.cpp:128
+msgid "Change Password"
+msgstr "Alterar senha"
-#: src/gui/charselectdialog.cpp:141 src/gui/unregisterdialog.cpp:47
-#: src/gui/unregisterdialog.cpp:55
-msgid "Unregister"
-msgstr "Cancelar Registro"
+#: ../src/gui/login.cpp:62
+msgid "Change Server"
+msgstr "Trocar servidor"
-#: src/gui/charselectdialog.cpp:150
-#, fuzzy
-msgid "Change Email"
-msgstr "Alterar e-mail"
+#: ../src/gui/setup_video.cpp:616
+msgid "Changes will take effect on map change."
+msgstr "As mudanças terão efeito ao mudar de mapa."
-#: src/gui/charselectdialog.cpp:336 src/gui/serverdialog.cpp:231
-#: src/gui/setup_players.cpp:229
-msgid "Delete"
-msgstr "Excluir"
+#: ../src/client.cpp:813
+msgid "Changing game servers"
+msgstr "Mudando servidores do jogo"
-#: src/gui/charselectdialog.cpp:380
-#, fuzzy
-msgid "Choose"
-msgstr "Fechar"
+#: ../src/gui/setup_video.cpp:460
+msgid "Changing to OpenGL"
+msgstr "Mudando para OpenGL"
-#: src/gui/charselectdialog.cpp:394 src/gui/charselectdialog.cpp:395
-msgid "(empty)"
+#: ../src/gui/widgets/channeltab.cpp:84
+msgid "Channel operators can kick and op other users from the channel."
msgstr ""
+"Operadores de canal podem expulsar e dar op a outros usuários do canal."
-#: src/gui/chat.cpp:88
-msgid "Chat"
-msgstr "Bate-papo"
-
-#: src/gui/chat.cpp:311
-#, fuzzy, c-format
-msgid "Present: %s; %d players are present."
-msgstr "%d jogadores estão presentes."
+#: ../src/net/tmwa/chathandler.cpp:223 ../src/net/tmwa/chathandler.cpp:229
+#: ../src/net/tmwa/chathandler.cpp:234 ../src/net/tmwa/chathandler.cpp:239
+#: ../src/net/tmwa/chathandler.cpp:244 ../src/net/tmwa/chathandler.cpp:249
+#: ../src/net/tmwa/chathandler.cpp:254 ../src/net/tmwa/chathandler.cpp:259
+msgid "Channels are not supported!"
+msgstr "Não há suporte para canais!"
-#: src/gui/chat.cpp:329
-msgid "Attendance written to record log."
-msgstr "Presença gravada no registro do log."
+#: ../src/net/tmwa/charserverhandler.cpp:150
+msgid "Character deleted."
+msgstr "Personagem deletado."
-#: src/gui/chat.cpp:493
+#: ../src/gui/statuswindow.cpp:238
#, c-format
-msgid "Whispering to %s: %s"
-msgstr "Sussurrando para %s: %s"
+msgid "Character points: %d"
+msgstr "Pontos do personagem: %d"
-#: src/gui/confirmdialog.cpp:42
-msgid "Yes"
-msgstr "Sim"
+#: ../src/gui/charcreatedialog.cpp:242
+msgid "Character stats OK"
+msgstr "Atributos do personagem OK"
-#: src/gui/confirmdialog.cpp:43
-msgid "No"
-msgstr "Não"
+#: ../src/net/manaserv/charhandler.cpp:143
+msgid "Character's name already exists."
+msgstr "Nome de usuário já existe."
-#: src/gui/debugwindow.cpp:43
-msgid "Debug"
-msgstr ""
+#: ../src/net/manaserv/charhandler.cpp:155
+msgid "Character's stats are too high."
+msgstr "Atributos do personagem estão muito altos."
-#: src/gui/debugwindow.cpp:56
-#, c-format
-msgid "%d FPS (OpenGL)"
-msgstr ""
+#: ../src/net/manaserv/charhandler.cpp:158
+msgid "Character's stats are too low."
+msgstr "Atributos do personagem estão muito baixos."
-#: src/gui/debugwindow.cpp:61 src/gui/debugwindow.cpp:64
-#, c-format
-msgid "%d FPS"
-msgstr ""
+#: ../src/gui/chat.cpp:87
+msgid "Chat"
+msgstr "Chat"
-#: src/gui/debugwindow.cpp:65 src/gui/debugwindow.cpp:104
-#, fuzzy, c-format
-msgid "Music: %s"
-msgstr "Tópico: %s"
+#: ../src/keyboardconfig.cpp:76
+msgid "Chat Window"
+msgstr "Janela de chat"
-#: src/gui/debugwindow.cpp:66 src/gui/debugwindow.cpp:108
-#, fuzzy, c-format
-msgid "Map: %s"
-msgstr "Nome: %s"
+#: ../src/net/tmwa/specialhandler.cpp:156
+msgid "Chat creating failed!"
+msgstr "Falha ao criar Chat!"
-#: src/gui/debugwindow.cpp:67 src/gui/debugwindow.cpp:106
-#, fuzzy, c-format
-msgid "Minimap: %s"
-msgstr "MiniMapa"
+#: ../src/gui/charselectdialog.cpp:380
+msgid "Choose"
+msgstr "Escolher"
-#: src/gui/debugwindow.cpp:68 src/gui/debugwindow.cpp:99
-#, c-format
-msgid "Cursor: (%d, %d)"
-msgstr ""
+#: ../src/gui/worldselectdialog.cpp:77
+msgid "Choose World"
+msgstr "Escolher Mundo"
-#: src/gui/debugwindow.cpp:69 src/gui/debugwindow.cpp:111
-#, fuzzy, c-format
-msgid "Particle count: %d"
-msgstr "Efeitos de partícula"
+#: ../src/gui/serverdialog.cpp:196
+msgid "Choose Your Server"
+msgstr "Escolha seu servidor"
-#: src/gui/debugwindow.cpp:116
-#, fuzzy, c-format
-msgid "Particle detail: %s"
-msgstr "Detalhe de partículas"
+#: ../src/gui/socialwindow.cpp:544
+msgid "Choose your guild's name."
+msgstr "Escolha o nome da sua guilda."
-#: src/gui/debugwindow.cpp:121
-#, fuzzy, c-format
-msgid "Ambient FX: %s"
-msgstr "Ambiente FX"
+#: ../src/gui/socialwindow.cpp:630
+msgid "Choose your party's name."
+msgstr "Escolha o nome do seu grupo."
-#: src/gui/equipmentwindow.cpp:69 src/gui/windowmenu.cpp:55
-msgid "Equipment"
-msgstr "Equipamento"
+#: ../src/gui/npcdialog.cpp:98
+msgid "Clear log"
+msgstr "Limpar log"
-#: src/gui/equipmentwindow.cpp:87 src/gui/inventorywindow.cpp:89
-#: src/gui/inventorywindow.cpp:337 src/gui/popupmenu.cpp:359
-msgid "Unequip"
-msgstr "Desequipar"
+#: ../src/net/manaserv/loginhandler.cpp:239
+msgid ""
+"Client registration is not allowed. Please contact server administration."
+msgstr ""
+"Registro pelo cliente não é permitido. Favor contactar o administrador do "
+"servidor."
-#: src/gui/help.cpp:37
-msgid "Help"
-msgstr "Ajuda"
+#: ../src/net/manaserv/loginhandler.cpp:263
+#: ../src/net/manaserv/loginhandler.cpp:300
+msgid "Client version is too old."
+msgstr "Versão do cliente é muito antiga."
-#: src/gui/help.cpp:51 src/gui/npcdialog.cpp:50
+#: ../src/gui/help.cpp:51 ../src/gui/npcdialog.cpp:47
msgid "Close"
msgstr "Fechar"
-#: src/gui/inventorywindow.cpp:59 src/gui/windowmenu.cpp:56
-msgid "Inventory"
-msgstr "Inventório"
+#: ../src/gui/setup_colors.cpp:50
+msgid "Colors"
+msgstr "Cores"
-#: src/gui/inventorywindow.cpp:59
-msgid "Storage"
-msgstr "Armazenamento"
+#: ../src/commandhandler.cpp:221
+msgid "Command: /announce <msg>"
+msgstr "Comando: /announce <msg>"
-#: src/gui/inventorywindow.cpp:82
-msgid "Slots:"
-msgstr "Entradas:"
+#: ../src/commandhandler.cpp:274
+msgid "Command: /away"
+msgstr "Comando: /away"
-#: src/gui/inventorywindow.cpp:87 src/gui/inventorywindow.cpp:100
-#: src/gui/inventorywindow.cpp:339 src/gui/popupmenu.cpp:361
-msgid "Equip"
-msgstr "Equipar"
+#: ../src/commandhandler.cpp:271
+msgid "Command: /away <afk reason>"
+msgstr "Comando: /away <motivo>"
-#: src/gui/inventorywindow.cpp:88
-msgid "Use"
-msgstr "Usar"
+#: ../src/commandhandler.cpp:228
+msgid "Command: /clear"
+msgstr "Comando: /clear"
-#: src/gui/inventorywindow.cpp:101 src/gui/popupmenu.cpp:364
-msgid "Activate"
-msgstr ""
+#: ../src/gui/widgets/whispertab.cpp:83
+msgid "Command: /close"
+msgstr "Comando: /close"
-#: src/gui/inventorywindow.cpp:102 src/gui/inventorywindow.cpp:348
-#: src/gui/popupmenu.cpp:367
-#, fuzzy
-msgid "Drop..."
-msgstr "Descartar"
+#: ../src/commandhandler.cpp:279
+msgid "Command: /createparty <name>"
+msgstr "Comando: /createparty <nome>"
-#: src/gui/inventorywindow.cpp:103 src/gui/popupmenu.cpp:373
-msgid "Split"
-msgstr "Dividir"
+#: ../src/net/tmwa/gui/partytab.cpp:100
+msgid "Command: /exp"
+msgstr "Comando: /exp"
-#: src/gui/inventorywindow.cpp:104 src/gui/outfitwindow.cpp:51
-msgid "Outfits"
-msgstr ""
+#: ../src/net/tmwa/gui/partytab.cpp:95
+msgid "Command: /exp <policy>"
+msgstr "Comando: /exp <policy>"
-#: src/gui/inventorywindow.cpp:106
-msgid "Weight:"
-msgstr "Peso:"
+#: ../src/commandhandler.cpp:209
+msgid "Command: /help"
+msgstr "Comando: /help"
-#: src/gui/inventorywindow.cpp:124 src/gui/popupmenu.cpp:378
-msgid "Store"
-msgstr "Guardar"
+#: ../src/commandhandler.cpp:212
+msgid "Command: /help <command>"
+msgstr "Comando: /help <comando>"
-#: src/gui/inventorywindow.cpp:125 src/gui/popupmenu.cpp:385
-msgid "Retrieve"
-msgstr "Retirar"
+#: ../src/gui/widgets/whispertab.cpp:88
+msgid "Command: /ignore"
+msgstr "Comando: /ignore"
-#: src/gui/inventorywindow.cpp:350 src/gui/popupmenu.cpp:369
-msgid "Drop"
-msgstr "Descartar"
+#: ../src/commandhandler.cpp:233
+msgid "Command: /ignore <player>"
+msgstr "Comando: /ignore <jogador>"
-#: src/gui/itemamount.cpp:113 src/gui/okdialog.cpp:42
-#: src/gui/quitdialog.cpp:46 src/gui/textdialog.cpp:39 src/gui/trade.cpp:72
-#: src/gui/trade.cpp:74
-msgid "OK"
-msgstr "OK"
+#: ../src/net/tmwa/gui/guildtab.cpp:73 ../src/net/tmwa/gui/partytab.cpp:73
+msgid "Command: /invite <nick>"
+msgstr "Comando: /invite <nick>"
-#: src/gui/itemamount.cpp:115
-msgid "All"
-msgstr "Tudo"
+#: ../src/net/tmwa/gui/partytab.cpp:90
+msgid "Command: /item"
+msgstr "Comando: /item"
-#: src/gui/itemamount.cpp:141
-msgid "Select amount of items to trade."
-msgstr "Selecionar quantidade de itens para negociar."
+#: ../src/net/tmwa/gui/partytab.cpp:85
+msgid "Command: /item <policy>"
+msgstr "Comando> /item <opção>"
-#: src/gui/itemamount.cpp:144
-msgid "Select amount of items to drop."
-msgstr "Selecionar quantidade de itens para descartar."
+#: ../src/commandhandler.cpp:239
+msgid "Command: /join <channel>"
+msgstr "Comando: /join <canal>"
-#: src/gui/itemamount.cpp:147
-msgid "Select amount of items to store."
-msgstr "Escolha a quantidade de itens para guardar."
+#: ../src/gui/widgets/channeltab.cpp:89
+msgid "Command: /kick <nick>"
+msgstr "Comando: /kick <nick>"
-#: src/gui/itemamount.cpp:150
-msgid "Select amount of items to retrieve."
-msgstr "Escolha a quantidade de itens para retirar."
+#: ../src/net/tmwa/gui/guildtab.cpp:80 ../src/net/tmwa/gui/partytab.cpp:80
+msgid "Command: /leave"
+msgstr "Comando: /leave"
-#: src/gui/itemamount.cpp:153
-msgid "Select amount of items to split."
-msgstr "Selecionar quantidade de itens para dividir."
+#: ../src/commandhandler.cpp:245
+msgid "Command: /list"
+msgstr "Comando: /list"
-#: src/gui/itempopup.cpp:137
-#, fuzzy, c-format
-msgid "Weight: %s"
-msgstr "Peso: "
+#: ../src/commandhandler.cpp:250
+msgid "Command: /me <message>"
+msgstr "Comando: /me <mensagem>"
-#: src/gui/login.cpp:51 src/gui/login.cpp:63
-msgid "Login"
-msgstr "Login"
+#: ../src/commandhandler.cpp:255
+msgid "Command: /msg <nick> <message>"
+msgstr "Comando: /msg <nick> <mensagem>"
-#: src/gui/login.cpp:60
-#, fuzzy
-msgid "Remember username"
-msgstr "Lembrar nome de usuário"
+#: ../src/gui/widgets/channeltab.cpp:80
+msgid "Command: /op <nick>"
+msgstr "Comando: /op <nick>"
-#: src/gui/login.cpp:61 src/gui/register.cpp:58 src/gui/register.cpp:73
-msgid "Register"
-msgstr "Registrar"
+#: ../src/commandhandler.cpp:284
+msgid "Command: /party <nick>"
+msgstr "Comando: /party <nick>"
-#: src/gui/login.cpp:62
-#, fuzzy
-msgid "Change Server"
-msgstr "Servidor"
+#: ../src/commandhandler.cpp:291
+msgid "Command: /present"
+msgstr "Comando: /present"
-#: src/gui/login.cpp:129
-#, fuzzy
-msgid "Registration disabled"
-msgstr "Compartilhamento de itens desabilitado."
+#: ../src/commandhandler.cpp:265
+msgid "Command: /q <nick>"
+msgstr "Comando: /q <nick>"
-#: src/gui/login.cpp:129
-msgid "You need to use the website to register an account for this server."
-msgstr ""
+#: ../src/commandhandler.cpp:264
+msgid "Command: /query <nick>"
+msgstr "Comando: /query <nick>"
-#: src/gui/minimap.cpp:45 src/gui/minimap.cpp:86
-msgid "Map"
-msgstr "Mapa"
+#: ../src/gui/widgets/channeltab.cpp:73
+msgid "Command: /quit"
+msgstr "Comando: /quit"
-#: src/gui/ministatus.cpp:235
-msgid "Need"
-msgstr ""
+#: ../src/commandhandler.cpp:301
+msgid "Command: /record"
+msgstr "Comando: /record"
-#: src/gui/npcdialog.cpp:48
-msgid "Waiting for server"
-msgstr "Aguardando servidor"
+#: ../src/commandhandler.cpp:298
+msgid "Command: /record <filename>"
+msgstr "Comando: /record <nome_do_arquivo>"
-#: src/gui/npcdialog.cpp:49
-msgid "Next"
-msgstr "Próximo"
+#: ../src/commandhandler.cpp:312
+msgid "Command: /toggle"
+msgstr "Comando: /toggle"
-#: src/gui/npcdialog.cpp:51
-msgid "Submit"
-msgstr "Confirmar"
+#: ../src/commandhandler.cpp:306
+msgid "Command: /toggle <state>"
+msgstr "Comando: /toggle <estado>"
-#: src/gui/npcdialog.cpp:73 src/gui/npcpostdialog.cpp:41
-msgid "NPC"
-msgstr "NPC"
+#: ../src/gui/widgets/channeltab.cpp:68
+msgid "Command: /topic <message>"
+msgstr "Comando: /topic <mensagem>"
-#: src/gui/npcdialog.cpp:118
-msgid "Clear log"
-msgstr ""
+#: ../src/commandhandler.cpp:317 ../src/gui/widgets/whispertab.cpp:94
+msgid "Command: /unignore <player>"
+msgstr "Comando: /unignore <jogador>"
-#: src/gui/npcdialog.cpp:134
-msgid "Reset"
-msgstr "Resetar"
+#: ../src/gui/widgets/channeltab.cpp:63
+msgid "Command: /users"
+msgstr "Comando: /users"
-#. TRANSLATORS: Please leave the \n sequences intact.
-#: src/gui/npcdialog.cpp:208
-#, fuzzy
-msgid ""
-"\n"
-"> Next\n"
-msgstr "Próximo"
+#: ../src/commandhandler.cpp:257
+msgid "Command: /w <nick> <message>"
+msgstr "Comando: /w <nick> <mensagem>"
-#: src/gui/npcpostdialog.cpp:47
-msgid "To:"
-msgstr "Para:"
+#: ../src/commandhandler.cpp:323
+msgid "Command: /where"
+msgstr "Comando: /where"
-#: src/gui/npcpostdialog.cpp:54
-msgid "Send"
-msgstr "Enviar"
+#: ../src/commandhandler.cpp:256
+msgid "Command: /whisper <nick> <message>"
+msgstr "Comando: /whisper <nick> <mensagem>"
-#: src/gui/npcpostdialog.cpp:99
-msgid "Failed to send as sender or letter invalid."
-msgstr "Falha ao enviar como remetente ou a carta é inválida."
+#: ../src/commandhandler.cpp:328
+msgid "Command: /who"
+msgstr "Comando: /who"
+
+#: ../src/gui/updatewindow.cpp:515
+msgid "Completed"
+msgstr "Concluído"
-#: src/gui/outfitwindow.cpp:68 src/gui/outfitwindow.cpp:141
-#: src/gui/outfitwindow.cpp:154
+#: ../src/playerrelations.cpp:312
+msgid "Completely ignore"
+msgstr "Ignorar completamente"
+
+#: ../src/gui/popupmenu.cpp:117
#, c-format
-msgid "Outfit: %d"
-msgstr ""
+msgid "Completely ignore %s"
+msgstr "Ignorar completamente %s"
-#: src/gui/outfitwindow.cpp:70
-#, fuzzy
-msgid "Unequip first"
-msgstr "Desequipar"
+#: ../src/gui/charselectdialog.cpp:69
+msgid "Confirm Character Delete"
+msgstr "Confimar exclusão do personagem"
-#: src/gui/popupmenu.cpp:83
-#, fuzzy, c-format
-msgid "Trade with %s..."
-msgstr "Negociando com %s"
+#: ../src/gui/register.cpp:69
+msgid "Confirm:"
+msgstr "Confirmar:"
-#: src/gui/popupmenu.cpp:87 src/gui/popupmenu.cpp:158
-#, fuzzy, c-format
-msgid "Attack %s"
-msgstr "Ataque %+d"
+#: ../src/gui/trade.cpp:53
+msgid "Confirmed. Waiting..."
+msgstr "Confirmado. Aguardando..."
-#: src/gui/popupmenu.cpp:91
-#, fuzzy, c-format
-msgid "Whisper %s"
-msgstr "Sussurrar"
+#: ../src/keyboardconfig.cpp:184
+#, c-format
+msgid ""
+"Conflict \"%s\" and \"%s\" keys. Resolve them, or gameplay may result in "
+"strange behaviour."
+msgstr ""
+"Conflito com as teclas \"%s\" e \"%s\" . Resolva o conflito para não "
+"comprometer a jogabilidade."
-#: src/gui/popupmenu.cpp:100
-#, fuzzy, c-format
-msgid "Befriend %s"
-msgstr "@@friend|Fazer amizade com %s@@"
+#: ../src/gui/serverdialog.cpp:233
+msgid "Connect"
+msgstr "Conectar"
-#: src/gui/popupmenu.cpp:105
-#, fuzzy, c-format
-msgid "Disregard %s"
-msgstr "Desconsiderado"
+#: ../src/client.cpp:655
+msgid "Connecting to server"
+msgstr "Conectando ao servidor"
-#: src/gui/popupmenu.cpp:108
-#, fuzzy, c-format
-msgid "Ignore %s"
-msgstr "Ignorado"
+#: ../src/client.cpp:803
+msgid "Connecting to the game server"
+msgstr "Conectando ao servidor do jogo"
-#: src/gui/popupmenu.cpp:114 src/gui/popupmenu.cpp:123
+#: ../src/gui/updatewindow.cpp:142
+msgid "Connecting..."
+msgstr "Conectando..."
+
+#: ../src/net/tmwa/network.cpp:414
+msgid "Connection to server terminated. "
+msgstr "Conexão com o servidor interrompida."
+
+#: ../src/keyboardconfig.cpp:84
+msgid "Copy Outfit"
+msgstr "Copiar roupas"
+
+#: ../src/gui/statuswindow.cpp:244
#, c-format
-msgid "Unignore %s"
-msgstr ""
+msgid "Correction points: %d"
+msgstr "Pontos de correção: %d"
-#: src/gui/popupmenu.cpp:117
-#, fuzzy, c-format
-msgid "Completely ignore %s"
-msgstr "@@ignore|Ignorar completamente %s@@"
+#: ../src/game.cpp:950
+msgid "Could Not Load Map"
+msgstr "Não foi possível carregar o mapa"
-#: src/gui/popupmenu.cpp:130
-#, fuzzy, c-format
-msgid "Invite %s to join your guild"
-msgstr "@@guild|Convidar %s para sua corporação@@"
+#: ../src/net/tmwa/partyhandler.cpp:81
+msgid "Could not create party."
+msgstr "Não foi possível criar o grupo."
-#: src/gui/popupmenu.cpp:134
-#, fuzzy, c-format
-msgid "Invite %s to join your party"
-msgstr "@@party|Convidar %s para entrar no seu grupo@@"
+#: ../src/net/tmwa/guildhandler.cpp:295
+msgid "Could not inivte user to guild."
+msgstr "Não foi possível convidar jogador para a guilda."
-#: src/gui/popupmenu.cpp:141
-#, fuzzy
-msgid "Kick player"
-msgstr "Erro na expulsão!"
+#: ../src/net/tmwa/specialhandler.cpp:159
+msgid "Could not join party!"
+msgstr "Impossivel entrar no grupo!"
-#: src/gui/popupmenu.cpp:150
-#, fuzzy, c-format
-msgid "Talk to %s"
-msgstr "@@talk|Falar com %s@@"
+#: ../src/net/tmwa/specialhandler.cpp:213
+msgid "Could not steal anything..."
+msgstr "Não foi possível roubar nada..."
-#: src/gui/popupmenu.cpp:163
-#, fuzzy
-msgid "Kick monster"
-msgstr "@@admin-kick|Expulsar monstro@@"
+#: ../src/gui/charcreatedialog.cpp:78 ../src/gui/charselectdialog.cpp:390
+#: ../src/gui/socialwindow.cpp:333
+msgid "Create"
+msgstr "Criar"
-#: src/gui/popupmenu.cpp:171
-#, fuzzy
-msgid "Add name to chat"
-msgstr "@@name|Adiciona nome ao chat@@"
+#: ../src/gui/charcreatedialog.cpp:53
+msgid "Create Character"
+msgstr "Criar Personagem"
-#: src/gui/popupmenu.cpp:188
-#, fuzzy, c-format
-msgid "Pick up %s"
-msgstr "Pegar"
+#: ../src/gui/socialwindow.cpp:276
+msgid "Create Guild"
+msgstr "Criar guilda"
-#: src/gui/popupmenu.cpp:190 src/gui/popupmenu.cpp:387
-#, fuzzy
-msgid "Add to chat"
-msgstr "@@chat|Adicionar ao chat@@"
+#: ../src/gui/socialwindow.cpp:277 ../src/gui/socialwindow.cpp:623
+msgid "Create Party"
+msgstr "Criar grupo"
-#: src/gui/quitdialog.cpp:44
-msgid "Switch server"
-msgstr "Trocar servidor"
+#: ../src/gui/socialwindow.cpp:507
+#, c-format
+msgid "Creating guild called %s."
+msgstr "Criando guilda chamada %s."
-#: src/gui/quitdialog.cpp:45
-msgid "Switch character"
-msgstr "Trocar de Personagem"
+#: ../src/gui/socialwindow.cpp:501
+msgid "Creating guild failed, please choose a shorter name."
+msgstr "Falha ao criar guilda, escolha um nome mais curto."
-#: src/gui/recorder.cpp:87
-msgid "Finishing recording."
-msgstr "Finalizando gravação."
+#: ../src/gui/socialwindow.cpp:529
+#, c-format
+msgid "Creating party called %s."
+msgstr "Criando grupo chamado %s."
-#: src/gui/recorder.cpp:91
-msgid "Not currently recording."
-msgstr "Não há gravação neste momento."
+#: ../src/gui/socialwindow.cpp:523
+msgid "Creating party failed, please choose a shorter name."
+msgstr "Falha ao criar grupo, escolha um nome mais curto."
-#: src/gui/recorder.cpp:96
-msgid "Already recording."
-msgstr "Já está gravando."
+#: ../src/gui/userpalette.cpp:105
+msgid "Critical Hit"
+msgstr "Golpe crítico"
-#: src/gui/recorder.cpp:104
-msgid "Starting to record..."
-msgstr "Iniciando a gravação..."
+#: ../src/gui/debugwindow.cpp:68 ../src/gui/debugwindow.cpp:99
+#, c-format
+msgid "Cursor: (%d, %d)"
+msgstr "Cursor: (%d, %d)"
-#: src/gui/recorder.cpp:112
-msgid "Failed to start recording."
-msgstr "Falha ao iniciar gravação."
+#: ../src/gui/serverdialog.cpp:234
+msgid "Custom Server"
+msgstr "Servidor customizado"
-#: src/gui/recorder.h:38
-msgid "Recording..."
-msgstr "Gravando..."
+#: ../src/gui/setup_video.cpp:221
+msgid "Custom cursor"
+msgstr "Cursor customizado"
-#: src/gui/recorder.h:39
-msgid "Stop recording"
-msgstr "Parar gravação"
+#: ../src/gui/setup_video.cpp:468
+msgid "Deactivating OpenGL"
+msgstr "Desativando OpenGL"
-#: src/gui/register.cpp:69
-msgid "Confirm:"
-msgstr "Confirmar:"
+#: ../src/gui/debugwindow.cpp:43
+msgid "Debug"
+msgstr "Depurador"
-#: src/gui/register.cpp:100
-msgid "Email:"
-msgstr "Email:"
+#: ../src/keyboardconfig.cpp:79
+msgid "Debug Window"
+msgstr "Janela de depuração"
-#: src/gui/register.cpp:166
-#, c-format
-msgid "The username needs to be at least %d characters long."
-msgstr "O nome do usuário precisa ter pelo menos %d caracteres."
+#: ../src/gui/setup_keyboard.cpp:94
+msgid "Default"
+msgstr "Padrão"
-#: src/gui/register.cpp:174
-#, c-format
-msgid "The username needs to be less than %d characters long."
-msgstr "O nome do usuário tem que ser inferior a %d caracteres."
+#: ../src/net/tmwa/generalhandler.cpp:225
+msgid "Defense"
+msgstr "Defesa"
-#: src/gui/register.cpp:182 src/gui/unregisterdialog.cpp:117
+#: ../src/resources/itemdb.cpp:54
#, c-format
-msgid "The password needs to be at least %d characters long."
-msgstr "A senha deve ter pelo menos %d caracteres."
+msgid "Defense %+d"
+msgstr "Defesa %+d"
-#: src/gui/register.cpp:190 src/gui/unregisterdialog.cpp:124
-#, c-format
-msgid "The password needs to be less than %d characters long."
-msgstr "A senha deve ser menor que %d caracteres."
+#: ../src/gui/setup_colors.cpp:93
+msgid "Delay:"
+msgstr "Atraso:"
-#: src/gui/register.cpp:197
-msgid "Passwords do not match."
-msgstr "Senhas não conferem."
+#: ../src/gui/charselectdialog.cpp:336 ../src/gui/serverdialog.cpp:235
+#: ../src/gui/setup_players.cpp:228
+msgid "Delete"
+msgstr "Excluir"
-#: src/gui/serverdialog.cpp:197
-#, fuzzy
-msgid "Choose Your Server"
-msgstr "Selecione seu servidor"
+#: ../src/net/manaserv/stats.cpp:80 ../src/net/tmwa/generalhandler.cpp:221
+msgid "Dexterity"
+msgstr "Destreza"
-#: src/gui/serverdialog.cpp:206 src/gui/widgets/chattab.cpp:142
-msgid "Server:"
-msgstr "Servidor:"
+#: ../src/net/manaserv/stats.cpp:82 ../src/net/tmwa/generalhandler.cpp:105
+#, c-format
+msgid "Dexterity %+d"
+msgstr "Destreza %+d"
-#: src/gui/serverdialog.cpp:207
-msgid "Port:"
-msgstr "Porta:"
+#: ../src/net/tmwa/charserverhandler.cpp:263
+msgid "Dexterity:"
+msgstr "Destreza:"
-#: src/gui/serverdialog.cpp:208
-#, fuzzy
-msgid "Server type:"
-msgstr "Servidor:"
+#: ../src/gui/setup_video.cpp:249
+msgid "Disable transparency (Low CPU mode)"
+msgstr "Desabilitar transparência (CPU Modo Econômico)"
-#: src/gui/serverdialog.cpp:229
-#, fuzzy
-msgid "Connect"
-msgstr "Conectando..."
+#: ../src/gui/popupmenu.cpp:105
+#, c-format
+msgid "Disregard %s"
+msgstr "Desprezar %s"
-#: src/gui/serverdialog.cpp:230
-#, fuzzy
-msgid "Custom Server"
-msgstr "Cursor customizado"
+#: ../src/gui/setup_players.cpp:66
+msgid "Disregarded"
+msgstr "Desconsiderado"
-#: src/gui/serverdialog.cpp:324
-msgid "Please type both the address and the port of a server."
-msgstr "Por favor especifique o endereço e a porta do servidor."
+#: ../src/net/manaserv/beinghandler.cpp:315
+#: ../src/net/tmwa/playerhandler.cpp:116
+msgid "Do you want your possessions identified?"
+msgstr "Você quer uma identificação de suas posses?"
-#: src/gui/serverdialog.cpp:441
+#: ../src/gui/setup_audio.cpp:43
+msgid "Download music"
+msgstr "Baixar música"
+
+#: ../src/gui/serverdialog.cpp:442
#, c-format
msgid "Downloading server list...%2.2f%%"
-msgstr ""
+msgstr "Baixando lista de servidores...%2.2f%%"
-#: src/gui/serverdialog.cpp:447
-#, fuzzy
-msgid "Waiting for server..."
-msgstr "Aguardando servidor"
+#: ../src/gui/inventorywindow.cpp:325 ../src/gui/popupmenu.cpp:365
+msgid "Drop"
+msgstr "Descartar"
-#: src/gui/serverdialog.cpp:451
-msgid "Preparing download"
-msgstr ""
+#: ../src/gui/inventorywindow.cpp:99 ../src/gui/inventorywindow.cpp:323
+#: ../src/gui/popupmenu.cpp:363
+msgid "Drop..."
+msgstr "Descartar..."
-#: src/gui/serverdialog.cpp:455
-msgid "Error retreiving server list!"
-msgstr ""
+#: ../src/net/tmwa/generalhandler.cpp:145
+msgid "Duplicated login."
+msgstr "Login duplicado."
-#: src/gui/serverdialog.cpp:550
-msgid "requires a newer version"
-msgstr ""
+#: ../src/client.cpp:905
+msgid "Email Change"
+msgstr "Mudar email"
-#: src/gui/serverdialog.cpp:552
+#: ../src/net/manaserv/loginhandler.cpp:309
+msgid "Email address already exists."
+msgstr "Endereço de email já existe."
+
+#: ../src/client.cpp:906
+msgid "Email changed successfully!"
+msgstr "Email modificado com sucesso!"
+
+#: ../src/gui/register.cpp:100
+msgid "Email:"
+msgstr "Email:"
+
+#: ../src/keyboardconfig.cpp:85 ../src/keyboardconfig.cpp:86
+#: ../src/keyboardconfig.cpp:87 ../src/keyboardconfig.cpp:88
+#: ../src/keyboardconfig.cpp:89 ../src/keyboardconfig.cpp:90
+#: ../src/keyboardconfig.cpp:91 ../src/keyboardconfig.cpp:92
+#: ../src/keyboardconfig.cpp:93 ../src/keyboardconfig.cpp:94
+#: ../src/keyboardconfig.cpp:95 ../src/keyboardconfig.cpp:96
#, c-format
-msgid "requires v%s"
-msgstr ""
+msgid "Emote Shortcut %d"
+msgstr "Atalho para Emoticon %d"
-#: src/gui/setup_audio.cpp:42
-msgid "Sound"
-msgstr "Som"
+#: ../src/keyboardconfig.cpp:81
+msgid "Emote Shortcut Window"
+msgstr "Janela de atalho para Emoticons"
-#: src/gui/setup_audio.cpp:43
-msgid "Download music"
-msgstr ""
+#: ../src/net/tmwa/specialhandler.cpp:150
+msgid "Emote failed!"
+msgstr "Falha no Emote!"
-#: src/gui/setup_audio.cpp:47
-msgid "Audio"
-msgstr "Ãudio"
+#: ../src/net/tmwa/network.cpp:145
+msgid "Empty address given to Network::connect()!"
+msgstr "Endereço vazio enviado para Network::connect()!"
-#: src/gui/setup_audio.cpp:50
-msgid "Sfx volume"
-msgstr "Volume Sfx"
+#: ../src/gui/setup_joystick.cpp:39
+msgid "Enable joystick"
+msgstr "Habilitar joystick"
-#: src/gui/setup_audio.cpp:51
-msgid "Music volume"
-msgstr "Volume da Música"
+#: ../src/keyboardconfig.cpp:56
+msgid "Enable/Disable Trading"
+msgstr "Habilitar/Desabilitar Negociações"
-#: src/gui/setup_audio.cpp:94
-#, fuzzy
-msgid "Notice"
-msgstr "Sem texto"
+#: ../src/net/manaserv/chathandler.cpp:219
+msgid "End of channel list."
+msgstr "Fim da lista de canais."
-#: src/gui/setup_audio.cpp:94
-msgid "You may have to restart your client if you want to download new music"
-msgstr ""
+#: ../src/gui/changepassworddialog.cpp:110
+msgid "Enter the old password first."
+msgstr "Primeiro entre com a antiga senha."
-#: src/gui/setup_audio.cpp:106
-msgid "Sound Engine"
-msgstr ""
+#: ../src/client.cpp:715
+msgid "Entering game world"
+msgstr "Entrando no domínio do jogo"
-#: src/gui/setup_colors.cpp:46
-msgid "This is what the color looks like"
-msgstr "A cor se parece com isso"
+#: ../src/gui/inventorywindow.cpp:85 ../src/gui/inventorywindow.cpp:315
+#: ../src/gui/popupmenu.cpp:357
+msgid "Equip"
+msgstr "Equipar"
-#: src/gui/setup_colors.cpp:51
-msgid "Colors"
-msgstr "Cores"
+#: ../src/net/tmwa/playerhandler.cpp:543
+msgid "Equip arrows first."
+msgstr "Equipe as flechas primeiro."
-#: src/gui/setup_colors.cpp:72
-#, fuzzy
-msgid "Type:"
-msgstr "Tipo: "
+#: ../src/gui/equipmentwindow.cpp:69 ../src/gui/windowmenu.cpp:55
+msgid "Equipment"
+msgstr "Equipamento"
-#: src/gui/setup_colors.cpp:83 src/gui/setup_colors.cpp:331
-msgid "Static"
-msgstr "Estático"
+#: ../src/keyboardconfig.cpp:73
+msgid "Equipment Window"
+msgstr "Janela de equipamento"
-#: src/gui/setup_colors.cpp:85 src/gui/setup_colors.cpp:86
-#: src/gui/setup_colors.cpp:332
-msgid "Pulse"
-msgstr "Pulso"
+#: ../src/client.cpp:842 ../src/client.cpp:849 ../src/client.cpp:984
+#: ../src/gui/changeemaildialog.cpp:156
+#: ../src/gui/changepassworddialog.cpp:149 ../src/gui/charcreatedialog.cpp:177
+#: ../src/gui/register.cpp:218 ../src/gui/serverdialog.cpp:336
+#: ../src/gui/unregisterdialog.cpp:133 ../src/net/manaserv/charhandler.cpp:167
+#: ../src/net/manaserv/charhandler.cpp:210
+#: ../src/net/tmwa/charserverhandler.cpp:138
+#: ../src/net/tmwa/charserverhandler.cpp:155
+msgid "Error"
+msgstr "Erro"
-#: src/gui/setup_colors.cpp:87 src/gui/setup_colors.cpp:88
-#: src/gui/setup_colors.cpp:333
-msgid "Rainbow"
-msgstr "Arco-íris"
+#: ../src/net/manaserv/guildhandler.cpp:86
+msgid "Error creating guild."
+msgstr "Erro ao criar Guilda."
-#: src/gui/setup_colors.cpp:89 src/gui/setup_colors.cpp:90
-#: src/gui/setup_colors.cpp:333
-msgid "Spectrum"
-msgstr "Espectro"
+#: ../src/client.cpp:1278 ../src/client.cpp:1284
+msgid "Error creating updates directory!"
+msgstr "Erro ao criar pasta de atualizações!"
-#: src/gui/setup_colors.cpp:94
-#, fuzzy
-msgid "Delay:"
-msgstr "Atraso: "
+#: ../src/net/manaserv/chathandler.cpp:201
+msgid "Error joining channel."
+msgstr "Erro ao entrar no canal."
-#: src/gui/setup_colors.cpp:109
-#, fuzzy
-msgid "Red:"
-msgstr "Vermelho: "
+#: ../src/gui/serverdialog.cpp:456
+msgid "Error retreiving server list!"
+msgstr "Erro ao recuperar lista!"
-#: src/gui/setup_colors.cpp:124
-#, fuzzy
-msgid "Green:"
-msgstr "Verde: "
+#: ../src/game.cpp:951
+#, c-format
+msgid "Error while loading %s"
+msgstr "Erro ao carregar %s"
-#: src/gui/setup_colors.cpp:139
-#, fuzzy
-msgid "Blue:"
-msgstr "Azul: "
+#: ../src/gui/statuswindow.cpp:215
+msgid "Exp"
+msgstr "Exp"
-#: src/gui/setup.cpp:51
-msgid "Apply"
-msgstr "Aplicar"
+#: ../src/gui/userpalette.cpp:101
+msgid "Exp Notification"
+msgstr "Aviso de experiência"
-#: src/gui/setup.cpp:51
-msgid "Reset Windows"
-msgstr "Restaurar janelas"
+#: ../src/gui/statuswindow.cpp:118
+msgid "Exp:"
+msgstr "Exp:"
-#: src/gui/setup_joystick.cpp:37 src/gui/setup_joystick.cpp:78
-msgid "Press the button to start calibration"
-msgstr "Aperte o botão para começar a calibração"
+#: ../src/net/tmwa/gui/partytab.cpp:170 ../src/net/tmwa/partyhandler.cpp:183
+msgid "Experience sharing disabled."
+msgstr "Compartilhamento de experiência desabilitado."
-#: src/gui/setup_joystick.cpp:38 src/gui/setup_joystick.cpp:76
-msgid "Calibrate"
-msgstr "Calibrar"
+#: ../src/net/tmwa/gui/partytab.cpp:167 ../src/net/tmwa/partyhandler.cpp:177
+msgid "Experience sharing enabled."
+msgstr "Compartilhamento de experiência habilitado."
-#: src/gui/setup_joystick.cpp:39
-msgid "Enable joystick"
-msgstr "Habilitar joystick"
+#: ../src/net/tmwa/gui/partytab.cpp:173 ../src/net/tmwa/partyhandler.cpp:189
+msgid "Experience sharing not possible."
+msgstr "Não é possível compartilhar experiência."
-#: src/gui/setup_joystick.cpp:41
-msgid "Joystick"
-msgstr "Joystick"
+#: ../src/net/tmwa/gui/partytab.cpp:176
+msgid "Experience sharing unknown."
+msgstr "Compartilhamento de experiência desconhecido."
-#: src/gui/setup_joystick.cpp:83
-msgid "Stop"
-msgstr "Parar"
+#: ../src/gui/setup_video.cpp:238
+msgid "FPS limit:"
+msgstr "Limite FPS:"
-#: src/gui/setup_joystick.cpp:84
-msgid "Rotate the stick"
-msgstr "Gire o bastão"
+#: ../src/net/tmwa/tradehandler.cpp:211
+msgid "Failed adding item for unknown reason."
+msgstr "Erro ao adicionar item devido a um motivo desconhecido."
-#: src/gui/setup_keyboard.cpp:77
-msgid "Keyboard"
-msgstr "Teclado"
+#: ../src/net/tmwa/tradehandler.cpp:207
+msgid "Failed adding item. Trade partner has no free slot."
+msgstr "Erro ao adicionar item. Parceiro de negócios não tem slots livres."
-#: src/gui/setup_keyboard.cpp:86
-msgid "Assign"
-msgstr "Atribuir"
+#: ../src/net/tmwa/tradehandler.cpp:202
+msgid "Failed adding item. Trade partner is over weighted."
+msgstr "Erro ao adicionar item. Parceiro de negócios carregando muito peso."
-#: src/gui/setup_keyboard.cpp:90
-#, fuzzy
-msgid "Unassign"
-msgstr "Atribuir"
+#: ../src/gui/trade.cpp:273
+msgid "Failed adding item. You can not overlap one kind of item on the window."
+msgstr ""
+"Falha ao adicionar item. Você não pode duplicar este tipo de item na janela."
-#: src/gui/setup_keyboard.cpp:94
-msgid "Default"
-msgstr "Padrão"
+#: ../src/net/tmwa/charserverhandler.cpp:138
+msgid "Failed to create character. Most likely the name is already taken."
+msgstr "Erro ao criar personagem. Provavelmente o nome já está sendo usado."
-#: src/gui/setup_keyboard.cpp:125
-msgid "Key Conflict(s) Detected."
-msgstr "Conflitos nas teclas detectado."
+#: ../src/net/tmwa/charserverhandler.cpp:155
+msgid "Failed to delete character."
+msgstr "Falha ao deletar personagem."
-#: src/gui/setup_players.cpp:58
-msgid "Name"
-msgstr "Nome"
+#: ../src/net/manaserv/guildhandler.cpp:208
+msgid "Failed to promote member."
+msgstr "Erro ao promover o membro."
-#: src/gui/setup_players.cpp:59
-msgid "Relation"
-msgstr "Relação"
+#: ../src/gui/npcpostdialog.cpp:96
+msgid "Failed to send as sender or letter invalid."
+msgstr "Falha ao enviar como remetente ou a carta é inválida."
-#: src/gui/setup_players.cpp:64
-msgid "Neutral"
-msgstr "Neutro"
+#: ../src/gui/recorder.cpp:112
+msgid "Failed to start recording."
+msgstr "Falha ao iniciar gravação."
-#: src/gui/setup_players.cpp:65
-msgid "Friend"
-msgstr "Amigo"
+#: ../src/gui/setup_video.cpp:434
+msgid ""
+"Failed to switch to fullscreen mode and restoration of old mode also failed!"
+msgstr ""
+"Falha ao mudar para o modo tela cheia e falha na restauração do modo "
+"anterior!"
-#: src/gui/setup_players.cpp:66
-msgid "Disregarded"
-msgstr "Desconsiderado"
+#: ../src/gui/setup_video.cpp:428
+msgid ""
+"Failed to switch to windowed mode and restoration of old mode also failed!"
+msgstr ""
+"Falha ao mudar para o modo janela e falha na restauração do modo anterior!"
-#: src/gui/setup_players.cpp:67
-msgid "Ignored"
-msgstr "Ignorado"
+#: ../src/net/tmwa/inventoryhandler.cpp:290
+msgid "Failed to use item."
+msgstr "Falha ao usar item."
-#: src/gui/setup_players.cpp:206 src/gui/setup_video.cpp:153
-msgid "???"
-msgstr "???"
+#: ../src/client.cpp:927
+msgid "Farewell, come back any time..."
+msgstr "Tchau, volte sempre..."
-#: src/gui/setup_players.cpp:225
-msgid "Allow trading"
-msgstr "Permitir trocas"
+#: ../src/gui/charcreatedialog.cpp:81 ../src/gui/register.cpp:91
+msgid "Female"
+msgstr "Mulher"
-#: src/gui/setup_players.cpp:227
-msgid "Allow whispers"
-msgstr "Permitir mensagens particular"
+#: ../src/keyboardconfig.cpp:57
+msgid "Find Path to Mouse"
+msgstr "Encontrar rota para o mouse"
-#: src/gui/setup_players.cpp:231
-msgid "Put all whispers in tabs"
-msgstr "Deixar todas as mensagens particulares em abas"
+#: ../src/gui/recorder.cpp:87
+msgid "Finishing recording."
+msgstr "Finalizando gravação."
-#: src/gui/setup_players.cpp:233
-#, fuzzy
-msgid "Show gender"
-msgstr "Mostrar nome"
+#: ../src/playerrelations.cpp:379
+msgid "Floating '...' bubble"
+msgstr "Bolha '...' flutuante"
-#: src/gui/setup_players.cpp:235
-#, fuzzy
-msgid "Enable Chat log"
-msgstr "Impossibilitado de vender."
+#: ../src/playerrelations.cpp:382
+msgid "Floating bubble"
+msgstr "Bolha Flutuante"
-#: src/gui/setup_players.cpp:237
-msgid "Players"
-msgstr "Jogadores"
+#: ../src/gui/setup_video.cpp:264
+msgid "Font size"
+msgstr "Tamanho da fonte"
-#: src/gui/setup_players.cpp:262
-msgid "When ignoring:"
-msgstr "Quando ignorado:"
+#: ../src/commandhandler.cpp:205
+msgid "For more information, type /help <command>."
+msgstr "Para mais informações, digite /help <comando>."
-#: src/gui/setup_video.cpp:134
-msgid "Tiny"
-msgstr "Minúsculo"
+#: ../src/gui/setup_players.cpp:65
+msgid "Friend"
+msgstr "Amigo"
-#: src/gui/setup_video.cpp:135
-msgid "Small"
-msgstr "Pequena"
+#: ../src/gui/setup_video.cpp:219
+msgid "Full screen"
+msgstr "Tela cheia"
-#: src/gui/setup_video.cpp:136
-msgid "Medium"
-msgstr "Média"
+#: ../src/gui/userpalette.cpp:94
+msgid "GM Names"
+msgstr "Nomes dos GMs"
-#: src/gui/setup_video.cpp:137
-msgid "Large"
-msgstr "Grande"
+#: ../src/net/tmwa/gamehandler.cpp:101
+msgid "Game"
+msgstr "Jogo"
-#: src/gui/setup_video.cpp:163
-msgid "No text"
-msgstr "Sem texto"
+#: ../src/net/manaserv/beinghandler.cpp:309
+#: ../src/net/tmwa/playerhandler.cpp:108
+msgid "Game Over!"
+msgstr "Fim de jogo!"
-#: src/gui/setup_video.cpp:164
-msgid "Text"
-msgstr "Texto"
+#: ../src/game.cpp:169
+msgid "General"
+msgstr "Geral"
-#: src/gui/setup_video.cpp:165
-msgid "Bubbles, no names"
-msgstr "Bolhas, sem nomes"
+#: ../src/gui/widgets/chattab.cpp:126
+#, c-format
+msgid "Global announcement from %s:"
+msgstr "Anúncio geral de %s:"
-#: src/gui/setup_video.cpp:166
-msgid "Bubbles with names"
-msgstr "Bolhas com nomes"
+#: ../src/gui/widgets/chattab.cpp:120
+msgid "Global announcement:"
+msgstr "Anúncio geral:"
-#: src/gui/setup_video.cpp:178
-msgid "off"
-msgstr "desligado"
+#: ../src/net/tmwa/generalhandler.cpp:206
+msgid "Got disconnected from server!"
+msgstr "Você foi desconectado do servidor!"
-#: src/gui/setup_video.cpp:179 src/gui/setup_video.cpp:192
-msgid "low"
-msgstr "baixo"
+#: ../src/gui/setup_colors.cpp:123
+msgid "Green:"
+msgstr "Verde:"
-#: src/gui/setup_video.cpp:180 src/gui/setup_video.cpp:194
-msgid "high"
-msgstr "alto"
+#: ../src/gui/setup_video.cpp:261
+msgid "Gui opacity"
+msgstr "Opacidade"
-#: src/gui/setup_video.cpp:193
-msgid "medium"
-msgstr "médio"
+#: ../src/net/tmwa/gui/guildtab.cpp:45
+msgid "Guild"
+msgstr "Guilda"
-#: src/gui/setup_video.cpp:195
-msgid "max"
-msgstr "máximo"
+#: ../src/gui/socialwindow.cpp:143
+#, c-format
+msgid "Guild %s quit requested."
+msgstr "Saída da Guilda %s requisitada."
-#: src/gui/setup_video.cpp:217
-msgid "Full screen"
-msgstr "Tela cheia"
+#: ../src/gui/userpalette.cpp:98
+msgid "Guild Members"
+msgstr "Membros da guilda"
-#: src/gui/setup_video.cpp:218
-msgid "OpenGL"
-msgstr "OpenGL"
+#: ../src/gui/socialwindow.cpp:543
+msgid "Guild Name"
+msgstr "Nome da guilda"
-#: src/gui/setup_video.cpp:219
-msgid "Custom cursor"
-msgstr "Cursor customizado"
+#: ../src/net/manaserv/guildhandler.cpp:81
+msgid "Guild created."
+msgstr "Guilda criada."
-#: src/gui/setup_video.cpp:221
-msgid "Visible names"
-msgstr "Nomes visíveis"
+#: ../src/net/tmwa/guildhandler.cpp:392
+msgid "Guild creation isn't supported yet."
+msgstr "A criação de guildas ainda não é suportada."
-#: src/gui/setup_video.cpp:223
-msgid "Particle effects"
-msgstr "Efeitos de partícula"
+#: ../src/net/tmwa/gui/guildtab.cpp:89
+msgid "Guild name is missing."
+msgstr "Falta o nome da guilda."
-#: src/gui/setup_video.cpp:225
-#, fuzzy
-msgid "Show own name"
-msgstr "Mostrar nome"
+#: ../src/gui/statuswindow.cpp:203
+msgid "HP"
+msgstr "HP"
-#: src/gui/setup_video.cpp:226
-msgid "Log NPC dialogue"
-msgstr ""
+#: ../src/resources/itemdb.cpp:55
+#, c-format
+msgid "HP %+d"
+msgstr "HP %+d"
-#: src/gui/setup_video.cpp:227
-msgid "Show pickup notification"
-msgstr "Mostrar aviso de achado"
+#: ../src/gui/statuswindow.cpp:113
+msgid "HP:"
+msgstr "HP:"
-#. TRANSLATORS: Refers to "Show pickup notification"
-#: src/gui/setup_video.cpp:229
-msgid "in chat"
-msgstr "em chat"
+#: ../src/gui/charcreatedialog.cpp:74
+msgid "Hair color:"
+msgstr "Cor do Cabelo:"
-#. TRANSLATORS: Refers to "Show pickup notification"
-#: src/gui/setup_video.cpp:231
-msgid "as particle"
-msgstr "como partícula"
+#: ../src/gui/charcreatedialog.cpp:77
+msgid "Hair style:"
+msgstr "Estilo do Cabelo:"
-#: src/gui/setup_video.cpp:236
-#, fuzzy
-msgid "FPS limit:"
-msgstr "Limite FPS:"
+#: ../src/gui/help.cpp:37
+msgid "Help"
+msgstr "Ajuda"
-#: src/gui/setup_video.cpp:247
-msgid "Disable transparency (Low CPU mode)"
-msgstr ""
+#: ../src/keyboardconfig.cpp:70
+msgid "Help Window"
+msgstr "Janela de Ajuda"
-#: src/gui/setup_video.cpp:250
-msgid "Video"
-msgstr "Vídeo"
+#: ../src/keyboardconfig.cpp:53
+msgid "Hide Windows"
+msgstr "Esconder janelas"
-#: src/gui/setup_video.cpp:252
-#, fuzzy
-msgid "Show damage"
-msgstr "Mostrar nome"
+#: ../src/net/tmwa/specialhandler.cpp:201
+msgid "Huh? What's that?"
+msgstr "Hã? O que é isso?"
-#: src/gui/setup_video.cpp:258
-msgid "Overhead text"
-msgstr "Texto sobrescrito"
+#: ../src/net/manaserv/beinghandler.cpp:314
+#: ../src/net/tmwa/playerhandler.cpp:114
+msgid "I guess this did not run too well."
+msgstr "Eu acho que as coisas não correram tão bem."
-#: src/gui/setup_video.cpp:259
-msgid "Gui opacity"
-msgstr "Opacidade da GUI"
+#: ../src/commandhandler.cpp:241
+msgid "If <channel> doesn't exist, it's created."
+msgstr "Se o <canal> não existe, ele será criado."
-#: src/gui/setup_video.cpp:260
-msgid "Ambient FX"
-msgstr "Ambiente FX"
+#: ../src/commandhandler.cpp:259 ../src/commandhandler.cpp:286
+#: ../src/gui/widgets/channeltab.cpp:82 ../src/gui/widgets/channeltab.cpp:91
+#: ../src/net/tmwa/gui/guildtab.cpp:75 ../src/net/tmwa/gui/partytab.cpp:75
+msgid "If the <nick> has spaces in it, enclose it in double quotes (\")."
+msgstr "Se <nick> possuir espaços, coloque entre aspas (\")."
-#: src/gui/setup_video.cpp:261
-#, fuzzy
-msgid "Particle detail"
-msgstr "Detalhe de partículas"
+#: ../src/net/tmwa/playerhandler.cpp:133
+msgid "If you weren't so animated, you'd be pushing up the daisies."
+msgstr "Se não fosse tão animado, estaria comendo grama pela raiz."
-#: src/gui/setup_video.cpp:262
-msgid "Font size"
-msgstr "Tamanho da fonte"
+#: ../src/gui/widgets/channeltab.cpp:75
+msgid "If you're the last person in the channel, it will be deleted."
+msgstr "Se você for a última pessoa no canal, ele será deletado."
-#: src/gui/setup_video.cpp:277 src/gui/setup_video.cpp:532
-#: src/gui/setup_video.cpp:662
-#, fuzzy
-msgid "None"
-msgstr "Não"
+#: ../src/gui/popupmenu.cpp:108
+#, c-format
+msgid "Ignore %s"
+msgstr "Ignorar %s"
-#: src/gui/setup_video.cpp:426
-#, fuzzy
-msgid ""
-"Failed to switch to windowed mode and restoration of old mode also failed!"
-msgstr "modo e restauração do antigo modo também falharam!"
+#: ../src/keyboardconfig.cpp:104
+msgid "Ignore input 1"
+msgstr "Ignorar input 1"
-#: src/gui/setup_video.cpp:432
-#, fuzzy
-msgid ""
-"Failed to switch to fullscreen mode and restoration of old mode also failed!"
-msgstr "modo e restauração do antigo modo também falharam!"
+#: ../src/keyboardconfig.cpp:105
+msgid "Ignore input 2"
+msgstr "Ignorar input 2"
-#: src/gui/setup_video.cpp:443
-#, fuzzy
-msgid "Switching to Full Screen"
-msgstr "Mudando para Tela cheia"
+#: ../src/gui/setup_players.cpp:67
+msgid "Ignored"
+msgstr "Ignorado"
-#: src/gui/setup_video.cpp:444
-msgid "Restart needed for changes to take effect."
-msgstr "É preciso reiniciar para as mudanças terem efeito."
+#: ../src/game.cpp:713
+msgid "Ignoring incoming trade requests"
+msgstr "Ignorando propostas de negócios"
-#: src/gui/setup_video.cpp:458
-#, fuzzy
-msgid "Changing to OpenGL"
-msgstr "Trocando OpenGL"
+#: ../src/net/manaserv/tradehandler.cpp:98
+msgid "Ignoring incoming trade requests."
+msgstr "Ignorando propostas de negócios."
-#: src/gui/setup_video.cpp:459
-msgid ""
-"Applying change to OpenGL requires restart. In case OpenGL messes up your "
-"game graphics, restart the game with the command line option \"--no-opengl\"."
-msgstr ""
+#: ../src/net/manaserv/charhandler.cpp:193
+#: ../src/net/tmwa/charserverhandler.cpp:150
+msgid "Info"
+msgstr "Informações"
-#: src/gui/setup_video.cpp:466
-msgid "Deactivating OpenGL"
-msgstr ""
+#: ../src/net/tmwa/playerhandler.cpp:109
+msgid "Insert coin to continue."
+msgstr "Insira uma moeda para continuar."
-#: src/gui/setup_video.cpp:467
-msgid "Applying change to OpenGL requires restart."
-msgstr "Aplicando mudança a OpenGL requer reiniciar o jogo."
+#: ../src/net/tmwa/specialhandler.cpp:174
+msgid "Insufficient HP!"
+msgstr "HP insuficiente!"
-#: src/gui/setup_video.cpp:475
-#, fuzzy
-msgid "Transparency disabled"
-msgstr "Compartilhamento de experiência desabilitado."
+#: ../src/net/tmwa/specialhandler.cpp:177
+msgid "Insufficient SP!"
+msgstr "SP insuficiente!"
-#: src/gui/setup_video.cpp:476 src/gui/setup_video.cpp:484
-msgid "You must restart to apply changes."
-msgstr ""
+#: ../src/net/manaserv/stats.cpp:104 ../src/net/tmwa/generalhandler.cpp:220
+msgid "Intelligence"
+msgstr "Inteligência"
-#: src/gui/setup_video.cpp:483
-msgid "Transparency enabled"
-msgstr ""
+#: ../src/net/manaserv/stats.cpp:106 ../src/net/tmwa/generalhandler.cpp:104
+#, c-format
+msgid "Intelligence %+d"
+msgstr "Inteligência %+d"
-#: src/gui/setup_video.cpp:576 src/gui/setup_video.cpp:581
-#, fuzzy
-msgid "Screen Resolution Changed"
-msgstr "Resolução de tela alterada"
+#: ../src/net/tmwa/charserverhandler.cpp:262
+msgid "Intelligence:"
+msgstr "Inteligência:"
-#: src/gui/setup_video.cpp:577 src/gui/setup_video.cpp:582
-msgid "Restart your client for the change to take effect."
-msgstr "Reincie o jogo para que as mudanças surtam efeito."
+#: ../src/net/manaserv/charhandler.cpp:152
+msgid "Invalid gender."
+msgstr "Gênero inválido."
-#: src/gui/setup_video.cpp:579
-msgid "Some windows may be moved to fit the lowered resolution."
-msgstr ""
+#: ../src/net/manaserv/charhandler.cpp:149
+msgid "Invalid hair color."
+msgstr "Cor inválida."
-#: src/gui/setup_video.cpp:612
-#, fuzzy
-msgid "Particle Effect Settings Changed."
-msgstr "Configurações de efeito de partícula modificadas."
+#: ../src/net/manaserv/charhandler.cpp:146
+msgid "Invalid hairstyle."
+msgstr "Estilo inválido."
-#: src/gui/setup_video.cpp:613
-msgid "Changes will take effect on map change."
-msgstr "As mudanças terão efeito na mudança do mapa."
+#: ../src/net/manaserv/charhandler.cpp:140
+msgid "Invalid name."
+msgstr "Nome inválido."
-#: src/gui/skilldialog.cpp:212 src/gui/windowmenu.cpp:59
-msgid "Skills"
-msgstr "Habilidades"
+#: ../src/client.cpp:1244
+#, c-format
+msgid "Invalid update host: %s"
+msgstr "Host de atualização inválido: %s"
-#: src/gui/skilldialog.cpp:223
-msgid "Up"
-msgstr "Acima"
+#: ../src/gui/inventorywindow.cpp:59 ../src/gui/windowmenu.cpp:56
+msgid "Inventory"
+msgstr "Inventário"
-#: src/gui/skilldialog.cpp:269
-#, fuzzy, c-format
-msgid "Skill points available: %d"
-msgstr "Pontos de habilidade: %d"
+#: ../src/keyboardconfig.cpp:72
+msgid "Inventory Window"
+msgstr "Janela de inventário"
-#: src/gui/skilldialog.cpp:351
-#, fuzzy, c-format
-msgid "Skill Set %d"
-msgstr "Pontos de habilidade: %d"
+#: ../src/localplayer.cpp:1254
+msgid "Inventory is full."
+msgstr "O inventário está cheio."
-#: src/gui/skilldialog.cpp:360
-#, fuzzy, c-format
-msgid "Skill %d"
-msgstr "Habilidades"
+#: ../src/gui/socialwindow.cpp:334
+msgid "Invite"
+msgstr "Convidar"
-#: src/gui/skilldialog.cpp:442
-#, fuzzy, c-format
-msgid "Lvl: %d (%+d)"
-msgstr "Nível: %d"
+#: ../src/gui/popupmenu.cpp:130
+#, c-format
+msgid "Invite %s to join your guild"
+msgstr "Convidar %s para a sua guilda"
-#: src/gui/skilldialog.cpp:453
-#, fuzzy, c-format
-msgid "Lvl: %d"
-msgstr "Nível: %d"
+#: ../src/gui/popupmenu.cpp:134
+#, c-format
+msgid "Invite %s to join your party"
+msgstr "Convidar %s para o seu grupo"
-#: src/gui/socialwindow.cpp:126
+#: ../src/net/manaserv/guildhandler.cpp:96
+msgid "Invite sent."
+msgstr "Convite enviado."
+
+#: ../src/gui/socialwindow.cpp:128
#, c-format
msgid "Invited user %s to guild %s."
-msgstr ""
+msgstr "Convidou o jogador %s para a guilda %s."
-#: src/gui/socialwindow.cpp:139
-#, fuzzy, c-format
-msgid "Guild %s quit requested."
-msgstr "Corporação criada."
+#: ../src/net/tmwa/partyhandler.cpp:335
+#, c-format
+msgid "Invited user %s to party."
+msgstr "Convidou usuário %s para o grupo."
-#: src/gui/socialwindow.cpp:153
-msgid "Member Invite to Guild"
+#: ../src/net/tmwa/partyhandler.cpp:340
+#, c-format
+msgid "Inviting failed, because you can't see a player called %s."
msgstr ""
+"Não foi possível fazer o convite, pois você não vê um jogador chamado %s."
-#: src/gui/socialwindow.cpp:154
+#: ../src/keyboardconfig.cpp:58 ../src/keyboardconfig.cpp:59
+#: ../src/keyboardconfig.cpp:60 ../src/keyboardconfig.cpp:61
+#: ../src/keyboardconfig.cpp:62 ../src/keyboardconfig.cpp:63
+#: ../src/keyboardconfig.cpp:64 ../src/keyboardconfig.cpp:65
+#: ../src/keyboardconfig.cpp:66 ../src/keyboardconfig.cpp:67
+#: ../src/keyboardconfig.cpp:68 ../src/keyboardconfig.cpp:69
#, c-format
-msgid "Who would you like to invite to guild %s?"
-msgstr ""
+msgid "Item Shortcut %d"
+msgstr "Atalho para item %d"
-#: src/gui/socialwindow.cpp:163
-#, fuzzy
-msgid "Leave Guild?"
-msgstr "Criar corporação"
+#: ../src/keyboardconfig.cpp:77
+msgid "Item Shortcut Window"
+msgstr "Janela de atalhos para itens"
-#: src/gui/socialwindow.cpp:164
-#, fuzzy, c-format
-msgid "Are you sure you want to leave guild %s?"
-msgstr "Tem certeza que deseja sair?"
+#: ../src/localplayer.cpp:1257
+msgid "Item belongs to someone else."
+msgstr "Este item pertence a outra pessoa."
-#: src/gui/socialwindow.cpp:207 src/net/tmwa/partyhandler.cpp:330
-#, fuzzy, c-format
-msgid "Invited user %s to party."
-msgstr "/party > Convidar um usuário para o grupo"
+#: ../src/localplayer.cpp:1253
+msgid "Item is too far away"
+msgstr "Este item está muito longe."
-#: src/gui/socialwindow.cpp:218
-#, c-format
-msgid "Party %s quit requested."
-msgstr ""
+#: ../src/localplayer.cpp:1252
+msgid "Item is too heavy."
+msgstr "Este item é muito pesado."
-#: src/gui/socialwindow.cpp:232
-#, fuzzy
-msgid "Member Invite to Party"
-msgstr "/party > Convidar um usuário para o grupo"
+#: ../src/net/tmwa/gui/partytab.cpp:135 ../src/net/tmwa/partyhandler.cpp:207
+msgid "Item sharing disabled."
+msgstr "Compartilhamento de itens desabilitado."
-#: src/gui/socialwindow.cpp:233
-#, c-format
-msgid "Who would you like to invite to party %s?"
-msgstr ""
+#: ../src/net/tmwa/gui/partytab.cpp:132 ../src/net/tmwa/partyhandler.cpp:201
+msgid "Item sharing enabled."
+msgstr "Compartilhamento de itens habilitado."
-#: src/gui/socialwindow.cpp:242
-msgid "Leave Party?"
-msgstr ""
+#: ../src/net/tmwa/gui/partytab.cpp:138 ../src/net/tmwa/partyhandler.cpp:213
+msgid "Item sharing not possible."
+msgstr "Não é possível compartilhar itens."
-#: src/gui/socialwindow.cpp:243
-#, fuzzy, c-format
-msgid "Are you sure you want to leave party %s?"
-msgstr "Tem certeza que deseja sair?"
+#: ../src/net/tmwa/gui/partytab.cpp:141
+msgid "Item sharing unknown."
+msgstr "Compartilhamento de itens desconhecido."
-#: src/gui/socialwindow.cpp:272
-msgid "Create Guild"
-msgstr "Criar corporação"
+#: ../src/gui/statuswindow.cpp:234
+msgid "Job"
+msgstr "Trabalho"
-#: src/gui/socialwindow.cpp:273 src/gui/socialwindow.cpp:620
-#, fuzzy
-msgid "Create Party"
-msgstr "Criar Personagem"
+#: ../src/gui/statuswindow.cpp:142
+msgid "Job:"
+msgstr "Trabalho:"
-#: src/gui/socialwindow.cpp:312 src/gui/windowmenu.cpp:64
-msgid "Social"
-msgstr ""
+#: ../src/gui/statuswindow.cpp:141 ../src/gui/statuswindow.cpp:228
+#, c-format
+msgid "Job: %d"
+msgstr "Trabalho: %d"
-#: src/gui/socialwindow.cpp:330
-#, fuzzy
-msgid "Invite"
-msgstr "Convidar Usuário"
+#: ../src/net/manaserv/partyhandler.cpp:88
+msgid "Joined party."
+msgstr "Entrou para o grupo."
-#: src/gui/socialwindow.cpp:331
-#, fuzzy
-msgid "Leave"
-msgstr "Grande"
+#: ../src/gui/setup_joystick.cpp:41
+msgid "Joystick"
+msgstr "Joystick"
-#: src/gui/socialwindow.cpp:443
-#, fuzzy, c-format
-msgid "Accepted party invite from %s."
-msgstr "Convite de %s aceito."
+#: ../src/gui/setup_keyboard.cpp:125
+msgid "Key Conflict(s) Detected."
+msgstr "Conflitos de teclas detectado."
-#: src/gui/socialwindow.cpp:449
-#, fuzzy, c-format
-msgid "Rejected party invite from %s."
-msgstr "Convite de %s rejeitado."
+#: ../src/gui/setup_keyboard.cpp:77
+msgid "Keyboard"
+msgstr "Teclado"
-#: src/gui/socialwindow.cpp:462
-#, fuzzy, c-format
-msgid "Accepted guild invite from %s."
-msgstr "Convite de %s aceito."
+#: ../src/net/tmwa/adminhandler.cpp:65
+msgid "Kick failed!"
+msgstr "Erro na expulsão!"
-#: src/gui/socialwindow.cpp:468
-#, fuzzy, c-format
-msgid "Rejected guild invite from %s."
-msgstr "Convite de %s rejeitado."
+#: ../src/gui/popupmenu.cpp:163
+msgid "Kick monster"
+msgstr "Expulsar monstro"
-#: src/gui/socialwindow.cpp:497
-msgid "Creating guild failed, please choose a shorter name."
-msgstr ""
+#: ../src/gui/popupmenu.cpp:141
+msgid "Kick player"
+msgstr "Expulsar jogador"
-#: src/gui/socialwindow.cpp:504
-#, fuzzy, c-format
-msgid "Creating guild called %s."
-msgstr "Erro ao criar corporação."
+#: ../src/net/tmwa/adminhandler.cpp:67
+msgid "Kick succeeded!"
+msgstr "Expulsão bem sucedida!"
-#: src/gui/socialwindow.cpp:520
-msgid "Creating party failed, please choose a shorter name."
-msgstr ""
+#: ../src/gui/setup_video.cpp:137
+msgid "Large"
+msgstr "Grande"
-#: src/gui/socialwindow.cpp:527
-#, c-format
-msgid "Creating party called %s."
-msgstr ""
+#: ../src/gui/socialwindow.cpp:335
+msgid "Leave"
+msgstr "Sair"
-#: src/gui/socialwindow.cpp:541
-#, fuzzy
-msgid "Guild Name"
-msgstr "Corporação"
+#: ../src/gui/socialwindow.cpp:167
+msgid "Leave Guild?"
+msgstr "Sair da guilda?"
-#: src/gui/socialwindow.cpp:542
-#, fuzzy
-msgid "Choose your guild's name."
-msgstr "Selecione seu servidor"
+#: ../src/gui/socialwindow.cpp:246
+msgid "Leave Party?"
+msgstr "Sair do grupo?"
-#: src/gui/socialwindow.cpp:554
-#, fuzzy
-msgid "Received guild request, but one already exists."
-msgstr "Requisição de grupo recebida, mas já existe um."
+#: ../src/gui/statuswindow.cpp:257
+msgid "Level"
+msgstr "Nível"
-#: src/gui/socialwindow.cpp:559
-#, fuzzy, c-format
-msgid "%s has invited you to join the guild %s."
-msgstr "%s te convidou para entrar no grupo %s."
+#: ../src/gui/statuswindow.cpp:109 ../src/gui/statuswindow.cpp:253
+#, c-format
+msgid "Level: %d"
+msgstr "Nível: %d"
-#: src/gui/socialwindow.cpp:564
-#, fuzzy
-msgid "Accept Guild Invite"
-msgstr "Aceitar convite para o grupo"
+#: ../src/net/manaserv/chathandler.cpp:207
+msgid "Listing channels."
+msgstr "Listando canais."
-#: src/gui/socialwindow.cpp:576
-msgid "Received party request, but one already exists."
-msgstr "Requisição de grupo recebida, mas já existe um."
+#: ../src/gui/userpalette.cpp:109
+msgid "Local Player Critical Hit"
+msgstr "Golpe Crítico do Jogador"
-#: src/gui/socialwindow.cpp:585
-#, fuzzy
-msgid "You have been invited you to join a party."
-msgstr "%s te convidou para entrar em seu grupo."
+#: ../src/gui/userpalette.cpp:107
+msgid "Local Player Hits Monster"
+msgstr "Jogador Acerta Monstro"
-#: src/gui/socialwindow.cpp:589
-#, fuzzy, c-format
-msgid "You have been invited to join the %s party."
-msgstr "%s te convidou para entrar no grupo %s."
+#: ../src/gui/userpalette.cpp:111
+msgid "Local Player Miss"
+msgstr "Jogador Erra o Golpe"
-#: src/gui/socialwindow.cpp:597
-#, c-format
-msgid "%s has invited you to join their party."
-msgstr "%s te convidou para entrar em seu grupo."
+#: ../src/gui/setup_video.cpp:228
+msgid "Log NPC dialogue"
+msgstr "Log diálogos com NPC"
-#: src/gui/socialwindow.cpp:602
-#, c-format
-msgid "%s has invited you to join the %s party."
-msgstr "%s te convidou para entrar no grupo %s."
+#: ../src/client.cpp:682
+msgid "Logging in"
+msgstr "Efetuando login"
-#: src/gui/socialwindow.cpp:610
-msgid "Accept Party Invite"
-msgstr "Aceitar convite para o grupo"
+#: ../src/gui/login.cpp:51 ../src/gui/login.cpp:63
+msgid "Login"
+msgstr "Login"
-#: src/gui/socialwindow.cpp:621
-msgid "Cannot create party. You are already in a party"
-msgstr ""
+#: ../src/net/manaserv/loginhandler.cpp:275
+msgid "Login attempt too soon after previous attempt."
+msgstr "Tentativa de login muito próxima da última tentativa."
-#: src/gui/socialwindow.cpp:626
-#, fuzzy
-msgid "Party Name"
-msgstr "Grupo"
+#: ../src/net/manaserv/beinghandler.cpp:318
+#: ../src/net/tmwa/playerhandler.cpp:122
+msgid "Looks like you got your head handed to you."
+msgstr "Parece que te ofereceram sua própria cabeça."
-#: src/gui/socialwindow.cpp:627
-#, fuzzy
-msgid "Choose your party's name."
-msgstr "Selecione seu servidor"
+#: ../src/net/tmwa/generalhandler.cpp:222
+msgid "Luck"
+msgstr "Sorte"
-#: src/gui/specialswindow.cpp:79 src/gui/windowmenu.cpp:62
-msgid "Specials"
-msgstr ""
+#: ../src/net/tmwa/generalhandler.cpp:106
+#, c-format
+msgid "Luck %+d"
+msgstr "Sorte %+d"
+
+#: ../src/net/tmwa/charserverhandler.cpp:264
+msgid "Luck:"
+msgstr "Sorte:"
-#: src/gui/statuswindow.cpp:113 src/gui/statuswindow.cpp:215
-#: src/gui/statuswindow.cpp:262
+#: ../src/gui/skilldialog.cpp:455
#, c-format
-msgid "Level: %d"
+msgid "Lvl: %d"
msgstr "Nível: %d"
-#: src/gui/statuswindow.cpp:114 src/gui/statuswindow.cpp:208
-#: src/gui/statuswindow.cpp:239
+#: ../src/gui/skilldialog.cpp:444
#, c-format
-msgid "Money: %s"
-msgstr "Dinheiro: %s"
+msgid "Lvl: %d (%+d)"
+msgstr "Nível: %d (%+d)"
-#: src/gui/statuswindow.cpp:117
-msgid "HP:"
-msgstr "HP:"
+#: ../src/net/tmwa/generalhandler.cpp:226
+msgid "M.Attack"
+msgstr "Ataque Mágico"
-#: src/gui/statuswindow.cpp:122
-msgid "Exp:"
-msgstr "Exp:"
+#: ../src/net/tmwa/generalhandler.cpp:227
+msgid "M.Defense"
+msgstr "Defesa Mágica"
+
+#: ../src/gui/statuswindow.cpp:209
+msgid "MP"
+msgstr "MP"
+
+#: ../src/resources/itemdb.cpp:56
+#, c-format
+msgid "MP %+d"
+msgstr "MP %+d"
-#: src/gui/statuswindow.cpp:130
+#: ../src/gui/statuswindow.cpp:123
msgid "MP:"
msgstr "MP:"
-#: src/gui/statuswindow.cpp:158 src/gui/statuswindow.cpp:275
-#, c-format
-msgid "Job: %d"
-msgstr "Trabalho: %d"
+#: ../src/net/tmwa/chathandler.cpp:190
+msgid "MVP player."
+msgstr "Jogador VIP."
-#: src/gui/statuswindow.cpp:159
-msgid "Job:"
-msgstr "Trabalho:"
+#: ../src/gui/charcreatedialog.cpp:80 ../src/gui/register.cpp:90
+msgid "Male"
+msgstr "Homem"
-#: src/gui/statuswindow.cpp:211 src/gui/statuswindow.cpp:247
-#, fuzzy, c-format
-msgid "Character points: %d"
-msgstr "Status do personagem OK"
+#: ../src/gui/minimap.cpp:46 ../src/gui/minimap.cpp:87
+msgid "Map"
+msgstr "Mapa"
-#: src/gui/statuswindow.cpp:255
-#, fuzzy, c-format
-msgid "Correction points: %d"
-msgstr "Pontos de habilidade: %d"
+#: ../src/gui/debugwindow.cpp:66 ../src/gui/debugwindow.cpp:108
+#, c-format
+msgid "Map: %s"
+msgstr "Mapa: %s"
-#: src/gui/trade.cpp:53
-msgid "Propose trade"
-msgstr "Propor negócio"
+#: ../src/gui/buy.cpp:80 ../src/gui/sell.cpp:78
+#: ../src/gui/statuswindow.cpp:354 ../src/gui/statuswindow.cpp:429
+#: ../src/gui/statuswindow.cpp:463
+msgid "Max"
+msgstr "Máximo"
-#: src/gui/trade.cpp:54
-msgid "Confirmed. Waiting..."
-msgstr "Confirmado. Aguardando..."
+#: ../src/gui/setup_video.cpp:136
+msgid "Medium"
+msgstr "Média"
-#: src/gui/trade.cpp:55
-msgid "Agree trade"
-msgstr "Aceitar negociação"
+#: ../src/gui/socialwindow.cpp:157
+msgid "Member Invite to Guild"
+msgstr "Convite de membros para a Guilda."
-#: src/gui/trade.cpp:56
-msgid "Agreed. Waiting..."
-msgstr "Aceita. Aguarde..."
+#: ../src/gui/socialwindow.cpp:236
+msgid "Member Invite to Party"
+msgstr "Convite de membros para o grupo"
-#: src/gui/trade.cpp:59
-msgid "Trade: You"
-msgstr "Negócio: você"
+#: ../src/net/manaserv/guildhandler.cpp:203
+msgid "Member was promoted successfully."
+msgstr "Membro foi promovido com sucesso."
-#: src/gui/trade.cpp:73 src/gui/trade.cpp:74
-msgid "Trade"
-msgstr "Negócio"
+#: ../src/net/tmwa/playerhandler.cpp:256 ../src/net/tmwa/playerhandler.cpp:317
+msgid "Message"
+msgstr "Mensagem"
-#: src/gui/trade.cpp:76
-msgid "Add"
-msgstr "Adicionar"
+#: ../src/commandhandler.cpp:480
+msgid "Message closes chat."
+msgstr "A mensagem fecha o chat."
-#: src/gui/trade.cpp:98 src/gui/trade.cpp:134
-#, fuzzy, c-format
-msgid "You get %s"
-msgstr "Você obteve %s"
+#: ../src/commandhandler.cpp:493
+msgid "Message now closes chat."
+msgstr "Agora a mensagem fecha o chat."
-#: src/gui/trade.cpp:99
-msgid "You give:"
-msgstr "Você dá:"
+#: ../src/keyboardconfig.cpp:75
+msgid "Minimap Window"
+msgstr "Janela de Minimapa"
-#: src/gui/trade.cpp:103
-msgid "Change"
-msgstr "Mudar"
+#: ../src/gui/debugwindow.cpp:67 ../src/gui/debugwindow.cpp:106
+#, c-format
+msgid "Minimap: %s"
+msgstr "Minimapa: %s"
-#: src/gui/trade.cpp:262
-msgid "Failed adding item. You can not overlap one kind of item on the window."
-msgstr ""
-"Falha ao adicionar item. Você não pode duplicar um tipo de item na janela."
+#: ../src/gui/userpalette.cpp:112
+msgid "Misses"
+msgstr "Golpes errados"
-#: src/gui/trade.cpp:304
-msgid "You don't have enough money."
-msgstr "Você não tem dinheiro suficiente."
+#: ../src/gui/statuswindow.cpp:224
+msgid "Money"
+msgstr "Dinheiro"
-#: src/gui/unregisterdialog.cpp:51
+#: ../src/gui/statuswindow.cpp:110 ../src/gui/statuswindow.cpp:220
#, c-format
-msgid "Name: %s"
-msgstr "Nome: %s"
-
-#: src/gui/updatewindow.cpp:124
-msgid "Updating..."
-msgstr "Atualizando..."
+msgid "Money: %s"
+msgstr "Dinheiro: %s"
-#: src/gui/updatewindow.cpp:142
-msgid "Connecting..."
-msgstr "Conectando..."
+#: ../src/gui/userpalette.cpp:104
+msgid "Monster Hits Player"
+msgstr "Monstro Acerta Jogador"
-#: src/gui/updatewindow.cpp:145
-msgid "Play"
-msgstr "Jogar"
+#: ../src/gui/userpalette.cpp:96
+msgid "Monsters"
+msgstr "Monstros"
-#: src/gui/updatewindow.cpp:417
-msgid "##1 The update process is incomplete."
-msgstr "##1 O processo de update está incompleto."
+#: ../src/keyboardconfig.cpp:41
+msgid "Move Down"
+msgstr "Mover para Baixo"
-#. TRANSLATORS: Continues "you try again later.".
-#: src/gui/updatewindow.cpp:419
-msgid "##1 It is strongly recommended that"
-msgstr "##1 É altamente recomendado que"
+#: ../src/keyboardconfig.cpp:42
+msgid "Move Left"
+msgstr "Esquerda"
-#. TRANSLATORS: Begins "It is strongly recommended that".
-#: src/gui/updatewindow.cpp:421
-#, fuzzy
-msgid "##1 you try again later."
-msgstr "##1 você tente novamente mais tarde"
+#: ../src/keyboardconfig.cpp:43
+msgid "Move Right"
+msgstr "Direita"
-#: src/gui/updatewindow.cpp:515
-msgid "Completed"
-msgstr "Concluído"
+#: ../src/keyboardconfig.cpp:40
+msgid "Move Up"
+msgstr "Mover para Cima"
-#: src/gui/widgets/channeltab.cpp:49
-msgid "/users > Lists the users in the current channel"
-msgstr "/users > Listar os usuários deste canal"
+#: ../src/gui/setup_audio.cpp:51
+msgid "Music volume"
+msgstr "Volume da Música"
-#: src/gui/widgets/channeltab.cpp:50
-msgid "/topic > Set the topic of the current channel"
-msgstr "/topic > Setar o tópico deste canal"
+#: ../src/gui/debugwindow.cpp:65 ../src/gui/debugwindow.cpp:104
+#, c-format
+msgid "Music: %s"
+msgstr "Música: %s"
-#: src/gui/widgets/channeltab.cpp:51
-msgid "/quit > Leave a channel"
-msgstr "/quit > Sair do canal"
+#: ../src/gui/npcdialog.cpp:53 ../src/gui/npcpostdialog.cpp:41
+msgid "NPC"
+msgstr "NPC"
-#: src/gui/widgets/channeltab.cpp:52
-msgid "/op > Make a user a channel operator"
-msgstr "/op > Transdorma um usuário em operador do canal"
+#: ../src/gui/userpalette.cpp:95
+msgid "NPCs"
+msgstr "NPCs"
-#: src/gui/widgets/channeltab.cpp:53
-msgid "/kick > Kick a user from the channel"
-msgstr "/kick > Expulsa um usuário do canal"
+#: ../src/gui/setup_players.cpp:58
+msgid "Name"
+msgstr "Nome"
-#: src/gui/widgets/channeltab.cpp:63
-msgid "Command: /users"
-msgstr "Comando: /users"
+#: ../src/gui/charcreatedialog.cpp:67 ../src/gui/login.cpp:54
+#: ../src/gui/register.cpp:67
+msgid "Name:"
+msgstr "Nome:"
-#: src/gui/widgets/channeltab.cpp:64
-msgid "This command shows the users in this channel."
-msgstr "Mostra os usuários neste canal."
+#: ../src/gui/unregisterdialog.cpp:51
+#, c-format
+msgid "Name: %s"
+msgstr "Nome: %s"
-#: src/gui/widgets/channeltab.cpp:68
-msgid "Command: /topic <message>"
-msgstr "Comando: /topic <mensagem>"
+#: ../src/gui/ministatus.cpp:157
+msgid "Need"
+msgstr "Precisa"
-#: src/gui/widgets/channeltab.cpp:69
-msgid "This command sets the topic to <message>."
-msgstr "Seta <mensagem> como o tópico."
+#: ../src/gui/widgets/channeltab.cpp:126
+msgid "Need a user to kick!"
+msgstr "É preciso um usuário para expulsar!"
-#: src/gui/widgets/channeltab.cpp:73
-msgid "Command: /quit"
-msgstr "Comando: /quit"
+#: ../src/gui/widgets/channeltab.cpp:119
+msgid "Need a user to op!"
+msgstr "É preciso um usuário para dar op!"
-#: src/gui/widgets/channeltab.cpp:74
-msgid "This command leaves the current channel."
-msgstr "Sair do canal."
+#: ../src/game.cpp:372
+msgid "Network Error"
+msgstr "Erro de conexão"
-#: src/gui/widgets/channeltab.cpp:75
-msgid "If you're the last person in the channel, it will be deleted."
-msgstr "Se você for a última pessoa no canal, ele será deletado."
+#: ../src/gui/setup_players.cpp:64
+msgid "Neutral"
+msgstr "Neutro"
-#: src/gui/widgets/channeltab.cpp:80
-msgid "Command: /op <nick>"
-msgstr "Comando: /op <nick>"
+#: ../src/net/manaserv/loginhandler.cpp:149
+msgid "New email address incorrect."
+msgstr "Novo endereço de email incorreto."
-#: src/gui/widgets/channeltab.cpp:81
-msgid "This command makes <nick> a channel operator."
-msgstr "Tornar <nick> operador do canal."
+#: ../src/net/manaserv/loginhandler.cpp:118
+msgid "New password incorrect."
+msgstr "Nova senha incorreta."
-#: src/gui/widgets/channeltab.cpp:84
-msgid "Channel operators can kick and op other users from the channel."
-msgstr ""
-"Operadores de canal podem expulsar e dar op a outros usuários do canal."
+#: ../src/net/tmwa/loginhandler.cpp:92
+msgid "New password too short."
+msgstr "Nova senha é muito curta."
-#: src/gui/widgets/channeltab.cpp:89
-msgid "Command: /kick <nick>"
-msgstr "Comando: /kick <nick>"
+#: ../src/gui/npcdialog.cpp:46
+msgid "Next"
+msgstr "Próximo"
-#: src/gui/widgets/channeltab.cpp:90
-msgid "This command makes <nick> leave the channel."
-msgstr "Retirar <nick> do canal."
+#: ../src/keyboardconfig.cpp:101
+msgid "Next Chat Tab"
+msgstr "Próxima aba de chat"
-#: src/gui/widgets/channeltab.cpp:119
-msgid "Need a user to op!"
-msgstr "É preciso um usuário para dar op!"
+#: ../src/gui/confirmdialog.cpp:43
+msgid "No"
+msgstr "Não"
-#: src/gui/widgets/channeltab.cpp:126
-msgid "Need a user to kick!"
-msgstr "É preciso um usuário para expulsar!"
+#: ../src/commandhandler.cpp:408
+msgid "No <nick> was given."
+msgstr "<nick> não foi informado."
-#: src/gui/widgets/chattab.cpp:121
-msgid "Global announcement:"
-msgstr "Anúncio geral:"
+#: ../src/net/manaserv/charhandler.cpp:137
+msgid "No empty slot."
+msgstr "Sem espaço"
-#: src/gui/widgets/chattab.cpp:127
-#, c-format
-msgid "Global announcement from %s:"
-msgstr "Anúncio geral de %s:"
+#: ../src/net/manaserv/charhandler.cpp:242
+msgid "No gameservers are available."
+msgstr "Não há servidores disponíveis."
-#: src/gui/widgets/chattab.cpp:153
-#, fuzzy, c-format
-msgid "%s whispers: %s"
-msgstr "%s envia a mensagem privada: "
+#: ../src/net/tmwa/generalhandler.cpp:132
+msgid "No servers available."
+msgstr "Servidores indisponíveis."
-#: src/gui/widgets/whispertab.cpp:53
-msgid "Cannot send empty chat!"
-msgstr "Não é possível enviar chat vazio!"
+#: ../src/gui/setup_video.cpp:163
+msgid "No text"
+msgstr "Sem texto"
-#: src/gui/widgets/whispertab.cpp:72
-msgid "/ignore > Ignore the other player"
+#: ../src/net/manaserv/beinghandler.cpp:310
+#: ../src/net/tmwa/playerhandler.cpp:110
+msgid ""
+"No, kids. Your character did not really die. It... err... went to a better "
+"place."
msgstr ""
+"Não, criança. Seu personagem não morreu de verdade. Ele... err... foi para "
+"um lugar melhor."
-#: src/gui/widgets/whispertab.cpp:73
-msgid "/unignore > Stop ignoring the other player"
-msgstr ""
+#: ../src/gui/setup_video.cpp:279 ../src/gui/setup_video.cpp:535
+#: ../src/gui/setup_video.cpp:665
+msgid "None"
+msgstr "Nenhum"
-#: src/gui/widgets/whispertab.cpp:74
-msgid "/close > Close the whisper tab"
-msgstr "/close > Fecha a aba de mensagem privada"
+#: ../src/gui/recorder.cpp:91
+msgid "Not currently recording."
+msgstr "Não está gravando no momento."
-#: src/gui/widgets/whispertab.cpp:84
-msgid "Command: /close"
-msgstr "Comando: /close"
+#: ../src/net/manaserv/charhandler.cpp:134
+#: ../src/net/manaserv/charhandler.cpp:202
+msgid "Not logged in."
+msgstr "Não está conectado."
-#: src/gui/widgets/whispertab.cpp:85
-msgid "This command closes the current whisper tab."
-msgstr "Este comando fecha a atual aba de mensagem privada"
+#: ../src/net/tmwa/buysellhandler.cpp:110
+msgid "Nothing to sell."
+msgstr "Nada para vender."
-#: src/gui/widgets/whispertab.cpp:89
-#, fuzzy
-msgid "Command: /ignore"
-msgstr "Comando: /item"
+#: ../src/gui/setup_audio.cpp:94
+msgid "Notice"
+msgstr "Anúncio"
-#: src/gui/widgets/whispertab.cpp:90
-#, fuzzy
-msgid "This command ignores the other player regardless of current relations."
-msgstr "Exibe o número total de jogadores online."
+#: ../src/gui/itemamount.cpp:103 ../src/gui/okdialog.cpp:42
+#: ../src/gui/quitdialog.cpp:46 ../src/gui/textdialog.cpp:39
+#: ../src/gui/trade.cpp:71 ../src/gui/trade.cpp:73
+msgid "OK"
+msgstr "OK"
-#: src/gui/widgets/whispertab.cpp:96
-#, fuzzy
-msgid "This command stops ignoring the other player if they are being ignored."
-msgstr ""
-"Este comando inicia a gravação do registro de bate-papo para o arquivo "
-"<nome_do_arquivo>."
+#: ../src/net/manaserv/loginhandler.cpp:152
+msgid "Old email address incorrect."
+msgstr "Antigo endereço de email incorreto."
-#: src/gui/windowmenu.cpp:54
-msgid "Status"
-msgstr "Status"
+#: ../src/net/manaserv/loginhandler.cpp:121
+#: ../src/net/tmwa/loginhandler.cpp:89
+msgid "Old password incorrect."
+msgstr "Senha antiga incorreta."
-#: src/gui/windowmenu.cpp:65
-msgid "Shortcut"
-msgstr "Atalho"
+#: ../src/net/manaserv/charhandler.cpp:161
+msgid "One stat is zero."
+msgstr "Um atributo é zero."
-#: src/gui/worldselectdialog.cpp:71
-#, fuzzy
-msgid "Select World"
-msgstr "Selecionar OK"
+#: ../src/net/tmwa/gamehandler.cpp:87
+#, c-format
+msgid "Online users: %d"
+msgstr "Jogadores online: %d"
-#: src/gui/worldselectdialog.cpp:76
-#, fuzzy
-msgid "Change Login"
-msgstr "Mudar"
+#: ../src/gui/setup_video.cpp:220
+msgid "OpenGL"
+msgstr "OpenGL"
-#: src/gui/worldselectdialog.cpp:77
-#, fuzzy
-msgid "Choose World"
-msgstr "Selecione seu servidor"
+#: ../src/commandhandler.h:31
+#, c-format
+msgid "Options to /%s are \"yes\", \"no\", \"true\", \"false\", \"1\", \"0\"."
+msgstr ""
+"Opções para /%s são \"yes\" e \"no\", \"true\" e \"false\", \"1\" e \"0\"."
-#: src/keyboardconfig.cpp:39
-msgid "Move Up"
-msgstr "Mover para Cima"
+#: ../src/main.cpp:43
+msgid "Options:"
+msgstr "Opções:"
-#: src/keyboardconfig.cpp:40
-msgid "Move Down"
-msgstr "Mover para Baixo"
+#: ../src/gui/userpalette.cpp:103
+msgid "Other Player Hits Monster"
+msgstr "Outro Jogador Acerta Monstro"
-#: src/keyboardconfig.cpp:41
-msgid "Move Left"
-msgstr "Esquerda"
+#: ../src/gui/userpalette.cpp:92
+msgid "Other Players' Names"
+msgstr "Nomes de outros jogadores"
-#: src/keyboardconfig.cpp:42
-msgid "Move Right"
-msgstr "Direita"
+#: ../src/gui/outfitwindow.cpp:68 ../src/gui/outfitwindow.cpp:141
+#: ../src/gui/outfitwindow.cpp:154
+#, c-format
+msgid "Outfit: %d"
+msgstr "Roupas: %d"
-#: src/keyboardconfig.cpp:43 src/net/tmwa/generalhandler.cpp:237
-msgid "Attack"
-msgstr "Atacar"
+#: ../src/gui/inventorywindow.cpp:101 ../src/gui/outfitwindow.cpp:51
+msgid "Outfits"
+msgstr "Roupas"
-#: src/keyboardconfig.cpp:44
-msgid "Target & Attack"
-msgstr "Selecionar & Atacar"
+#: ../src/keyboardconfig.cpp:82
+msgid "Outfits Window"
+msgstr "Janela de roupas"
-#: src/keyboardconfig.cpp:45
-msgid "Smilie"
-msgstr "Emoticon"
+#: ../src/gui/setup_video.cpp:260
+msgid "Overhead text"
+msgstr "Texto sobrescrito"
-#: src/keyboardconfig.cpp:46
-msgid "Talk"
-msgstr "Falar"
+#: ../src/gui/userpalette.cpp:93
+msgid "Own Name"
+msgstr "Próprio nome"
-#: src/keyboardconfig.cpp:47
-msgid "Stop Attack"
-msgstr "Parar ataque"
+#: ../src/gui/setup_video.cpp:615
+msgid "Particle Effect Settings Changed."
+msgstr "Configurações de efeito de partícula modificadas."
-#: src/keyboardconfig.cpp:48
-#, fuzzy
-msgid "Target Monster"
-msgstr "Selecionar o mais próximo"
+#: ../src/gui/userpalette.cpp:99
+msgid "Particle Effects"
+msgstr "Efeitos de partícula"
-#: src/keyboardconfig.cpp:49
-msgid "Target NPC"
-msgstr "Selecionar NPC"
+#: ../src/gui/debugwindow.cpp:69 ../src/gui/debugwindow.cpp:111
+#, c-format
+msgid "Particle count: %d"
+msgstr "Contagem de partículas: %d"
-#: src/keyboardconfig.cpp:50
-msgid "Target Player"
-msgstr "Selecionar Jogador"
+#: ../src/gui/setup_video.cpp:263
+msgid "Particle detail"
+msgstr "Detalhe de partículas"
-#: src/keyboardconfig.cpp:51
-msgid "Pickup"
-msgstr "Pegar"
+#: ../src/gui/debugwindow.cpp:116
+#, c-format
+msgid "Particle detail: %s"
+msgstr "Detalhe de partículas: %s"
-#: src/keyboardconfig.cpp:52
-msgid "Hide Windows"
-msgstr "Esconder janelas"
+#: ../src/gui/setup_video.cpp:225
+msgid "Particle effects"
+msgstr "Efeitos de partícula"
-#: src/keyboardconfig.cpp:53
-msgid "Sit"
-msgstr "Sentar"
+#: ../src/net/tmwa/gui/partytab.cpp:43
+msgid "Party"
+msgstr "Grupo"
-#: src/keyboardconfig.cpp:54
-msgid "Screenshot"
-msgstr "Screenshot"
+#: ../src/gui/socialwindow.cpp:222
+#, c-format
+msgid "Party %s quit requested."
+msgstr "Saída do grupo %s requisitada."
-#: src/keyboardconfig.cpp:55
-msgid "Enable/Disable Trading"
-msgstr "Habilitar/Desabilitar Negociações"
+#: ../src/gui/userpalette.cpp:97
+msgid "Party Members"
+msgstr "Membros do grupo"
-#: src/keyboardconfig.cpp:56
-msgid "Find Path to Mouse"
-msgstr "Encontrar rota para o mouse"
+#: ../src/gui/socialwindow.cpp:629
+msgid "Party Name"
+msgstr "Nome do grupo"
-#: src/keyboardconfig.cpp:57 src/keyboardconfig.cpp:58
-#: src/keyboardconfig.cpp:59 src/keyboardconfig.cpp:60
-#: src/keyboardconfig.cpp:61 src/keyboardconfig.cpp:62
-#: src/keyboardconfig.cpp:63 src/keyboardconfig.cpp:64
-#: src/keyboardconfig.cpp:65 src/keyboardconfig.cpp:66
-#: src/keyboardconfig.cpp:67 src/keyboardconfig.cpp:68
-#, c-format
-msgid "Item Shortcut %d"
-msgstr "Atalho para Ãtem %d"
+#: ../src/commandhandler.cpp:449 ../src/net/tmwa/gui/partytab.cpp:109
+msgid "Party name is missing."
+msgstr "Falta o nome do grupo."
-#: src/keyboardconfig.cpp:69
-msgid "Help Window"
-msgstr "Janela de Ajuda"
+#: ../src/net/tmwa/partyhandler.cpp:84
+msgid "Party successfully created."
+msgstr "Grupo criado."
-#: src/keyboardconfig.cpp:70
-msgid "Status Window"
-msgstr "Janela de Status"
+#: ../src/gui/beingpopup.cpp:76
+#, c-format
+msgid "Party: %s"
+msgstr "Grupo: %s"
-#: src/keyboardconfig.cpp:71
-msgid "Inventory Window"
-msgstr "Janela de inventário"
+#: ../src/client.cpp:885
+msgid "Password Change"
+msgstr "Mudar senha"
-#: src/keyboardconfig.cpp:72
-msgid "Equipment Window"
-msgstr "Janela de equipamento"
+#: ../src/client.cpp:886
+msgid "Password changed successfully!"
+msgstr "Senha modificada com sucesso!"
-#: src/keyboardconfig.cpp:73
-msgid "Skill Window"
-msgstr "Janela de Habilidade"
+#: ../src/gui/changepassworddialog.cpp:61 ../src/gui/login.cpp:55
+#: ../src/gui/register.cpp:68 ../src/gui/unregisterdialog.cpp:53
+msgid "Password:"
+msgstr "Senha:"
-#: src/keyboardconfig.cpp:74
-msgid "Minimap Window"
-msgstr "Janela de Minimapa"
+#: ../src/gui/register.cpp:197
+msgid "Passwords do not match."
+msgstr "Senhas não conferem."
-#: src/keyboardconfig.cpp:75
-msgid "Chat Window"
-msgstr "Janela de bate-papo"
+#: ../src/gui/popupmenu.cpp:188
+#, c-format
+msgid "Pick up %s"
+msgstr "Pegar %s"
-#: src/keyboardconfig.cpp:76
-msgid "Item Shortcut Window"
-msgstr "Janela de atalhos para itens"
+#: ../src/keyboardconfig.cpp:52
+msgid "Pickup"
+msgstr "Pegar"
-#: src/keyboardconfig.cpp:77
-msgid "Setup Window"
-msgstr "Janela de Configurações"
+#: ../src/gui/userpalette.cpp:100
+msgid "Pickup Notification"
+msgstr "Aviso ao pegar algo"
-#: src/keyboardconfig.cpp:78
-msgid "Debug Window"
-msgstr "Janela de depuração"
+#: ../src/gui/updatewindow.cpp:145
+msgid "Play"
+msgstr "Jogar"
-#: src/keyboardconfig.cpp:79
-#, fuzzy
-msgid "Social Window"
-msgstr "Janela de Habilidade"
+#: ../src/commandhandler.cpp:545
+msgid "Player already ignored!"
+msgstr "O jogador já está sendo ignorado!"
-#: src/keyboardconfig.cpp:80
-msgid "Emote Shortcut Window"
-msgstr "Janela de atalho para Emoticons"
+#: ../src/commandhandler.cpp:554
+msgid "Player could not be ignored!"
+msgstr "Não foi possível ignorar o jogador!"
-#: src/keyboardconfig.cpp:81
-#, fuzzy
-msgid "Outfits Window"
-msgstr "Janela de Status"
+#: ../src/commandhandler.cpp:576
+msgid "Player could not be unignored!"
+msgstr "Não foi possível deixar de ignorar o jogador!"
-#: src/keyboardconfig.cpp:82
-msgid "Wear Outfit"
-msgstr ""
+#: ../src/net/manaserv/charhandler.cpp:193
+msgid "Player deleted."
+msgstr "Personagem deletado."
-#: src/keyboardconfig.cpp:83
-msgid "Copy Outfit"
-msgstr ""
+#: ../src/commandhandler.cpp:574
+msgid "Player no longer ignored!"
+msgstr "O jogador não está mais ignorado!"
-#: src/keyboardconfig.cpp:84 src/keyboardconfig.cpp:85
-#: src/keyboardconfig.cpp:86 src/keyboardconfig.cpp:87
-#: src/keyboardconfig.cpp:88 src/keyboardconfig.cpp:89
-#: src/keyboardconfig.cpp:90 src/keyboardconfig.cpp:91
-#: src/keyboardconfig.cpp:92 src/keyboardconfig.cpp:93
-#: src/keyboardconfig.cpp:94 src/keyboardconfig.cpp:95
-#, c-format
-msgid "Emote Shortcut %d"
-msgstr "Atalho para Emoticon %d"
+#: ../src/commandhandler.cpp:552
+msgid "Player successfully ignored!"
+msgstr "Jogador ignorado com sucesso!"
-#: src/keyboardconfig.cpp:96
-msgid "Toggle Chat"
-msgstr "Alternar para chat"
+#: ../src/commandhandler.cpp:569
+msgid "Player wasn't ignored!"
+msgstr "O jogador não estava ignorado!"
-#: src/keyboardconfig.cpp:97
-msgid "Scroll Chat Up"
-msgstr "Rolar janela de chat para cima"
+#: ../src/gui/setup_players.cpp:234
+msgid "Players"
+msgstr "Jogadores"
-#: src/keyboardconfig.cpp:98
-msgid "Scroll Chat Down"
-msgstr "Rolar janela de chat para baixo"
+#: ../src/net/manaserv/chathandler.cpp:184
+#: ../src/net/manaserv/chathandler.cpp:262
+msgid "Players in this channel:"
+msgstr "Jogadores neste canal:"
-#: src/keyboardconfig.cpp:99
-msgid "Previous Chat Tab"
-msgstr "Aba de chat anterior"
+#: ../src/gui/charcreatedialog.cpp:99 ../src/gui/charcreatedialog.cpp:251
+#, c-format
+msgid "Please distribute %d points"
+msgstr "Por favor distribua %d pontos"
-#: src/keyboardconfig.cpp:100
-msgid "Next Chat Tab"
-msgstr "Próxima aba de chat"
+#: ../src/gui/charcreatedialog.cpp:256
+#, c-format
+msgid "Please remove %d points"
+msgstr "Por favor remova %d pontos"
-#: src/keyboardconfig.cpp:101
-msgid "Select OK"
-msgstr "Selecionar OK"
+#: ../src/commandhandler.cpp:462 ../src/commandhandler.cpp:539
+#: ../src/commandhandler.cpp:561
+msgid "Please specify a name."
+msgstr "Por favor, especifique um nome."
-#: src/keyboardconfig.cpp:103
-msgid "Ignore input 1"
-msgstr "Ignorar input 1"
+#: ../src/gui/serverdialog.cpp:337
+msgid "Please type both the address and the port of a server."
+msgstr "Por favor especifique o endereço e a porta do servidor."
-#: src/keyboardconfig.cpp:104
-msgid "Ignore input 2"
-msgstr "Ignorar input 2"
+#: ../src/net/tmwa/specialhandler.cpp:216
+msgid "Poison had no effect..."
+msgstr "Veneno não surtiu efeito..."
-#: src/keyboardconfig.cpp:183
-#, fuzzy, c-format
-msgid ""
-"Conflict \"%s\" and \"%s\" keys. Resolve them, or gameplay may result in "
-"strange behaviour."
-msgstr "Corrija-os, ou o jogo irá se comportar de forma estranha."
+#: ../src/gui/serverdialog.cpp:209
+msgid "Port:"
+msgstr "Porta:"
-#: src/localplayer.cpp:985
-msgid "Unable to pick up item."
-msgstr "Impossível pegar ítem."
+#: ../src/gui/serverdialog.cpp:452
+msgid "Preparing download"
+msgstr "Preparando download"
-#. TRANSLATORS: This sentence may be translated differently
-#. for different grammatical numbers (singular, plural, ...)
-#: src/localplayer.cpp:994
-#, fuzzy, c-format
-msgid "You picked up %d [@@%d|%s@@]."
-msgid_plural "You picked up %d [@@%d|%s@@]."
-msgstr[0] "Você pegou %s [@@%d|%s@@]."
-msgstr[1] "Você pegou %s [@@%d|%s@@]."
+#: ../src/gui/chat.cpp:307
+#, c-format
+msgid "Present: %s; %d players are present."
+msgstr "Presentes: %s; %d jogadores estão presentes."
-#: src/main.cpp:42
-msgid "mana [options] [mana-file]"
-msgstr ""
+#: ../src/net/manaserv/beinghandler.cpp:324
+msgid "Press OK to respawn."
+msgstr "Clique em OK para repopular."
-#: src/main.cpp:43
-msgid "[mana-file] : The mana file is an XML file (.mana)"
-msgstr ""
+#: ../src/gui/setup_joystick.cpp:37 ../src/gui/setup_joystick.cpp:78
+msgid "Press the button to start calibration"
+msgstr "Aperte o botão para começar a calibrar"
-#: src/main.cpp:44
-msgid " used to set custom parameters"
-msgstr ""
+#: ../src/keyboardconfig.cpp:100
+msgid "Previous Chat Tab"
+msgstr "Aba de chat anterior"
-#: src/main.cpp:45
-msgid " to the mana client."
-msgstr ""
+#: ../src/gui/buy.cpp:69 ../src/gui/buy.cpp:266 ../src/gui/sell.cpp:71
+#: ../src/gui/sell.cpp:278
+#, c-format
+msgid "Price: %s / Total: %s"
+msgstr "Preço: %s / Total: %s"
-#: src/main.cpp:47
-msgid "Options:"
-msgstr "Opções:"
+#: ../src/playerrelations.cpp:326
+msgid "Print '...'"
+msgstr "Imprimir '...'"
-#: src/main.cpp:48
-#, fuzzy
-msgid " -v --version : Display the version"
-msgstr " -v --version : Exibe a versão"
+#: ../src/gui/trade.cpp:52
+msgid "Propose trade"
+msgstr "Propor negócio"
-#: src/main.cpp:49
-#, fuzzy
-msgid " -h --help : Display this help"
-msgstr " -h --help : Exibe esta ajuda"
+#: ../src/gui/setup_colors.cpp:84 ../src/gui/setup_colors.cpp:85
+#: ../src/gui/setup_colors.cpp:331
+msgid "Pulse"
+msgstr "Pulso"
-#: src/main.cpp:50
-#, fuzzy
-msgid " -C --config-dir : Configuration directory to use"
-msgstr " -C --config-file : Arquivo de configuração a ser usado"
+#: ../src/gui/setup_players.cpp:230
+msgid "Put all whispers in tabs"
+msgstr "Deixar as mensagens particulares em abas"
-#: src/main.cpp:51
-#, fuzzy
-msgid " -U --username : Login with this username"
-msgstr " -U --username : Efetua login com este usuário"
+#: ../src/gui/buy.cpp:79 ../src/gui/quitdialog.cpp:40
+#: ../src/gui/quitdialog.cpp:42 ../src/gui/quitdialog.cpp:43
+#: ../src/gui/sell.cpp:77 ../src/gui/serverdialog.cpp:232
+#: ../src/keyboardconfig.cpp:103
+msgid "Quit"
+msgstr "Sair"
-#: src/main.cpp:52
-#, fuzzy
-msgid " -P --password : Login with this password"
-msgstr " -P --password : Efetua login com esta senha"
+#: ../src/gui/setup_colors.cpp:86 ../src/gui/setup_colors.cpp:87
+#: ../src/gui/setup_colors.cpp:332
+msgid "Rainbow"
+msgstr "Arco-íris"
-#: src/main.cpp:53
-#, fuzzy
-msgid " -c --character : Login with this character"
-msgstr " -c --character : Efetua login com este personagem"
+#: ../src/gui/socialwindow.cpp:556
+msgid "Received guild request, but one already exists."
+msgstr "Requisição de guilda recebida, mas já existe uma."
-#: src/main.cpp:54
-#, fuzzy
-msgid " -s --server : Login server name or IP"
-msgstr " -s --server : Nome ou IP do servidor de login"
+#: ../src/gui/socialwindow.cpp:578
+msgid "Received party request, but one already exists."
+msgstr "Requisição de grupo recebida, mas já existe um."
-#: src/main.cpp:55
-#, fuzzy
-msgid " -p --port : Login server port"
-msgstr " -p --port : Porta do servidor de login"
+#: ../src/gui/recorder.h:38
+msgid "Recording..."
+msgstr "Gravando..."
-#: src/main.cpp:56
-#, fuzzy
-msgid " --update-host : Use this update host"
-msgstr " -H --update-host : Usa este host de update"
+#: ../src/gui/setup_colors.cpp:108
+msgid "Red:"
+msgstr "Vermelho:"
-#: src/main.cpp:57
-#, fuzzy
-msgid " -D --default : Choose default character server and character"
-msgstr ""
-" -D --default : Escolhe um personagem e um servidor de personagem padrão"
+#: ../src/gui/login.cpp:61 ../src/gui/register.cpp:58
+#: ../src/gui/register.cpp:73
+msgid "Register"
+msgstr "Registrar"
-#: src/main.cpp:59
-#, fuzzy
-msgid " -u --skip-update : Skip the update downloads"
-msgstr " -u --skip-update : Não faz downloads de atualização"
+#: ../src/gui/login.cpp:129
+msgid "Registration disabled"
+msgstr "Registro desabilitado."
-#: src/main.cpp:60
-#, fuzzy
-msgid " -d --data : Directory to load game data from"
-msgstr " -d --data : Pasta de onde os dados do jogo vão ser carregados"
+#: ../src/net/tmwa/loginhandler.cpp:165
+msgid "Rejected from server."
+msgstr "Rejeitado pelo servidor."
-#: src/main.cpp:61
-#, fuzzy
-msgid " --localdata-dir : Directory to use as local data directory"
-msgstr " -S --home-dir : Diretório a ser usado como pasta inicial"
+#: ../src/gui/socialwindow.cpp:472
+#, c-format
+msgid "Rejected guild invite from %s."
+msgstr "Rejeitou convite para a guilda de %s."
-#: src/main.cpp:62
-#, fuzzy
-msgid " --chat-log-dir : Chat log dir to use"
-msgstr " -C --config-file : Arquivo de configuração a ser usado"
+#: ../src/gui/socialwindow.cpp:453
+#, c-format
+msgid "Rejected party invite from %s."
+msgstr "Rejeitou convite para o grupo de %s."
-#: src/main.cpp:63
-#, fuzzy
-msgid " --screenshot-dir : Directory to store screenshots"
-msgstr " -S --home-dir : Diretório a ser usado como pasta inicial"
+#: ../src/gui/setup_players.cpp:59
+msgid "Relation"
+msgstr "Relação"
-#: src/main.cpp:65
-#, fuzzy
-msgid " --no-opengl : Disable OpenGL for this session"
-msgstr " -O --no-opengl : Desabilita OpenGL nesta sessão"
+#: ../src/gui/login.cpp:60
+msgid "Remember username"
+msgstr "Lembrar usuário"
-#: src/net/manaserv/beinghandler.cpp:303 src/net/tmwa/playerhandler.cpp:94
-msgid "You are dead."
-msgstr "Você está morto."
+#: ../src/net/manaserv/tradehandler.cpp:116
+#: ../src/net/tmwa/tradehandler.cpp:107
+msgid "Request for Trade"
+msgstr "Proposta de negociação"
-#: src/net/manaserv/beinghandler.cpp:304 src/net/tmwa/playerhandler.cpp:95
-msgid "We regret to inform you that your character was killed in battle."
-msgstr "Lamentamos informar que seu personagem foi morto em combate."
+#: ../src/net/tmwa/gamehandler.cpp:101
+msgid "Request to quit denied!"
+msgstr "Requisição de saída negada!"
-#: src/net/manaserv/beinghandler.cpp:306 src/net/tmwa/playerhandler.cpp:97
-msgid "You are not that alive anymore."
-msgstr "Você não está mais tão vivo."
+#: ../src/client.cpp:774
+msgid "Requesting characters"
+msgstr "Requisitando personagens"
-#: src/net/manaserv/beinghandler.cpp:307 src/net/tmwa/playerhandler.cpp:98
-msgid "The cold hands of the grim reaper are grabbing for your soul."
-msgstr "As mãos frias da morte estão levando sua alma."
+#: ../src/client.cpp:858
+msgid "Requesting registration details"
+msgstr "Requisitando detalhes do registro"
-#: src/net/manaserv/beinghandler.cpp:308 src/net/tmwa/playerhandler.cpp:99
-msgid "Game Over!"
-msgstr "Fim de jogo!"
+#: ../src/commandhandler.cpp:436
+#, c-format
+msgid "Requesting to join channel %s."
+msgstr "Solicitando entrada no canal %s."
-#: src/net/manaserv/beinghandler.cpp:309 src/net/tmwa/playerhandler.cpp:101
-msgid ""
-"No, kids. Your character did not really die. It... err... went to a better "
-"place."
-msgstr ""
-"Não, crianças. Seu personagem não morreu de verdade. Ele... err... foi para "
-"um lugar melhor."
+#: ../src/gui/npcdialog.cpp:114
+msgid "Reset"
+msgstr "Resetar"
-#: src/net/manaserv/beinghandler.cpp:311 src/net/tmwa/playerhandler.cpp:103
-msgid ""
-"Your plan of breaking your enemies weapon by bashing it with your throat "
-"failed."
-msgstr ""
-"Seu plano de quebrar as armas de seus inimigos com o seu pescoço não deu "
-"certo."
+#: ../src/gui/setup.cpp:51
+msgid "Reset Windows"
+msgstr "Restaurar janelas"
-#: src/net/manaserv/beinghandler.cpp:313 src/net/tmwa/playerhandler.cpp:105
-msgid "I guess this did not run too well."
-msgstr "Eu acho que isso não funcionou muito bem."
+#: ../src/gui/setup_video.cpp:446
+msgid "Restart needed for changes to take effect."
+msgstr "É preciso reiniciar para as mudanças terem efeito."
-#: src/net/manaserv/beinghandler.cpp:314 src/net/tmwa/playerhandler.cpp:107
-msgid "Do you want your possessions identified?"
-msgstr "Você quer uma identificação de suas posses?"
+#: ../src/gui/setup_video.cpp:580 ../src/gui/setup_video.cpp:585
+msgid "Restart your client for the change to take effect."
+msgstr "Reincie o jogo para que as mudanças surtam efeito."
-#: src/net/manaserv/beinghandler.cpp:315 src/net/tmwa/playerhandler.cpp:109
-msgid "Sadly, no trace of you was ever found..."
-msgstr "Infelizmente, seus traços nunca foram encontrados..."
+#: ../src/gui/inventorywindow.cpp:121 ../src/gui/popupmenu.cpp:376
+msgid "Retrieve"
+msgstr "Retirar"
-#: src/net/manaserv/beinghandler.cpp:316 src/net/tmwa/playerhandler.cpp:111
-msgid "Annihilated."
-msgstr "Aniquilado."
+#: ../src/commandhandler.cpp:489
+msgid "Return now toggles chat."
+msgstr "Agora Enter alterna para o chat."
-#: src/net/manaserv/beinghandler.cpp:317 src/net/tmwa/playerhandler.cpp:113
-msgid "Looks like you got your head handed to you."
-msgstr "Parece que te ofereceram sua própria cabeça."
+#: ../src/commandhandler.cpp:480
+msgid "Return toggles chat."
+msgstr "Enter alterna para o chat."
-#: src/net/manaserv/beinghandler.cpp:318 src/net/tmwa/playerhandler.cpp:115
-msgid ""
-"You screwed up again, dump your body down the tubes and get you another one."
-msgstr "Você estragou tudo de novo, jogue fora seu corpo e arranje outro."
+#: ../src/gui/setup_joystick.cpp:84
+msgid "Rotate the stick"
+msgstr "Gire o bastão"
-#: src/net/manaserv/beinghandler.cpp:323
-#, fuzzy
-msgid "Press OK to respawn."
-msgstr " Clique em OK para repopular."
+#: ../src/net/manaserv/beinghandler.cpp:316
+#: ../src/net/tmwa/playerhandler.cpp:118
+msgid "Sadly, no trace of you was ever found..."
+msgstr "Infelizmente, seus traços nunca foram encontrados..."
-#: src/net/manaserv/beinghandler.cpp:324
-#, fuzzy
-msgid "You Died"
-msgstr "Você morreu"
+#: ../src/game.cpp:338
+msgid "Saving screenshot failed!"
+msgstr "Falha ao salvar screenshot!"
-#: src/net/manaserv/charhandler.cpp:138 src/net/manaserv/charhandler.cpp:209
-#, fuzzy
-msgid "Not logged in."
-msgstr "Já está conectado"
+#: ../src/gui/setup_video.cpp:579 ../src/gui/setup_video.cpp:584
+msgid "Screen Resolution Changed"
+msgstr "Resolução de tela alterada"
-#: src/net/manaserv/charhandler.cpp:141
-msgid "No empty slot."
-msgstr ""
+#: ../src/keyboardconfig.cpp:55
+msgid "Screenshot"
+msgstr "Screenshot"
-#: src/net/manaserv/charhandler.cpp:144
-msgid "Invalid name."
-msgstr ""
+#: ../src/game.cpp:333
+msgid "Screenshot saved as "
+msgstr "Screenshot salva como "
-#: src/net/manaserv/charhandler.cpp:147
-#, fuzzy
-msgid "Character's name already exists."
-msgstr "Nome de usuário já existe"
+#: ../src/keyboardconfig.cpp:99
+msgid "Scroll Chat Down"
+msgstr "Rolar chat para baixo"
-#: src/net/manaserv/charhandler.cpp:150
-msgid "Invalid hairstyle."
-msgstr ""
+#: ../src/keyboardconfig.cpp:98
+msgid "Scroll Chat Up"
+msgstr "Rolar chat para cima"
-#: src/net/manaserv/charhandler.cpp:153
-msgid "Invalid hair color."
-msgstr ""
+#: ../src/net/tmwa/specialhandler.cpp:186
+msgid "Seems you need more money... ;-)"
+msgstr "Parece que você precisa de mais dinheiro... ;-)"
-#: src/net/manaserv/charhandler.cpp:156
-msgid "Invalid gender."
-msgstr ""
+#: ../src/keyboardconfig.cpp:102
+msgid "Select OK"
+msgstr "Selecionar OK"
-#: src/net/manaserv/charhandler.cpp:159
-#, fuzzy
-msgid "Character's stats are too high."
-msgstr "Status do personagem OK"
+#: ../src/gui/worldselectdialog.cpp:71
+msgid "Select World"
+msgstr "Selecionar Mundo"
-#: src/net/manaserv/charhandler.cpp:162
-#, fuzzy
-msgid "Character's stats are too low."
-msgstr "Status do personagem OK"
+#: ../src/gui/itemamount.cpp:134
+msgid "Select amount of items to drop."
+msgstr "Selecionar quantidade de itens para descartar."
-#: src/net/manaserv/charhandler.cpp:165
-#, c-format
-msgid "At least one statis out of the permitted range: (%u - %u)."
-msgstr ""
+#: ../src/gui/itemamount.cpp:140
+msgid "Select amount of items to retrieve."
+msgstr "Escolha a quantidade de itens para retirar."
-#: src/net/manaserv/charhandler.cpp:171 src/net/manaserv/loginhandler.cpp:96
-#: src/net/manaserv/loginhandler.cpp:127 src/net/manaserv/loginhandler.cpp:161
-#: src/net/manaserv/loginhandler.cpp:279 src/net/manaserv/loginhandler.cpp:316
-#: src/net/tmwa/loginhandler.cpp:95 src/net/tmwa/loginhandler.cpp:182
-#, fuzzy
-msgid "Unknown error."
-msgstr "Erro desconhecido"
+#: ../src/gui/itemamount.cpp:143
+msgid "Select amount of items to split."
+msgstr "Selecionar quantidade de itens para dividir."
-#: src/net/manaserv/charhandler.cpp:200 src/net/tmwa/charserverhandler.cpp:146
-msgid "Info"
-msgstr "Informações"
+#: ../src/gui/itemamount.cpp:137
+msgid "Select amount of items to store."
+msgstr "Escolha a quantidade de itens para armazenar."
-#: src/net/manaserv/charhandler.cpp:200
-#, fuzzy
-msgid "Player deleted."
-msgstr "Personagem deletado."
+#: ../src/gui/itemamount.cpp:131
+msgid "Select amount of items to trade."
+msgstr "Selecionar quantidade de itens para negociar."
-#: src/net/manaserv/charhandler.cpp:212
-#, fuzzy
+#: ../src/net/manaserv/charhandler.cpp:205
msgid "Selection out of range."
-msgstr "Selecionar quantidade de itens para negociar."
+msgstr "Seleção fora de alcançe."
-#: src/net/manaserv/charhandler.cpp:215
-#, fuzzy, c-format
-msgid "Unknown error (%d)."
-msgstr "Erro desconhecido"
+#: ../src/gui/buysell.cpp:47 ../src/gui/sell.cpp:49 ../src/gui/sell.cpp:76
+msgid "Sell"
+msgstr "Vender"
-#: src/net/manaserv/charhandler.cpp:250
-msgid "No gameservers are available."
-msgstr "Não há gameservers disponíveis."
+#: ../src/gui/npcpostdialog.cpp:54
+msgid "Send"
+msgstr "Enviar"
-#: src/net/manaserv/chathandler.cpp:187 src/net/manaserv/chathandler.cpp:313
-#: src/net/manaserv/guildhandler.cpp:260
-#, c-format
-msgid "Topic: %s"
-msgstr "Tópico: %s"
+#: ../src/gui/serverdialog.cpp:211
+msgid "Server type:"
+msgstr "Tipo de servidor:"
-#: src/net/manaserv/chathandler.cpp:191 src/net/manaserv/chathandler.cpp:274
-#, fuzzy
-msgid "Players in this channel:"
-msgstr "Jogador acerta monstro"
+#: ../src/gui/serverdialog.cpp:208 ../src/gui/widgets/chattab.cpp:141
+msgid "Server:"
+msgstr "Servidor:"
-#: src/net/manaserv/chathandler.cpp:208
-#, fuzzy
-msgid "Error joining channel."
-msgstr "Comando: /join <canal>"
+#: ../src/client.cpp:575 ../src/gui/setup.cpp:43 ../src/gui/windowmenu.cpp:66
+msgid "Setup"
+msgstr "Configurar"
-#: src/net/manaserv/chathandler.cpp:214
-#, fuzzy
-msgid "Listing channels."
-msgstr "Solicitando entrada no canal %s."
+#: ../src/keyboardconfig.cpp:78
+msgid "Setup Window"
+msgstr "Janela de Configurações"
-#: src/net/manaserv/chathandler.cpp:226
-msgid "End of channel list."
-msgstr ""
+#: ../src/gui/setup_audio.cpp:50
+msgid "Sfx volume"
+msgstr "Volume Sfx"
-#: src/net/manaserv/chathandler.cpp:303
-#, fuzzy, c-format
-msgid "%s entered the channel."
-msgstr "%s entrou para o grupo."
+#: ../src/gui/buysell.cpp:38
+msgid "Shop"
+msgstr "Loja"
-#: src/net/manaserv/chathandler.cpp:308
-#, c-format
-msgid "%s left the channel."
-msgstr ""
+#: ../src/gui/windowmenu.cpp:65
+msgid "Shortcut"
+msgstr "Atalho"
-#: src/net/manaserv/chathandler.cpp:324
-#, c-format
-msgid "%s has set mode %s on user %s."
-msgstr ""
+#: ../src/commandhandler.cpp:506 ../src/commandhandler.cpp:515
+msgid "Show IP: Off"
+msgstr "Mostrar IP: Desligado"
-#: src/net/manaserv/chathandler.cpp:334
-#, c-format
-msgid "%s has kicked %s."
-msgstr ""
+#: ../src/commandhandler.cpp:506 ../src/commandhandler.cpp:519
+msgid "Show IP: On"
+msgstr "Mostrar IP: Ligado"
-#: src/net/manaserv/chathandler.cpp:339
-#, fuzzy
-msgid "Unknown channel event."
-msgstr "Comando desconhecido."
+#: ../src/gui/setup_video.cpp:254
+msgid "Show damage"
+msgstr "Mostrar dano"
-#: src/net/manaserv/guildhandler.cpp:82
-msgid "Guild created."
-msgstr "Corporação criada."
+#: ../src/gui/setup_players.cpp:232
+msgid "Show gender"
+msgstr "Mostrar gênero"
-#: src/net/manaserv/guildhandler.cpp:87
-msgid "Error creating guild."
-msgstr "Erro ao criar corporação."
+#: ../src/gui/setup_video.cpp:227
+msgid "Show own name"
+msgstr "Mostrar o próprio nome"
-#: src/net/manaserv/guildhandler.cpp:97
-msgid "Invite sent."
-msgstr "Convite enviado."
+#: ../src/gui/setup_video.cpp:229
+msgid "Show pickup notification"
+msgstr "Mostrar aviso ao pegar algo"
-#: src/net/manaserv/guildhandler.cpp:204
-msgid "Member was promoted successfully."
-msgstr "Membro foi promovido com sucesso."
+#: ../src/keyboardconfig.cpp:54
+msgid "Sit"
+msgstr "Sentar"
-#: src/net/manaserv/guildhandler.cpp:209
-msgid "Failed to promote member."
-msgstr "Erro ao promover do membro."
+#: ../src/net/tmwa/specialhandler.cpp:153
+msgid "Sit failed!"
+msgstr "Falha ao sentar!"
-#: src/net/manaserv/loginhandler.cpp:87
-#, fuzzy
-msgid "Wrong magic_token."
-msgstr "Simbolo-mágico errado."
+#: ../src/gui/skilldialog.cpp:362
+#, c-format
+msgid "Skill %d"
+msgstr "Habilidade %d"
-#: src/net/manaserv/loginhandler.cpp:90 src/net/manaserv/loginhandler.cpp:269
-#, fuzzy
-msgid "Already logged in."
-msgstr "Já está conectado"
+#: ../src/gui/skilldialog.cpp:353
+#, c-format
+msgid "Skill Set %d"
+msgstr "Habilidade %d"
-#: src/net/manaserv/loginhandler.cpp:93
-#, fuzzy
-msgid "Account banned."
-msgstr "A conta expirou"
+#: ../src/keyboardconfig.cpp:74
+msgid "Skill Window"
+msgstr "Janela de Habilidade"
-#: src/net/manaserv/loginhandler.cpp:118
-#, fuzzy
-msgid "New password incorrect."
-msgstr "Nova senha incorreta"
+#: ../src/gui/skilldialog.cpp:271
+#, c-format
+msgid "Skill points available: %d"
+msgstr "Pontos de habilidade disponíveis: %d"
-#: src/net/manaserv/loginhandler.cpp:121 src/net/tmwa/loginhandler.cpp:89
-#, fuzzy
-msgid "Old password incorrect."
-msgstr "Senha antiga incorreta"
+#: ../src/gui/skilldialog.cpp:210 ../src/gui/windowmenu.cpp:59
+msgid "Skills"
+msgstr "Habilidades"
-#: src/net/manaserv/loginhandler.cpp:124 src/net/manaserv/loginhandler.cpp:155
-msgid "Account not connected. Please login first."
-msgstr "Conta não conectada. Por favor, efetue o login primeiro."
+#: ../src/gui/inventorywindow.cpp:80
+msgid "Slots:"
+msgstr "Espaços:"
-#: src/net/manaserv/loginhandler.cpp:149
-#, fuzzy
-msgid "New email address incorrect."
-msgstr "Novo endereço de email incorreto"
+#: ../src/gui/setup_video.cpp:135
+msgid "Small"
+msgstr "Pequena"
-#: src/net/manaserv/loginhandler.cpp:152
-#, fuzzy
-msgid "Old email address incorrect."
-msgstr "Antigo endereço de email incorreto"
+#: ../src/keyboardconfig.cpp:46
+msgid "Smilie"
+msgstr "Emoticon"
-#: src/net/manaserv/loginhandler.cpp:158
-#, fuzzy
-msgid "The new email address already exists."
-msgstr "O novo endereço de email já existe."
+#: ../src/gui/socialwindow.cpp:316 ../src/gui/windowmenu.cpp:64
+msgid "Social"
+msgstr "Social"
-#: src/net/manaserv/loginhandler.cpp:239
-msgid ""
-"Client registration is not allowed. Please contact server administration."
-msgstr ""
+#: ../src/keyboardconfig.cpp:80
+msgid "Social Window"
+msgstr "Janela social"
-#: src/net/manaserv/loginhandler.cpp:263 src/net/manaserv/loginhandler.cpp:300
-#, fuzzy
-msgid "Client version is too old."
-msgstr "Versão do cliente é muito antiga"
+#: ../src/gui/setup_video.cpp:582
+msgid "Some windows may be moved to fit the lowered resolution."
+msgstr ""
+"Algumas janelas podem ser movidas para se adequar à resolução mais baixa."
-#: src/net/manaserv/loginhandler.cpp:266
-#, fuzzy
-msgid "Wrong username or password."
-msgstr "Nome de usuário ou senha inválido"
+#: ../src/net/tmwa/generalhandler.cpp:136
+msgid "Someone else is trying to use this account."
+msgstr "Outra pessoa está tentando utilizar esta conta."
-#: src/net/manaserv/loginhandler.cpp:272
-#, fuzzy
-msgid "Account banned"
-msgstr "A conta expirou"
+#: ../src/gui/setup_audio.cpp:42
+msgid "Sound"
+msgstr "Som"
-#: src/net/manaserv/loginhandler.cpp:275
-msgid "Login attempt too soon after previous attempt."
-msgstr ""
+#: ../src/gui/setup_audio.cpp:106
+msgid "Sound Engine"
+msgstr "Mecanismo de som"
-#: src/net/manaserv/loginhandler.cpp:303
-#, fuzzy
-msgid "Wrong username, password or email address."
-msgstr "Nome de usuário, senha ou email inválido"
+#: ../src/gui/specialswindow.cpp:191
+#, c-format
+msgid "Special %d"
+msgstr "Especial %d"
-#: src/net/manaserv/loginhandler.cpp:306
-#, fuzzy
-msgid "Username already exists."
-msgstr "Nome de usuário já existe"
+#: ../src/gui/specialswindow.cpp:85 ../src/gui/windowmenu.cpp:62
+msgid "Specials"
+msgstr "Especiais"
-#: src/net/manaserv/loginhandler.cpp:309
-#, fuzzy
-msgid "Email address already exists."
-msgstr "Endereço de email já existe"
+#: ../src/gui/specialswindow.cpp:174
+#, c-format
+msgid "Specials Set %d"
+msgstr "Especiais %d"
-#: src/net/manaserv/loginhandler.cpp:312
-msgid "You took too long with the captcha or your response was incorrect."
-msgstr ""
+#: ../src/gui/setup_colors.cpp:88 ../src/gui/setup_colors.cpp:89
+#: ../src/gui/setup_colors.cpp:332
+msgid "Spectrum"
+msgstr "Espectro"
-#: src/net/manaserv/partyhandler.cpp:87
-msgid "Joined party."
-msgstr "Entrou para o grupo."
+#: ../src/net/tmwa/generalhandler.cpp:142
+msgid "Speed hack detected."
+msgstr "Hack de velocidade detectado."
-#: src/net/manaserv/partyhandler.cpp:105
-#, c-format
-msgid "%s joined the party."
-msgstr "%s entrou para o grupo."
+#: ../src/gui/inventorywindow.cpp:100 ../src/gui/popupmenu.cpp:369
+msgid "Split"
+msgstr "Dividir"
-#: src/net/manaserv/partyhandler.cpp:123
-#, fuzzy, c-format
-msgid "%s rejected your invite."
-msgstr "%s recusou seu convite."
+#: ../src/localplayer.cpp:1255
+msgid "Stack is too big."
+msgstr "Esta pilha é muito grande."
-#: src/net/manaserv/tradehandler.cpp:95
-msgid "Accepting incoming trade requests."
-msgstr "Aceitando propostas de negócios."
+#: ../src/gui/recorder.cpp:104
+msgid "Starting to record..."
+msgstr "Iniciando a gravação..."
-#: src/net/manaserv/tradehandler.cpp:97
-msgid "Ignoring incoming trade requests."
-msgstr "Ignorando propostas de negócios."
+#: ../src/gui/setup_colors.cpp:82 ../src/gui/setup_colors.cpp:330
+msgid "Static"
+msgstr "Estático"
-#: src/net/manaserv/tradehandler.cpp:115 src/net/tmwa/tradehandler.cpp:109
-msgid "Request for Trade"
-msgstr "Proposta de negociação"
+#: ../src/gui/windowmenu.cpp:54
+msgid "Status"
+msgstr "Status"
-#: src/net/manaserv/tradehandler.cpp:116 src/net/tmwa/tradehandler.cpp:110
-#, c-format
-msgid "%s wants to trade with you, do you accept?"
-msgstr "%s quer negociar com você, você aceita?"
+#: ../src/keyboardconfig.cpp:71
+msgid "Status Window"
+msgstr "Janela de Status"
-#: src/net/manaserv/tradehandler.cpp:134
-#, c-format
-msgid "Trading with %s"
-msgstr "Negociando com %s"
+#: ../src/gui/setup_joystick.cpp:83
+msgid "Stop"
+msgstr "Parar"
-#: src/net/manaserv/tradehandler.cpp:148 src/net/tmwa/tradehandler.cpp:224
-msgid "Trade canceled."
-msgstr "Negociação cancelada."
+#: ../src/keyboardconfig.cpp:48
+msgid "Stop Attack"
+msgstr "Parar ataque"
-#: src/net/manaserv/tradehandler.cpp:155 src/net/tmwa/tradehandler.cpp:231
-msgid "Trade completed."
-msgstr "Negociação realizada."
+#: ../src/gui/recorder.h:39
+msgid "Stop recording"
+msgstr "Parar gravação"
-#: src/net/tmwa/adminhandler.cpp:64
-msgid "Kick failed!"
-msgstr "Erro na expulsão!"
+#: ../src/gui/inventorywindow.cpp:59
+msgid "Storage"
+msgstr "Armazenamento"
-#: src/net/tmwa/adminhandler.cpp:66
-msgid "Kick succeeded!"
-msgstr "Expulsão bem sucedida!"
+#: ../src/gui/inventorywindow.cpp:120 ../src/gui/popupmenu.cpp:349
+msgid "Store"
+msgstr "Armazenar"
-#: src/net/tmwa/buysellhandler.cpp:109
-msgid "Nothing to sell."
-msgstr "Nada para vender."
+#: ../src/net/manaserv/stats.cpp:56 ../src/net/tmwa/generalhandler.cpp:217
+msgid "Strength"
+msgstr "Força"
-#: src/net/tmwa/buysellhandler.cpp:116
-msgid "Thanks for buying."
-msgstr "Obrigado pela compra."
+#: ../src/net/manaserv/stats.cpp:58 ../src/net/tmwa/generalhandler.cpp:101
+#, c-format
+msgid "Strength %+d"
+msgstr "Força %+d"
-#: src/net/tmwa/buysellhandler.cpp:123
-msgid "Unable to buy."
-msgstr "Impossível comprar."
+#: ../src/net/tmwa/charserverhandler.cpp:259
+msgid "Strength:"
+msgstr "Força:"
-#: src/net/tmwa/buysellhandler.cpp:129
-msgid "Thanks for selling."
-msgstr "Obrigado pela venda."
+#: ../src/gui/npcdialog.cpp:48
+msgid "Submit"
+msgstr "Enviar"
-#: src/net/tmwa/buysellhandler.cpp:131
-msgid "Unable to sell."
-msgstr "Impossibilitado de vender."
+#: ../src/gui/charselectdialog.cpp:127
+msgid "Switch Login"
+msgstr "Trocar Login"
-#: src/net/tmwa/charserverhandler.cpp:103
-msgid "Access denied. Most likely, there are too many players on this server."
-msgstr ""
+#: ../src/gui/quitdialog.cpp:45
+msgid "Switch character"
+msgstr "Trocar de Personagem"
-#: src/net/tmwa/charserverhandler.cpp:107
-#, fuzzy
-msgid "Cannot use this ID."
-msgstr "Não é possível usar este ID"
+#: ../src/gui/quitdialog.cpp:44
+msgid "Switch server"
+msgstr "Trocar servidor"
-#: src/net/tmwa/charserverhandler.cpp:110
-#, fuzzy
-msgid "Unknown char-server failure."
-msgstr "Erro desconhecido"
+#: ../src/gui/setup_video.cpp:445
+msgid "Switching to Full Screen"
+msgstr "Mudando para tela cheia"
-#: src/net/tmwa/charserverhandler.cpp:134
-msgid "Failed to create character. Most likely the name is already taken."
-msgstr "Erro ao criar personagem. Provavelmente o nome já está sendo usado."
+#: ../src/keyboardconfig.cpp:47
+msgid "Talk"
+msgstr "Falar"
-#: src/net/tmwa/charserverhandler.cpp:146
-msgid "Character deleted."
-msgstr "Personagem deletado."
+#: ../src/gui/popupmenu.cpp:150
+#, c-format
+msgid "Talk to %s"
+msgstr "Falar com %s"
-#: src/net/tmwa/charserverhandler.cpp:151
-msgid "Failed to delete character."
-msgstr "Falha ao deletar personagem."
+#: ../src/keyboardconfig.cpp:45
+msgid "Target & Attack"
+msgstr "Selecionar & Atacar"
-#: src/net/tmwa/charserverhandler.cpp:266
-msgid "Strength:"
-msgstr "Força:"
+#: ../src/keyboardconfig.cpp:49
+msgid "Target Monster"
+msgstr "Selecionar Monstro"
-#: src/net/tmwa/charserverhandler.cpp:267
-msgid "Agility:"
-msgstr "Agilidade:"
+#: ../src/keyboardconfig.cpp:50
+msgid "Target NPC"
+msgstr "Selecionar NPC"
-#: src/net/tmwa/charserverhandler.cpp:268
-msgid "Vitality:"
-msgstr "Vitalidade:"
+#: ../src/keyboardconfig.cpp:51
+msgid "Target Player"
+msgstr "Selecionar Jogador"
-#: src/net/tmwa/charserverhandler.cpp:269
-msgid "Intelligence:"
-msgstr "Inteligência:"
+#: ../src/gui/setup_video.cpp:164
+msgid "Text"
+msgstr "Texto"
-#: src/net/tmwa/charserverhandler.cpp:270
-msgid "Dexterity:"
-msgstr "Destreza:"
+#: ../src/net/tmwa/buysellhandler.cpp:117
+msgid "Thanks for buying."
+msgstr "Obrigado pela compra."
-#: src/net/tmwa/charserverhandler.cpp:271
-msgid "Luck:"
-msgstr "Sorte"
+#: ../src/net/tmwa/buysellhandler.cpp:130
+msgid "Thanks for selling."
+msgstr "Obrigado pela venda."
-#: src/net/tmwa/chathandler.cpp:87
-#, fuzzy, c-format
-msgid "Whisper could not be sent, %s is offline."
-msgstr "Impossível enviar mensagem privada, o usuário está desconectado."
+#: ../src/net/manaserv/beinghandler.cpp:308
+#: ../src/net/tmwa/playerhandler.cpp:107
+msgid "The cold hands of the grim reaper are grabbing for your soul."
+msgstr "As mãos frias da morte estão levando sua alma."
-#: src/net/tmwa/chathandler.cpp:96
-#, fuzzy, c-format
-msgid "Whisper could not be sent, ignored by %s."
-msgstr "Impossível enviar mensagem privada, você foi ignorado pelo usuário."
+#: ../src/game.cpp:368
+msgid "The connection to the server was lost."
+msgstr "A conexão com o servidor caiu."
-#: src/net/tmwa/chathandler.cpp:230
-#, fuzzy
-msgid "MVP player."
-msgstr "Jogador"
+#: ../src/gui/changeemaildialog.cpp:141
+msgid "The email address entries mismatch."
+msgstr "Os emails informados não são iguais."
-#: src/net/tmwa/chathandler.cpp:265 src/net/tmwa/chathandler.cpp:271
-#: src/net/tmwa/chathandler.cpp:276 src/net/tmwa/chathandler.cpp:281
-#: src/net/tmwa/chathandler.cpp:286 src/net/tmwa/chathandler.cpp:291
-#: src/net/tmwa/chathandler.cpp:296 src/net/tmwa/chathandler.cpp:301
-msgid "Channels are not supported!"
-msgstr "Não há suporte para canais!"
+#: ../src/net/manaserv/loginhandler.cpp:158
+msgid "The new email address already exists."
+msgstr "O novo endereço de email já existe."
-#: src/net/tmwa/gamehandler.cpp:88
+#: ../src/gui/changeemaildialog.cpp:127
#, c-format
-msgid "Online users: %d"
-msgstr ""
+msgid "The new email address needs to be at least %d characters long."
+msgstr "O novo email deve ter pelo menos %d caracteres."
-#: src/net/tmwa/gamehandler.cpp:101
-#, fuzzy
-msgid "Game"
-msgstr "Nome"
+#: ../src/gui/changeemaildialog.cpp:134
+#, c-format
+msgid "The new email address needs to be less than %d characters long."
+msgstr "O novo email deve ter menos que %d caracteres."
-#: src/net/tmwa/gamehandler.cpp:101
-#, fuzzy
-msgid "Request to quit denied!"
-msgstr "Proposta de negociação"
+#: ../src/gui/changepassworddialog.cpp:130
+msgid "The new password entries mismatch."
+msgstr "As novas senhas não são iguais."
-#: src/net/tmwa/generalhandler.cpp:102
+#: ../src/gui/changepassworddialog.cpp:116
#, c-format
-msgid "Strength %+d"
-msgstr "Força %+d"
+msgid "The new password needs to be at least %d characters long."
+msgstr "A nova senha deve ter pelo menos %d caracteres."
-#: src/net/tmwa/generalhandler.cpp:103
+#: ../src/gui/changepassworddialog.cpp:123
#, c-format
-msgid "Agility %+d"
-msgstr "Agilidade %+d"
+msgid "The new password needs to be less than %d characters long."
+msgstr "A nova senha deve ter menos que %d caracteres."
-#: src/net/tmwa/generalhandler.cpp:104
+#: ../src/gui/register.cpp:182 ../src/gui/unregisterdialog.cpp:117
#, c-format
-msgid "Vitality %+d"
-msgstr "Vitalidade %+d"
+msgid "The password needs to be at least %d characters long."
+msgstr "A senha deve ter pelo menos %d caracteres."
-#: src/net/tmwa/generalhandler.cpp:105
+#: ../src/gui/register.cpp:190 ../src/gui/unregisterdialog.cpp:124
#, c-format
-msgid "Intelligence %+d"
-msgstr "Inteligência %+d"
+msgid "The password needs to be less than %d characters long."
+msgstr "A senha deve ser menor que %d caracteres."
-#: src/net/tmwa/generalhandler.cpp:106
+#: ../src/gui/register.cpp:166
#, c-format
-msgid "Dexterity %+d"
-msgstr "Destreza %+d"
+msgid "The username needs to be at least %d characters long."
+msgstr "O nome do usuário precisa ter pelo menos %d caracteres."
-#: src/net/tmwa/generalhandler.cpp:107
+#: ../src/gui/register.cpp:174
#, c-format
-msgid "Luck %+d"
-msgstr "Sorte %+d"
-
-#: src/net/tmwa/generalhandler.cpp:132
-#, fuzzy
-msgid "Authentication failed."
-msgstr "Falha de autenticação"
+msgid "The username needs to be less than %d characters long."
+msgstr "O nome do usuário tem que ser inferior a %d caracteres."
-#: src/net/tmwa/generalhandler.cpp:135
-#, fuzzy
-msgid "No servers available."
-msgstr "Não há servidores disponíveis"
+#: ../src/net/tmwa/generalhandler.cpp:139
+msgid "This account is already logged in."
+msgstr "Existe alguém conectado a esta conta."
-#: src/net/tmwa/generalhandler.cpp:139
-#, fuzzy
-msgid "Someone else is trying to use this account."
-msgstr "Mais alguém está tentando utilizar esta conta"
+#: ../src/net/tmwa/gui/guildtab.cpp:81
+msgid "This command causes the player to leave the guild."
+msgstr "Este comando faz com que o jogador saia da guilda."
-#: src/net/tmwa/generalhandler.cpp:142
-#, fuzzy
-msgid "This account is already logged in."
-msgstr "Existe alguém logado a esta conta"
+#: ../src/net/tmwa/gui/partytab.cpp:81
+msgid "This command causes the player to leave the party."
+msgstr "Este comando faz com que o jogador saia do grupo."
-#: src/net/tmwa/generalhandler.cpp:145
-#, fuzzy
-msgid "Speed hack detected."
-msgstr "Hack de velocidade detectado"
+#: ../src/net/tmwa/gui/partytab.cpp:96
+msgid "This command changes the party's experience sharing policy."
+msgstr "Este comando muda a opção de compartilhamento de experiência do grupo."
-#: src/net/tmwa/generalhandler.cpp:148
-#, fuzzy
-msgid "Duplicated login."
-msgstr "Login duplicado"
+#: ../src/net/tmwa/gui/partytab.cpp:86
+msgid "This command changes the party's item sharing policy."
+msgstr "Este comando muda a opção de compartilhamento de itens do grupo."
-#: src/net/tmwa/generalhandler.cpp:151
-#, fuzzy
-msgid "Unknown connection error."
-msgstr "Erro de conexão desconhecido"
+#: ../src/commandhandler.cpp:275
+msgid "This command clears the away status and message."
+msgstr "Este comando limpa o status e a mensagem \"away\"."
-#: src/net/tmwa/generalhandler.cpp:209
-msgid "Got disconnected from server!"
-msgstr "Você foi desconectado do servidor!"
+#: ../src/commandhandler.cpp:229
+msgid "This command clears the chat log of previous chat."
+msgstr "Este comando limpa a janela de chat."
-#: src/net/tmwa/generalhandler.cpp:230
-msgid "Strength"
-msgstr "Força"
+#: ../src/gui/widgets/whispertab.cpp:84
+msgid "This command closes the current whisper tab."
+msgstr "Este comando fecha a atual aba de mensagem privada"
-#: src/net/tmwa/generalhandler.cpp:231
-msgid "Agility"
-msgstr "Agilidade"
+#: ../src/commandhandler.cpp:280
+msgid "This command creates a new party called <name>."
+msgstr "Este comando cria um novo grupo chamado <nome>."
-#: src/net/tmwa/generalhandler.cpp:232
-msgid "Vitality"
-msgstr "Vitalidade"
+#: ../src/commandhandler.cpp:210
+msgid "This command displays a list of all commands available."
+msgstr "Exibe uma lista de todos os comandos disponíveis."
-#: src/net/tmwa/generalhandler.cpp:233
-msgid "Intelligence"
-msgstr "Inteligência"
+#: ../src/commandhandler.cpp:213
+msgid "This command displays help on <command>."
+msgstr "Exibe o conteúdo de ajuda de <comando>"
-#: src/net/tmwa/generalhandler.cpp:234
-msgid "Dexterity"
-msgstr "Destreza"
+#: ../src/commandhandler.cpp:324
+msgid "This command displays the name of the current map."
+msgstr "Mostra o nome do mapa atual."
-#: src/net/tmwa/generalhandler.cpp:235
-msgid "Luck"
-msgstr "Sorte"
+#: ../src/commandhandler.cpp:329
+msgid "This command displays the number of players currently online."
+msgstr "Exibe o número total de jogadores online."
-#: src/net/tmwa/generalhandler.cpp:238
-#, fuzzy
-msgid "Defense"
-msgstr "Defesa:"
+#: ../src/net/tmwa/gui/partytab.cpp:101
+msgid "This command displays the party's current experience sharing policy."
+msgstr ""
+"Este comando exibe a atual opção de compartilhamento de experiência do grupo."
-#: src/net/tmwa/generalhandler.cpp:239
-#, fuzzy
-msgid "M.Attack"
-msgstr "M. Ataque:"
+#: ../src/net/tmwa/gui/partytab.cpp:91
+msgid "This command displays the party's current item sharing policy."
+msgstr ""
+"Este comando exibe a atual opção de compartilhamento de itens do grupo."
-#: src/net/tmwa/generalhandler.cpp:240
-#, fuzzy
-msgid "M.Defense"
-msgstr "M. Defesa:"
+#: ../src/commandhandler.cpp:313
+msgid "This command displays the return toggle status."
+msgstr "Este comando mostra o status da tecla enter."
-#: src/net/tmwa/generalhandler.cpp:241
-#, fuzzy, c-format
-msgid "% Accuracy"
-msgstr "% Acuracidade:"
+#: ../src/commandhandler.cpp:302
+msgid "This command finishes a recording session."
+msgstr "Este comando finaliza a sessão de gravação."
-#: src/net/tmwa/generalhandler.cpp:242
-#, fuzzy, c-format
-msgid "% Evade"
-msgstr "% Evasão:"
+#: ../src/commandhandler.cpp:292
+msgid ""
+"This command gets a list of players within hearing and sends it to either "
+"the record log if recording, or the chat log otherwise."
+msgstr ""
+"Este comando obtém uma lista dos jogadores ao alcance e a envia para o log "
+"de registro do chat ou, caso haja uma gravação em andamento, para o log de "
+"gravação."
-#: src/net/tmwa/generalhandler.cpp:243
-#, fuzzy, c-format
-msgid "% Critical"
-msgstr "Golpe crítico"
+#: ../src/commandhandler.cpp:234
+msgid "This command ignores the given player regardless of current relations."
+msgstr ""
+"Este comando ignora o jogador indicado, independente de sua relação com o "
+"mesmo."
-#: src/net/tmwa/gui/guildtab.cpp:45
-msgid "Guild"
-msgstr "Corporação"
+#: ../src/gui/widgets/whispertab.cpp:89
+msgid "This command ignores the other player regardless of current relations."
+msgstr "Este comando ignora o outro jogador."
-#: src/net/tmwa/gui/guildtab.cpp:61 src/net/tmwa/gui/partytab.cpp:59
-msgid "/help > Display this help."
-msgstr "/help > Exibe esta ajuda."
+#: ../src/commandhandler.cpp:285 ../src/net/tmwa/gui/partytab.cpp:74
+msgid "This command invites <nick> to party with you."
+msgstr "Este comando convida <nick> para o seu grupo."
-#: src/net/tmwa/gui/guildtab.cpp:62
-#, fuzzy
-msgid "/invite > Invite a player to your guild"
-msgstr "/invite > Convida um jogador para o seu grupo"
+#: ../src/net/tmwa/gui/guildtab.cpp:74
+msgid "This command invites <nick> to the guild you're in."
+msgstr "Este comando convida <nick> para a guilda em que você está."
-#: src/net/tmwa/gui/guildtab.cpp:63
-#, fuzzy
-msgid "/leave > Leave the guild you are in"
-msgstr "/leave > Sai do grupo em que você está"
+#: ../src/gui/widgets/channeltab.cpp:74
+msgid "This command leaves the current channel."
+msgstr "Sair do canal."
-#: src/net/tmwa/gui/guildtab.cpp:64
-#, fuzzy
-msgid "/kick > Kick some one from the guild you are in"
-msgstr "/kick > Expulsa alguém do grupo em que você está"
+#: ../src/gui/widgets/channeltab.cpp:81
+msgid "This command makes <nick> a channel operator."
+msgstr "Tornar <nick> operador do canal."
-#: src/net/tmwa/gui/guildtab.cpp:73 src/net/tmwa/gui/partytab.cpp:73
-msgid "Command: /invite <nick>"
-msgstr "Comando: /invite <nick>"
+#: ../src/gui/widgets/channeltab.cpp:90
+msgid "This command makes <nick> leave the channel."
+msgstr "Retirar <nick> do canal."
-#: src/net/tmwa/gui/guildtab.cpp:74
-#, fuzzy
-msgid "This command invites <nick> to the guild you're in."
-msgstr "Convida <nick> para um grupo com você."
+#: ../src/commandhandler.cpp:240
+msgid "This command makes you enter <channel>."
+msgstr "Este comando faz você entrar em <canal>."
-#: src/net/tmwa/gui/guildtab.cpp:80 src/net/tmwa/gui/partytab.cpp:80
-msgid "Command: /leave"
-msgstr "Comando: /leave"
+#: ../src/commandhandler.cpp:223
+msgid "This command sends the message <msg> to all players currently online."
+msgstr "Este comando envia a mensagem <msg> para todos os jogadores online."
-#: src/net/tmwa/gui/guildtab.cpp:81
-#, fuzzy
-msgid "This command causes the player to leave the guild."
-msgstr "Este comando faz com que o jogador saia do grupo."
+#: ../src/commandhandler.cpp:258
+msgid "This command sends the text <message> to <nick>."
+msgstr "Este comando envia o texto <mensagem> para <nick>."
-#: src/net/tmwa/gui/guildtab.cpp:89
-#, fuzzy
-msgid "Guild name is missing."
-msgstr "Falta o nome do grupo."
+#: ../src/gui/widgets/channeltab.cpp:69
+msgid "This command sets the topic to <message>."
+msgstr "Seta <mensagem> como o tópico."
-#: src/net/tmwa/guildhandler.cpp:296
-msgid "Could not inivte user to guild."
+#: ../src/commandhandler.cpp:307
+msgid ""
+"This command sets whether the return key should toggle the chat log, or "
+"whether the chat log turns off automatically."
msgstr ""
+"Este comando define se a tecla enter deve alternar para o log do chat ou se "
+"o log do chat fica oculto automaticamente."
-#: src/net/tmwa/guildhandler.cpp:301
-msgid "User rejected guild invite."
+#: ../src/commandhandler.cpp:246
+msgid "This command shows a list of all channels."
+msgstr "Este comando exibe uma lista com todos os canais."
+
+#: ../src/gui/widgets/channeltab.cpp:64
+msgid "This command shows the users in this channel."
+msgstr "Mostra os usuários neste canal."
+
+#: ../src/commandhandler.cpp:299
+msgid "This command starts recording the chat log to the file <filename>."
msgstr ""
+"Este comando inicia a gravação do registro de chat para o arquivo "
+"<nome_do_arquivo>."
-#: src/net/tmwa/guildhandler.cpp:306
-#, fuzzy
-msgid "User is now part of your guild."
-msgstr "%s agora é um membro do seu grupo."
+#: ../src/commandhandler.cpp:318
+msgid "This command stops ignoring the given player if they are being ignored"
+msgstr ""
+"Este comando para de ignorar o jogador indicado se ele estiver sendo ignorado"
-#: src/net/tmwa/guildhandler.cpp:311
-msgid "Your guild is full."
+#: ../src/gui/widgets/whispertab.cpp:95
+msgid "This command stops ignoring the other player if they are being ignored."
msgstr ""
+"Este comando para de ignorar o outro jogador se ele estiver sendo ignorado."
-#: src/net/tmwa/guildhandler.cpp:316
-#, fuzzy
-msgid "Unknown guild invite response."
-msgstr "Resposta de convite desconhecida para %s."
+#: ../src/commandhandler.cpp:251
+msgid "This command tell others you are (doing) <msg>."
+msgstr "Este comando diz aos outros o que eu estou (fazendo) <msg>."
-#: src/net/tmwa/guildhandler.cpp:393
-msgid "Guild creation isn't supported yet."
+#: ../src/commandhandler.cpp:272
+msgid "This command tells you're away from keyboard with the given reason."
msgstr ""
+"Este comando mostra que você está longe do teclado, indicando a razão dada."
-#: src/net/tmwa/gui/partytab.cpp:43
-msgid "Party"
-msgstr "Grupo"
+#: ../src/commandhandler.cpp:266
+msgid "This command tries to make a tab for whispers betweenyou and <nick>."
+msgstr "Este comando cria uma aba para mensagens privadas entre você e <nick>."
-#: src/net/tmwa/gui/partytab.cpp:60
-msgid "/invite > Invite a player to your party"
-msgstr "/invite > Convida um jogador para o seu grupo"
+#: ../src/gui/setup_colors.cpp:45
+msgid "This is what the color looks like"
+msgstr "A cor se parece com isso"
-#: src/net/tmwa/gui/partytab.cpp:61
-msgid "/leave > Leave the party you are in"
-msgstr "/leave > Sai do grupo em que você está"
+#: ../src/net/tmwa/loginhandler.cpp:179
+msgid "This user name is already taken."
+msgstr "Este nome de usuário já está em uso."
-#: src/net/tmwa/gui/partytab.cpp:62
-msgid "/kick > Kick some one from the party you are in"
-msgstr "/kick > Expulsa alguém do grupo em que você está"
+#: ../src/gui/setup_video.cpp:134
+msgid "Tiny"
+msgstr "Minúsculo"
-#: src/net/tmwa/gui/partytab.cpp:63
-msgid "/item > Show/change party item sharing options"
-msgstr "/item > Mostra/Muda opções de compartilhamento de itens do grupo"
+#: ../src/gui/npcpostdialog.cpp:47
+msgid "To:"
+msgstr "Para:"
-#: src/net/tmwa/gui/partytab.cpp:64
-msgid "/exp > Show/change party experience sharing options"
-msgstr ""
-"/exp > Mostra/Modifica opções de compartilhamento de experiência do grupo"
+#: ../src/keyboardconfig.cpp:97
+msgid "Toggle Chat"
+msgstr "Alternar para chat"
-#: src/net/tmwa/gui/partytab.cpp:81
-msgid "This command causes the player to leave the party."
-msgstr "Este comando faz com que o jogador saia do grupo."
+#: ../src/net/manaserv/chathandler.cpp:180
+#: ../src/net/manaserv/chathandler.cpp:301
+#: ../src/net/manaserv/guildhandler.cpp:259
+#, c-format
+msgid "Topic: %s"
+msgstr "Tópico: %s"
-#: src/net/tmwa/gui/partytab.cpp:85
-msgid "Command: /item <policy>"
-msgstr "Comando> /item <opção>"
+#: ../src/gui/trade.cpp:72 ../src/gui/trade.cpp:73
+msgid "Trade"
+msgstr "Negócio"
-#: src/net/tmwa/gui/partytab.cpp:86
-msgid "This command changes the party's item sharing policy."
-msgstr "Este comando muda a opção de compartilhamento de itens do grupo."
+#: ../src/net/manaserv/tradehandler.cpp:149
+#: ../src/net/tmwa/tradehandler.cpp:224
+msgid "Trade canceled."
+msgstr "Negociação cancelada."
-#: src/net/tmwa/gui/partytab.cpp:87
-msgid ""
-"<policy> can be one of \"1\", \"yes\", \"true\" to enable item sharing, or "
-"\"0\", \"no\", \"false\" to disable item sharing."
-msgstr ""
-"<policy> pode ser \"1\", \"yes\" e \"true\" para habilitar compartilhamento "
-"de itens, ou \"0\", \"no\" e \"false\" para desabilitar."
+#: ../src/net/tmwa/tradehandler.cpp:132
+msgid "Trade cancelled due to an unknown reason."
+msgstr "Negociação cancelada devido a uma razão desconhecida."
-#: src/net/tmwa/gui/partytab.cpp:90
-msgid "Command: /item"
-msgstr "Comando: /item"
+#: ../src/net/manaserv/tradehandler.cpp:156
+#: ../src/net/tmwa/tradehandler.cpp:231
+msgid "Trade completed."
+msgstr "Negociação realizada."
-#: src/net/tmwa/gui/partytab.cpp:91
-msgid "This command displays the party's current item sharing policy."
-msgstr ""
-"Este comando exibe a atual opção de compartilhamento de itens do grupo."
+#: ../src/net/tmwa/specialhandler.cpp:147
+msgid "Trade failed!"
+msgstr "Falha na negociação!"
-#: src/net/tmwa/gui/partytab.cpp:95
-msgid "Command: /exp <policy>"
-msgstr "Comando: /exp <policy>"
+#: ../src/net/tmwa/tradehandler.cpp:144
+#, c-format
+msgid "Trade with %s cancelled."
+msgstr "Negociação com %s cancelada."
-#: src/net/tmwa/gui/partytab.cpp:96
-msgid "This command changes the party's experience sharing policy."
-msgstr "Este comando muda a opção de compartilhamento de experiência do grupo."
+#: ../src/gui/popupmenu.cpp:83
+#, c-format
+msgid "Trade with %s..."
+msgstr "Negociar com %s..."
-#: src/net/tmwa/gui/partytab.cpp:97
-msgid ""
-"<policy> can be one of \"1\", \"yes\", \"true\" to enable experience "
-"sharing, or \"0\", \"no\", \"false\" to disable experience sharing."
-msgstr ""
-"<policy> pode ser \"1\", \"yes\" e \"true\" para habilitar compartilhamento "
-"de experiência, ou \"0\", \"no\" e \"false\" para desabilitar."
+#: ../src/gui/trade.cpp:58
+msgid "Trade: You"
+msgstr "Negócio: você"
-#: src/net/tmwa/gui/partytab.cpp:100
-msgid "Command: /exp"
-msgstr "Comando: /exp"
+#: ../src/net/tmwa/tradehandler.cpp:137
+#, c-format
+msgid "Trade: You and %s"
+msgstr "Negociação: Você e %s"
-#: src/net/tmwa/gui/partytab.cpp:101
-msgid "This command displays the party's current experience sharing policy."
-msgstr ""
-"Este comando exibe a atual opção de compartilhamento de experiência do grupo."
+#: ../src/net/tmwa/tradehandler.cpp:128
+msgid "Trading isn't possible. Character doesn't exist."
+msgstr "Negociação impossível. O personagem não existe."
-#: src/net/tmwa/gui/partytab.cpp:132 src/net/tmwa/partyhandler.cpp:196
-msgid "Item sharing enabled."
-msgstr "Compartilhamento de itens habilitado."
+#: ../src/net/tmwa/tradehandler.cpp:124
+msgid "Trading isn't possible. Trade partner is too far away."
+msgstr "Negociação impossível. O parceiro de negócios está muito longe."
-#: src/net/tmwa/gui/partytab.cpp:135 src/net/tmwa/partyhandler.cpp:202
-msgid "Item sharing disabled."
-msgstr "Compartilhamento de itens desabilitado."
+#: ../src/net/manaserv/tradehandler.cpp:135
+#, c-format
+msgid "Trading with %s"
+msgstr "Negociando com %s"
-#: src/net/tmwa/gui/partytab.cpp:138 src/net/tmwa/partyhandler.cpp:208
-msgid "Item sharing not possible."
-msgstr "Não é possível compartilhar itens."
+#: ../src/gui/setup_video.cpp:477
+msgid "Transparency disabled"
+msgstr "Transparência desabilitada"
-#: src/net/tmwa/gui/partytab.cpp:141
-#, fuzzy
-msgid "Item sharing unknown."
-msgstr "Compartilhamento de itens habilitado."
+#: ../src/gui/setup_video.cpp:485
+msgid "Transparency enabled"
+msgstr "Transparência habilitada."
-#: src/net/tmwa/gui/partytab.cpp:167 src/net/tmwa/partyhandler.cpp:172
-msgid "Experience sharing enabled."
-msgstr "Compartilhamento de experiência habilitado."
+#: ../src/localplayer.cpp:1251
+msgid "Tried to pick up nonexistent item."
+msgstr "Você tentou pegar um item não existente."
-#: src/net/tmwa/gui/partytab.cpp:170 src/net/tmwa/partyhandler.cpp:178
-msgid "Experience sharing disabled."
-msgstr "Compartilhamento de experiência desabilitado."
+#: ../src/commandhandler.cpp:335
+msgid "Type /help for a list of commands."
+msgstr "Digite /help para uma lista de todos os comandos."
-#: src/net/tmwa/gui/partytab.cpp:173 src/net/tmwa/partyhandler.cpp:184
-msgid "Experience sharing not possible."
-msgstr "Não é possível compartilhar experiência."
+#: ../src/gui/changeemaildialog.cpp:51
+msgid "Type new email address twice:"
+msgstr "Digite o novo email duas vezes:"
-#: src/net/tmwa/gui/partytab.cpp:176
-#, fuzzy
-msgid "Experience sharing unknown."
-msgstr "Compartilhamento de experiência habilitado."
+#: ../src/gui/changepassworddialog.cpp:63
+msgid "Type new password twice:"
+msgstr "Digite a nova senha duas vezes:"
-#: src/net/tmwa/inventoryhandler.cpp:285
-msgid "Failed to use item."
-msgstr "Problemas ao usar ítem."
+#: ../src/gui/setup_colors.cpp:71
+msgid "Type:"
+msgstr "Tipo:"
-#: src/net/tmwa/inventoryhandler.cpp:399
+#: ../src/net/tmwa/buysellhandler.cpp:124
+msgid "Unable to buy."
+msgstr "Impossível comprar."
+
+#: ../src/net/tmwa/inventoryhandler.cpp:407
msgid "Unable to equip."
msgstr "Impossível equipar."
-#: src/net/tmwa/inventoryhandler.cpp:410
-msgid "Unable to unequip."
-msgstr "Impossível desequipar."
-
-#: src/net/tmwa/loginhandler.cpp:86
-msgid "Account was not found. Please re-login."
-msgstr "Conta não encontrada. Por favor, logue novamente."
+#: ../src/net/tmwa/network.cpp:345
+msgid "Unable to resolve host \""
+msgstr "Não foi possível determinar o host \""
-#: src/net/tmwa/loginhandler.cpp:92
-#, fuzzy
-msgid "New password too short."
-msgstr "Nova senha é muito curta"
+#: ../src/net/tmwa/buysellhandler.cpp:132
+msgid "Unable to sell."
+msgstr "Impossibilitado de vender."
-#: src/net/tmwa/loginhandler.cpp:156
-#, fuzzy
-msgid "Unregistered ID."
-msgstr "ID não registrado"
+#: ../src/net/tmwa/inventoryhandler.cpp:418
+msgid "Unable to unequip."
+msgstr "Impossível desequipar."
-#: src/net/tmwa/loginhandler.cpp:159
-#, fuzzy
-msgid "Wrong password."
-msgstr "Senha incorreta"
+#: ../src/gui/setup_keyboard.cpp:90
+msgid "Unassign"
+msgstr "Retirar"
-#: src/net/tmwa/loginhandler.cpp:162
-#, fuzzy
-msgid "Account expired."
-msgstr "A conta expirou"
+#: ../src/gui/equipmentwindow.cpp:87 ../src/gui/inventorywindow.cpp:87
+#: ../src/gui/inventorywindow.cpp:313 ../src/gui/popupmenu.cpp:355
+msgid "Unequip"
+msgstr "Desequipar"
-#: src/net/tmwa/loginhandler.cpp:165
-#, fuzzy
-msgid "Rejected from server."
-msgstr "Rejeitado pelo servidor"
+#: ../src/gui/outfitwindow.cpp:70
+msgid "Unequip first"
+msgstr "Desequipar antes"
-#: src/net/tmwa/loginhandler.cpp:168
-#, fuzzy
-msgid ""
-"You have been permanently banned from the game. Please contact the GM team."
-msgstr ""
-"Você foi permanentemente banido do jogo. Por favor entre em contato com "
-"algum GM."
+#: ../src/net/tmwa/tradehandler.cpp:153
+msgid "Unhandled trade cancel packet."
+msgstr "Troca injusta pacote cancelado."
-#: src/net/tmwa/loginhandler.cpp:172
+#: ../src/gui/popupmenu.cpp:114 ../src/gui/popupmenu.cpp:123
#, c-format
-msgid ""
-"You have been temporarily banned from the game until %s.\n"
-"Please contact the GM team via the forums."
-msgstr ""
-"Você banido do jogo até %s.\n"
-"Por favor entre em contato com algum GM através dos fóruns."
-
-#: src/net/tmwa/loginhandler.cpp:179
-#, fuzzy
-msgid "This user name is already taken."
-msgstr "Este nome de usuário já está em uso"
-
-#: src/net/tmwa/network.cpp:145
-msgid "Empty address given to Network::connect()!"
-msgstr ""
+msgid "Unignore %s"
+msgstr "Deixar de Ignorar %s"
-#: src/net/tmwa/network.cpp:345
-#, fuzzy
-msgid "Unable to resolve host \""
-msgstr "Impossibilitado de vender."
+#: ../src/net/net.cpp:145
+msgid "Unknown Server Type! Exiting."
+msgstr "Tipo de servidor desconhecido! Saindo."
-#: src/net/tmwa/network.cpp:414
-#, fuzzy
-msgid "Connection to server terminated. "
-msgstr "Conectando ao servidor de mapas..."
+#: ../src/net/manaserv/chathandler.cpp:327
+msgid "Unknown channel event."
+msgstr "Evento de canal desconhecido."
-#: src/net/tmwa/partyhandler.cpp:82
-msgid "Could not create party."
-msgstr "Não foi possível criar o grupo."
+#: ../src/net/tmwa/charserverhandler.cpp:112
+msgid "Unknown char-server failure."
+msgstr "Erro desconhecido do char-server."
-#: src/net/tmwa/partyhandler.cpp:84
-msgid "Party successfully created."
-msgstr "Grupo criado."
+#: ../src/commandhandler.cpp:137 ../src/commandhandler.cpp:334
+msgid "Unknown command."
+msgstr "Comando desconhecido."
-#: src/net/tmwa/partyhandler.cpp:119
-#, c-format
-msgid "%s is already a member of a party."
-msgstr "%s já é membro de um grupo."
+#: ../src/net/tmwa/generalhandler.cpp:148
+msgid "Unknown connection error."
+msgstr "Erro de conexão desconhecido."
-#: src/net/tmwa/partyhandler.cpp:123
+#: ../src/net/manaserv/charhandler.cpp:208
#, c-format
-msgid "%s refused your invitation."
-msgstr "%s recusou seu convite."
+msgid "Unknown error (%d)."
+msgstr "Erro desconhecido (%d)."
+
+#: ../src/net/manaserv/charhandler.cpp:164
+#: ../src/net/manaserv/loginhandler.cpp:96
+#: ../src/net/manaserv/loginhandler.cpp:127
+#: ../src/net/manaserv/loginhandler.cpp:161
+#: ../src/net/manaserv/loginhandler.cpp:279
+#: ../src/net/manaserv/loginhandler.cpp:316
+#: ../src/net/tmwa/loginhandler.cpp:95 ../src/net/tmwa/loginhandler.cpp:182
+msgid "Unknown error."
+msgstr "Erro desconhecido."
-#: src/net/tmwa/partyhandler.cpp:127
-#, c-format
-msgid "%s is now a member of your party."
-msgstr "%s agora é um membro do seu grupo."
+#: ../src/net/tmwa/guildhandler.cpp:315
+msgid "Unknown guild invite response."
+msgstr "Resposta desconhecida de convite para guilda."
-#: src/net/tmwa/partyhandler.cpp:131
+#: ../src/net/tmwa/partyhandler.cpp:133
#, c-format
msgid "Unknown invite response for %s."
msgstr "Resposta de convite desconhecida para %s."
-#: src/net/tmwa/partyhandler.cpp:236
-msgid "You have left the party."
-msgstr "Você saiu do grupo."
-
-#: src/net/tmwa/partyhandler.cpp:246
-#, c-format
-msgid "%s has left your party."
-msgstr "%s saiu do seu grupo."
+#: ../src/resources/itemdb.cpp:117
+msgid "Unknown item"
+msgstr "Item desconhecido"
-#: src/net/tmwa/partyhandler.cpp:299
-#, c-format
-msgid "An unknown member tried to say: %s"
-msgstr "Um membro desconhecido tentou dizer: %s"
+#: ../src/localplayer.cpp:1258
+msgid "Unknown problem picking up item."
+msgstr "Problema desconhecido ao tentar pegar item."
-#: src/net/tmwa/partyhandler.cpp:335
-#, c-format
-msgid "Inviting failed, because you can't see a player called %s."
-msgstr ""
+#: ../src/gui/charselectdialog.cpp:141 ../src/gui/unregisterdialog.cpp:47
+#: ../src/gui/unregisterdialog.cpp:55
+msgid "Unregister"
+msgstr "Cancelar Registro"
-#: src/net/tmwa/partyhandler.cpp:340
-msgid "You can only inivte when you are in a party!"
-msgstr ""
+#: ../src/client.cpp:926
+msgid "Unregister Successful"
+msgstr "Registro cancelado com sucesso"
-#: src/net/tmwa/partyhandler.cpp:368
-#, c-format
-msgid "%s is not in your party!"
-msgstr "%s não está em seu grupo!"
+#: ../src/net/tmwa/loginhandler.cpp:156
+msgid "Unregistered ID."
+msgstr "ID não registrado."
-#: src/net/tmwa/playerhandler.cpp:100
-msgid "Insert coin to continue."
-msgstr "Insira uma moeda para continuar."
+#: ../src/gui/skilldialog.cpp:221
+msgid "Up"
+msgstr "+"
-#: src/net/tmwa/playerhandler.cpp:118
-msgid "You're not dead yet. You're just resting."
-msgstr "Você não morreu ainda. Está apenas descansando."
+#: ../src/gui/updatewindow.cpp:124
+msgid "Updating..."
+msgstr "Atualizando..."
-#: src/net/tmwa/playerhandler.cpp:119
-msgid "You are no more."
-msgstr "Você não é mais."
+#: ../src/gui/inventorywindow.cpp:86 ../src/gui/inventorywindow.cpp:319
+#: ../src/gui/popupmenu.cpp:360
+msgid "Use"
+msgstr "Usar"
-#: src/net/tmwa/playerhandler.cpp:120
-msgid "You have ceased to be."
-msgstr "Você deixou de ser."
+#: ../src/net/tmwa/guildhandler.cpp:305
+msgid "User is now part of your guild."
+msgstr "Usuário agora é um membro da sua guilda."
-#: src/net/tmwa/playerhandler.cpp:121
-msgid "You've expired and gone to meet your maker."
-msgstr "Você expirou e foi encontrar seu criador."
+#: ../src/net/tmwa/guildhandler.cpp:300
+msgid "User rejected guild invite."
+msgstr "O jogador rejeitou o convite."
-#: src/net/tmwa/playerhandler.cpp:122
-msgid "You're a stiff."
-msgstr "Você é um cadáver."
+#: ../src/net/manaserv/loginhandler.cpp:306
+msgid "Username already exists."
+msgstr "Nome de usuário já existe."
-#: src/net/tmwa/playerhandler.cpp:123
-msgid "Bereft of life, you rest in peace."
-msgstr "Sem vida, você descansa em paz."
+#: ../src/gui/setup_video.cpp:252
+msgid "Video"
+msgstr "Vídeo"
-#: src/net/tmwa/playerhandler.cpp:124
-msgid "If you weren't so animated, you'd be pushing up the daisies."
-msgstr "Se não fosse tão animado, estaria comendo grama pela raiz."
+#: ../src/gui/setup_video.cpp:223
+msgid "Visible names"
+msgstr "Nomes visíveis"
-#: src/net/tmwa/playerhandler.cpp:125
-msgid "Your metabolic processes are now history."
-msgstr "Seus processos metabólicos agora são história."
+#: ../src/net/manaserv/stats.cpp:92 ../src/net/tmwa/generalhandler.cpp:219
+msgid "Vitality"
+msgstr "Vitalidade"
-#: src/net/tmwa/playerhandler.cpp:126
-msgid "You're off the twig."
-msgstr "Você bateu as botas."
+#: ../src/net/manaserv/stats.cpp:94 ../src/net/tmwa/generalhandler.cpp:103
+#, c-format
+msgid "Vitality %+d"
+msgstr "Vitalidade %+d"
-#: src/net/tmwa/playerhandler.cpp:127
-msgid "You've kicked the bucket."
-msgstr "Você chutou o balde."
+#: ../src/net/tmwa/charserverhandler.cpp:261
+msgid "Vitality:"
+msgstr "Vitalidade:"
-#: src/net/tmwa/playerhandler.cpp:128
-msgid ""
-"You've shuffled off your mortal coil, run down the curtain and joined the "
-"bleedin' choir invisibile."
-msgstr ""
-"Você dispensou seu corpo mortal, abaixou as cortinas e juntou-se ao maldito "
-"coro invisível."
+#: ../src/gui/npcdialog.cpp:45
+msgid "Waiting for server"
+msgstr "Aguardando servidor"
-#: src/net/tmwa/playerhandler.cpp:130
-msgid "You are an ex-player."
-msgstr "Você é um ex-jogador"
+#: ../src/gui/serverdialog.cpp:448
+msgid "Waiting for server..."
+msgstr "Aguardando servidor..."
-#: src/net/tmwa/playerhandler.cpp:131
-msgid "You're pining for the fjords."
-msgstr "Você foi desta para melhor."
+#: ../src/net/tmwa/specialhandler.cpp:210
+msgid "Warp failed..."
+msgstr "Falha ao transportar..."
-#: src/net/tmwa/playerhandler.cpp:246 src/net/tmwa/playerhandler.cpp:285
-msgid "Message"
-msgstr "Mensagem"
+#: ../src/net/manaserv/beinghandler.cpp:305
+#: ../src/net/tmwa/playerhandler.cpp:104
+msgid "We regret to inform you that your character was killed in battle."
+msgstr "Lamentamos informar que seu personagem foi morto em combate."
-#: src/net/tmwa/playerhandler.cpp:247
-msgid ""
-"You are carrying more than half your weight. You are unable to regain health."
-msgstr ""
-"Você está carregando mais que a metade de seu peso. Você não poderá mais "
-"recuperar HP."
+#: ../src/keyboardconfig.cpp:83
+msgid "Wear Outfit"
+msgstr "Vestir roupas"
-#: src/net/tmwa/playerhandler.cpp:313
-#, fuzzy, c-format
-msgid "You picked up %s."
-msgstr "Você pegou "
+#: ../src/gui/inventorywindow.cpp:103
+msgid "Weight:"
+msgstr "Peso:"
-#: src/net/tmwa/playerhandler.cpp:348
-msgid "Cannot raise skill!"
-msgstr ""
+#: ../src/gui/itempopup.cpp:126
+#, c-format
+msgid "Weight: %s"
+msgstr "Peso: %s"
-#: src/net/tmwa/playerhandler.cpp:488
-msgid "Equip arrows first."
-msgstr "Equipe as flechas primeiro."
+#: ../src/gui/setup_players.cpp:259
+msgid "When ignoring:"
+msgstr "Quando ignorar:"
-#: src/net/tmwa/specialhandler.cpp:144
-msgid "Trade failed!"
-msgstr "Falha na negociação!"
+#: ../src/gui/popupmenu.cpp:91
+#, c-format
+msgid "Whisper %s"
+msgstr "Mensagem Privada %s"
-#: src/net/tmwa/specialhandler.cpp:147
-msgid "Emote failed!"
-msgstr "Falha no Emote!"
+#: ../src/net/tmwa/chathandler.cpp:84
+msgid "Whisper could not be sent, ignored by user."
+msgstr "Impossível enviar mensagem privada, você foi ignorado pelo usuário."
-#: src/net/tmwa/specialhandler.cpp:150
-msgid "Sit failed!"
-msgstr "Falha ao sentar!"
+#: ../src/net/tmwa/chathandler.cpp:80
+msgid "Whisper could not be sent, user is offline."
+msgstr "Impossível enviar mensagem privada, o usuário está desconectado."
-#: src/net/tmwa/specialhandler.cpp:153
-msgid "Chat creating failed!"
-msgstr "Falha ao criar Chat!"
+#: ../src/gui/chat.cpp:452
+#, c-format
+msgid "Whispering to %s: %s"
+msgstr "Enviando MP para %s: %s"
-#: src/net/tmwa/specialhandler.cpp:156
-msgid "Could not join party!"
-msgstr "Impossivel entrar no grupo!"
+#: ../src/gui/socialwindow.cpp:158
+#, c-format
+msgid "Who would you like to invite to guild %s?"
+msgstr "Quem você gostaria de convidar para a guilda %s?"
-#: src/net/tmwa/specialhandler.cpp:159
-msgid "Cannot shout!"
-msgstr "Impossivel gritar!"
+#: ../src/gui/socialwindow.cpp:237
+#, c-format
+msgid "Who would you like to invite to party %s?"
+msgstr "Quem você gostaria de convidar para o grupo %s?"
-#: src/net/tmwa/specialhandler.cpp:168
-msgid "You have not yet reached a high enough lvl!"
-msgstr "Você ainda não tem nivel necessário!"
+#: ../src/net/manaserv/stats.cpp:116
+msgid "Willpower"
+msgstr "Força de Vontade"
-#: src/net/tmwa/specialhandler.cpp:171
-msgid "Insufficient HP!"
-msgstr "HP insuficiente!"
+#: ../src/net/manaserv/stats.cpp:118
+#, c-format
+msgid "Willpower %+d"
+msgstr "Força de vontade %+d"
-#: src/net/tmwa/specialhandler.cpp:174
-msgid "Insufficient SP!"
-msgstr "SP insuficiente!"
+#: ../src/net/manaserv/loginhandler.cpp:87
+msgid "Wrong magic_token."
+msgstr "Token-mágico errado."
-#: src/net/tmwa/specialhandler.cpp:177
-msgid "You have no memos!"
-msgstr "Você não tem nenhuma nota armazenada!"
+#: ../src/net/tmwa/loginhandler.cpp:159
+msgid "Wrong password."
+msgstr "Senha incorreta."
-#: src/net/tmwa/specialhandler.cpp:180
-msgid "You cannot do that right now!"
-msgstr "Você não pode fazer isso agora!"
+#: ../src/net/manaserv/loginhandler.cpp:266
+msgid "Wrong username or password."
+msgstr "Nome de usuário ou senha inválidos."
-#: src/net/tmwa/specialhandler.cpp:183
-msgid "Seems you need more money... ;-)"
-msgstr "Parece que você precisa de mais dinheiro... ;-)"
+#: ../src/net/manaserv/loginhandler.cpp:303
+msgid "Wrong username, password or email address."
+msgstr "Nome de usuário, senha ou email inválidos."
-#: src/net/tmwa/specialhandler.cpp:186
-msgid "You cannot use this skill with that kind of weapon!"
-msgstr "Você não pode usar essa habilidade com esse tipo de arma!"
+#: ../src/gui/confirmdialog.cpp:42
+msgid "Yes"
+msgstr "Sim"
-#: src/net/tmwa/specialhandler.cpp:189
-msgid "You need another red gem!"
-msgstr "Você precisa de outra gema vermelha!"
+#: ../src/net/manaserv/beinghandler.cpp:325
+msgid "You Died"
+msgstr "Você morreu"
-#: src/net/tmwa/specialhandler.cpp:192
-msgid "You need another blue gem!"
-msgstr "Você precisa de outra jóia azul!"
+#: ../src/net/tmwa/playerhandler.cpp:139
+msgid "You are an ex-player."
+msgstr "Você é um ex-jogador"
-#: src/net/tmwa/specialhandler.cpp:195
-msgid "You're carrying to much to do this!"
-msgstr "Você está com muita carga para fazer isso!"
+#: ../src/net/tmwa/playerhandler.cpp:257
+msgid ""
+"You are carrying more than half your weight. You are unable to regain health."
+msgstr ""
+"Você está carregando mais que a metade de seu peso. Você não poderá mais "
+"recuperar HP."
-#: src/net/tmwa/specialhandler.cpp:198
-msgid "Huh? What's that?"
-msgstr "Hã? O que é isso?"
+#: ../src/net/manaserv/beinghandler.cpp:304
+#: ../src/net/tmwa/playerhandler.cpp:103
+msgid "You are dead."
+msgstr "Você está morto."
-#: src/net/tmwa/specialhandler.cpp:207
-msgid "Warp failed..."
-msgstr "Falha ao transportar..."
+#: ../src/net/tmwa/playerhandler.cpp:128
+msgid "You are no more."
+msgstr "Você não é mais."
-#: src/net/tmwa/specialhandler.cpp:210
-msgid "Could not steal anything..."
-msgstr "Não foi possível roubar nada..."
+#: ../src/net/manaserv/beinghandler.cpp:307
+#: ../src/net/tmwa/playerhandler.cpp:106
+msgid "You are not that alive anymore."
+msgstr "Você não me parece assim tão vivo."
-#: src/net/tmwa/specialhandler.cpp:213
-msgid "Poison had no effect..."
-msgstr "Veneno não surtiu efeito..."
+#: ../src/net/tmwa/partyhandler.cpp:345
+msgid "You can only inivte when you are in a party!"
+msgstr "Você só pode fazer convites se estiver em um grupo!"
-#: src/net/tmwa/tradehandler.cpp:126
-msgid "Trading isn't possible. Trade partner is too far away."
-msgstr "Negociação impossível. O parceiro de negócios está muito longe."
+#: ../src/net/tmwa/specialhandler.cpp:183
+msgid "You cannot do that right now!"
+msgstr "Você não pode fazer isso agora!"
-#: src/net/tmwa/tradehandler.cpp:130
-msgid "Trading isn't possible. Character doesn't exist."
-msgstr "Negociação impossível. O personagem não existe."
+#: ../src/net/tmwa/specialhandler.cpp:189
+msgid "You cannot use this skill with that kind of weapon!"
+msgstr "Você não pode usar essa habilidade com esse tipo de arma!"
-#: src/net/tmwa/tradehandler.cpp:134
-msgid "Trade cancelled due to an unknown reason."
-msgstr "Negociação cancelada devido a uma razão desconhecida."
+#: ../src/gui/trade.cpp:316
+msgid "You don't have enough money."
+msgstr "Você não tem dinheiro suficiente."
-#: src/net/tmwa/tradehandler.cpp:139
+#: ../src/gui/trade.cpp:97 ../src/gui/trade.cpp:133
#, c-format
-msgid "Trade: You and %s"
-msgstr "Negociação: Você e %s"
+msgid "You get %s"
+msgstr "Você pegou %s"
+
+#: ../src/gui/trade.cpp:98
+msgid "You give:"
+msgstr "Você dá:"
-#: src/net/tmwa/tradehandler.cpp:146
+#: ../src/gui/socialwindow.cpp:592
#, c-format
-msgid "Trade with %s cancelled."
-msgstr "Negociação com %s cancelada."
+msgid "You have been invited to join the %s party."
+msgstr "Você foi convidado para entrar no grupo %s."
-#: src/net/tmwa/tradehandler.cpp:154
-msgid "Unhandled trade cancel packet."
-msgstr "Troca injusta pacote cancelado."
+#: ../src/gui/socialwindow.cpp:588
+msgid "You have been invited you to join a party."
+msgstr "Você foi convidado para entrar em um grupo."
-#: src/net/tmwa/tradehandler.cpp:202
-msgid "Failed adding item. Trade partner is over weighted."
-msgstr "Erro ao adicionar item. Parceiro de negócios carregando muito peso."
+#: ../src/net/tmwa/loginhandler.cpp:168
+msgid ""
+"You have been permanently banned from the game. Please contact the GM team."
+msgstr ""
+"Você foi permanentemente banido do jogo. Por favor entre em contato com "
+"algum GM."
-#: src/net/tmwa/tradehandler.cpp:207
-msgid "Failed adding item. Trade partner has no free slot."
-msgstr "Erro ao adicionar item. Parceiro de negócios não tem slots livres."
+#: ../src/net/tmwa/loginhandler.cpp:172
+#, c-format
+msgid ""
+"You have been temporarily banned from the game until %s.\n"
+"Please contact the GM team via the forums."
+msgstr ""
+"Você banido do jogo até %s.\n"
+"Por favor entre em contato com algum GM através dos fóruns."
-#: src/net/tmwa/tradehandler.cpp:211
-msgid "Failed adding item for unknown reason."
-msgstr "Erro ao adicionar item devido a um motivo desconhecido."
+#: ../src/net/tmwa/playerhandler.cpp:129
+msgid "You have ceased to be."
+msgstr "Você deixou de ser."
-#: src/playerrelations.cpp:310
-#, fuzzy
-msgid "Completely ignore"
-msgstr "@@ignore|Ignorar completamente %s@@"
+#: ../src/net/tmwa/partyhandler.cpp:241
+msgid "You have left the party."
+msgstr "Você saiu do grupo."
-#: src/playerrelations.cpp:324
-msgid "Print '...'"
+#: ../src/net/tmwa/specialhandler.cpp:180
+msgid "You have no memos!"
+msgstr "Você não tem nenhuma nota armazenada!"
+
+#: ../src/net/tmwa/specialhandler.cpp:171
+msgid "You have not yet reached a high enough lvl!"
+msgstr "Você ainda não tem o nivel necessário!"
+
+#: ../src/gui/setup_audio.cpp:94
+msgid "You may have to restart your client if you want to download new music"
msgstr ""
+"Talvez você precise reiniciar o cliente se você quiser baixar novas músicas"
-#: src/playerrelations.cpp:340
-msgid "Blink name"
+#: ../src/gui/setup_video.cpp:478 ../src/gui/setup_video.cpp:486
+msgid "You must restart to apply changes."
+msgstr "Você deve reiniciar o cliente para aplicar as mudanças."
+
+#: ../src/net/tmwa/specialhandler.cpp:195
+msgid "You need another blue gem!"
+msgstr "Você precisa de outra jóia azul!"
+
+#: ../src/net/tmwa/specialhandler.cpp:192
+msgid "You need another red gem!"
+msgstr "Você precisa de outra gema vermelha!"
+
+#: ../src/gui/login.cpp:129
+msgid "You need to use the website to register an account for this server."
msgstr ""
+"Você precisa usar o website para registrar uma nova conta neste servidor."
-#: src/resources/itemdb.cpp:44
+#: ../src/localplayer.cpp:1276
#, c-format
-msgid "Attack %+d"
-msgstr "Ataque %+d"
+msgid "You picked up %d [@@%d|%s@@]."
+msgid_plural "You picked up %d [@@%d|%s@@]."
+msgstr[0] "Você pegou %d [@@%d|%s@@]."
+msgstr[1] "Você pegou %d [@@%d|%s@@]."
-#: src/resources/itemdb.cpp:45
+#: ../src/net/tmwa/playerhandler.cpp:344
#, c-format
-msgid "Defense %+d"
-msgstr "Defesa %+d"
+msgid "You picked up %s."
+msgstr "Você pegou %s."
-#: src/resources/itemdb.cpp:46
-#, c-format
-msgid "HP %+d"
-msgstr "HP %+d"
+#: ../src/net/manaserv/beinghandler.cpp:319
+#: ../src/net/tmwa/playerhandler.cpp:124
+msgid ""
+"You screwed up again, dump your body down the tubes and get you another one."
+msgstr "Você estragou tudo de novo, jogue fora seu corpo e arranje outro."
-#: src/resources/itemdb.cpp:47
-#, c-format
-msgid "MP %+d"
-msgstr "MP %+d"
+#: ../src/net/manaserv/loginhandler.cpp:312
+msgid "You took too long with the captcha or your response was incorrect."
+msgstr "Você demorou demais no Captcha ou sua resposta foi incorreta."
-#: src/resources/itemdb.cpp:92
-msgid "Unknown item"
-msgstr "Item desconhecido"
+#: ../src/net/tmwa/playerhandler.cpp:131
+msgid "You're a stiff."
+msgstr "Você é um cadáver."
-#: src/resources/itemdb.cpp:135 src/resources/monsterdb.cpp:77
-msgid "unnamed"
-msgstr "sem nome"
+#: ../src/net/tmwa/specialhandler.cpp:198
+msgid "You're carrying to much to do this!"
+msgstr "Você está com muita carga para fazer isso!"
-#, fuzzy
-#~ msgid "HP"
-#~ msgstr "HP:"
+#: ../src/net/tmwa/playerhandler.cpp:127
+msgid "You're not dead yet. You're just resting."
+msgstr "Você não morreu ainda. Está apenas descansando."
-#, fuzzy
-#~ msgid "MP"
-#~ msgstr "MP:"
+#: ../src/net/tmwa/playerhandler.cpp:135
+msgid "You're off the twig."
+msgstr "Você bateu as botas."
-#, fuzzy
-#~ msgid "Exp"
-#~ msgstr "Exp:"
+#: ../src/net/tmwa/playerhandler.cpp:140
+msgid "You're pining for the fjords."
+msgstr "Você foi desta para melhor."
-#, fuzzy
-#~ msgid "Money"
-#~ msgstr "Dinheiro: %d"
+#: ../src/net/tmwa/playerhandler.cpp:130
+msgid "You've expired and gone to meet your maker."
+msgstr "Você expirou e foi encontrar seu criador."
-#, fuzzy
-#~ msgid "Job"
-#~ msgstr "Trabalho:"
+#: ../src/net/tmwa/playerhandler.cpp:136
+msgid "You've kicked the bucket."
+msgstr "Você chutou o balde."
-#, fuzzy
-#~ msgid "Level"
-#~ msgstr "Nível: %d"
+#: ../src/net/tmwa/playerhandler.cpp:137
+msgid ""
+"You've shuffled off your mortal coil, run down the curtain and joined the "
+"bleedin' choir invisibile."
+msgstr ""
+"Você dispensou seu corpo mortal, abaixou as cortinas e juntou-se ao maldito "
+"coro invisível."
-#, fuzzy
-#~ msgid "Access denied."
-#~ msgstr "Acesso negado"
+#: ../src/net/tmwa/guildhandler.cpp:310
+msgid "Your guild is full."
+msgstr "Sua guilda está cheia."
-#, fuzzy
-#~ msgid "Unknown failure to select character."
-#~ msgstr "Erro desconhecido ao selecionar personagem"
+#: ../src/net/tmwa/playerhandler.cpp:134
+msgid "Your metabolic processes are now history."
+msgstr "Seus processos metabólicos agora são história."
-#~ msgid "Inviting like this isn't supported at the moment."
-#~ msgstr "No momento ainda não é possível convidar deste modo."
+#: ../src/gui/charcreatedialog.cpp:178
+msgid "Your name needs to be at least 4 characters."
+msgstr "Seu nome deve ter pelo menos 4 caracteres."
-#~ msgid "Willpower:"
-#~ msgstr "Força de Vontade:"
+#: ../src/net/manaserv/beinghandler.cpp:312
+#: ../src/net/tmwa/playerhandler.cpp:112
+msgid ""
+"Your plan of breaking your enemies weapon by bashing it with your throat "
+"failed."
+msgstr ""
+"Seu plano de quebrar a arma de seu inimigo com a sua cabeça não deu certo."
-#~ msgid "Willpower %+d"
-#~ msgstr "Força de vontade %+d"
+#: ../src/gui/setup_video.cpp:233
+msgid "as particle"
+msgstr "como partícula"
-#, fuzzy
-#~ msgid "Willpower"
-#~ msgstr "Força de Vontade:"
+#: ../src/gui/setup_video.cpp:180 ../src/gui/setup_video.cpp:194
+msgid "high"
+msgstr "alto"
-#, fuzzy
-#~ msgid "Server is full."
-#~ msgstr "Servidor cheio"
+#: ../src/gui/setup_video.cpp:231
+msgid "in chat"
+msgstr "em chat"
-#~ msgid "Text Shadow"
-#~ msgstr "Sombra do Texto"
+#: ../src/gui/setup_video.cpp:179 ../src/gui/setup_video.cpp:192
+msgid "low"
+msgstr "baixo"
-#~ msgid "Text Outline"
-#~ msgstr "Borda do texto"
+#: ../src/main.cpp:42
+msgid "mana [options] [mana-file]"
+msgstr "mana [opções] [arquivo-mana]"
-#~ msgid "Progress Bar Labels"
-#~ msgstr "Rótulos da barra de progresso"
+#: ../src/gui/setup_video.cpp:195
+msgid "max"
+msgstr "máximo"
-#~ msgid "Background"
-#~ msgstr "Fundo"
+#: ../src/gui/setup_video.cpp:193
+msgid "medium"
+msgstr "médio"
-#~ msgid "Highlight"
-#~ msgstr "Realçar"
+#: ../src/gui/setup_video.cpp:178
+msgid "off"
+msgstr "desligado"
-#~ msgid "Tab Highlight"
-#~ msgstr "Realçar aba"
+#: ../src/gui/serverdialog.cpp:556
+msgid "requires a newer version"
+msgstr "requer uma versão mais nova"
-#, fuzzy
-#~ msgid "Item Too Expensive"
-#~ msgstr "Item muito caro"
+#: ../src/gui/serverdialog.cpp:558
+#, c-format
+msgid "requires v%s"
+msgstr "requer v%s"
-#, fuzzy
-#~ msgid "Item Is Equipped"
-#~ msgstr "Item está equipado"
+#: ../src/resources/itemdb.cpp:162 ../src/resources/monsterdb.cpp:74
+#: ../src/resources/monsterinfo.cpp:29
+msgid "unnamed"
+msgstr "sem nome"
-#~ msgid "GM"
-#~ msgstr "GM"
+#~ msgid " can't be created, but it doesn't exist! Exiting."
+#~ msgstr " não foi possível criar, mas ela não existe! Saindo."
-#~ msgid "Player"
-#~ msgstr "Jogador"
+#~ msgid " host: "
+#~ msgstr " host: "
-#~ msgid "Whisper"
-#~ msgstr "Sussurrar"
+#~ msgid " video mode: "
+#~ msgstr " modo de video: "
-#~ msgid "Is"
-#~ msgstr "É"
+#~ msgid "% Reflex:"
+#~ msgstr "% Reflexo:"
-#~ msgid "Server"
-#~ msgstr "Servidor"
+#~ msgid "/new > Alias of create"
+#~ msgstr "/new > Abreviação de create"
-#~ msgid "Logger"
-#~ msgstr "Histórico"
+#~ msgid "1/2 HP Bar"
+#~ msgstr "1/2 da barra de HP"
-#~ msgid "Hyperlink"
-#~ msgstr "Link"
+#~ msgid "1/4 HP Bar"
+#~ msgstr "1/4 da barra de HP"
-#~ msgid "Being"
-#~ msgstr "Ser"
+#~ msgid "2 Handed Weapons"
+#~ msgstr "Armas para 2 mãos"
-#~ msgid "Other Players' Names"
-#~ msgstr "Nomes de outros jogadores"
+#~ msgid "3/4 HP Bar"
+#~ msgstr "3/4 da barra de HP"
-#~ msgid "Own Name"
-#~ msgstr "Próprio nome"
+#~ msgid "@@admin-kick|Kick player@@"
+#~ msgstr "@@admin-kick|Expulsar jogador@@"
-#~ msgid "GM Names"
-#~ msgstr "Nomes dos GMs"
+#~ msgid "@@attack|Attack %s@@"
+#~ msgstr "@@attack|Atacar %s@@"
-#~ msgid "NPCs"
-#~ msgstr "NPCs"
+#~ msgid "@@cancel|Cancel@@"
+#~ msgstr "@@cancel|Cancelar@@"
-#~ msgid "Monsters"
-#~ msgstr "Monstros"
+#~ msgid "@@disregard|Disregard %s@@"
+#~ msgstr "@@disregard|Desconsiderar %s@@"
-#~ msgid "Unknown Item Type"
-#~ msgstr "Tipo de item desconhecido"
+#~ msgid "@@drop|Drop@@"
+#~ msgstr "@@drop|Descartar@@"
-#~ msgid "Generics"
-#~ msgstr "Genéricos"
+#~ msgid "@@ignore|Ignore %s@@"
+#~ msgstr "@@ignore|Ignorar %s@@"
-#~ msgid "Hats"
-#~ msgstr "Chapéus"
+#~ msgid "@@pickup|Pick Up %s@@"
+#~ msgstr "@@pegar|Pegar %s@@"
-#~ msgid "Usables"
-#~ msgstr "Usáveis"
+#~ msgid "@@pickup|Pick up %s@@"
+#~ msgstr "@@pickup|Pegar %s@@"
-#~ msgid "Shirts"
-#~ msgstr "Camisas"
+#~ msgid "@@retrieve|Retrieve@@"
+#~ msgstr "@@retrieve|Retirar@@"
-#, fuzzy
-#~ msgid "One Handed Weapons"
-#~ msgstr "Armas para 1 mão"
+#~ msgid "@@split|Split@@"
+#~ msgstr "@@split|Dividir@@"
-#~ msgid "Pants"
-#~ msgstr "Calças"
+#~ msgid "@@store|Store@@"
+#~ msgstr "@@store|Guardar@@"
-#~ msgid "Shoes"
-#~ msgstr "Sapatos"
+#~ msgid "@@trade|Trade With %s@@"
+#~ msgstr "@@trade|Negociar com %s@@"
-#, fuzzy
-#~ msgid "Two Handed Weapons"
-#~ msgstr "Armas para 1 mão"
+#~ msgid "@@unignore|Un-Ignore %s@@"
+#~ msgstr "@@unignore|Deixar de ignorar %s@@"
-#~ msgid "Shields"
-#~ msgstr "Escudos"
+#~ msgid "@@use|Equip@@"
+#~ msgstr "@@use|Equipar@@"
-#~ msgid "Rings"
-#~ msgstr "Anéis"
+#~ msgid "@@use|Unequip@@"
+#~ msgstr "@@use|Desequipar@@"
-#~ msgid "Necklaces"
-#~ msgstr "Colares"
+#~ msgid "@@use|Use@@"
+#~ msgstr "@@use|Usar@@"
-#~ msgid "Arms"
-#~ msgstr "Armas"
+#~ msgid "Access denied."
+#~ msgstr "Acesso negado."
#~ msgid "Ammo"
#~ msgstr "Munição"
-#~ msgid "Particle Effects"
-#~ msgstr "Efeitos de partícula"
-
-#~ msgid "Pickup Notification"
-#~ msgstr "Aviso de achado"
-
-#~ msgid "Exp Notification"
-#~ msgstr "Aviso de experiência"
-
-#, fuzzy
-#~ msgid "Player Hits Monster"
-#~ msgstr "Jogador acerta monstro"
-
-#, fuzzy
-#~ msgid "Monster Hits Player"
-#~ msgstr "Monstro acerta jogador"
-
-#~ msgid "Critical Hit"
-#~ msgstr "Golpe crítico"
-
-#~ msgid "Misses"
-#~ msgstr "Falhas"
-
-#~ msgid "HP Bar"
-#~ msgstr "Barra de HP"
+#~ msgid "Arms"
+#~ msgstr "Armas"
-#~ msgid "3/4 HP Bar"
-#~ msgstr "3/4 da barra de HP"
+#~ msgid "Attack:"
+#~ msgstr "Ataque:"
-#~ msgid "1/2 HP Bar"
-#~ msgstr "1/2 da barra de HP"
+#~ msgid "Axe"
+#~ msgstr "Machado"
-#~ msgid "1/4 HP Bar"
-#~ msgstr "1/4 da barra de HP"
+#~ msgid "Background"
+#~ msgstr "Fundo"
-#~ msgid "no"
-#~ msgstr "não"
+#~ msgid "Bow"
+#~ msgstr "Arco"
#~ msgid "Buddy"
#~ msgstr "Amigo"
@@ -3821,227 +3751,246 @@ msgstr "sem nome"
#~ msgid "Buddy List"
#~ msgstr "Lista de amigos"
-#~ msgid "Description: %s"
-#~ msgstr "Descrição: %s"
-
-#~ msgid "Effect: %s"
-#~ msgstr "Efeito: %s"
+#~ msgid "Buddys"
+#~ msgstr "Amigos"
-#~ msgid "Previous"
-#~ msgstr "Anterior"
+#~ msgid "Cast Test Spell 1"
+#~ msgstr "Lançar feitiço de teste 1"
-#~ msgid "New"
-#~ msgstr "Novo"
+#~ msgid "Cast Test Spell 2"
+#~ msgstr "Lançar feitiço de teste 2"
-#~ msgid "Job Level: %d"
-#~ msgstr "Nível de Trabalho: %d"
+#~ msgid "Cast Test Spell 3"
+#~ msgstr "Lançar feitiço de teste 3"
-#~ msgid "Present: "
-#~ msgstr "Presente: "
+#~ msgid "Command: /new <party-name>"
+#~ msgstr "Comando: /new <nome-do-grupo>"
-#~ msgid "Quit Guild"
-#~ msgstr "Sair da corporação"
+#~ msgid "Connecting to account server..."
+#~ msgstr "Conectando ao servidor de contas..."
-#~ msgid "Ok"
-#~ msgstr "Ok"
+#~ msgid "Connecting to character server..."
+#~ msgstr "Conectando ao servidor de personagens..."
-#~ msgid "Recent:"
-#~ msgstr "Recente:"
+#~ msgid "Cost"
+#~ msgstr "Custo"
-#~ msgid "Magic"
-#~ msgstr "Mágica"
+#~ msgid "Couldn't set "
+#~ msgstr "Não foi possível configurar "
-#~ msgid "Cast Test Spell 1"
-#~ msgstr "Lançar feitiço de teste 1"
+#~ msgid "Craft"
+#~ msgstr "Artesanato"
-#~ msgid "Cast Test Spell 2"
-#~ msgstr "Lançar feitiço de teste 2"
+#~ msgid "Crafts"
+#~ msgstr "Artesanatos"
-#~ msgid "Cast Test Spell 3"
-#~ msgstr "Lançar feitiço de teste 3"
+#~ msgid "Description: %s"
+#~ msgstr "Descrição: %s"
-#~ msgid "2 Handed Weapons"
-#~ msgstr "Armas para 2 mãos"
+#~ msgid "Effect: %s"
+#~ msgstr "Efeito: %s"
-#~ msgid "@@trade|Trade With %s@@"
-#~ msgstr "@@trade|Negociar com %s@@"
+#~ msgid "Failed to switch to "
+#~ msgstr "Falha ao mudar para "
-#~ msgid "@@attack|Attack %s@@"
-#~ msgstr "@@attack|Atacar %s@@"
+#~ msgid "Follow %s"
+#~ msgstr "Seguir %s"
-#~ msgid "@@disregard|Disregard %s@@"
-#~ msgstr "@@disregard|Desconsiderar %s@@"
+#~ msgid "GM"
+#~ msgstr "GM"
-#~ msgid "@@ignore|Ignore %s@@"
-#~ msgstr "@@ignore|Ignorar %s@@"
+#~ msgid "Generics"
+#~ msgstr "Genéricos"
-#~ msgid "@@unignore|Un-Ignore %s@@"
-#~ msgstr "@@unignore|Deixar de ignorar %s@@"
+#~ msgid "Guilds"
+#~ msgstr "Corporações"
-#~ msgid "@@admin-kick|Kick player@@"
-#~ msgstr "@@admin-kick|Expulsar jogador@@"
+#~ msgid "HP Bar"
+#~ msgstr "Barra de HP"
-#~ msgid "@@cancel|Cancel@@"
-#~ msgstr "@@cancel|Cancelar@@"
+#~ msgid "Hats"
+#~ msgstr "Chapéus"
-#~ msgid "@@pickup|Pick up %s@@"
-#~ msgstr "@@pickup|Pegar %s@@"
+#~ msgid "Highlight"
+#~ msgstr "Realçar"
-#~ msgid "@@use|Unequip@@"
-#~ msgstr "@@use|Desequipar@@"
+#~ msgid "Hyperlink"
+#~ msgstr "Link"
-#~ msgid "@@use|Equip@@"
-#~ msgstr "@@use|Equipar@@"
+#~ msgid "Inviting like this isn't supported at the moment."
+#~ msgstr "No momento ainda não é possível convidar deste modo."
-#~ msgid "@@use|Use@@"
-#~ msgstr "@@use|Usar@@"
+#~ msgid "Is"
+#~ msgstr "É"
-#~ msgid "@@drop|Drop@@"
-#~ msgstr "@@drop|Descartar@@"
+#, fuzzy
+#~ msgid "Item Is Equipped"
+#~ msgstr "Item está equipado"
-#~ msgid "@@split|Split@@"
-#~ msgstr "@@split|Dividir@@"
+#, fuzzy
+#~ msgid "Item Too Expensive"
+#~ msgstr "Item muito caro"
-#~ msgid "@@store|Store@@"
-#~ msgstr "@@store|Guardar@@"
+#~ msgid "Job Level: %d"
+#~ msgstr "Nível de Trabalho: %d"
-#~ msgid "@@retrieve|Retrieve@@"
-#~ msgstr "@@retrieve|Retirar@@"
+#~ msgid "Knife"
+#~ msgstr "Faca"
-#~ msgid "Select Server"
-#~ msgstr "Selecionar Servidor"
+#~ msgid "Logger"
+#~ msgstr "Histórico"
-#~ msgid "Failed to switch to "
-#~ msgstr "Falha ao mudar para "
+#~ msgid "Mace"
+#~ msgstr "Cetro"
-#~ msgid "windowed"
-#~ msgstr "em janela"
+#~ msgid "Magic"
+#~ msgstr "Mágica"
-#~ msgid "fullscreen"
-#~ msgstr "tela cheia"
+#~ msgid "Max level"
+#~ msgstr "Nível máximo"
#~ msgid "Mystery Skill"
#~ msgstr "Habilidade Mistério"
-#~ msgid "Weapons"
-#~ msgstr "Armas"
+#~ msgid "Necklaces"
+#~ msgstr "Colares"
-#~ msgid "Crafts"
-#~ msgstr "Artesanatos"
+#~ msgid "New"
+#~ msgstr "Novo"
-#~ msgid "Stats"
-#~ msgstr "Status"
+#~ msgid "Ok"
+#~ msgstr "Ok"
-#~ msgid "Total"
-#~ msgstr "Total"
+#, fuzzy
+#~ msgid "One Handed Weapons"
+#~ msgstr "Armas para 1 mão"
-#~ msgid "Cost"
-#~ msgstr "Custo"
+#~ msgid "Pants"
+#~ msgstr "Calças"
-#~ msgid "Attack:"
-#~ msgstr "Ataque:"
+#~ msgid "Party Window"
+#~ msgstr "Janela de Grupo"
-#~ msgid "% Reflex:"
-#~ msgstr "% Reflexo:"
+#~ msgid "Player"
+#~ msgstr "Jogador"
+
+#~ msgid "Polearm"
+#~ msgstr "Lança"
+
+#~ msgid "Present: "
+#~ msgstr "Presente: "
+
+#~ msgid "Previous"
+#~ msgstr "Anterior"
+
+#~ msgid "Progress Bar Labels"
+#~ msgstr "Rótulos da barra de progresso"
+
+#~ msgid "Quit Guild"
+#~ msgstr "Sair da corporação"
+
+#~ msgid "Recent:"
+#~ msgstr "Recente:"
#~ msgid "Remaining Status Points: %d"
#~ msgstr "Pontos de Status Restantes: %d"
-#~ msgid "Max level"
-#~ msgstr "Nível máximo"
-
-#~ msgid "curl error "
-#~ msgstr "Erro do curl "
+#~ msgid "Rings"
+#~ msgstr "Anéis"
-#~ msgid " host: "
-#~ msgstr " host: "
+#~ msgid "Scroll laziness"
+#~ msgstr "Rolar Laziness"
-#~ msgid "Guilds"
-#~ msgstr "Corporações"
+#~ msgid "Scroll radius"
+#~ msgstr "Rolar radius"
-#~ msgid "Buddys"
-#~ msgstr "Amigos"
+#~ msgid "Select Server"
+#~ msgstr "Selecionar Servidor"
-#~ msgid "Party Window"
-#~ msgstr "Janela de Grupo"
+#~ msgid "Server"
+#~ msgstr "Servidor"
-#~ msgid "Unarmed"
-#~ msgstr "Desarmado"
+#~ msgid "Shields"
+#~ msgstr "Escudos"
-#~ msgid "Knife"
-#~ msgstr "Faca"
+#~ msgid "Shirts"
+#~ msgstr "Camisas"
-#~ msgid "Sword"
-#~ msgstr "Espada"
+#~ msgid "Shoes"
+#~ msgstr "Sapatos"
-#~ msgid "Polearm"
-#~ msgstr "Lança"
+#~ msgid "Shooting"
+#~ msgstr "Tiro"
#~ msgid "Staff"
#~ msgstr "Cajado"
-#~ msgid "Whip"
-#~ msgstr "Chicote"
+#~ msgid "Stats"
+#~ msgstr "Status"
-#~ msgid "Bow"
-#~ msgstr "Arco"
+#~ msgid "Sword"
+#~ msgstr "Espada"
-#~ msgid "Shooting"
-#~ msgstr "Tiro"
+#~ msgid "Tab Highlight"
+#~ msgstr "Realçar aba"
-#~ msgid "Mace"
-#~ msgstr "Cetro"
+#~ msgid "Text Outline"
+#~ msgstr "Borda do texto"
-#~ msgid "Axe"
-#~ msgstr "Machado"
+#~ msgid "Text Shadow"
+#~ msgstr "Sombra do Texto"
#~ msgid "Thrown"
#~ msgstr "Arremesso"
-#~ msgid "Craft"
-#~ msgstr "Artesanato"
+#~ msgid "Total"
+#~ msgstr "Total"
+
+#, fuzzy
+#~ msgid "Two Handed Weapons"
+#~ msgstr "Armas para 1 mão"
+
+#~ msgid "Unarmed"
+#~ msgstr "Desarmado"
#~ msgid "Unknown Skill"
#~ msgstr "Habilidade desconhecida"
-#~ msgid " can't be created, but it doesn't exist! Exiting."
-#~ msgstr " não foi possível criar, mas ela não existe! Saindo."
-
-#~ msgid "Couldn't set "
-#~ msgstr "Não foi possível configurar "
+#~ msgid "Unknown failure to select character."
+#~ msgstr "Erro desconhecido ao selecionar personagem."
-#~ msgid " video mode: "
-#~ msgstr " modo de video: "
+#~ msgid "Unnamed"
+#~ msgstr "Sem nome"
-#~ msgid "mana"
-#~ msgstr "mana"
+#~ msgid "Usables"
+#~ msgstr "Usáveis"
-#~ msgid "Connecting to character server..."
-#~ msgstr "Conectando ao servidor de personagens..."
+#~ msgid "Weapons"
+#~ msgstr "Armas"
-#~ msgid "Connecting to account server..."
-#~ msgstr "Conectando ao servidor de contas..."
+#~ msgid "Whip"
+#~ msgstr "Chicote"
-#~ msgid "/new > Alias of create"
-#~ msgstr "/new > Abreviação de create"
+#~ msgid "Whisper"
+#~ msgstr "Sussurrar"
-#~ msgid "Command: /new <party-name>"
-#~ msgstr "Comando: /new <nome-do-grupo>"
+#~ msgid "Willpower:"
+#~ msgstr "Força de Vontade:"
#~ msgid "a"
#~ msgstr "um(a)"
-#~ msgid "Unnamed"
-#~ msgstr "Sem nome"
+#~ msgid "curl error "
+#~ msgstr "Erro do curl "
-#~ msgid "@@pickup|Pick Up %s@@"
-#~ msgstr "@@pegar|Pegar %s@@"
+#~ msgid "fullscreen"
+#~ msgstr "tela cheia"
-#~ msgid "Save player list"
-#~ msgstr "Salvar lista de jogadores"
+#~ msgid "mana"
+#~ msgstr "mana"
-#~ msgid "Scroll radius"
-#~ msgstr "Rolar radius"
+#~ msgid "no"
+#~ msgstr "não"
-#~ msgid "Scroll laziness"
-#~ msgstr "Rolar Laziness"
+#~ msgid "windowed"
+#~ msgstr "em janela"
diff --git a/po/ru.po b/po/ru.po
index 2f15c881..fdb9d4c5 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: mana\n"
"Report-Msgid-Bugs-To: dev@manasource.org\n"
"POT-Creation-Date: 2010-12-13 20:04+0100\n"
-"PO-Revision-Date: 2010-02-17 06:54+0000\n"
-"Last-Translator: jmb_kz <jmb_kz@mail.ru>\n"
+"PO-Revision-Date: 2011-02-23 01:02+0500\n"
+"Last-Translator: Mpa4Hu <ymen9@pisem.net>\n"
"Language-Team: Russian <ru@li.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
@@ -25,33 +25,28 @@ msgid "Setup"
msgstr "ÐаÑтройка"
#: src/client.cpp:679
-#, fuzzy
msgid "Connecting to server"
-msgstr "Подключение к Ñерверу карт..."
+msgstr "Подключение к Ñерверу"
#: src/client.cpp:706
-#, fuzzy
msgid "Logging in"
msgstr "Вход"
#: src/client.cpp:739
msgid "Entering game world"
-msgstr ""
+msgstr "Вход в игровой мир"
#: src/client.cpp:804
-#, fuzzy
msgid "Requesting characters"
-msgstr "Выбор перÑонажа"
+msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¿ÐµÑ€Ñонажей"
#: src/client.cpp:833
-#, fuzzy
msgid "Connecting to the game server"
-msgstr "Подключение к Ñерверу карт..."
+msgstr "Подключение к игровому Ñерверу"
#: src/client.cpp:843
-#, fuzzy
msgid "Changing game servers"
-msgstr "Сервер"
+msgstr "Изменение игровых Ñерверов"
#: src/client.cpp:872 src/client.cpp:879 src/client.cpp:1014
#: src/gui/changeemaildialog.cpp:156 src/gui/changepassworddialog.cpp:149
@@ -65,34 +60,31 @@ msgstr "Ошибка"
#: src/client.cpp:888
msgid "Requesting registration details"
-msgstr ""
+msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ñ€ÐµÐ³Ð¸Ñтрационных данных"
#: src/client.cpp:915
-#, fuzzy
msgid "Password Change"
-msgstr "Пароль:"
+msgstr "Изменение паролÑ"
#: src/client.cpp:916
msgid "Password changed successfully!"
-msgstr ""
+msgstr "Пароль уÑпешно изменен!"
#: src/client.cpp:935
-#, fuzzy
msgid "Email Change"
-msgstr "Сменить"
+msgstr "Сменить E-MAIL"
#: src/client.cpp:936
msgid "Email changed successfully!"
-msgstr ""
+msgstr "E-mail уÑпешно изменена!"
#: src/client.cpp:956
-#, fuzzy
msgid "Unregister Successful"
-msgstr "Удалить региÑтрацию"
+msgstr "Удаление аккаунта прошла уÑпешно"
#: src/client.cpp:957
msgid "Farewell, come back any time..."
-msgstr ""
+msgstr "Прощайте, возвращайтеÑÑŒ в любое времÑ..."
#: src/client.cpp:1138 src/client.cpp:1161
#, c-format
@@ -102,11 +94,11 @@ msgstr ""
#: src/client.cpp:1281
#, c-format
msgid "Invalid update host: %s"
-msgstr ""
+msgstr "Ðеверный хоÑÑ‚ обновлениÑ: %s"
#: src/client.cpp:1315 src/client.cpp:1321
msgid "Error creating updates directory!"
-msgstr ""
+msgstr "Ошибка при Ñоздании директории обновлениÑ!"
#: src/commandhandler.cpp:131 src/commandhandler.cpp:317
msgid "Unknown command."
@@ -158,11 +150,11 @@ msgstr "/q> Вариант query"
#: src/commandhandler.cpp:176
msgid "/ignore > ignore a player"
-msgstr ""
+msgstr "/ignore > игнорировать игрока"
#: src/commandhandler.cpp:177
msgid "/unignore > stop ignoring a player"
-msgstr ""
+msgstr "/unignore > прекратить игнорировать игрока"
#: src/commandhandler.cpp:179
msgid "/list > Display all public channels"
@@ -173,9 +165,8 @@ msgid "/join > Join or create a channel"
msgstr "/join > Создать или приÑоединитьÑÑ Ðº каналу"
#: src/commandhandler.cpp:182
-#, fuzzy
msgid "/createparty > Create a new party"
-msgstr "/create > Создать группу"
+msgstr "/createparty > Создать группу"
#: src/commandhandler.cpp:183
msgid "/party > Invite a user to party"
@@ -240,14 +231,13 @@ msgid "This command clears the chat log of previous chat."
msgstr "Эта команда очищает лог чата."
#: src/commandhandler.cpp:224
-#, fuzzy
msgid "Command: /ignore <player>"
-msgstr "Комманда: /new <имÑ_группы>"
+msgstr "Комманда: /ignore <пользователь>"
#: src/commandhandler.cpp:225
-#, fuzzy
msgid "This command ignores the given player regardless of current relations."
-msgstr "Эта команда показывает чиÑло пользователей в Ñети на данный момент."
+msgstr ""
+"Эта команда игнорирует данного игрока, незавиÑимо от текущих отношений."
#: src/commandhandler.cpp:230
msgid "Command: /join <channel>"
@@ -313,14 +303,12 @@ msgstr ""
"Эта команда ÑоздаÑÑ‚ закладку Ð´Ð»Ñ Ð»Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ вами и <Ð¸Ð¼Ñ Ð¸Ð³Ñ€Ð¾ÐºÐ°>."
#: src/commandhandler.cpp:262
-#, fuzzy
msgid "Command: /createparty <name>"
-msgstr "Command: /create <имÑ_группы>"
+msgstr "Комманда: /createparty <имÑ_группы>"
#: src/commandhandler.cpp:263
-#, fuzzy
msgid "This command creates a new party called <name>."
-msgstr "Эти комманды Ñоздают группу под названием <имÑ_группы>."
+msgstr "Эта комманда Ñоздает группу под названием <имÑ_группы>."
#: src/commandhandler.cpp:267
msgid "Command: /party <nick>"
@@ -387,13 +375,13 @@ msgid "This command displays the return toggle status."
msgstr ""
#: src/commandhandler.cpp:300 src/gui/widgets/whispertab.cpp:95
-#, fuzzy
msgid "Command: /unignore <player>"
-msgstr "Комманда: /new <имÑ_группы>"
+msgstr "Комманда: /unignore <имÑ_игрока>"
#: src/commandhandler.cpp:301
msgid "This command stops ignoring the given player if they are being ignored"
msgstr ""
+"Эта команда оÑтанавливает игнорирование данного игрока, еÑли они игнорируетÑа"
#: src/commandhandler.cpp:306
msgid "Command: /where"
@@ -435,12 +423,12 @@ msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° приÑоединение к каналу %s."
#: src/commandhandler.cpp:419 src/net/tmwa/gui/partytab.cpp:109
msgid "Party name is missing."
-msgstr ""
+msgstr "Ð˜Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ отÑутÑтвует."
#: src/commandhandler.cpp:432 src/commandhandler.cpp:509
#: src/commandhandler.cpp:531
msgid "Please specify a name."
-msgstr ""
+msgstr "ПожалуйÑта, укажите имÑ."
#: src/commandhandler.cpp:450
msgid "Return toggles chat."
@@ -460,32 +448,31 @@ msgstr "Теперь Ñообщение закрывает чат."
#: src/commandhandler.cpp:476 src/commandhandler.cpp:489
msgid "Show IP: On"
-msgstr ""
+msgstr "Показ IP: Включен"
#: src/commandhandler.cpp:476 src/commandhandler.cpp:485
msgid "Show IP: Off"
-msgstr ""
+msgstr "Показ IP: Отключен"
#: src/commandhandler.cpp:515
msgid "Player already ignored!"
-msgstr ""
+msgstr "Игрок уже игнорируетÑÑ!"
#: src/commandhandler.cpp:522
msgid "Player successfully ignored!"
-msgstr ""
+msgstr "Игрок уÑпешно игнорирован!"
#: src/commandhandler.cpp:524
-#, fuzzy
msgid "Player could not be ignored!"
-msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾ÑˆÐµÐ¿Ñ‚Ð°Ñ‚ÑŒ: пользователь игнорирует шептание..."
+msgstr "Игрок не может быть игнорирован!"
#: src/commandhandler.cpp:539
msgid "Player wasn't ignored!"
-msgstr ""
+msgstr "Игрок не было игнорирован!"
#: src/commandhandler.cpp:544
msgid "Player no longer ignored!"
-msgstr ""
+msgstr "Игрок больше не игнорируетÑÑ!"
#: src/commandhandler.cpp:546
#, fuzzy
@@ -504,18 +491,16 @@ msgid "General"
msgstr "Общие"
#: src/game.cpp:342
-#, fuzzy
msgid "Screenshot saved as "
-msgstr "Снимок Ñкрана Ñохранен в ~/"
+msgstr "Снимок Ñкрана Ñохранен как"
#: src/game.cpp:347
msgid "Saving screenshot failed!"
msgstr "Ошибка при Ñохранении Ñнимка Ñкрана!"
#: src/game.cpp:378
-#, fuzzy
msgid "The connection to the server was lost."
-msgstr "Соединение Ñ Ñервером потерÑно, завершение программы."
+msgstr "Соединение Ñ Ñервером потерÑно."
#: src/game.cpp:382
msgid "Network Error"
@@ -530,7 +515,6 @@ msgid "Accepting incoming trade requests"
msgstr "Принимать Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾ торговле"
#: src/game.cpp:954
-#, fuzzy
msgid "Could Not Load Map"
msgstr "Ðе удалоÑÑŒ загрузить карту"
@@ -540,9 +524,9 @@ msgid "Error while loading %s"
msgstr "Ошибка во Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ %s"
#: src/gui/beingpopup.cpp:76
-#, fuzzy, c-format
+#, c-format
msgid "Party: %s"
-msgstr "Группа (%s)"
+msgstr "Группа: %s"
#: src/gui/buy.cpp:49 src/gui/buy.cpp:78 src/gui/buysell.cpp:47
msgid "Buy"
@@ -559,14 +543,14 @@ msgstr "Цена: %s / Ð’Ñего: %s"
#: src/gui/buy.cpp:74 src/gui/itemamount.cpp:112 src/gui/npcdialog.cpp:124
#: src/gui/sell.cpp:74 src/gui/statuswindow.cpp:463
msgid "+"
-msgstr ""
+msgstr "+"
#. TRANSLATORS: This is a narrow symbol used to denote 'decreasing'.
#. You may change this symbol if your language uses another.
#: src/gui/buy.cpp:77 src/gui/itemamount.cpp:111 src/gui/npcdialog.cpp:125
#: src/gui/sell.cpp:75 src/gui/statuswindow.cpp:475
msgid "-"
-msgstr ""
+msgstr "-"
#: src/gui/buy.cpp:79 src/gui/quitdialog.cpp:40 src/gui/quitdialog.cpp:42
#: src/gui/quitdialog.cpp:43 src/gui/sell.cpp:77 src/gui/serverdialog.cpp:228
@@ -608,24 +592,22 @@ msgid "Account: %s"
msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ: %s"
#: src/gui/changeemaildialog.cpp:51
-#, fuzzy
msgid "Type new email address twice:"
-msgstr "Введите новый Ð°Ð´Ñ€ÐµÑ E-mail дважды:"
+msgstr "Дважды введите новый E-mail адреÑ:"
#: src/gui/changeemaildialog.cpp:127
-#, fuzzy, c-format
+#, c-format
msgid "The new email address needs to be at least %d characters long."
-msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ Ñодержать не менее %d Ñимволов."
+msgstr "Ðовый E-MAIL Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ñодержать не менее %d Ñимволов."
#: src/gui/changeemaildialog.cpp:134
-#, fuzzy, c-format
+#, c-format
msgid "The new email address needs to be less than %d characters long."
-msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ должно Ñодержать более %d Ñимволов."
+msgstr "Ðовый E-MAIL Ð°Ð´Ñ€ÐµÑ Ð½Ðµ должно Ñодержать более %d Ñимволов."
#: src/gui/changeemaildialog.cpp:141
-#, fuzzy
msgid "The email address entries mismatch."
-msgstr "Введенный Ð°Ð´Ñ€ÐµÑ E-mail уже зарегиÑтрирован."
+msgstr "Введенный E-mail адреÑа не Ñовпадают."
#: src/gui/changepassworddialog.cpp:47 src/gui/changepassworddialog.cpp:56
#: src/gui/charselectdialog.cpp:128
@@ -638,27 +620,26 @@ msgid "Password:"
msgstr "Пароль:"
#: src/gui/changepassworddialog.cpp:63
-#, fuzzy
msgid "Type new password twice:"
msgstr "Введите новый пароль дважды:"
#: src/gui/changepassworddialog.cpp:110
msgid "Enter the old password first."
-msgstr ""
+msgstr "Сначала введите Ñтарый пароль"
#: src/gui/changepassworddialog.cpp:116
-#, fuzzy, c-format
+#, c-format
msgid "The new password needs to be at least %d characters long."
-msgstr "Пароль должен Ñодержать не менее %d Ñимволов."
+msgstr "Ðовый пароль должен быть не менше %d Ñимволов."
#: src/gui/changepassworddialog.cpp:123
-#, fuzzy, c-format
+#, c-format
msgid "The new password needs to be less than %d characters long."
-msgstr "Пароль не должен Ñодержать более %d Ñимволов."
+msgstr "Ðовый пароль должен быть меньше, чем %d Ñимволов."
#: src/gui/changepassworddialog.cpp:130
msgid "The new password entries mismatch."
-msgstr ""
+msgstr "Пароли не Ñовпадают"
#: src/gui/charcreatedialog.cpp:53
msgid "Create Character"
@@ -674,22 +655,20 @@ msgstr "ИмÑ:"
#: src/gui/charcreatedialog.cpp:70 src/gui/charcreatedialog.cpp:75
#: src/gui/outfitwindow.cpp:67
msgid ">"
-msgstr ""
+msgstr ">"
#. TRANSLATORS: This is an arrow symbol used to denote 'previous'.
#. You may change this symbol if your language uses another.
#: src/gui/charcreatedialog.cpp:73 src/gui/charcreatedialog.cpp:76
#: src/gui/outfitwindow.cpp:66
msgid "<"
-msgstr ""
+msgstr "<"
#: src/gui/charcreatedialog.cpp:74
-#, fuzzy
msgid "Hair color:"
msgstr "Цвет волоÑ:"
#: src/gui/charcreatedialog.cpp:77
-#, fuzzy
msgid "Hair style:"
msgstr "Стрижка:"
@@ -738,7 +717,7 @@ msgstr "Управление учётной запиÑью"
#: src/gui/charselectdialog.cpp:127
msgid "Switch Login"
-msgstr ""
+msgstr "Сменить аккаунт"
#: src/gui/charselectdialog.cpp:141 src/gui/unregisterdialog.cpp:47
#: src/gui/unregisterdialog.cpp:55
@@ -746,9 +725,8 @@ msgid "Unregister"
msgstr "Удалить региÑтрацию"
#: src/gui/charselectdialog.cpp:150
-#, fuzzy
msgid "Change Email"
-msgstr "Сменить Ð°Ð´Ñ€ÐµÑ E-mail"
+msgstr "Сменить E-mail"
#: src/gui/charselectdialog.cpp:336 src/gui/serverdialog.cpp:231
#: src/gui/setup_players.cpp:229
@@ -756,13 +734,12 @@ msgid "Delete"
msgstr "Удалить"
#: src/gui/charselectdialog.cpp:380
-#, fuzzy
msgid "Choose"
-msgstr "Закрыть"
+msgstr "Выбрать"
#: src/gui/charselectdialog.cpp:394 src/gui/charselectdialog.cpp:395
msgid "(empty)"
-msgstr ""
+msgstr "(пуÑто)"
#: src/gui/chat.cpp:88
msgid "Chat"
@@ -792,37 +769,37 @@ msgstr "Ðет"
#: src/gui/debugwindow.cpp:43
msgid "Debug"
-msgstr ""
+msgstr "отлаживать"
#: src/gui/debugwindow.cpp:56
#, c-format
msgid "%d FPS (OpenGL)"
-msgstr ""
+msgstr "%d FPS (OpenGL)"
#: src/gui/debugwindow.cpp:61 src/gui/debugwindow.cpp:64
#, c-format
msgid "%d FPS"
-msgstr ""
+msgstr "%d FPS"
#: src/gui/debugwindow.cpp:65 src/gui/debugwindow.cpp:104
#, c-format
msgid "Music: %s"
-msgstr ""
+msgstr "Музыка: %s"
#: src/gui/debugwindow.cpp:66 src/gui/debugwindow.cpp:108
-#, fuzzy, c-format
+#, c-format
msgid "Map: %s"
-msgstr "ИмÑ: %s"
+msgstr "Карта: %s"
#: src/gui/debugwindow.cpp:67 src/gui/debugwindow.cpp:106
-#, fuzzy, c-format
+#, c-format
msgid "Minimap: %s"
-msgstr "МиниКарта"
+msgstr "Миникарта: %s"
#: src/gui/debugwindow.cpp:68 src/gui/debugwindow.cpp:99
#, c-format
msgid "Cursor: (%d, %d)"
-msgstr ""
+msgstr "КурÑор: (%d, %d)"
#: src/gui/debugwindow.cpp:69 src/gui/debugwindow.cpp:111
#, fuzzy, c-format
@@ -879,13 +856,12 @@ msgstr "ИÑпользовать"
#: src/gui/inventorywindow.cpp:101 src/gui/popupmenu.cpp:364
msgid "Activate"
-msgstr ""
+msgstr "Ðктивировать"
#: src/gui/inventorywindow.cpp:102 src/gui/inventorywindow.cpp:348
#: src/gui/popupmenu.cpp:367
-#, fuzzy
msgid "Drop..."
-msgstr "БроÑить"
+msgstr "БроÑить..."
#: src/gui/inventorywindow.cpp:103 src/gui/popupmenu.cpp:373
msgid "Split"
@@ -942,16 +918,15 @@ msgid "Select amount of items to split."
msgstr "Сколько предметов разделить."
#: src/gui/itempopup.cpp:137
-#, fuzzy, c-format
+#, c-format
msgid "Weight: %s"
-msgstr "ВеÑ: "
+msgstr "ВеÑ: %s"
#: src/gui/login.cpp:51 src/gui/login.cpp:63
msgid "Login"
msgstr "Вход"
#: src/gui/login.cpp:60
-#, fuzzy
msgid "Remember username"
msgstr "Запомнить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ"
@@ -960,17 +935,17 @@ msgid "Register"
msgstr "ЗарегиÑтрироватьÑÑ"
#: src/gui/login.cpp:62
-#, fuzzy
msgid "Change Server"
-msgstr "Сервер"
+msgstr "Сменить Ñервер"
#: src/gui/login.cpp:129
msgid "Registration disabled"
-msgstr ""
+msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸Ð¾Ñтановлена"
#: src/gui/login.cpp:129
msgid "You need to use the website to register an account for this server."
msgstr ""
+"Вам необходимо иÑпользовать веб-Ñайт, чтобы зарегиÑтрировать новый аккаунт"
#: src/gui/minimap.cpp:45 src/gui/minimap.cpp:86
msgid "Map"
@@ -978,7 +953,7 @@ msgstr "Карта"
#: src/gui/ministatus.cpp:235
msgid "Need"
-msgstr ""
+msgstr "Ðеобходимо"
#: src/gui/npcdialog.cpp:48
msgid "Waiting for server"
@@ -998,7 +973,7 @@ msgstr "NPC"
#: src/gui/npcdialog.cpp:118
msgid "Clear log"
-msgstr ""
+msgstr "ОчиÑтить запиÑÑŒ"
#: src/gui/npcdialog.cpp:134
msgid "Reset"
@@ -1006,11 +981,12 @@ msgstr "СброÑить"
#. TRANSLATORS: Please leave the \n sequences intact.
#: src/gui/npcdialog.cpp:208
-#, fuzzy
msgid ""
"\n"
"> Next\n"
-msgstr "Следующий"
+msgstr ""
+"\n"
+"> Следующий\n"
#: src/gui/npcpostdialog.cpp:47
msgid "To:"
@@ -1031,24 +1007,23 @@ msgid "Outfit: %d"
msgstr ""
#: src/gui/outfitwindow.cpp:70
-#, fuzzy
msgid "Unequip first"
-msgstr "СнÑÑ‚ÑŒ"
+msgstr "Сначало Ñнемите"
#: src/gui/popupmenu.cpp:83
-#, fuzzy, c-format
+#, c-format
msgid "Trade with %s..."
-msgstr "@@trade|Торговать Ñ %s@@"
+msgstr "Торговать Ñ %s..."
#: src/gui/popupmenu.cpp:87 src/gui/popupmenu.cpp:158
-#, fuzzy, c-format
+#, c-format
msgid "Attack %s"
-msgstr "Ðтака %+d"
+msgstr "Ðтаковать %s"
#: src/gui/popupmenu.cpp:91
-#, fuzzy, c-format
+#, c-format
msgid "Whisper %s"
-msgstr "Шептать"
+msgstr "Шептать %s"
#: src/gui/popupmenu.cpp:100
#, c-format
@@ -1061,9 +1036,9 @@ msgid "Disregard %s"
msgstr ""
#: src/gui/popupmenu.cpp:108
-#, fuzzy, c-format
+#, c-format
msgid "Ignore %s"
-msgstr "Игнорировано"
+msgstr "Игнорировано %s"
#: src/gui/popupmenu.cpp:114 src/gui/popupmenu.cpp:123
#, c-format
@@ -1071,48 +1046,45 @@ msgid "Unignore %s"
msgstr ""
#: src/gui/popupmenu.cpp:117
-#, fuzzy, c-format
+#, c-format
msgid "Completely ignore %s"
-msgstr "@@ignore|ПолноÑтью игнорировать %s@@"
+msgstr "ПолноÑтью игнорировать %s"
#: src/gui/popupmenu.cpp:130
-#, fuzzy, c-format
+#, c-format
msgid "Invite %s to join your guild"
-msgstr "@@guild|ПриглаÑить %s в вашу гильдию@@"
+msgstr "ПриглаÑить %s в вашу гильдию"
#: src/gui/popupmenu.cpp:134
-#, fuzzy, c-format
+#, c-format
msgid "Invite %s to join your party"
-msgstr "@@party|ПриглаÑить %s в вашу группу@@"
+msgstr "ПриглаÑить %s в вашу группу"
#: src/gui/popupmenu.cpp:141
msgid "Kick player"
msgstr ""
#: src/gui/popupmenu.cpp:150
-#, fuzzy, c-format
+#, c-format
msgid "Talk to %s"
-msgstr "@@talk|Говорить Ñ %s@@"
+msgstr "Говорить Ñ %s"
#: src/gui/popupmenu.cpp:163
-#, fuzzy
msgid "Kick monster"
-msgstr "@@admin-kick|Вышвырнуть монÑтра@@"
+msgstr "Вышвырнуть монÑтра"
#: src/gui/popupmenu.cpp:171
-#, fuzzy
msgid "Add name to chat"
-msgstr "@@chat|Добавить в чат@@"
+msgstr "Добавить в чат"
#: src/gui/popupmenu.cpp:188
-#, fuzzy, c-format
+#, c-format
msgid "Pick up %s"
-msgstr "ПоднÑÑ‚ÑŒ"
+msgstr "ПоднÑÑ‚ÑŒ %s"
#: src/gui/popupmenu.cpp:190 src/gui/popupmenu.cpp:387
-#, fuzzy
msgid "Add to chat"
-msgstr "@@chat|Добавить в чат@@"
+msgstr "Добавить в чат"
#: src/gui/quitdialog.cpp:44
msgid "Switch server"
@@ -1183,7 +1155,6 @@ msgid "Passwords do not match."
msgstr "Пароли не Ñовпадают."
#: src/gui/serverdialog.cpp:197
-#, fuzzy
msgid "Choose Your Server"
msgstr "Выберите Ñервер"
@@ -1196,19 +1167,16 @@ msgid "Port:"
msgstr "Порт:"
#: src/gui/serverdialog.cpp:208
-#, fuzzy
msgid "Server type:"
-msgstr "Сервер:"
+msgstr "Тип Ñервера:"
#: src/gui/serverdialog.cpp:229
-#, fuzzy
msgid "Connect"
-msgstr "Соединение..."
+msgstr "Соединение"
#: src/gui/serverdialog.cpp:230
-#, fuzzy
msgid "Custom Server"
-msgstr "Выборочный курÑор"
+msgstr "СобÑтвенный Ñервер"
#: src/gui/serverdialog.cpp:324
msgid "Please type both the address and the port of a server."
@@ -1217,29 +1185,28 @@ msgstr "Следует указать Ð°Ð´Ñ€ÐµÑ Ð¸ порт Ñервера."
#: src/gui/serverdialog.cpp:441
#, c-format
msgid "Downloading server list...%2.2f%%"
-msgstr ""
+msgstr "Загрузка ÑпиÑок Ñерверов...%2.2f%%"
#: src/gui/serverdialog.cpp:447
-#, fuzzy
msgid "Waiting for server..."
-msgstr "Ожидание ответа от Ñервера"
+msgstr "Ожидание ответа от Ñервера..."
#: src/gui/serverdialog.cpp:451
msgid "Preparing download"
-msgstr ""
+msgstr "Подготовка к загрузке"
#: src/gui/serverdialog.cpp:455
msgid "Error retreiving server list!"
-msgstr ""
+msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑпиÑка Ñерверов!"
#: src/gui/serverdialog.cpp:550
msgid "requires a newer version"
-msgstr ""
+msgstr "Требует более новую верÑию"
#: src/gui/serverdialog.cpp:552
#, c-format
msgid "requires v%s"
-msgstr ""
+msgstr "Требует v%s"
#: src/gui/setup_audio.cpp:42
msgid "Sound"
@@ -1247,7 +1214,7 @@ msgstr "Звук"
#: src/gui/setup_audio.cpp:43
msgid "Download music"
-msgstr ""
+msgstr "Скачать музыку"
#: src/gui/setup_audio.cpp:47
msgid "Audio"
@@ -1262,13 +1229,13 @@ msgid "Music volume"
msgstr "ГромкоÑÑ‚ÑŒ музыки"
#: src/gui/setup_audio.cpp:94
-#, fuzzy
msgid "Notice"
-msgstr "Ðет текÑта"
+msgstr "Уведомление"
#: src/gui/setup_audio.cpp:94
msgid "You may have to restart your client if you want to download new music"
msgstr ""
+"Возможно придетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ клиент, чтобы вы Ñмогли Ñкачать новую музыку"
#: src/gui/setup_audio.cpp:106
msgid "Sound Engine"
@@ -1283,9 +1250,8 @@ msgid "Colors"
msgstr "Цвета"
#: src/gui/setup_colors.cpp:72
-#, fuzzy
msgid "Type:"
-msgstr "Введите: "
+msgstr "Тип:"
#: src/gui/setup_colors.cpp:83 src/gui/setup_colors.cpp:331
msgid "Static"
@@ -1304,26 +1270,23 @@ msgstr "Радуга"
#: src/gui/setup_colors.cpp:89 src/gui/setup_colors.cpp:90
#: src/gui/setup_colors.cpp:333
msgid "Spectrum"
-msgstr ""
+msgstr "Ñпектр"
#: src/gui/setup_colors.cpp:94
-#, fuzzy
msgid "Delay:"
-msgstr "Играть"
+msgstr "Задержка:"
#: src/gui/setup_colors.cpp:109
msgid "Red:"
-msgstr ""
+msgstr "КраÑный:"
#: src/gui/setup_colors.cpp:124
-#, fuzzy
msgid "Green:"
-msgstr "Он-лайн: "
+msgstr "Зеленый:"
#: src/gui/setup_colors.cpp:139
-#, fuzzy
msgid "Blue:"
-msgstr "Синий: "
+msgstr "Синий:"
#: src/gui/setup.cpp:51
msgid "Apply"
@@ -1366,9 +1329,8 @@ msgid "Assign"
msgstr "Ðазначить"
#: src/gui/setup_keyboard.cpp:90
-#, fuzzy
msgid "Unassign"
-msgstr "Ðазначить"
+msgstr "СнÑÑ‚ÑŒ"
#: src/gui/setup_keyboard.cpp:94
msgid "Default"
@@ -1419,9 +1381,8 @@ msgid "Put all whispers in tabs"
msgstr "Личные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð²Ð¾ вкладках"
#: src/gui/setup_players.cpp:233
-#, fuzzy
msgid "Show gender"
-msgstr "Показать имÑ"
+msgstr "Показать пол"
#: src/gui/setup_players.cpp:235
#, fuzzy
@@ -1434,7 +1395,7 @@ msgstr "Игроки"
#: src/gui/setup_players.cpp:262
msgid "When ignoring:"
-msgstr ""
+msgstr "При игнорировании:"
#: src/gui/setup_video.cpp:134
msgid "Tiny"
@@ -1509,13 +1470,12 @@ msgid "Particle effects"
msgstr "Эффекты чаÑтиц"
#: src/gui/setup_video.cpp:225
-#, fuzzy
msgid "Show own name"
-msgstr "Показать имÑ"
+msgstr "Показать ÑобÑтвенное имÑ"
#: src/gui/setup_video.cpp:226
msgid "Log NPC dialogue"
-msgstr ""
+msgstr "запиÑывать диалог Ñ NPC"
#: src/gui/setup_video.cpp:227
msgid "Show pickup notification"
@@ -1524,7 +1484,7 @@ msgstr "Показать уведомление о подборе предмет
#. TRANSLATORS: Refers to "Show pickup notification"
#: src/gui/setup_video.cpp:229
msgid "in chat"
-msgstr ""
+msgstr "в чате"
#. TRANSLATORS: Refers to "Show pickup notification"
#: src/gui/setup_video.cpp:231
@@ -1532,22 +1492,20 @@ msgid "as particle"
msgstr ""
#: src/gui/setup_video.cpp:236
-#, fuzzy
msgid "FPS limit:"
-msgstr "Ограничение кадр/Ñ:"
+msgstr "FPS Предел:"
#: src/gui/setup_video.cpp:247
msgid "Disable transparency (Low CPU mode)"
-msgstr ""
+msgstr "Отключить прозрачноÑÑ‚ÑŒ (режим низкой нагрузки процеÑÑора)"
#: src/gui/setup_video.cpp:250
msgid "Video"
msgstr "Видео"
#: src/gui/setup_video.cpp:252
-#, fuzzy
msgid "Show damage"
-msgstr "Показать имÑ"
+msgstr "Показать ущерб"
#: src/gui/setup_video.cpp:258
msgid "Overhead text"
@@ -1572,22 +1530,24 @@ msgstr "Размер шрифта"
#: src/gui/setup_video.cpp:277 src/gui/setup_video.cpp:532
#: src/gui/setup_video.cpp:662
-#, fuzzy
msgid "None"
-msgstr "Ðет"
+msgstr "ни один"
#: src/gui/setup_video.cpp:426
msgid ""
"Failed to switch to windowed mode and restoration of old mode also failed!"
msgstr ""
+"Ðе удалоÑÑŒ перейти в окновой режим и воÑÑтановить Ñтарый режим тоже не "
+"удалоÑÑŒ!"
#: src/gui/setup_video.cpp:432
msgid ""
"Failed to switch to fullscreen mode and restoration of old mode also failed!"
msgstr ""
+"Ðе удалоÑÑŒ перейти в полноÑкранный режим и воÑÑтановить Ñтарый режим тоже не "
+"удалоÑÑŒ!"
#: src/gui/setup_video.cpp:443
-#, fuzzy
msgid "Switching to Full Screen"
msgstr "Переключение в полноÑкранный режим"
@@ -1596,7 +1556,6 @@ msgid "Restart needed for changes to take effect."
msgstr "Ð”Ð»Ñ Ð²ÑÑ‚ÑƒÐ¿Ð»ÐµÐ½Ð¸Ñ Ð² Ñилу выбранных наÑтроек требуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° игры."
#: src/gui/setup_video.cpp:458
-#, fuzzy
msgid "Changing to OpenGL"
msgstr "Переключение на OpenGL"
@@ -1605,10 +1564,13 @@ msgid ""
"Applying change to OpenGL requires restart. In case OpenGL messes up your "
"game graphics, restart the game with the command line option \"--no-opengl\"."
msgstr ""
+"Применение изменений в OpenGL требует перезапуÑки. Ð’ Ñлучае, еÑли OpenGL не "
+"будет работать, перезагрузите игру Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ командной Ñтроки \"--no-"
+"opengl\"."
#: src/gui/setup_video.cpp:466
msgid "Deactivating OpenGL"
-msgstr ""
+msgstr "Отключение OpenGL"
#: src/gui/setup_video.cpp:467
msgid "Applying change to OpenGL requires restart."
@@ -1616,19 +1578,19 @@ msgstr "Переход к OpenGL требует перезагрузки игрÑ
#: src/gui/setup_video.cpp:475
msgid "Transparency disabled"
-msgstr ""
+msgstr "ПрозрачноÑÑ‚ÑŒ отключена"
#: src/gui/setup_video.cpp:476 src/gui/setup_video.cpp:484
msgid "You must restart to apply changes."
-msgstr ""
+msgstr "Ð’Ñ‹ должны перезагрузитÑа, чтобы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñтупили в Ñилу."
#: src/gui/setup_video.cpp:483
msgid "Transparency enabled"
-msgstr ""
+msgstr "ПрозрачноÑÑ‚ÑŒ включена"
#: src/gui/setup_video.cpp:576 src/gui/setup_video.cpp:581
msgid "Screen Resolution Changed"
-msgstr ""
+msgstr "Разрешение Ñкрана изменены"
#: src/gui/setup_video.cpp:577 src/gui/setup_video.cpp:582
msgid "Restart your client for the change to take effect."
@@ -1637,6 +1599,7 @@ msgstr "Перезегрузите игру дабы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñту
#: src/gui/setup_video.cpp:579
msgid "Some windows may be moved to fit the lowered resolution."
msgstr ""
+"Ðекоторые окна могут быть перемещены в ÑоответÑтвии пониженной разрешении."
#: src/gui/setup_video.cpp:612
#, fuzzy
@@ -1645,7 +1608,7 @@ msgstr "Эффекты чаÑтиц"
#: src/gui/setup_video.cpp:613
msgid "Changes will take effect on map change."
-msgstr ""
+msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑтупÑÑ‚ в Ñилу при переходе на другую карты."
#: src/gui/skilldialog.cpp:212 src/gui/windowmenu.cpp:59
msgid "Skills"
@@ -1656,34 +1619,34 @@ msgid "Up"
msgstr "Верх"
#: src/gui/skilldialog.cpp:269
-#, fuzzy, c-format
+#, c-format
msgid "Skill points available: %d"
-msgstr "Очков навыков: %d"
+msgstr ""
#: src/gui/skilldialog.cpp:351
-#, fuzzy, c-format
+#, c-format
msgid "Skill Set %d"
-msgstr "Очков навыков: %d"
+msgstr "Ðавыков %d"
#: src/gui/skilldialog.cpp:360
-#, fuzzy, c-format
+#, c-format
msgid "Skill %d"
-msgstr "УмениÑ"
+msgstr "Ð£Ð¼ÐµÐ½Ð¸Ñ %d"
#: src/gui/skilldialog.cpp:442
-#, fuzzy, c-format
+#, c-format
msgid "Lvl: %d (%+d)"
-msgstr "Уровень: %d"
+msgstr "Уровень: %d (%+d)"
#: src/gui/skilldialog.cpp:453
-#, fuzzy, c-format
+#, c-format
msgid "Lvl: %d"
msgstr "Уровень: %d"
#: src/gui/socialwindow.cpp:126
#, c-format
msgid "Invited user %s to guild %s."
-msgstr ""
+msgstr "ПриглаÑить игрока %s в гильдию %s."
#: src/gui/socialwindow.cpp:139
#, c-format
@@ -1692,27 +1655,26 @@ msgstr ""
#: src/gui/socialwindow.cpp:153
msgid "Member Invite to Guild"
-msgstr ""
+msgstr "Приглашение игрока в гильдию"
#: src/gui/socialwindow.cpp:154
#, c-format
msgid "Who would you like to invite to guild %s?"
-msgstr ""
+msgstr "Кого бы вы хотели приглаÑить в гильдию %s?"
#: src/gui/socialwindow.cpp:163
-#, fuzzy
msgid "Leave Guild?"
-msgstr "Создать Гильдию"
+msgstr "Покинуть Гильдию?"
#: src/gui/socialwindow.cpp:164
-#, fuzzy, c-format
+#, c-format
msgid "Are you sure you want to leave guild %s?"
-msgstr "Ð’Ñ‹ дейÑтвительно хотите выйти?"
+msgstr "Ð’Ñ‹ дейÑтвительно хотите покинуть %s?"
#: src/gui/socialwindow.cpp:207 src/net/tmwa/partyhandler.cpp:330
-#, fuzzy, c-format
+#, c-format
msgid "Invited user %s to party."
-msgstr "ПриглаÑить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° канал"
+msgstr "Пользователь %s приглашен в группу"
#: src/gui/socialwindow.cpp:218
#, c-format
@@ -1720,123 +1682,114 @@ msgid "Party %s quit requested."
msgstr ""
#: src/gui/socialwindow.cpp:232
-#, fuzzy
msgid "Member Invite to Party"
-msgstr "ПриглаÑить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° канал"
+msgstr "ПриглаÑить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² группу"
#: src/gui/socialwindow.cpp:233
#, c-format
msgid "Who would you like to invite to party %s?"
-msgstr ""
+msgstr "Кого бы вы хотели приглаÑить в группу %s?"
#: src/gui/socialwindow.cpp:242
msgid "Leave Party?"
-msgstr ""
+msgstr "Покинуть группу?"
#: src/gui/socialwindow.cpp:243
-#, fuzzy, c-format
+#, c-format
msgid "Are you sure you want to leave party %s?"
-msgstr "Ð’Ñ‹ дейÑтвительно хотите выйти?"
+msgstr "Ð’Ñ‹ дейÑтвительно хотите покинуть группу %s? "
#: src/gui/socialwindow.cpp:272
msgid "Create Guild"
msgstr "Создать Гильдию"
#: src/gui/socialwindow.cpp:273 src/gui/socialwindow.cpp:620
-#, fuzzy
msgid "Create Party"
-msgstr "Создать перÑонажа"
+msgstr "Создать группу"
#: src/gui/socialwindow.cpp:312 src/gui/windowmenu.cpp:64
msgid "Social"
msgstr ""
#: src/gui/socialwindow.cpp:330
-#, fuzzy
msgid "Invite"
-msgstr "ПриглаÑить пользователÑ"
+msgstr "ПриглаÑить"
#: src/gui/socialwindow.cpp:331
-#, fuzzy
msgid "Leave"
-msgstr "Большой"
+msgstr "Покинуть"
#: src/gui/socialwindow.cpp:443
-#, fuzzy, c-format
+#, c-format
msgid "Accepted party invite from %s."
-msgstr "ПринÑÑ‚ÑŒ приглашение от %s."
+msgstr "ПринÑто приглашение от %s."
#: src/gui/socialwindow.cpp:449
-#, fuzzy, c-format
+#, c-format
msgid "Rejected party invite from %s."
msgstr "Отклонено приглашение от %s."
#: src/gui/socialwindow.cpp:462
-#, fuzzy, c-format
+#, c-format
msgid "Accepted guild invite from %s."
-msgstr "ПринÑÑ‚ÑŒ приглашение от %s."
+msgstr "ПринÑÑ‚ÑŒ приглашение в гильдию от %s."
#: src/gui/socialwindow.cpp:468
-#, fuzzy, c-format
+#, c-format
msgid "Rejected guild invite from %s."
-msgstr "Отклонено приглашение от %s."
+msgstr "Отклонено приглашение в гильдию от %s."
#: src/gui/socialwindow.cpp:497
msgid "Creating guild failed, please choose a shorter name."
-msgstr ""
+msgstr "Создание гильдии не удалоÑÑŒ, пожалуйÑта, выберите более короткое имÑ."
#: src/gui/socialwindow.cpp:504
#, c-format
msgid "Creating guild called %s."
-msgstr ""
+msgstr "СоздаетÑа Ð³Ð¸Ð»Ð´Ð¸Ñ %s."
#: src/gui/socialwindow.cpp:520
msgid "Creating party failed, please choose a shorter name."
-msgstr ""
+msgstr "Создание группи не удалоÑÑŒ, пожалуйÑта, выберите более короткое имÑ."
#: src/gui/socialwindow.cpp:527
#, c-format
msgid "Creating party called %s."
-msgstr ""
+msgstr "Создание группи %s."
#: src/gui/socialwindow.cpp:541
-#, fuzzy
msgid "Guild Name"
-msgstr "ГильдиÑ"
+msgstr "Ð˜Ð¼Ñ Ð³Ð¸Ð»ÑŒÐ´Ð¸Ð¸"
#: src/gui/socialwindow.cpp:542
-#, fuzzy
msgid "Choose your guild's name."
-msgstr "Выберите Ñервер"
+msgstr "Выберите Ð¸Ð¼Ñ Ð´Ð»Ñ Ð³Ð¸Ð»ÑŒÐ´Ð¸Ð¸."
#: src/gui/socialwindow.cpp:554
-#, fuzzy
msgid "Received guild request, but one already exists."
-msgstr "Получено приглашение в группу, но уже одно еÑÑ‚ÑŒ"
+msgstr "Получено приглашение в гильдию, но уже одно еÑÑ‚ÑŒ"
#: src/gui/socialwindow.cpp:559
-#, fuzzy, c-format
+#, c-format
msgid "%s has invited you to join the guild %s."
-msgstr "%s приглашает приÑоединитьÑÑ Ðº %s группе."
+msgstr "%s приглашает приÑоединитьÑÑ Ð² гильдию к %s ."
#: src/gui/socialwindow.cpp:564
-#, fuzzy
msgid "Accept Guild Invite"
-msgstr "ПринÑÑ‚ÑŒ приглашение в группу"
+msgstr "ПринÑÑ‚ÑŒ приглашение в гильдию"
#: src/gui/socialwindow.cpp:576
msgid "Received party request, but one already exists."
msgstr "Получено приглашение в группу, но уже одно еÑÑ‚ÑŒ"
#: src/gui/socialwindow.cpp:585
-#, fuzzy
msgid "You have been invited you to join a party."
-msgstr "%s приглашает Ð²Ð°Ñ Ðº Ñебе в группу."
+msgstr "Ð’Ñ‹ были приглашены вÑтупить в группу."
#: src/gui/socialwindow.cpp:589
-#, fuzzy, c-format
+#, c-format
msgid "You have been invited to join the %s party."
-msgstr "%s приглашает приÑоединитьÑÑ Ðº %s группе."
+msgstr "Ð’Ñ‹ были приглашены приÑоединитьÑÑ Ðº группе %s."
#: src/gui/socialwindow.cpp:597
#, c-format
@@ -1854,21 +1807,19 @@ msgstr "ПринÑÑ‚ÑŒ приглашение в группу"
#: src/gui/socialwindow.cpp:621
msgid "Cannot create party. You are already in a party"
-msgstr ""
+msgstr "Ðевозможно Ñоздать группу. Ð’Ñ‹ уже в группе"
#: src/gui/socialwindow.cpp:626
-#, fuzzy
msgid "Party Name"
-msgstr "Группа"
+msgstr "Ð¸Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹"
#: src/gui/socialwindow.cpp:627
-#, fuzzy
msgid "Choose your party's name."
-msgstr "Выберите Ñервер"
+msgstr "Выберите название Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ группы."
#: src/gui/specialswindow.cpp:79 src/gui/windowmenu.cpp:62
msgid "Specials"
-msgstr ""
+msgstr "Специальные"
#: src/gui/statuswindow.cpp:113 src/gui/statuswindow.cpp:215
#: src/gui/statuswindow.cpp:262
@@ -1904,9 +1855,9 @@ msgid "Job:"
msgstr "ПрофеÑÑиÑ:"
#: src/gui/statuswindow.cpp:211 src/gui/statuswindow.cpp:247
-#, fuzzy, c-format
+#, c-format
msgid "Character points: %d"
-msgstr "Данные перÑонажа в порÑдке"
+msgstr "Очки перÑонажа: %d"
#: src/gui/statuswindow.cpp:255
#, fuzzy, c-format
@@ -1942,9 +1893,9 @@ msgid "Add"
msgstr "Добавить"
#: src/gui/trade.cpp:98 src/gui/trade.cpp:134
-#, fuzzy, c-format
+#, c-format
msgid "You get %s"
-msgstr "Вы получили %s."
+msgstr "Вы получили %s"
#: src/gui/trade.cpp:99
msgid "You give:"
@@ -1990,9 +1941,8 @@ msgstr "##1 ÐаÑтоÑтельно рекомендуетÑÑ"
#. TRANSLATORS: Begins "It is strongly recommended that".
#: src/gui/updatewindow.cpp:421
-#, fuzzy
msgid "##1 you try again later."
-msgstr "##1 попытатьÑÑ ÐµÑ‰Ðµ раз немного погодÑ"
+msgstr "##1 попробуйте позднее."
#: src/gui/updatewindow.cpp:515
msgid "Completed"
@@ -2061,7 +2011,7 @@ msgstr ""
#: src/gui/widgets/channeltab.cpp:89
msgid "Command: /kick <nick>"
-msgstr ""
+msgstr "Комманда: /kick <Ð¸Ð¼Ñ Ð¿ÐµÑ€Ñонажа>"
#: src/gui/widgets/channeltab.cpp:90
msgid "This command makes <nick> leave the channel."
@@ -2085,9 +2035,9 @@ msgid "Global announcement from %s:"
msgstr "Глобальное объÑвление от %s:"
#: src/gui/widgets/chattab.cpp:153
-#, fuzzy, c-format
+#, c-format
msgid "%s whispers: %s"
-msgstr "%s шепчет: "
+msgstr "%s шепчет: %s"
#: src/gui/widgets/whispertab.cpp:53
msgid "Cannot send empty chat!"
@@ -2095,11 +2045,11 @@ msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ð¾Ñлать пуÑтое Ñообщение!"
#: src/gui/widgets/whispertab.cpp:72
msgid "/ignore > Ignore the other player"
-msgstr ""
+msgstr "/ignore > Игнорировать игрока"
#: src/gui/widgets/whispertab.cpp:73
msgid "/unignore > Stop ignoring the other player"
-msgstr ""
+msgstr "/unignore > Прекратить игнорировать игрока"
#: src/gui/widgets/whispertab.cpp:74
msgid "/close > Close the whisper tab"
@@ -2114,19 +2064,17 @@ msgid "This command closes the current whisper tab."
msgstr "Закрывает вкладку перешептываниÑ"
#: src/gui/widgets/whispertab.cpp:89
-#, fuzzy
msgid "Command: /ignore"
-msgstr "Команда: /where"
+msgstr "Команда: /ignore"
#: src/gui/widgets/whispertab.cpp:90
-#, fuzzy
msgid "This command ignores the other player regardless of current relations."
-msgstr "Эта команда показывает чиÑло пользователей в Ñети на данный момент."
+msgstr "Эта команда не игнорирует игрока вне завиÑимоÑти от текущих отношений."
#: src/gui/widgets/whispertab.cpp:96
-#, fuzzy
msgid "This command stops ignoring the other player if they are being ignored."
-msgstr "Эта команда начнет протоколирование окна чата в файл <Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°>."
+msgstr ""
+"Эта команда прекращает игнорировать других игроков, еÑли они игнорируютÑа."
#: src/gui/windowmenu.cpp:54
msgid "Status"
@@ -2137,14 +2085,12 @@ msgid "Shortcut"
msgstr "Клавиша"
#: src/gui/worldselectdialog.cpp:71
-#, fuzzy
msgid "Select World"
-msgstr "Выбрать Ok"
+msgstr "Выбрать мир"
#: src/gui/worldselectdialog.cpp:76
-#, fuzzy
msgid "Change Login"
-msgstr "Сменить"
+msgstr "Сменить аккаунт"
#: src/gui/worldselectdialog.cpp:77
#, fuzzy
@@ -2188,9 +2134,8 @@ msgid "Stop Attack"
msgstr "Прекратить атаку"
#: src/keyboardconfig.cpp:48
-#, fuzzy
msgid "Target Monster"
-msgstr "ПрицелитьÑÑ Ð½Ð° ближайшего"
+msgstr "ПрицелитьÑÑ Ð² монÑтра"
#: src/keyboardconfig.cpp:49
msgid "Target NPC"
@@ -2339,15 +2284,17 @@ msgid "Ignore input 2"
msgstr "Игнорировать ввод 2"
#: src/keyboardconfig.cpp:183
-#, fuzzy, c-format
+#, c-format
msgid ""
"Conflict \"%s\" and \"%s\" keys. Resolve them, or gameplay may result in "
"strange behaviour."
-msgstr "ИÑправьте их, или игра может ÑÐµÐ±Ñ Ñтранно веÑти."
+msgstr ""
+"Конфликт между \"%s\" и \"%s\" ключами. ИÑправьте их, или игра может ÑÐµÐ±Ñ "
+"Ñтранно веÑти."
#: src/localplayer.cpp:985
msgid "Unable to pick up item."
-msgstr ""
+msgstr "Ðевозможно подобрать предмет."
#. TRANSLATORS: This sentence may be translated differently
#. for different grammatical numbers (singular, plural, ...)
@@ -2380,56 +2327,57 @@ msgstr "Опции:"
#: src/main.cpp:48
msgid " -v --version : Display the version"
-msgstr ""
+msgstr " -v --version : показать верÑию"
#: src/main.cpp:49
-#, fuzzy
msgid " -h --help : Display this help"
-msgstr "/help > Отображает Ñтот текÑÑ‚"
+msgstr " -h --help : Отображает Ñтот текÑÑ‚"
#: src/main.cpp:50
msgid " -C --config-dir : Configuration directory to use"
-msgstr ""
+msgstr " -C --config-dir : ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸"
#: src/main.cpp:51
msgid " -U --username : Login with this username"
-msgstr ""
+msgstr " -U --username : Войти Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ пользователÑ"
#: src/main.cpp:52
msgid " -P --password : Login with this password"
-msgstr ""
+msgstr " -P --password : Войти Ñ Ñтим паролем"
#: src/main.cpp:53
msgid " -c --character : Login with this character"
-msgstr ""
+msgstr " -c --character : ÐвторизоватьÑÑ Ð¿Ð¾Ð´ Ñтим перÑонажем"
#: src/main.cpp:54
msgid " -s --server : Login server name or IP"
-msgstr ""
+msgstr " -s --server : Ð˜Ð¼Ñ Ñервера или IP"
#: src/main.cpp:55
msgid " -p --port : Login server port"
-msgstr ""
+msgstr " -p --port : порт Ñервера"
#: src/main.cpp:56
msgid " --update-host : Use this update host"
-msgstr ""
+msgstr " --update-host : Use this update host"
#: src/main.cpp:57
msgid " -D --default : Choose default character server and character"
-msgstr ""
+msgstr " -D --default : Выберите Ñервер и перÑонажа по умолчанию"
#: src/main.cpp:59
msgid " -u --skip-update : Skip the update downloads"
-msgstr ""
+msgstr " -u --skip-update : пропуÑтить Ñкачивание обновлений"
#: src/main.cpp:60
msgid " -d --data : Directory to load game data from"
-msgstr ""
+msgstr " -d --data : Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ данных игры"
#: src/main.cpp:61
msgid " --localdata-dir : Directory to use as local data directory"
msgstr ""
+" --localdata-dir : Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² качеÑтве локальных "
+"данных"
#: src/main.cpp:62
msgid " --chat-log-dir : Chat log dir to use"
@@ -2437,37 +2385,38 @@ msgstr ""
#: src/main.cpp:63
msgid " --screenshot-dir : Directory to store screenshots"
-msgstr ""
+msgstr " --screenshot-dir : Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ñкриншотов"
#: src/main.cpp:65
msgid " --no-opengl : Disable OpenGL for this session"
-msgstr ""
+msgstr " --no-opengl : Отключить OpenGL Ð´Ð»Ñ Ñтой ÑеÑÑии"
#: src/net/manaserv/beinghandler.cpp:303 src/net/tmwa/playerhandler.cpp:94
msgid "You are dead."
-msgstr ""
+msgstr "Вы мертвы."
#: src/net/manaserv/beinghandler.cpp:304 src/net/tmwa/playerhandler.cpp:95
msgid "We regret to inform you that your character was killed in battle."
-msgstr ""
+msgstr "Мы Ñ Ñожалением Ñообщаем, что ваш перÑонаж был убит в бою."
#: src/net/manaserv/beinghandler.cpp:306 src/net/tmwa/playerhandler.cpp:97
msgid "You are not that alive anymore."
-msgstr ""
+msgstr "Больше Ð²Ð°Ñ Ð½ÐµÑ‚ в живых"
#: src/net/manaserv/beinghandler.cpp:307 src/net/tmwa/playerhandler.cpp:98
msgid "The cold hands of the grim reaper are grabbing for your soul."
-msgstr ""
+msgstr "Холодные руки Ñмерти захватывают вашу души."
#: src/net/manaserv/beinghandler.cpp:308 src/net/tmwa/playerhandler.cpp:99
msgid "Game Over!"
-msgstr ""
+msgstr "Игра окончена!"
#: src/net/manaserv/beinghandler.cpp:309 src/net/tmwa/playerhandler.cpp:101
msgid ""
"No, kids. Your character did not really die. It... err... went to a better "
"place."
msgstr ""
+"Ðет, дети. Ваш перÑонаж не умирает. Он ... ммм ... пошел к лучшей жызни."
#: src/net/manaserv/beinghandler.cpp:311 src/net/tmwa/playerhandler.cpp:103
msgid ""
@@ -2477,7 +2426,7 @@ msgstr ""
#: src/net/manaserv/beinghandler.cpp:313 src/net/tmwa/playerhandler.cpp:105
msgid "I guess this did not run too well."
-msgstr ""
+msgstr "Я думаю, Ñто не Ñлишком хорошо Ñработало."
#: src/net/manaserv/beinghandler.cpp:314 src/net/tmwa/playerhandler.cpp:107
msgid "Do you want your possessions identified?"
@@ -2485,11 +2434,11 @@ msgstr ""
#: src/net/manaserv/beinghandler.cpp:315 src/net/tmwa/playerhandler.cpp:109
msgid "Sadly, no trace of you was ever found..."
-msgstr ""
+msgstr "К Ñожалению, никаких ваших оÑтатков не было найдено ..."
#: src/net/manaserv/beinghandler.cpp:316 src/net/tmwa/playerhandler.cpp:111
msgid "Annihilated."
-msgstr ""
+msgstr "Уничтожены."
#: src/net/manaserv/beinghandler.cpp:317 src/net/tmwa/playerhandler.cpp:113
msgid "Looks like you got your head handed to you."
@@ -2505,14 +2454,12 @@ msgid "Press OK to respawn."
msgstr ""
#: src/net/manaserv/beinghandler.cpp:324
-#, fuzzy
msgid "You Died"
-msgstr "Вы отдаете:"
+msgstr "Вы умерли"
#: src/net/manaserv/charhandler.cpp:138 src/net/manaserv/charhandler.cpp:209
-#, fuzzy
msgid "Not logged in."
-msgstr "Уже в Ñети"
+msgstr "Ðе авторизован."
#: src/net/manaserv/charhandler.cpp:141
msgid "No empty slot."
@@ -2520,34 +2467,31 @@ msgstr ""
#: src/net/manaserv/charhandler.cpp:144
msgid "Invalid name."
-msgstr ""
+msgstr "Ðеверное имÑ."
#: src/net/manaserv/charhandler.cpp:147
-#, fuzzy
msgid "Character's name already exists."
-msgstr "Пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует"
+msgstr "ПерÑонаж Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует."
#: src/net/manaserv/charhandler.cpp:150
msgid "Invalid hairstyle."
-msgstr ""
+msgstr "Ðеверное причеÑка."
#: src/net/manaserv/charhandler.cpp:153
msgid "Invalid hair color."
-msgstr ""
+msgstr "Ðеверный цвет волоÑ."
#: src/net/manaserv/charhandler.cpp:156
msgid "Invalid gender."
-msgstr ""
+msgstr "Ðеверный пол."
#: src/net/manaserv/charhandler.cpp:159
-#, fuzzy
msgid "Character's stats are too high."
-msgstr "Данные перÑонажа в порÑдке"
+msgstr "Данные перÑонажа Ñлишком выÑоки."
#: src/net/manaserv/charhandler.cpp:162
-#, fuzzy
msgid "Character's stats are too low."
-msgstr "Данные перÑонажа в порÑдке"
+msgstr "Данные перÑонажа Ñлишком низки"
#: src/net/manaserv/charhandler.cpp:165
#, c-format
@@ -2558,28 +2502,25 @@ msgstr ""
#: src/net/manaserv/loginhandler.cpp:127 src/net/manaserv/loginhandler.cpp:161
#: src/net/manaserv/loginhandler.cpp:279 src/net/manaserv/loginhandler.cpp:316
#: src/net/tmwa/loginhandler.cpp:95 src/net/tmwa/loginhandler.cpp:182
-#, fuzzy
msgid "Unknown error."
-msgstr "ÐеизвеÑтный предмет"
+msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°."
#: src/net/manaserv/charhandler.cpp:200 src/net/tmwa/charserverhandler.cpp:146
msgid "Info"
msgstr "СведениÑ"
#: src/net/manaserv/charhandler.cpp:200
-#, fuzzy
msgid "Player deleted."
-msgstr "ПерÑонаж удален"
+msgstr "ПерÑонаж удален."
#: src/net/manaserv/charhandler.cpp:212
-#, fuzzy
msgid "Selection out of range."
-msgstr "Сколько предметов продать."
+msgstr "Выбор вне зоне доÑтижениÑ"
#: src/net/manaserv/charhandler.cpp:215
-#, fuzzy, c-format
+#, c-format
msgid "Unknown error (%d)."
-msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°."
+msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° (%d)."
#: src/net/manaserv/charhandler.cpp:250
msgid "No gameservers are available."
@@ -2592,28 +2533,25 @@ msgid "Topic: %s"
msgstr ""
#: src/net/manaserv/chathandler.cpp:191 src/net/manaserv/chathandler.cpp:274
-#, fuzzy
msgid "Players in this channel:"
-msgstr "Удары игрока по монÑтру"
+msgstr "Игроки в Ñтом канале:"
#: src/net/manaserv/chathandler.cpp:208
-#, fuzzy
msgid "Error joining channel."
-msgstr "Команда: /join <канал>"
+msgstr "Ошибка приÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ðº каналу."
#: src/net/manaserv/chathandler.cpp:214
-#, fuzzy
msgid "Listing channels."
-msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° приÑоединение к каналу %s."
+msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° приÑоединение к каналу."
#: src/net/manaserv/chathandler.cpp:226
msgid "End of channel list."
msgstr ""
#: src/net/manaserv/chathandler.cpp:303
-#, fuzzy, c-format
+#, c-format
msgid "%s entered the channel."
-msgstr "%s теперь в группе."
+msgstr "%s вÑтупил в канал"
#: src/net/manaserv/chathandler.cpp:308
#, c-format
@@ -2631,21 +2569,20 @@ msgid "%s has kicked %s."
msgstr ""
#: src/net/manaserv/chathandler.cpp:339
-#, fuzzy
msgid "Unknown channel event."
-msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°."
+msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°."
#: src/net/manaserv/guildhandler.cpp:82
msgid "Guild created."
-msgstr ""
+msgstr "Ð“Ð¸Ð»ÑŒÐ´Ð¸Ñ Ñоздана."
#: src/net/manaserv/guildhandler.cpp:87
msgid "Error creating guild."
-msgstr ""
+msgstr "Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð³Ð¸Ð»ÑŒÐ´Ð¸Ð¸"
#: src/net/manaserv/guildhandler.cpp:97
msgid "Invite sent."
-msgstr ""
+msgstr "Приглашение отправлено."
#: src/net/manaserv/guildhandler.cpp:204
msgid "Member was promoted successfully."
@@ -2660,43 +2597,36 @@ msgid "Wrong magic_token."
msgstr ""
#: src/net/manaserv/loginhandler.cpp:90 src/net/manaserv/loginhandler.cpp:269
-#, fuzzy
msgid "Already logged in."
-msgstr "Уже в Ñети"
+msgstr "Уже в Ñети."
#: src/net/manaserv/loginhandler.cpp:93
-#, fuzzy
msgid "Account banned."
-msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ: %s"
+msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована"
#: src/net/manaserv/loginhandler.cpp:118
-#, fuzzy
msgid "New password incorrect."
-msgstr "Ðовый Ð°Ð´Ñ€ÐµÑ E-mail указан неверно"
+msgstr "Ðовый пароль указан неверно"
#: src/net/manaserv/loginhandler.cpp:121 src/net/tmwa/loginhandler.cpp:89
-#, fuzzy
msgid "Old password incorrect."
-msgstr "Старый Ð°Ð´Ñ€ÐµÑ E-mail указан неверно"
+msgstr "Старый пароль указан неверно"
#: src/net/manaserv/loginhandler.cpp:124 src/net/manaserv/loginhandler.cpp:155
msgid "Account not connected. Please login first."
msgstr ""
#: src/net/manaserv/loginhandler.cpp:149
-#, fuzzy
msgid "New email address incorrect."
-msgstr "Ðовый Ð°Ð´Ñ€ÐµÑ E-mail указан неверно"
+msgstr "Ðовый E-mail Ð°Ð´Ñ€ÐµÑ ÑƒÐºÐ°Ð·Ð°Ð½ неверно"
#: src/net/manaserv/loginhandler.cpp:152
-#, fuzzy
msgid "Old email address incorrect."
-msgstr "Старый Ð°Ð´Ñ€ÐµÑ E-mail указан неверно"
+msgstr "Старый E-mail Ð°Ð´Ñ€ÐµÑ ÑƒÐºÐ°Ð·Ð°Ð½ неверно."
#: src/net/manaserv/loginhandler.cpp:158
-#, fuzzy
msgid "The new email address already exists."
-msgstr "Введенный Ð°Ð´Ñ€ÐµÑ E-mail уже зарегиÑтрирован."
+msgstr "Введенный E-mail Ð°Ð´Ñ€ÐµÑ ÑƒÐ¶Ðµ зарегиÑтрирован."
#: src/net/manaserv/loginhandler.cpp:239
msgid ""
@@ -2704,38 +2634,32 @@ msgid ""
msgstr ""
#: src/net/manaserv/loginhandler.cpp:263 src/net/manaserv/loginhandler.cpp:300
-#, fuzzy
msgid "Client version is too old."
-msgstr "ВерÑÐ¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚-программы уÑтарела."
+msgstr "ВерÑÐ¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° уÑтарела."
#: src/net/manaserv/loginhandler.cpp:266
-#, fuzzy
msgid "Wrong username or password."
-msgstr "Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ пароль"
+msgstr "Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ пароль."
#: src/net/manaserv/loginhandler.cpp:272
-#, fuzzy
msgid "Account banned"
-msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ: %s"
+msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокированна"
#: src/net/manaserv/loginhandler.cpp:275
msgid "Login attempt too soon after previous attempt."
msgstr ""
#: src/net/manaserv/loginhandler.cpp:303
-#, fuzzy
msgid "Wrong username, password or email address."
-msgstr "Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, пароль или Ð°Ð´Ñ€ÐµÑ E-mail"
+msgstr "Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, пароль или Ð°Ð´Ñ€ÐµÑ E-mail."
#: src/net/manaserv/loginhandler.cpp:306
-#, fuzzy
msgid "Username already exists."
-msgstr "Пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует"
+msgstr "Пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует."
#: src/net/manaserv/loginhandler.cpp:309
-#, fuzzy
msgid "Email address already exists."
-msgstr "Введенный Ð°Ð´Ñ€ÐµÑ E-mail уже зарегиÑтрирован."
+msgstr "E-mail уже зарегиÑтрирован."
#: src/net/manaserv/loginhandler.cpp:312
msgid "You took too long with the captcha or your response was incorrect."
@@ -2743,7 +2667,7 @@ msgstr ""
#: src/net/manaserv/partyhandler.cpp:87
msgid "Joined party."
-msgstr ""
+msgstr "ПриÑоединилÑÑ Ðº группе."
#: src/net/manaserv/partyhandler.cpp:105
#, c-format
@@ -2751,17 +2675,17 @@ msgid "%s joined the party."
msgstr "%s теперь в группе."
#: src/net/manaserv/partyhandler.cpp:123
-#, fuzzy, c-format
+#, c-format
msgid "%s rejected your invite."
-msgstr "Отклонено приглашение от %s."
+msgstr "%s отклонил ваше приглашение."
#: src/net/manaserv/tradehandler.cpp:95
msgid "Accepting incoming trade requests."
-msgstr ""
+msgstr "ВходÑщих запроÑов торговли принимаютÑÑ."
#: src/net/manaserv/tradehandler.cpp:97
msgid "Ignoring incoming trade requests."
-msgstr ""
+msgstr "ВходÑщих запроÑов торговли игнарируютÑа."
#: src/net/manaserv/tradehandler.cpp:115 src/net/tmwa/tradehandler.cpp:109
msgid "Request for Trade"
@@ -2770,20 +2694,20 @@ msgstr ""
#: src/net/manaserv/tradehandler.cpp:116 src/net/tmwa/tradehandler.cpp:110
#, c-format
msgid "%s wants to trade with you, do you accept?"
-msgstr ""
+msgstr "%s хочет торговатÑÑ Ñ Ð²Ð°Ð¼Ð¸, вы принимаете?"
#: src/net/manaserv/tradehandler.cpp:134
#, c-format
msgid "Trading with %s"
-msgstr ""
+msgstr "ТорговатьÑÑ Ñ %s"
#: src/net/manaserv/tradehandler.cpp:148 src/net/tmwa/tradehandler.cpp:224
msgid "Trade canceled."
-msgstr ""
+msgstr "Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°."
#: src/net/manaserv/tradehandler.cpp:155 src/net/tmwa/tradehandler.cpp:231
msgid "Trade completed."
-msgstr ""
+msgstr "Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°."
#: src/net/tmwa/adminhandler.cpp:64
msgid "Kick failed!"
@@ -2816,11 +2740,11 @@ msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾Ð´Ð°Ñ‚ÑŒ!"
#: src/net/tmwa/charserverhandler.cpp:103
msgid "Access denied. Most likely, there are too many players on this server."
msgstr ""
+"Отказано в доÑтупе. Скорее вÑего, Ñлишком много игроков на Ñтом Ñервере."
#: src/net/tmwa/charserverhandler.cpp:107
-#, fuzzy
msgid "Cannot use this ID."
-msgstr "ÐÐ¸Ð·Ð·Ñ Ð¸Ñпользовать данный ID"
+msgstr "ÐÐ¸Ð·Ð·Ñ Ð¸Ñпользовать данный ID."
#: src/net/tmwa/charserverhandler.cpp:110
#, fuzzy
@@ -2864,14 +2788,14 @@ msgid "Luck:"
msgstr "Удача:"
#: src/net/tmwa/chathandler.cpp:87
-#, fuzzy, c-format
+#, c-format
msgid "Whisper could not be sent, %s is offline."
-msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾ÑˆÐµÐ¿Ñ‚Ð°Ñ‚ÑŒ: пользователь оффлайн"
+msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾ÑˆÐµÐ¿Ñ‚Ð°Ñ‚ÑŒ: %s оффлайн"
#: src/net/tmwa/chathandler.cpp:96
-#, fuzzy, c-format
+#, c-format
msgid "Whisper could not be sent, ignored by %s."
-msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾ÑˆÐµÐ¿Ñ‚Ð°Ñ‚ÑŒ: пользователь игнорирует шептание..."
+msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾ÑˆÐµÐ¿Ñ‚Ð°Ñ‚ÑŒ: %s игнорирует шептание..."
#: src/net/tmwa/chathandler.cpp:230
#, fuzzy
@@ -2888,16 +2812,15 @@ msgstr "Каналы не поддерживаютÑÑ!"
#: src/net/tmwa/gamehandler.cpp:88
#, c-format
msgid "Online users: %d"
-msgstr ""
+msgstr "Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð² Ñети: %d"
#: src/net/tmwa/gamehandler.cpp:101
-#, fuzzy
msgid "Game"
-msgstr "ИмÑ"
+msgstr "Игра"
#: src/net/tmwa/gamehandler.cpp:101
msgid "Request to quit denied!"
-msgstr ""
+msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° выход отклонен!"
#: src/net/tmwa/generalhandler.cpp:102
#, c-format
@@ -2907,7 +2830,7 @@ msgstr "Сила %+d"
#: src/net/tmwa/generalhandler.cpp:103
#, c-format
msgid "Agility %+d"
-msgstr ""
+msgstr "ЛовкоÑÑ‚ÑŒ %+d"
#: src/net/tmwa/generalhandler.cpp:104
#, c-format
@@ -2917,7 +2840,7 @@ msgstr "ВыноÑливоÑÑ‚ÑŒ %+d"
#: src/net/tmwa/generalhandler.cpp:105
#, c-format
msgid "Intelligence %+d"
-msgstr ""
+msgstr "Интеллект %+d"
#: src/net/tmwa/generalhandler.cpp:106
#, c-format
@@ -2930,37 +2853,32 @@ msgid "Luck %+d"
msgstr "Удача %+d"
#: src/net/tmwa/generalhandler.cpp:132
-#, fuzzy
msgid "Authentication failed."
-msgstr "Ошибка авторизации"
+msgstr "Ошибка авторизации."
#: src/net/tmwa/generalhandler.cpp:135
-#, fuzzy
msgid "No servers available."
-msgstr "Ðету доÑтупных Ñерверов"
+msgstr "Ðет доÑтупных Ñерверов"
#: src/net/tmwa/generalhandler.cpp:139
-#, fuzzy
msgid "Someone else is trying to use this account."
-msgstr "Кто-то еще пытаетÑÑ Ð²Ð¾ÑпользоватьÑÑ Ð´Ð°Ð½Ð½Ñ‹Ð¼ аккаунтом"
+msgstr "Кто-то еще пытаетÑÑ Ð²Ð¾ÑпользоватьÑÑ Ð´Ð°Ð½Ð½Ñ‹Ð¼ аккаунтом."
#: src/net/tmwa/generalhandler.cpp:142
-#, fuzzy
msgid "This account is already logged in."
-msgstr "Этот аккаунт уже авторизован"
+msgstr "Этот аккаунт уже авторизован."
#: src/net/tmwa/generalhandler.cpp:145
msgid "Speed hack detected."
-msgstr ""
+msgstr "Обнаружен хак ÑкороÑти."
#: src/net/tmwa/generalhandler.cpp:148
msgid "Duplicated login."
-msgstr ""
+msgstr "Дублированный логин."
#: src/net/tmwa/generalhandler.cpp:151
-#, fuzzy
msgid "Unknown connection error."
-msgstr "ÐеизвеÑтный Глюк авторизации"
+msgstr "ÐеизвеÑтный Глюк авторизации."
#: src/net/tmwa/generalhandler.cpp:209
msgid "Got disconnected from server!"
@@ -2972,7 +2890,7 @@ msgstr "Сила"
#: src/net/tmwa/generalhandler.cpp:231
msgid "Agility"
-msgstr ""
+msgstr "ЛовкоÑÑ‚ÑŒ"
#: src/net/tmwa/generalhandler.cpp:232
msgid "Vitality"
@@ -2991,34 +2909,28 @@ msgid "Luck"
msgstr "Удача"
#: src/net/tmwa/generalhandler.cpp:238
-#, fuzzy
msgid "Defense"
-msgstr "Защита:"
+msgstr "Защита"
#: src/net/tmwa/generalhandler.cpp:239
-#, fuzzy
msgid "M.Attack"
-msgstr "МагичеÑÐºÐ°Ñ Ð°Ñ‚Ð°ÐºÐ°:"
+msgstr "МагичеÑÐºÐ°Ñ Ð°Ñ‚Ð°ÐºÐ°"
#: src/net/tmwa/generalhandler.cpp:240
-#, fuzzy
msgid "M.Defense"
-msgstr "МагичеÑÐºÐ°Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ð°:"
+msgstr "МагичеÑÐºÐ°Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ð°"
#: src/net/tmwa/generalhandler.cpp:241
-#, fuzzy, c-format
msgid "% Accuracy"
-msgstr "% точноÑти:"
+msgstr "% ТочноÑÑ‚ÑŒ"
#: src/net/tmwa/generalhandler.cpp:242
-#, fuzzy, c-format
msgid "% Evade"
-msgstr "% уклонениÑ:"
+msgstr "% Уварот"
#: src/net/tmwa/generalhandler.cpp:243
-#, fuzzy, c-format
msgid "% Critical"
-msgstr "КритичеÑкий удар"
+msgstr "% КритичеÑкий"
#: src/net/tmwa/gui/guildtab.cpp:45
msgid "Guild"
@@ -3029,57 +2941,52 @@ msgid "/help > Display this help."
msgstr "/help > Показать Ñию Ñправку"
#: src/net/tmwa/gui/guildtab.cpp:62
-#, fuzzy
msgid "/invite > Invite a player to your guild"
-msgstr "/invite > ПриглаÑить игрока в вашу группу"
+msgstr "/invite > ПриглаÑить игрока в вашу гильдию"
#: src/net/tmwa/gui/guildtab.cpp:63
-#, fuzzy
msgid "/leave > Leave the guild you are in"
-msgstr "/leave > Покинуть текущую группу"
+msgstr "/leave > Покинуть текущую гильдию"
#: src/net/tmwa/gui/guildtab.cpp:64
-#, fuzzy
msgid "/kick > Kick some one from the guild you are in"
-msgstr "/kick > Вышвырнуть кого-либо из вашей текущей группы"
+msgstr "/kick > Вышвырнуть кого-либо из вашей текущей гильдии"
#: src/net/tmwa/gui/guildtab.cpp:73 src/net/tmwa/gui/partytab.cpp:73
msgid "Command: /invite <nick>"
msgstr "Комманда: /invite <игрок>"
#: src/net/tmwa/gui/guildtab.cpp:74
-#, fuzzy
msgid "This command invites <nick> to the guild you're in."
-msgstr "Эта команда приглашает <Ð¸Ð¼Ñ Ð¿ÐµÑ€Ñонажа> к вам в группу."
+msgstr "Эта команда приглашает <Ð¸Ð¼Ñ Ð¿ÐµÑ€Ñонажа> к вам в гильдию."
#: src/net/tmwa/gui/guildtab.cpp:80 src/net/tmwa/gui/partytab.cpp:80
msgid "Command: /leave"
msgstr "Комманда: /leave"
#: src/net/tmwa/gui/guildtab.cpp:81
-#, fuzzy
msgid "This command causes the player to leave the guild."
-msgstr "Эта комманда заÑтавлÑет игрока покинуть группу"
+msgstr "Эта комманда заÑтавлÑет игрока покинуть группу."
#: src/net/tmwa/gui/guildtab.cpp:89
msgid "Guild name is missing."
-msgstr ""
+msgstr "ОтÑутÑтвует Ð¸Ð¼Ñ Ð³Ð¸Ð»ÑŒÐ´Ð¸Ð¸."
#: src/net/tmwa/guildhandler.cpp:296
msgid "Could not inivte user to guild."
-msgstr ""
+msgstr "Ðе удалоÑÑŒ приглаÑить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² гильдию."
#: src/net/tmwa/guildhandler.cpp:301
msgid "User rejected guild invite."
-msgstr ""
+msgstr "Пользователь отклонил приглашение в гильдию."
#: src/net/tmwa/guildhandler.cpp:306
msgid "User is now part of your guild."
-msgstr ""
+msgstr "Пользователь теперь ÑвлÑетÑÑ Ñ‡Ð°Ñтью вашей гильдии."
#: src/net/tmwa/guildhandler.cpp:311
msgid "Your guild is full."
-msgstr ""
+msgstr "Ваша Ð³Ð¸Ð»ÑŒÐ´Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð°."
#: src/net/tmwa/guildhandler.cpp:316
msgid "Unknown guild invite response."
@@ -3087,7 +2994,7 @@ msgstr ""
#: src/net/tmwa/guildhandler.cpp:393
msgid "Guild creation isn't supported yet."
-msgstr ""
+msgstr "Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð³Ð¸Ð»ÑŒÐ´Ð¸Ð¸ еще не поддерживаетÑÑ."
#: src/net/tmwa/gui/partytab.cpp:43
msgid "Party"
@@ -3212,31 +3119,28 @@ msgstr ""
#: src/net/tmwa/loginhandler.cpp:92
msgid "New password too short."
-msgstr ""
+msgstr "Ðовый пароль Ñлишком короткий."
#: src/net/tmwa/loginhandler.cpp:156
-#, fuzzy
msgid "Unregistered ID."
-msgstr "Удалить региÑтрацию"
+msgstr "ÐезарегеÑтрированый ID."
#: src/net/tmwa/loginhandler.cpp:159
-#, fuzzy
msgid "Wrong password."
-msgstr "Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ пароль"
+msgstr "Ðеправильный пароль."
#: src/net/tmwa/loginhandler.cpp:162
msgid "Account expired."
msgstr ""
#: src/net/tmwa/loginhandler.cpp:165
-#, fuzzy
msgid "Rejected from server."
-msgstr "Отклонено приглашение от %s."
+msgstr "отклонены от Ñервера."
#: src/net/tmwa/loginhandler.cpp:168
msgid ""
"You have been permanently banned from the game. Please contact the GM team."
-msgstr ""
+msgstr "Ð’Ñ‹ были заблокированы от игры. ПожалуйÑта, ÑвÑжитеÑÑŒ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ GM."
#: src/net/tmwa/loginhandler.cpp:172
#, c-format
@@ -3244,48 +3148,47 @@ msgid ""
"You have been temporarily banned from the game until %s.\n"
"Please contact the GM team via the forums."
msgstr ""
+"Вы были заблокированы от игры до %s.\n"
+"ПожалуйÑта, ÑвÑжитеÑÑŒ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ GM Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŽ форума"
#: src/net/tmwa/loginhandler.cpp:179
-#, fuzzy
msgid "This user name is already taken."
-msgstr "Этот аккаунт уже авторизован"
+msgstr "Этот аккаунт уже зарегиÑтрирован"
#: src/net/tmwa/network.cpp:145
msgid "Empty address given to Network::connect()!"
msgstr ""
#: src/net/tmwa/network.cpp:345
-#, fuzzy
msgid "Unable to resolve host \""
-msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾Ð´Ð°Ñ‚ÑŒ!"
+msgstr "Ðевозможно подключитьÑÑ Ðº хоÑту \""
#: src/net/tmwa/network.cpp:414
-#, fuzzy
msgid "Connection to server terminated. "
-msgstr "Подключение к Ñерверу карт..."
+msgstr "Подключение к карт прекращено"
#: src/net/tmwa/partyhandler.cpp:82
msgid "Could not create party."
-msgstr ""
+msgstr "Ðе удалоÑÑŒ Ñоздать группу."
#: src/net/tmwa/partyhandler.cpp:84
msgid "Party successfully created."
-msgstr ""
+msgstr "Группа уÑпешно Ñоздана."
#: src/net/tmwa/partyhandler.cpp:119
#, c-format
msgid "%s is already a member of a party."
-msgstr ""
+msgstr "%s уже ÑвлÑетÑÑ Ñ‡Ð»ÐµÐ½Ð¾Ð¼ группы"
#: src/net/tmwa/partyhandler.cpp:123
#, c-format
msgid "%s refused your invitation."
-msgstr ""
+msgstr "%s отклонил ваше приглашение."
#: src/net/tmwa/partyhandler.cpp:127
#, c-format
msgid "%s is now a member of your party."
-msgstr ""
+msgstr "%s теперь ÑвлÑетÑÑ Ñ‡Ð»ÐµÐ½Ð¾Ð¼ вашей группы."
#: src/net/tmwa/partyhandler.cpp:131
#, c-format
@@ -3294,35 +3197,35 @@ msgstr ""
#: src/net/tmwa/partyhandler.cpp:236
msgid "You have left the party."
-msgstr ""
+msgstr "Вы покинули группу."
#: src/net/tmwa/partyhandler.cpp:246
#, c-format
msgid "%s has left your party."
-msgstr ""
+msgstr "%s вышел из группы"
#: src/net/tmwa/partyhandler.cpp:299
#, c-format
msgid "An unknown member tried to say: %s"
-msgstr ""
+msgstr "ÐеизвеÑтный член хотел Ñказать: %s"
#: src/net/tmwa/partyhandler.cpp:335
#, c-format
msgid "Inviting failed, because you can't see a player called %s."
-msgstr ""
+msgstr "Приглашение не удалоÑÑŒ, потому что вы не можете видеть игрока %s."
#: src/net/tmwa/partyhandler.cpp:340
msgid "You can only inivte when you are in a party!"
-msgstr ""
+msgstr "Ð’Ñ‹ можете приглашать только когда вы находитеÑÑŒ в группе!"
#: src/net/tmwa/partyhandler.cpp:368
#, c-format
msgid "%s is not in your party!"
-msgstr ""
+msgstr "%s не находитÑÑ Ð² вашей группе!"
#: src/net/tmwa/playerhandler.cpp:100
msgid "Insert coin to continue."
-msgstr ""
+msgstr "Ð’Ñтавьте монету, чтобы продолжить."
#: src/net/tmwa/playerhandler.cpp:118
msgid "You're not dead yet. You're just resting."
@@ -3330,7 +3233,7 @@ msgstr ""
#: src/net/tmwa/playerhandler.cpp:119
msgid "You are no more."
-msgstr ""
+msgstr "Ð’Ð°Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ нет."
#: src/net/tmwa/playerhandler.cpp:120
msgid "You have ceased to be."
@@ -3372,7 +3275,7 @@ msgstr ""
#: src/net/tmwa/playerhandler.cpp:130
msgid "You are an ex-player."
-msgstr ""
+msgstr "Вы бывшый игрок."
#: src/net/tmwa/playerhandler.cpp:131
msgid "You're pining for the fjords."
@@ -3380,7 +3283,7 @@ msgstr ""
#: src/net/tmwa/playerhandler.cpp:246 src/net/tmwa/playerhandler.cpp:285
msgid "Message"
-msgstr ""
+msgstr "Сообщение"
#: src/net/tmwa/playerhandler.cpp:247
msgid ""
@@ -3388,37 +3291,37 @@ msgid ""
msgstr ""
#: src/net/tmwa/playerhandler.cpp:313
-#, fuzzy, c-format
+#, c-format
msgid "You picked up %s."
msgstr "Вы получили %s."
#: src/net/tmwa/playerhandler.cpp:348
msgid "Cannot raise skill!"
-msgstr ""
+msgstr "Ðевозможно повыÑить умение!"
#: src/net/tmwa/playerhandler.cpp:488
msgid "Equip arrows first."
-msgstr ""
+msgstr "Сначала оденьте Ñтрелы"
#: src/net/tmwa/specialhandler.cpp:144
msgid "Trade failed!"
-msgstr ""
+msgstr "Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð½Ðµ удалаÑÑŒ!"
#: src/net/tmwa/specialhandler.cpp:147
msgid "Emote failed!"
-msgstr ""
+msgstr "Ð­Ð¼Ð¾Ñ†Ð¸Ñ Ð½Ðµ удалаÑÑŒ!"
#: src/net/tmwa/specialhandler.cpp:150
msgid "Sit failed!"
-msgstr ""
+msgstr "Ðе удалоÑÑŒ ÑеÑÑ‚ÑŒ!"
#: src/net/tmwa/specialhandler.cpp:153
msgid "Chat creating failed!"
-msgstr ""
+msgstr "Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‡Ð°Ñ‚ не удалоÑÑŒ!"
#: src/net/tmwa/specialhandler.cpp:156
msgid "Could not join party!"
-msgstr ""
+msgstr "Ðевозможно приÑоединитьÑÑ Ðº группе!"
#: src/net/tmwa/specialhandler.cpp:159
msgid "Cannot shout!"
@@ -3430,11 +3333,11 @@ msgstr "У Ð’Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточный уровень!"
#: src/net/tmwa/specialhandler.cpp:171
msgid "Insufficient HP!"
-msgstr ""
+msgstr "ÐедоÑтаточно HP!"
#: src/net/tmwa/specialhandler.cpp:174
msgid "Insufficient SP!"
-msgstr ""
+msgstr "ÐедоÑтаточно SP!"
#: src/net/tmwa/specialhandler.cpp:177
msgid "You have no memos!"
@@ -3446,7 +3349,7 @@ msgstr "Ð’Ñ‹ не можете Ñделать Ñто ÑейчаÑ!"
#: src/net/tmwa/specialhandler.cpp:183
msgid "Seems you need more money... ;-)"
-msgstr ""
+msgstr "КажетÑÑ, вам нужно больше денег... ;-)"
#: src/net/tmwa/specialhandler.cpp:186
msgid "You cannot use this skill with that kind of weapon!"
@@ -3474,7 +3377,7 @@ msgstr ""
#: src/net/tmwa/specialhandler.cpp:210
msgid "Could not steal anything..."
-msgstr ""
+msgstr "Ðечего не удалоÑÑŒ украÑÑ‚ÑŒ..."
#: src/net/tmwa/specialhandler.cpp:213
msgid "Poison had no effect..."
@@ -3482,25 +3385,25 @@ msgstr "Яд не подейÑтвовал..."
#: src/net/tmwa/tradehandler.cpp:126
msgid "Trading isn't possible. Trade partner is too far away."
-msgstr ""
+msgstr "Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°. Партнер находитÑÑ Ñлишком далеко."
#: src/net/tmwa/tradehandler.cpp:130
msgid "Trading isn't possible. Character doesn't exist."
-msgstr ""
+msgstr "Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°. ПерÑонаж не ÑущеÑтвует."
#: src/net/tmwa/tradehandler.cpp:134
msgid "Trade cancelled due to an unknown reason."
-msgstr ""
+msgstr "Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð° из-за неизвеÑтной причины."
#: src/net/tmwa/tradehandler.cpp:139
#, c-format
msgid "Trade: You and %s"
-msgstr ""
+msgstr "ТорговлÑ: Ð’Ñ‹ и %s"
#: src/net/tmwa/tradehandler.cpp:146
#, c-format
msgid "Trade with %s cancelled."
-msgstr ""
+msgstr "Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ñ %s отменена"
#: src/net/tmwa/tradehandler.cpp:154
msgid "Unhandled trade cancel packet."
@@ -3519,9 +3422,8 @@ msgid "Failed adding item for unknown reason."
msgstr ""
#: src/playerrelations.cpp:310
-#, fuzzy
msgid "Completely ignore"
-msgstr "@@ignore|ПолноÑтью игнорировать %s@@"
+msgstr "ПолноÑтью игнорировать"
#: src/playerrelations.cpp:324
msgid "Print '...'"
@@ -3532,7 +3434,6 @@ msgid "Blink name"
msgstr ""
#: src/resources/itemdb.cpp:44
-#, c-format
msgid "Attack %+d"
msgstr "Ðтака %+d"
@@ -3559,6 +3460,144 @@ msgstr "ÐеизвеÑтный предмет"
msgid "unnamed"
msgstr "безымÑнный"
+#: ../src/main.cpp:57
+msgid " -L --localdata-dir : Directory to use as local data directory"
+msgstr ""
+
+#: ../src/commandhandler.cpp:182
+msgid "/away > Tell the other whispering players you're away from keyboard."
+msgstr ""
+
+#: ../src/localplayer.cpp:1458
+msgid "Away"
+msgstr ""
+
+#: ../src/gui/userpalette.cpp:91
+msgid "Being"
+msgstr ""
+
+#: ../src/commandhandler.cpp:274
+#, fuzzy
+msgid "Command: /away"
+msgstr "Команда: /who"
+
+#: ../src/commandhandler.cpp:271
+#, fuzzy
+msgid "Command: /away <afk reason>"
+msgstr "Команда: /w <ник> <Ñообщение>"
+
+#: ../src/playerrelations.cpp:379
+msgid "Floating '...' bubble"
+msgstr ""
+
+#: ../src/playerrelations.cpp:382
+msgid "Floating bubble"
+msgstr ""
+
+#: ../src/gui/userpalette.cpp:98
+#, fuzzy
+msgid "Guild Members"
+msgstr "ГильдиÑ"
+
+#: ../src/localplayer.cpp:1254
+#, fuzzy
+msgid "Inventory is full."
+msgstr "Инвентарь"
+
+#: ../src/localplayer.cpp:1257
+msgid "Item belongs to someone else."
+msgstr ""
+
+#: ../src/localplayer.cpp:1253
+msgid "Item is too far away"
+msgstr ""
+
+#: ../src/localplayer.cpp:1252
+msgid "Item is too heavy."
+msgstr ""
+
+#: ../src/gui/userpalette.cpp:109
+#, fuzzy
+msgid "Local Player Critical Hit"
+msgstr "КритичеÑкий удар"
+
+#: ../src/gui/userpalette.cpp:107
+#, fuzzy
+msgid "Local Player Hits Monster"
+msgstr "Удары игрока по монÑтру"
+
+#: ../src/gui/userpalette.cpp:111
+#, fuzzy
+msgid "Local Player Miss"
+msgstr "Сохранить ÑпиÑок игроков"
+
+#: ../src/commandhandler.cpp:408
+msgid "No <nick> was given."
+msgstr ""
+
+#: ../src/net/manaserv/charhandler.cpp:161
+msgid "One stat is zero."
+msgstr ""
+
+#: ../src/gui/userpalette.cpp:103
+#, fuzzy
+msgid "Other Player Hits Monster"
+msgstr "Удары игрока по монÑтру"
+
+#: ../src/gui/userpalette.cpp:97
+#, fuzzy
+msgid "Party Members"
+msgstr "Группа"
+
+#: ../src/gui/specialswindow.cpp:191
+#, c-format
+msgid "Special %d"
+msgstr ""
+
+#: ../src/gui/specialswindow.cpp:174
+#, c-format
+msgid "Specials Set %d"
+msgstr ""
+
+#: ../src/localplayer.cpp:1255
+msgid "Stack is too big."
+msgstr ""
+
+#: ../src/commandhandler.cpp:275
+#, fuzzy
+msgid "This command clears the away status and message."
+msgstr "Задает тему Ð´Ð»Ñ <Ñообщение>."
+
+#: ../src/commandhandler.cpp:272
+msgid "This command tells you're away from keyboard with the given reason."
+msgstr ""
+
+#: ../src/localplayer.cpp:1251
+msgid "Tried to pick up nonexistent item."
+msgstr ""
+
+#: ../src/net/net.cpp:145
+#, fuzzy
+msgid "Unknown Server Type! Exiting."
+msgstr "Вещь неизвеÑтного типа"
+
+#: ../src/localplayer.cpp:1258
+msgid "Unknown problem picking up item."
+msgstr ""
+
+#: ../src/net/tmwa/chathandler.cpp:84
+msgid "Whisper could not be sent, ignored by user."
+msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾ÑˆÐµÐ¿Ñ‚Ð°Ñ‚ÑŒ: пользователь игнорирует шептание..."
+
+#: ../src/net/tmwa/chathandler.cpp:80
+msgid "Whisper could not be sent, user is offline."
+msgstr "ÐÐ¸Ð·Ð·Ñ Ð¿Ñ€Ð¾ÑˆÐµÐ¿Ñ‚Ð°Ñ‚ÑŒ: пользователь оффлайн"
+
+#: ../src/net/manaserv/stats.cpp:118
+#, c-format
+msgid "Willpower %+d"
+msgstr ""
+
#, fuzzy
#~ msgid "HP"
#~ msgstr "ЖО:"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 79dd72cc..f8ae39fd 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -453,6 +453,8 @@ SET(SRCS
equipment.h
event.cpp
event.h
+ eventlistener.cpp
+ eventlistener.h
flooritem.cpp
flooritem.h
game.cpp
@@ -476,8 +478,6 @@ SET(SRCS
joystick.h
keyboardconfig.cpp
keyboardconfig.h
- listener.cpp
- listener.h
localplayer.cpp
localplayer.h
log.cpp
diff --git a/src/actorsprite.cpp b/src/actorsprite.cpp
index b2f921cd..988a25e5 100644
--- a/src/actorsprite.cpp
+++ b/src/actorsprite.cpp
@@ -60,9 +60,9 @@ ActorSprite::~ActorSprite()
mUsedTargetCursor = NULL;
// Notify listeners of the destruction.
- Mana::Event event(EVENT_DESTROYED);
+ Event event(Event::Destroyed);
event.setActor("source", this);
- event.trigger(CHANNEL_ACTORSPRITE);
+ event.trigger(Event::ActorSpriteChannel);
}
bool ActorSprite::draw(Graphics *graphics, int offsetX, int offsetY) const
@@ -254,10 +254,10 @@ void ActorSprite::updateStunMode(int oldMode, int newMode)
{
if (this == player_node)
{
- Mana::Event event(EVENT_STUN);
+ Event event(Event::Stun);
event.setInt("oldMode", oldMode);
event.setInt("newMode", newMode);
- event.trigger(CHANNEL_ACTORSPRITE);
+ event.trigger(Event::ActorSpriteChannel);
}
handleStatusEffect(StatusEffect::getStatusEffect(oldMode, false), -1);
@@ -268,10 +268,10 @@ void ActorSprite::updateStatusEffect(int index, bool newStatus)
{
if (this == player_node)
{
- Mana::Event event(EVENT_UPDATESTATUSEFFECT);
+ Event event(Event::UpdateStatusEffect);
event.setInt("index", index);
event.setBool("newStatus", newStatus);
- event.trigger(CHANNEL_ACTORSPRITE);
+ event.trigger(Event::ActorSpriteChannel);
}
handleStatusEffect(StatusEffect::getStatusEffect(index, newStatus), index);
diff --git a/src/being.cpp b/src/being.cpp
index 9dbff7f4..5911b03c 100644
--- a/src/being.cpp
+++ b/src/being.cpp
@@ -108,8 +108,8 @@ Being::Being(int id, Type type, int subtype, Map *map):
setShowName(true);
updateColors();
- listen(CHANNEL_CONFIG);
- listen(CHANNEL_CHAT);
+ listen(Event::ConfigChannel);
+ listen(Event::ChatChannel);
}
Being::~Being()
@@ -1170,11 +1170,12 @@ void Being::talkTo()
Net::getNpcHandler()->talk(mId);
}
-void Being::event(Channels channel, const Mana::Event &event)
+void Being::event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_CHAT &&
- (event.getName() == EVENT_BEING || event.getName() == EVENT_PLAYER)
- && event.getInt("permissions") & PlayerRelation::SPEECH_FLOAT)
+ if (channel == Event::ChatChannel &&
+ (event.getType() == Event::Being
+ || event.getType() == Event::Player) &&
+ event.getInt("permissions") & PlayerRelation::SPEECH_FLOAT)
{
try
{
@@ -1183,11 +1184,11 @@ void Being::event(Channels channel, const Mana::Event &event)
setSpeech(event.getString("text"));
}
}
- catch (Mana::BadEvent badEvent)
+ catch (BadEvent badEvent)
{}
}
- else if (channel == CHANNEL_CONFIG &&
- event.getName() == EVENT_CONFIGOPTIONCHANGED)
+ else if (channel == Event::ConfigChannel &&
+ event.getType() == Event::ConfigOptionChanged)
{
if (getType() == PLAYER && event.getString("option") == "visiblenames")
{
diff --git a/src/being.h b/src/being.h
index 6831d5ad..a4e2e443 100644
--- a/src/being.h
+++ b/src/being.h
@@ -23,7 +23,7 @@
#define BEING_H
#include "actorsprite.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "map.h"
#include "position.h"
#include "vector.h"
@@ -61,7 +61,7 @@ enum Gender
GENDER_UNSPECIFIED = 2
};
-class Being : public ActorSprite, public Mana::Listener
+class Being : public ActorSprite, public EventListener
{
public:
/**
@@ -446,7 +446,7 @@ class Being : public ActorSprite, public Mana::Listener
void talkTo();
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
void setMap(Map *map);
diff --git a/src/chatlog.h b/src/chatlog.h
index c359e953..df0af800 100644
--- a/src/chatlog.h
+++ b/src/chatlog.h
@@ -19,17 +19,14 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#ifndef _CHATLOG_H
-#define _CHATLOG_H
+#ifndef CHATLOG_H
+#define CHATLOG_H
#include <fstream>
class ChatLogger
{
public:
- /**
- * Constructor.
- */
ChatLogger();
/**
diff --git a/src/client.cpp b/src/client.cpp
index 7dbbdc88..bac3684f 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -107,7 +107,6 @@ static const int defaultMusicVolume = 60;
// TODO: Get rid fo these globals
std::string errorMessage;
-ErrorListener errorListener;
LoginData loginData;
Configuration config; /**< XML file configuration reader */
@@ -124,11 +123,6 @@ ItemDB *itemDb;
Sound sound;
-void ErrorListener::action(const gcn::ActionEvent &)
-{
- Client::setState(STATE_CHOOSE_SERVER);
-}
-
volatile int tick_time; /**< Tick counter */
volatile int fps = 0; /**< Frames counted in the last second */
volatile int frame_count = 0; /**< Counts the frames during one second */
@@ -189,37 +183,6 @@ bool isDoubleClick(int selected)
return false;
}
-// This anonymous namespace hides whatever is inside from other modules.
-namespace {
-
-class AccountListener : public gcn::ActionListener
-{
-public:
- void action(const gcn::ActionEvent &)
- {
- Client::setState(STATE_CHAR_SELECT);
- }
-} accountListener;
-
-class LoginListener : public gcn::ActionListener
-{
-public:
- void action(const gcn::ActionEvent &)
- {
- Client::setState(STATE_LOGIN);
- }
-} loginListener;
-
-class ServerChoiceListener : public gcn::ActionListener
-{
-public:
- void action(const gcn::ActionEvent &)
- {
- Client::setState(STATE_CHOOSE_SERVER);
- }
-} serverChoiceListener;
-
-} // anonymous namespace
Client *Client::mInstance = 0;
@@ -232,6 +195,7 @@ Client::Client(const Options &options):
mSetupButton(0),
mState(STATE_CHOOSE_SERVER),
mOldState(STATE_START),
+ mStateAfterOkDialog(mState),
mIcon(0),
mLogicCounterId(0),
mSecondsCounterId(0),
@@ -471,12 +435,12 @@ Client::Client(const Options &options):
// Initialize frame limiting
SDL_initFramerate(&mFpsManager);
- listen(CHANNEL_CONFIG);
+ listen(Event::ConfigChannel);
//TODO: fix having to fake a option changed event
- Mana::Event fakeevent(EVENT_CONFIGOPTIONCHANGED);
+ Event fakeevent(Event::ConfigOptionChanged);
fakeevent.setString("option", "fpslimit");
- event(CHANNEL_CONFIG, fakeevent);
+ event(Event::ConfigChannel, fakeevent);
// Initialize PlayerInfo
PlayerInfo::init();
@@ -568,6 +532,8 @@ int Client::exec()
if (game)
game->logic();
+ sound.logic();
+
++lastTickTime;
}
@@ -634,10 +600,10 @@ int Client::exec()
if (mState != mOldState)
{
{
- Mana::Event event(EVENT_STATECHANGE);
+ Event event(Event::StateChange);
event.setInt("oldState", mOldState);
event.setInt("newState", mState);
- event.trigger(CHANNEL_CLIENT);
+ event.trigger(Event::ClientChannel);
}
if (mOldState == STATE_GAME)
@@ -797,7 +763,7 @@ int Client::exec()
paths.init("paths.xml", true);
paths.setDefaultValues(getPathsDefaults());
- Mana::Event::trigger(CHANNEL_CLIENT, EVENT_DBSLOADING);
+ Event::trigger(Event::ClientChannel, Event::LoadingDatabases);
// Load XML databases
ColorDB::load();
@@ -820,11 +786,9 @@ int Client::exec()
errorMessage =
_("This server is missing needed world data. "
"Please contact the administrator(s).");
- mCurrentDialog = new OkDialog(
- _("ItemDB: Error while loading " ITEMS_DB_FILE "!"),
- errorMessage);
- mCurrentDialog->addActionListener(&serverChoiceListener);
- mCurrentDialog = NULL; // OkDialog deletes itself
+ showOkDialog(_("ItemDB: Error while loading "
+ ITEMS_DB_FILE "!"), errorMessage,
+ STATE_CHOOSE_SERVER);
break;
}
Being::load(); // Hairstyles
@@ -914,16 +878,12 @@ int Client::exec()
case STATE_LOGIN_ERROR:
logger->log("State: LOGIN ERROR");
- mCurrentDialog = new OkDialog(_("Error"), errorMessage);
- mCurrentDialog->addActionListener(&loginListener);
- mCurrentDialog = NULL; // OkDialog deletes itself
+ showErrorDialog(errorMessage, STATE_LOGIN);
break;
case STATE_ACCOUNTCHANGE_ERROR:
logger->log("State: ACCOUNT CHANGE ERROR");
- mCurrentDialog = new OkDialog(_("Error"), errorMessage);
- mCurrentDialog->addActionListener(&accountListener);
- mCurrentDialog = NULL; // OkDialog deletes itself
+ showErrorDialog(errorMessage, STATE_CHAR_SELECT);
break;
case STATE_REGISTER_PREP:
@@ -957,10 +917,9 @@ int Client::exec()
case STATE_CHANGEPASSWORD_SUCCESS:
logger->log("State: CHANGE PASSWORD SUCCESS");
- mCurrentDialog = new OkDialog(_("Password Change"),
- _("Password changed successfully!"));
- mCurrentDialog->addActionListener(&accountListener);
- mCurrentDialog = NULL; // OkDialog deletes itself
+ showOkDialog(_("Password Change"),
+ _("Password changed successfully!"),
+ STATE_CHAR_SELECT);
loginData.password = loginData.newPassword;
loginData.newPassword = "";
break;
@@ -977,10 +936,9 @@ int Client::exec()
case STATE_CHANGEEMAIL_SUCCESS:
logger->log("State: CHANGE EMAIL SUCCESS");
- mCurrentDialog = new OkDialog(_("Email Change"),
- _("Email changed successfully!"));
- mCurrentDialog->addActionListener(&accountListener);
- mCurrentDialog = NULL; // OkDialog deletes itself
+ showOkDialog(_("Email Change"),
+ _("Email changed successfully!"),
+ STATE_CHAR_SELECT);
break;
case STATE_UNREGISTER:
@@ -998,12 +956,10 @@ int Client::exec()
logger->log("State: UNREGISTER SUCCESS");
Net::getLoginHandler()->disconnect();
- mCurrentDialog = new OkDialog(_("Unregister Successful"),
- _("Farewell, come back any time..."));
+ showOkDialog(_("Unregister Successful"),
+ _("Farewell, come back any time..."),
+ STATE_CHOOSE_SERVER);
loginData.clear();
- //The errorlistener sets the state to STATE_CHOOSE_SERVER
- mCurrentDialog->addActionListener(&errorListener);
- mCurrentDialog = NULL; // OkDialog deletes itself
break;
case STATE_SWITCH_SERVER:
@@ -1056,9 +1012,7 @@ int Client::exec()
case STATE_ERROR:
logger->log("State: ERROR");
logger->log("Error: %s", errorMessage.c_str());
- mCurrentDialog = new OkDialog(_("Error"), errorMessage);
- mCurrentDialog->addActionListener(&errorListener);
- mCurrentDialog = NULL; // OkDialog deletes itself
+ showErrorDialog(errorMessage, STATE_CHOOSE_SERVER);
Net::getGameHandler()->disconnect();
break;
@@ -1072,10 +1026,24 @@ int Client::exec()
return 0;
}
-void Client::event(Channels channel, const Mana::Event &event)
+void Client::showOkDialog(const std::string &title,
+ const std::string &message,
+ State state)
+{
+ OkDialog *okDialog = new OkDialog(title, message);
+ okDialog->addActionListener(this);
+ mStateAfterOkDialog = state;
+}
+
+void Client::showErrorDialog(const std::string &message, State state)
+{
+ showOkDialog(_("Error"), message, state);
+}
+
+void Client::event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_CONFIG &&
- event.getName() == EVENT_CONFIGOPTIONCHANGED &&
+ if (channel == Event::ConfigChannel &&
+ event.getType() == Event::ConfigOptionChanged &&
event.getString("option") == "fpslimit")
{
const int fpsLimit = config.getIntValue("fpslimit");
@@ -1099,6 +1067,10 @@ void Client::action(const gcn::ActionEvent &event)
if (window->isVisible())
window->requestMoveToTop();
}
+
+ // If this came from the OkDialog used by showOkDialog
+ if (event.getId() == "ok")
+ mState = mStateAfterOkDialog;
}
void Client::initRootDir()
diff --git a/src/client.h b/src/client.h
index 8d2c23d5..4a0bc750 100644
--- a/src/client.h
+++ b/src/client.h
@@ -22,7 +22,7 @@
#ifndef CLIENT_H
#define CLIENT_H
-#include "listener.h"
+#include "eventlistener.h"
#include "net/serverinfo.h"
@@ -52,14 +52,7 @@ extern volatile int fps;
extern volatile int tick_time;
extern volatile int cur_time;
-class ErrorListener : public gcn::ActionListener
-{
- public:
- void action(const gcn::ActionEvent &event);
-};
-
extern std::string errorMessage;
-extern ErrorListener errorListener;
extern LoginData loginData;
/**
@@ -119,7 +112,7 @@ enum State {
* The core part of the client. This class initializes all subsystems, runs
* the event loop, and shuts everything down again.
*/
-class Client : public Mana::Listener, public gcn::ActionListener
+class Client : public EventListener, public gcn::ActionListener
{
public:
/**
@@ -167,6 +160,20 @@ public:
int exec();
+ /**
+ * Pops up an OkDialog with the given \a title and \a message, and
+ * switches to the given \a state when Ok is pressed.
+ */
+ void showOkDialog(const std::string &title,
+ const std::string &message,
+ State state);
+
+ /**
+ * Pops up an error dialog with the given \a message, and switches to the
+ * given \a state when Ok is pressed.
+ */
+ void showErrorDialog(const std::string &message, State state);
+
static void setState(State state)
{ instance()->mState = state; }
@@ -185,7 +192,7 @@ public:
static const std::string &getScreenshotDirectory()
{ return instance()->mScreenshotDir; }
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
void action(const gcn::ActionEvent &event);
private:
@@ -218,6 +225,7 @@ private:
State mState;
State mOldState;
+ State mStateAfterOkDialog;
SDL_Surface *mIcon;
diff --git a/src/commandhandler.h b/src/commandhandler.h
index c14305e1..97055318 100644
--- a/src/commandhandler.h
+++ b/src/commandhandler.h
@@ -37,14 +37,8 @@ extern ChatTab *localChatTab;
class CommandHandler
{
public:
- /**
- * Constructor
- */
CommandHandler();
- /**
- * Destructor
- */
~CommandHandler() {}
/**
diff --git a/src/compoundsprite.cpp b/src/compoundsprite.cpp
index ec45825f..e88a518a 100644
--- a/src/compoundsprite.cpp
+++ b/src/compoundsprite.cpp
@@ -285,6 +285,11 @@ size_t CompoundSprite::getFrameCount(size_t layer)
void CompoundSprite::redraw() const
{
+ // TODO Detect image size needed to avoid cutting off large sprites, and
+ // reduce memory for smaller ones
+ mNeedsRedraw = false;
+ return;
+
// TODO OpenGL support
if (Image::getLoadAsOpenGL())
{
diff --git a/src/configuration.cpp b/src/configuration.cpp
index 44fb6e2e..44621eb3 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -38,9 +38,9 @@ void Configuration::setValue(const std::string &key, const std::string &value)
ConfigurationObject::setValue(key, value);
// Notify listeners
- Mana::Event event(EVENT_CONFIGOPTIONCHANGED);
+ Event event(Event::ConfigOptionChanged);
event.setString("option", key);
- event.trigger(CHANNEL_CONFIG);
+ event.trigger(Event::ConfigChannel);
}
std::string ConfigurationObject::getValue(const std::string &key,
@@ -125,8 +125,8 @@ void Configuration::setDefaultValues(DefaultsData *defaultsData)
mDefaultsData = defaultsData;
}
-Mana::VariableData* Configuration::getDefault(const std::string &key,
- Mana::VariableData::DataType type
+VariableData* Configuration::getDefault(const std::string &key,
+ VariableData::DataType type
) const
{
if (mDefaultsData)
@@ -153,9 +153,9 @@ int Configuration::getIntValue(const std::string &key) const
Options::const_iterator iter = mOptions.find(key);
if (iter == mOptions.end())
{
- Mana::VariableData* vd = getDefault(key, Mana::VariableData::DATA_INT);
+ VariableData* vd = getDefault(key, VariableData::DATA_INT);
if (vd)
- defaultValue = ((Mana::IntData*)vd)->getData();
+ defaultValue = ((IntData*)vd)->getData();
}
else
{
@@ -170,11 +170,11 @@ std::string Configuration::getStringValue(const std::string &key) const
Options::const_iterator iter = mOptions.find(key);
if (iter == mOptions.end())
{
- Mana::VariableData* vd = getDefault(key,
- Mana::VariableData::DATA_STRING);
+ VariableData* vd = getDefault(key,
+ VariableData::DATA_STRING);
if (vd)
- defaultValue = ((Mana::StringData*)vd)->getData();
+ defaultValue = ((StringData*)vd)->getData();
}
else
{
@@ -190,11 +190,11 @@ float Configuration::getFloatValue(const std::string &key) const
Options::const_iterator iter = mOptions.find(key);
if (iter == mOptions.end())
{
- Mana::VariableData* vd = getDefault(key,
- Mana::VariableData::DATA_FLOAT);
+ VariableData* vd = getDefault(key,
+ VariableData::DATA_FLOAT);
if (vd)
- defaultValue = ((Mana::FloatData*)vd)->getData();
+ defaultValue = ((FloatData*)vd)->getData();
}
else
{
@@ -209,11 +209,11 @@ bool Configuration::getBoolValue(const std::string &key) const
Options::const_iterator iter = mOptions.find(key);
if (iter == mOptions.end())
{
- Mana::VariableData* vd = getDefault(key,
- Mana::VariableData::DATA_BOOL);
+ VariableData* vd = getDefault(key,
+ VariableData::DATA_BOOL);
if (vd)
- defaultValue = ((Mana::BoolData*)vd)->getData();
+ defaultValue = ((BoolData*)vd)->getData();
}
else
{
diff --git a/src/configuration.h b/src/configuration.h
index a46b0718..bf8cffde 100644
--- a/src/configuration.h
+++ b/src/configuration.h
@@ -247,8 +247,8 @@ class Configuration : public ConfigurationObject
bool getBoolValue(const std::string &key) const;
- Mana::VariableData* getDefault(const std::string &key,
- Mana::VariableData::DataType type) const;
+ VariableData* getDefault(const std::string &key,
+ VariableData::DataType type) const;
private:
/**
* Clean up the default values member.
diff --git a/src/defaults.cpp b/src/defaults.cpp
index e0e48d60..54e39c1f 100644
--- a/src/defaults.cpp
+++ b/src/defaults.cpp
@@ -26,8 +26,6 @@
#include <stdlib.h>
-using namespace Mana;
-
VariableData* createData(int defData)
{
return new IntData(defData);
diff --git a/src/defaults.h b/src/defaults.h
index b9dfa511..34a5402c 100644
--- a/src/defaults.h
+++ b/src/defaults.h
@@ -25,7 +25,7 @@
#include <string>
#include "variabledata.h"
-typedef std::map<std::string, Mana::VariableData*> DefaultsData;
+typedef std::map<std::string, VariableData*> DefaultsData;
DefaultsData* getConfigDefaults();
DefaultsData* getBrandingDefaults();
diff --git a/src/emoteshortcut.h b/src/emoteshortcut.h
index a95bb264..ea1b73c8 100644
--- a/src/emoteshortcut.h
+++ b/src/emoteshortcut.h
@@ -29,14 +29,8 @@
class EmoteShortcut
{
public:
- /**
- * Constructor.
- */
EmoteShortcut();
- /**
- * Destructor.
- */
~EmoteShortcut();
/**
diff --git a/src/equipment.h b/src/equipment.h
index 0aa10fb0..2ef970ea 100644
--- a/src/equipment.h
+++ b/src/equipment.h
@@ -29,14 +29,8 @@ class Item;
class Equipment
{
public:
- /**
- * Constructor.
- */
Equipment(): mBackend(0) {}
- /**
- * Destructor.
- */
~Equipment() { mBackend = 0; }
class Backend {
diff --git a/src/event.cpp b/src/event.cpp
index c8de2ffd..18091643 100644
--- a/src/event.cpp
+++ b/src/event.cpp
@@ -20,13 +20,10 @@
#include "event.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "variabledata.h"
-namespace Mana
-{
-
-ListenMap Event::mBindings;
+Event::ListenMap Event::mBindings;
Event::~Event()
{
@@ -215,7 +212,7 @@ bool Event::hasActor(const std::string &key) const
// Triggers
-void Event::trigger(Channels channel, const Event &event)
+void Event::trigger(Channel channel, const Event &event)
{
ListenMap::iterator it = mBindings.find(channel);
@@ -232,17 +229,17 @@ void Event::trigger(Channels channel, const Event &event)
}
}
-void Event::bind(Listener *listener, Channels channel)
+void Event::bind(EventListener *listener, Channel channel)
{
mBindings[channel].insert(listener);
}
-void Event::unbind(Listener *listener, Channels channel)
+void Event::unbind(EventListener *listener, Channel channel)
{
mBindings[channel].erase(listener);
}
-void Event::remove(Listener *listener)
+void Event::remove(EventListener *listener)
{
ListenMap::iterator it = mBindings.begin();
while (it != mBindings.end())
@@ -251,5 +248,3 @@ void Event::remove(Listener *listener)
it++;
}
}
-
-} // namespace Mana
diff --git a/src/event.h b/src/event.h
index 758d6b34..c4dcfc9b 100644
--- a/src/event.h
+++ b/src/event.h
@@ -28,80 +28,6 @@
class ActorSprite;
class Item;
-enum Channels
-{
- CHANNEL_ACTORSPRITE,
- CHANNEL_ATTRIBUTES,
- CHANNEL_BUYSELL,
- CHANNEL_CHAT,
- CHANNEL_CLIENT,
- CHANNEL_CONFIG,
- CHANNEL_GAME,
- CHANNEL_ITEM,
- CHANNEL_NOTICES,
- CHANNEL_NPC,
- CHANNEL_STATUS,
- CHANNEL_STORAGE
-};
-
-enum Events
-{
- EVENT_ANNOUNCEMENT,
- EVENT_BEING,
- EVENT_CLOSE,
- EVENT_CLOSEALL,
- EVENT_CLOSESENT,
- EVENT_CONFIGOPTIONCHANGED,
- EVENT_CONSTRUCTED,
- EVENT_DBSLOADING,
- EVENT_DESTROYED,
- EVENT_DESTRUCTED,
- EVENT_DESTRUCTING,
- EVENT_DOCLOSEINVENTORY,
- EVENT_DODROP,
- EVENT_DOEQUIP,
- EVENT_DOMOVE,
- EVENT_DOSPLIT,
- EVENT_DOUNEQUIP,
- EVENT_DOUSE,
- EVENT_END,
- EVENT_ENGINESINITALIZED,
- EVENT_ENGINESINITALIZING,
- EVENT_GUIWINDOWSLOADED,
- EVENT_GUIWINDOWSLOADING,
- EVENT_GUIWINDOWSUNLOADED,
- EVENT_GUIWINDOWSUNLOADING,
- EVENT_INTEGERINPUT,
- EVENT_INTEGERINPUTSENT,
- EVENT_MAPLOADED,
- EVENT_MENU,
- EVENT_MENUSENT,
- EVENT_MESSAGE,
- EVENT_NEXT,
- EVENT_NEXTSENT,
- EVENT_NPCCOUNT,
- EVENT_PLAYER,
- EVENT_POST,
- EVENT_POSTCOUNT,
- EVENT_SENDLETTERSENT,
- EVENT_SERVERNOTICE,
- EVENT_STATECHANGE,
- EVENT_STORAGECOUNT,
- EVENT_STRINGINPUT,
- EVENT_STRINGINPUTSENT,
- EVENT_STUN,
- EVENT_TALKSENT,
- EVENT_TRADING,
- EVENT_UPDATEATTRIBUTE,
- EVENT_UPDATESTAT,
- EVENT_UPDATESTATUSEFFECT,
- EVENT_WHISPER,
- EVENT_WHISPERERROR
-};
-
-namespace Mana
-{
-
// Possible exception that can be thrown
enum BadEvent {
BAD_KEY,
@@ -109,35 +35,99 @@ enum BadEvent {
KEY_ALREADY_EXISTS
};
-class Listener;
-
-typedef std::set<Listener *> ListenerSet;
-typedef std::map<Channels, ListenerSet > ListenMap;
+class EventListener;
+typedef std::set<EventListener *> ListenerSet;
class VariableData;
typedef std::map<std::string, VariableData *> VariableMap;
-#define SERVER_NOTICE(message) { \
-Mana::Event event(EVENT_SERVERNOTICE); \
-event.setString("message", message); \
-event.trigger(CHANNEL_NOTICES, event); }
-
class Event
{
public:
+ enum Channel
+ {
+ ActorSpriteChannel,
+ AttributesChannel,
+ BuySellChannel,
+ ChatChannel,
+ ClientChannel,
+ ConfigChannel,
+ GameChannel,
+ ItemChannel,
+ NoticesChannel,
+ NpcChannel,
+ StatusChannel,
+ StorageChannel
+ };
+
+ enum Type
+ {
+ Announcement,
+ Being,
+ Close,
+ CloseAll,
+ CloseSent,
+ ConfigOptionChanged,
+ Constructed,
+ LoadingDatabases,
+ Destroyed,
+ Destructed,
+ Destructing,
+ DoCloseInventory,
+ DoDrop,
+ DoEquip,
+ DoMove,
+ DoSplit,
+ DoUnequip,
+ DoUse,
+ End,
+ EnginesInitialized,
+ EnginesInitializing,
+ GuiWindowsLoaded,
+ GuiWindowsLoading,
+ GuiWindowsUnloaded,
+ GuiWindowsUnloading,
+ IntegerInput,
+ IntegerInputSent,
+ MapLoaded,
+ Menu,
+ MenuSent,
+ Message,
+ Next,
+ NextSent,
+ NpcCount,
+ Player,
+ Post,
+ PostCount,
+ SendLetterSent,
+ ServerNotice,
+ StateChange,
+ StorageCount,
+ StringInput,
+ StringInputSent,
+ Stun,
+ TalkSent,
+ Trading,
+ UpdateAttribute,
+ UpdateStat,
+ UpdateStatusEffect,
+ Whisper,
+ WhisperError
+ };
+
/**
* Makes an event with the given name.
*/
- Event(Events name)
- { mEventName = name; }
+ Event(Type type)
+ { mType = type; }
~Event();
/**
* Returns the name of the event.
*/
- Events getName() const
- { return mEventName; }
+ Type getType() const
+ { return mType; }
// Integers
@@ -291,49 +281,52 @@ public:
/**
* Sends this event to all classes listening to the given channel.
*/
- inline void trigger(Channels channel) const
+ inline void trigger(Channel channel) const
{ trigger(channel, *this); }
/**
* Sends the given event to all classes listening to the given channel.
*/
- static void trigger(Channels channel, const Event &event);
+ static void trigger(Channel channel, const Event &event);
/**
* Sends an empty event with the given name to all classes listening to the
* given channel.
*/
- static inline void trigger(Channels channel, Events name)
- { trigger(channel, Mana::Event(name)); }
+ static inline void trigger(Channel channel, Type type)
+ { trigger(channel, Event(type)); }
protected:
- friend class Listener;
+ friend class EventListener;
/**
* Binds the given listener to the given channel. The listener will receive
* all events triggered on the channel.
*/
- static void bind(Listener *listener, Channels channel);
+ static void bind(EventListener *listener, Channel channel);
/**
* Unbinds the given listener from the given channel. The listener will no
* longer receive any events from the channel.
*/
- static void unbind(Listener *listener, Channels channel);
+ static void unbind(EventListener *listener, Channel channel);
/**
* Unbinds the given listener from all channels.
*/
- static void remove(Listener *listener);
+ static void remove(EventListener *listener);
private:
+ typedef std::map<Channel, ListenerSet > ListenMap;
static ListenMap mBindings;
- Events mEventName;
-
+ Type mType;
VariableMap mData;
};
-} // namespace Mana
+#define SERVER_NOTICE(message) { \
+Event event(Event::ServerNotice); \
+event.setString("message", message); \
+event.trigger(Event::NoticesChannel, event); }
-#endif
+#endif // EVENT_H
diff --git a/src/listener.cpp b/src/eventlistener.cpp
index f9acac95..967ad3c1 100644
--- a/src/listener.cpp
+++ b/src/eventlistener.cpp
@@ -18,26 +18,21 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "listener.h"
+#include "eventlistener.h"
#include "event.h"
-namespace Mana
-{
-
-Listener::~Listener()
+EventListener::~EventListener()
{
Event::remove(this);
}
-void Listener::listen(Channels channel)
+void EventListener::listen(Event::Channel channel)
{
Event::bind(this, channel);
}
-void Listener::ignore(Channels channel)
+void EventListener::ignore(Event::Channel channel)
{
Event::unbind(this, channel);
}
-
-} // namespace Mana
diff --git a/src/listener.h b/src/eventlistener.h
index 84b613eb..0d998829 100644
--- a/src/listener.h
+++ b/src/eventlistener.h
@@ -18,28 +18,23 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef LISTENER_H
-#define LISTENER_H
+#ifndef EVENTLISTENER_H
+#define EVENTLISTENER_H
#include "event.h"
#include <string>
-namespace Mana
-{
-
-class Listener
+class EventListener
{
public:
- virtual ~Listener();
+ virtual ~EventListener();
- void listen(Channels channel);
+ void listen(Event::Channel channel);
- void ignore(Channels channel);
+ void ignore(Event::Channel channel);
- virtual void event(Channels channel, const Event &event) = 0;
+ virtual void event(Event::Channel channel, const Event &event) = 0;
};
-} // namespace Mana
-
-#endif
+#endif // EVENTLISTENER_H
diff --git a/src/flooritem.h b/src/flooritem.h
index 0bcc380f..37fed4b2 100644
--- a/src/flooritem.h
+++ b/src/flooritem.h
@@ -70,4 +70,4 @@ class FloorItem : public ActorSprite
int mX, mY;
};
-#endif
+#endif // FLOORITEM_H
diff --git a/src/game.cpp b/src/game.cpp
index c54f7abe..bcfd9ac2 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -96,7 +96,6 @@ Joystick *joystick = NULL;
OkDialog *weightNotice = NULL;
OkDialog *deathNotice = NULL;
QuitDialog *quitDialog = NULL;
-OkDialog *disconnectedDialog = NULL;
ChatWindow *chatWindow;
StatusWindow *statusWindow;
@@ -128,7 +127,7 @@ ChatTab *localChatTab = NULL;
*/
static void initEngines()
{
- Mana::Event::trigger(CHANNEL_GAME, EVENT_ENGINESINITALIZING);
+ Event::trigger(Event::GameChannel, Event::EnginesInitializing);
actorSpriteManager = new ActorSpriteManager;
commandHandler = new CommandHandler;
@@ -138,7 +137,7 @@ static void initEngines()
particleEngine = new Particle(NULL);
particleEngine->setupEngine();
- Mana::Event::trigger(CHANNEL_GAME, EVENT_ENGINESINITALIZED);
+ Event::trigger(Event::GameChannel, Event::EnginesInitialized);
}
/**
@@ -146,7 +145,7 @@ static void initEngines()
*/
static void createGuiWindows()
{
- Mana::Event::trigger(CHANNEL_GAME, EVENT_GUIWINDOWSLOADING);
+ Event::trigger(Event::GameChannel, Event::GuiWindowsLoading);
setupWindow->clearWindowsForReset();
@@ -183,7 +182,7 @@ static void createGuiWindows()
NpcDialog::setup();
- Mana::Event::trigger(CHANNEL_GAME, EVENT_GUIWINDOWSLOADED);
+ Event::trigger(Event::GameChannel, Event::GuiWindowsLoaded);
}
#define del_0(X) { delete X; X = 0; }
@@ -193,7 +192,7 @@ static void createGuiWindows()
*/
static void destroyGuiWindows()
{
- Mana::Event::trigger(CHANNEL_GAME, EVENT_GUIWINDOWSUNLOADING);
+ Event::trigger(Event::GameChannel, Event::GuiWindowsUnloading);
del_0(localChatTab) // Need to do this first, so it can remove itself
del_0(chatWindow)
@@ -212,9 +211,9 @@ static void destroyGuiWindows()
del_0(specialsWindow)
del_0(socialWindow)
- Mana::Event::trigger(CHANNEL_NPC, EVENT_CLOSEALL); // Cleanup remaining NPC dialogs
+ Event::trigger(Event::NpcChannel, Event::CloseAll); // Cleanup remaining NPC dialogs
- Mana::Event::trigger(CHANNEL_GAME, EVENT_GUIWINDOWSUNLOADED);
+ Event::trigger(Event::GameChannel, Event::GuiWindowsUnloaded);
}
Game *Game::mInstance = 0;
@@ -226,8 +225,6 @@ Game::Game():
assert(!mInstance);
mInstance = this;
- disconnectedDialog = NULL;
-
// Create the viewport
viewport = new Viewport;
viewport->setDimension(gcn::Rectangle(0, 0, graphics->getWidth(),
@@ -266,12 +263,12 @@ Game::Game():
setupWindow->setInGame(true);
- Mana::Event::trigger(CHANNEL_GAME, EVENT_CONSTRUCTED);
+ Event::trigger(Event::GameChannel, Event::Constructed);
}
Game::~Game()
{
- Mana::Event::trigger(CHANNEL_GAME, EVENT_DESTRUCTING);
+ Event::trigger(Event::GameChannel, Event::Destructing);
delete mWindowMenu;
@@ -289,7 +286,7 @@ Game::~Game()
mInstance = 0;
- Mana::Event::trigger(CHANNEL_GAME, EVENT_DESTRUCTED);
+ Event::trigger(Event::GameChannel, Event::Destructed);
}
static bool saveScreenshot()
@@ -386,14 +383,9 @@ void Game::logic()
return; // Disconnect gets handled by STATE_ERROR
errorMessage = _("The connection to the server was lost.");
-
- if (!disconnectedDialog)
- {
- disconnectedDialog = new OkDialog(_("Network Error"),
- errorMessage);
- disconnectedDialog->addActionListener(&errorListener);
- disconnectedDialog->requestMoveToTop();
- }
+ Client::instance()->showOkDialog(_("Network Error"),
+ errorMessage,
+ STATE_CHOOSE_SERVER);
}
}
@@ -638,7 +630,7 @@ void Game::handleInput()
break;
}
if (keyboard.isEnabled() && !chatWindow->isInputFocused() &&
- !NpcDialog::isAnyInputFocused())
+ !NpcDialog::isAnyInputFocused() && !InventoryWindow::isAnyInputFocused())
{
const int tKey = keyboard.getKeyIndex(event.key.keysym.sym);
@@ -991,15 +983,15 @@ void Game::changeMap(const std::string &mapPath)
if (newMusic != oldMusic)
{
if (newMusic.empty())
- sound.stopMusic();
+ sound.fadeOutMusic();
else
- sound.playMusic(newMusic);
+ sound.fadeOutAndPlayMusic(newMusic);
}
delete mCurrentMap;
mCurrentMap = newMap;
- Mana::Event event(EVENT_MAPLOADED);
+ Event event(Event::MapLoaded);
event.setString("mapPath", mapPath);
- event.trigger(CHANNEL_GAME);
+ event.trigger(Event::GameChannel);
}
diff --git a/src/graphics.h b/src/graphics.h
index 344c31c3..4fec02f8 100644
--- a/src/graphics.h
+++ b/src/graphics.h
@@ -78,14 +78,8 @@ class Graphics : public gcn::SDLGraphics
BLIT_GFX
};
- /**
- * Constructor.
- */
Graphics();
- /**
- * Destructor.
- */
virtual ~Graphics();
/**
diff --git a/src/gui/beingpopup.h b/src/gui/beingpopup.h
index 514a6e7e..7058d783 100644
--- a/src/gui/beingpopup.h
+++ b/src/gui/beingpopup.h
@@ -32,14 +32,8 @@ class Label;
class BeingPopup : public Popup
{
public:
- /**
- * Constructor. Initializes the being popup.
- */
BeingPopup();
- /**
- * Destructor. Cleans up the being popup on deletion.
- */
~BeingPopup();
/**
diff --git a/src/gui/buy.h b/src/gui/buy.h
index c3cb3229..68d318eb 100644
--- a/src/gui/buy.h
+++ b/src/gui/buy.h
@@ -42,16 +42,8 @@ class BuyDialog : public Window, public gcn::ActionListener,
public gcn::SelectionListener
{
public:
- /**
- * Constructor.
- *
- * @see Window::Window
- */
BuyDialog(int npcId);
- /**
- * Destructor
- */
~BuyDialog();
/**
diff --git a/src/gui/changeemaildialog.h b/src/gui/changeemaildialog.h
index 84838d15..04fca908 100644
--- a/src/gui/changeemaildialog.h
+++ b/src/gui/changeemaildialog.h
@@ -38,16 +38,8 @@ class WrongDataNoticeListener;
class ChangeEmailDialog : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor.
- *
- * @see Window::Window
- */
ChangeEmailDialog(LoginData *loginData);
- /**
- * Destructor.
- */
~ChangeEmailDialog();
/**
diff --git a/src/gui/changepassworddialog.h b/src/gui/changepassworddialog.h
index d356a5df..0b28a11d 100644
--- a/src/gui/changepassworddialog.h
+++ b/src/gui/changepassworddialog.h
@@ -38,16 +38,8 @@ class WrongDataNoticeListener;
class ChangePasswordDialog : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor
- *
- * @see Window::Window
- */
ChangePasswordDialog(LoginData *loginData);
- /**
- * Destructor
- */
~ChangePasswordDialog();
/**
diff --git a/src/gui/charcreatedialog.h b/src/gui/charcreatedialog.h
index d6b6d390..ff59b30a 100644
--- a/src/gui/charcreatedialog.h
+++ b/src/gui/charcreatedialog.h
@@ -45,14 +45,8 @@ class PlayerBox;
class CharCreateDialog : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor.
- */
CharCreateDialog(CharSelectDialog *parent, int slot);
- /**
- * Destructor.
- */
~CharCreateDialog();
void action(const gcn::ActionEvent &event);
diff --git a/src/gui/charselectdialog.h b/src/gui/charselectdialog.h
index 455ec2df..e180b2c2 100644
--- a/src/gui/charselectdialog.h
+++ b/src/gui/charselectdialog.h
@@ -50,9 +50,6 @@ class CharSelectDialog : public Window, public gcn::ActionListener,
friend class CharDeleteConfirm;
friend class Net::CharHandler;
- /**
- * Constructor.
- */
CharSelectDialog(LoginData *loginData);
~CharSelectDialog();
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 2ac5100d..491542a8 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -90,8 +90,8 @@ ChatWindow::ChatWindow():
mAutoComplete(new ChatAutoComplete),
mTmpVisible(false)
{
- listen(CHANNEL_CHAT);
- listen(CHANNEL_NOTICES);
+ listen(Event::ChatChannel);
+ listen(Event::NoticesChannel);
setWindowName("Chat");
@@ -375,33 +375,33 @@ void ChatWindow::mouseDragged(gcn::MouseEvent &event)
}
}
-void ChatWindow::event(Channels channel, const Mana::Event &event)
+void ChatWindow::event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_NOTICES)
+ if (channel == Event::NoticesChannel)
{
- if (event.getName() == EVENT_SERVERNOTICE)
+ if (event.getType() == Event::ServerNotice)
localChatTab->chatLog(event.getString("message"), BY_SERVER);
}
- else if (channel == CHANNEL_CHAT)
+ else if (channel == Event::ChatChannel)
{
- if (event.getName() == EVENT_WHISPER)
+ if (event.getType() == Event::Whisper)
{
whisper(event.getString("nick"), event.getString("message"));
}
- else if (event.getName() == EVENT_WHISPERERROR)
+ else if (event.getType() == Event::WhisperError)
{
whisper(event.getString("nick"),
event.getString("error"), BY_SERVER);
}
- else if (event.getName() == EVENT_PLAYER)
+ else if (event.getType() == Event::Player)
{
localChatTab->chatLog(event.getString("message"), BY_PLAYER);
}
- else if (event.getName() == EVENT_ANNOUNCEMENT)
+ else if (event.getType() == Event::Announcement)
{
localChatTab->chatLog(event.getString("message"), BY_GM);
}
- else if (event.getName() == EVENT_BEING)
+ else if (event.getType() == Event::Being)
{
if (event.getInt("permissions") & PlayerRelation::SPEECH_LOG)
localChatTab->chatLog(event.getString("message"), BY_OTHER);
diff --git a/src/gui/chat.h b/src/gui/chat.h
index f546502c..c6acf532 100644
--- a/src/gui/chat.h
+++ b/src/gui/chat.h
@@ -22,7 +22,7 @@
#ifndef CHAT_H
#define CHAT_H
-#include "listener.h"
+#include "eventlistener.h"
#include "gui/widgets/window.h"
#include "gui/widgets/textfield.h"
@@ -77,12 +77,9 @@ struct CHATLOG
*/
class ChatWindow : public Window,
public gcn::ActionListener,
- public Mana::Listener
+ public EventListener
{
public:
- /**
- * Constructor.
- */
ChatWindow();
/**
@@ -158,7 +155,7 @@ class ChatWindow : public Window,
void mousePressed(gcn::MouseEvent &event);
void mouseDragged(gcn::MouseEvent &event);
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
/**
* Scrolls the chat window
diff --git a/src/gui/confirmdialog.h b/src/gui/confirmdialog.h
index 074b970d..49e9c127 100644
--- a/src/gui/confirmdialog.h
+++ b/src/gui/confirmdialog.h
@@ -36,11 +36,6 @@ class TextBox;
class ConfirmDialog : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor.
- *
- * @see Window::Window
- */
ConfirmDialog(const std::string &title, const std::string &msg,
Window *parent = NULL);
diff --git a/src/gui/debugwindow.h b/src/gui/debugwindow.h
index 53828422..6fd34420 100644
--- a/src/gui/debugwindow.h
+++ b/src/gui/debugwindow.h
@@ -34,9 +34,6 @@ class Label;
class DebugWindow : public Window
{
public:
- /**
- * Constructor.
- */
DebugWindow();
/**
diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp
index 02fc2a96..339cf717 100644
--- a/src/gui/equipmentwindow.cpp
+++ b/src/gui/equipmentwindow.cpp
@@ -113,7 +113,7 @@ void EquipmentWindow::action(const gcn::ActionEvent &event)
if (event.getId() == "unequip" && mSelected > -1)
{
Item *item = mEquipment->getEquipment(mSelected);
- item->doEvent(EVENT_DOUNEQUIP);
+ item->doEvent(Event::DoUnequip);
setSelected(-1);
}
}
diff --git a/src/gui/equipmentwindow.h b/src/gui/equipmentwindow.h
index a0fa6acb..5ba15ae3 100644
--- a/src/gui/equipmentwindow.h
+++ b/src/gui/equipmentwindow.h
@@ -40,14 +40,8 @@ class ItemPopup;
class EquipmentWindow : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor.
- */
EquipmentWindow(Equipment *equipment);
- /**
- * Destructor.
- */
~EquipmentWindow();
/**
@@ -91,25 +85,17 @@ namespace TmwAthena {
class TaEquipmentWindow : public EquipmentWindow
{
public:
- /**
- * Constructor.
- */
TaEquipmentWindow(Equipment *equipment);
-
- /**
- * Destructor.
- */
~TaEquipmentWindow();
/**
* Draws the equipment window using TmwAthena routine.
*/
void draw(gcn::Graphics *graphics);
-
};
-}; // namespace TmwAthena
+} // namespace TmwAthena
extern EquipmentWindow *equipmentWindow;
-#endif
+#endif // EQUIPMENTWINDOW_H
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index c0d1babf..d1c18ab2 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -30,7 +30,7 @@
#include "gui/widgets/windowcontainer.h"
#include "configuration.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "graphics.h"
#include "log.h"
@@ -50,18 +50,18 @@ SDLInput *guiInput = 0;
// Bolded font
gcn::Font *boldFont = 0;
-class GuiConfigListener : public Mana::Listener
+class GuiConfigListener : public EventListener
{
public:
GuiConfigListener(Gui *g):
mGui(g)
{}
- void event(Channels channel, const Mana::Event &event)
+ void event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_CONFIG)
+ if (channel == Event::ConfigChannel)
{
- if (event.getName() == EVENT_CONFIGOPTIONCHANGED &&
+ if (event.getType() == Event::ConfigOptionChanged &&
event.getString("option") == "customcursor")
{
bool bCustomCursor = config.getBoolValue("customcursor");
@@ -141,7 +141,7 @@ Gui::Gui(Graphics *graphics):
// Initialize mouse cursor and listen for changes to the option
setUseCustomCursor(config.getBoolValue("customcursor"));
mConfigListener = new GuiConfigListener(this);
- mConfigListener->listen(CHANNEL_CONFIG);
+ mConfigListener->listen(Event::ConfigChannel);
}
Gui::~Gui()
diff --git a/src/gui/gui.h b/src/gui/gui.h
index 112abcee..fa7102fe 100644
--- a/src/gui/gui.h
+++ b/src/gui/gui.h
@@ -47,14 +47,8 @@ class SDLInput;
class Gui : public gcn::Gui
{
public:
- /**
- * Constructor.
- */
Gui(Graphics *screen);
- /**
- * Destructor.
- */
~Gui();
/**
diff --git a/src/gui/help.h b/src/gui/help.h
index 581a971e..add49ced 100644
--- a/src/gui/help.h
+++ b/src/gui/help.h
@@ -37,9 +37,6 @@ class HelpWindow : public Window, public LinkHandler,
public gcn::ActionListener
{
public:
- /**
- * Constructor.
- */
HelpWindow();
/**
diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp
index 31743c57..4ebcce8b 100644
--- a/src/gui/inventorywindow.cpp
+++ b/src/gui/inventorywindow.cpp
@@ -58,9 +58,10 @@ InventoryWindow::WindowList InventoryWindow::instances;
InventoryWindow::InventoryWindow(Inventory *inventory):
Window(inventory->isMainInventory() ? _("Inventory") : _("Storage")),
mInventory(inventory),
+ mFilterText(new TextField),
mSplit(false)
{
- listen(CHANNEL_ATTRIBUTES);
+ listen(Event::AttributesChannel);
setWindowName(isMainInventory() ? "Inventory" : "Storage");
setupWindow->registerWindowForReset(this);
@@ -73,6 +74,9 @@ InventoryWindow::InventoryWindow(Inventory *inventory):
setMinHeight(179);
addKeyListener(this);
+ mFilterText->setWidth(150);
+ mFilterText->addKeyListener(this);
+
mItems = new ItemContainer(mInventory);
mItems->addSelectionListener(this);
@@ -80,6 +84,7 @@ InventoryWindow::InventoryWindow(Inventory *inventory):
invenScroll->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER);
mSlotsLabel = new Label(_("Slots:"));
+ mFilterLabel = new Label(_("Search:"));
mSlotsBar = new ProgressBar(0.0f, 100, 20, Theme::PROG_INVY_SLOTS);
if (isMainInventory())
@@ -109,13 +114,15 @@ InventoryWindow::InventoryWindow(Inventory *inventory):
place(0, 0, mWeightLabel).setPadding(3);
place(1, 0, mWeightBar, 3);
place(4, 0, mSlotsLabel).setPadding(3);
- place(5, 0, mSlotsBar, 2);
- place(0, 1, invenScroll, 7).setPadding(3);
- place(0, 2, mUseButton);
- place(1, 2, mEquipButton);
- place(2, 2, mDropButton);
- place(3, 2, mSplitButton);
- place(6, 2, mOutfitButton);
+ place(5, 0, mSlotsBar, 3);
+ place(0, 1, mFilterLabel, 4);
+ place(1, 1, mFilterText, 4);
+ place(0, 2, invenScroll, 8).setPadding(3);
+ place(0, 3, mUseButton);
+ place(1, 3, mEquipButton);
+ place(2, 3, mDropButton);
+ place(3, 3, mSplitButton);
+ place(7, 3, mOutfitButton);
updateWeight();
}
@@ -126,13 +133,15 @@ InventoryWindow::InventoryWindow(Inventory *inventory):
place(0, 0, mSlotsLabel).setPadding(3);
place(1, 0, mSlotsBar, 3);
- place(0, 1, invenScroll, 4, 4);
- place(0, 5, mStoreButton);
- place(1, 5, mRetrieveButton);
+ place(0, 1, mFilterLabel).setPadding(3);
+ place(1, 1, mFilterText, 3);
+ place(0, 2, invenScroll, 4, 4);
+ place(0, 6, mStoreButton);
+ place(1, 6, mRetrieveButton);
}
Layout &layout = getLayout();
- layout.setRowHeight(1, Layout::AUTO_SET);
+ layout.setRowHeight(2, Layout::AUTO_SET);
mInventory->addInventoyListener(this);
@@ -186,19 +195,19 @@ void InventoryWindow::action(const gcn::ActionEvent &event)
return;
if (event.getId() == "activate")
- item->doEvent(EVENT_DOUSE);
+ item->doEvent(Event::DoUse);
else if (event.getId() == "equip")
{
if (item->isEquippable())
{
if (item->isEquipped())
- item->doEvent(EVENT_DOUNEQUIP);
+ item->doEvent(Event::DoUnequip);
else
- item->doEvent(EVENT_DOEQUIP);
+ item->doEvent(Event::DoEquip);
}
else
{
- item->doEvent(EVENT_DOUSE);
+ item->doEvent(Event::DoUse);
}
}
else if (event.getId() == "drop")
@@ -256,21 +265,21 @@ void InventoryWindow::mouseClicked(gcn::MouseEvent &event)
return;
if (mInventory->isMainInventory())
{
- Mana::Event event(EVENT_DOMOVE);
+ Event event(Event::DoMove);
event.setItem("item", item);
event.setInt("amount", item->getQuantity());
event.setInt("source", Inventory::INVENTORY);
event.setInt("destination", Inventory::STORAGE);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
}
else
{
- Mana::Event event(EVENT_DOMOVE);
+ Event event(Event::DoMove);
event.setItem("item", item);
event.setInt("amount", item->getQuantity());
event.setInt("source", Inventory::STORAGE);
event.setInt("destination", Inventory::INVENTORY);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
}
}
}
@@ -289,6 +298,12 @@ void InventoryWindow::keyPressed(gcn::KeyEvent &event)
void InventoryWindow::keyReleased(gcn::KeyEvent &event)
{
+ if (isInputFocused())
+ {
+ mItems->setFilter(mFilterText->getText());
+ return;
+ }
+
switch (event.getKey().getValue())
{
case Key::LEFT_SHIFT:
@@ -368,16 +383,16 @@ void InventoryWindow::close()
}
else
{
- Mana::Event event(EVENT_DOCLOSEINVENTORY);
+ Event event(Event::DoCloseInventory);
event.setInt("type", mInventory->getType());
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
scheduleDelete();
}
}
-void InventoryWindow::event(Channels channel, const Mana::Event &event)
+void InventoryWindow::event(Event::Channel channel, const Event &event)
{
- if (event.getName() == EVENT_UPDATEATTRIBUTE)
+ if (event.getType() == Event::UpdateAttribute)
{
int id = event.getInt("id");
if (id == TOTAL_WEIGHT ||
@@ -405,6 +420,27 @@ void InventoryWindow::updateWeight()
Units::formatWeight(max).c_str()));
}
+bool InventoryWindow::isInputFocused() const
+{
+ return mFilterText->isFocused();
+}
+
+bool InventoryWindow::isAnyInputFocused()
+{
+ WindowList::iterator it = instances.begin();
+ WindowList::iterator it_end = instances.end();
+
+ for (; it != it_end; it++)
+ {
+ if ((*it)->isInputFocused())
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
+
void InventoryWindow::slotsChanged(Inventory* inventory)
{
if (inventory == mInventory)
diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h
index 0ddd13f7..ebd2be22 100644
--- a/src/gui/inventorywindow.h
+++ b/src/gui/inventorywindow.h
@@ -23,9 +23,10 @@
#define INVENTORYWINDOW_H
#include "inventory.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "gui/widgets/window.h"
+#include "gui/widgets/textfield.h"
#include "net/inventoryhandler.h"
@@ -48,17 +49,11 @@ class InventoryWindow : public Window,
public gcn::KeyListener,
public gcn::SelectionListener,
public InventoryListener,
- public Mana::Listener
+ public EventListener
{
public:
- /**
- * Constructor.
- */
InventoryWindow(Inventory *inventory);
- /**
- * Destructor.
- */
~InventoryWindow();
/**
@@ -107,11 +102,15 @@ class InventoryWindow : public Window,
*/
void updateButtons();
+ bool isInputFocused() const;
+
+ static bool isAnyInputFocused();
+
void slotsChanged(Inventory* inventory);
bool isMainInventory() { return mInventory->isMainInventory(); }
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
private:
/**
@@ -126,12 +125,14 @@ class InventoryWindow : public Window,
Inventory *mInventory;
ItemContainer *mItems;
+ TextField *mFilterText;
+
std::string mWeight, mSlots;
gcn::Button *mUseButton, *mEquipButton, *mDropButton, *mSplitButton,
*mOutfitButton, *mStoreButton, *mRetrieveButton;
- gcn::Label *mWeightLabel, *mSlotsLabel;
+ gcn::Label *mWeightLabel, *mSlotsLabel, *mFilterLabel;
ProgressBar *mWeightBar, *mSlotsBar;
diff --git a/src/gui/itemamount.cpp b/src/gui/itemamount.cpp
index 85325c66..43cdf1cf 100644
--- a/src/gui/itemamount.cpp
+++ b/src/gui/itemamount.cpp
@@ -47,29 +47,29 @@ void ItemAmountWindow::finish(Item *item, int amount, Usage usage)
tradeWindow->tradeItem(item, amount);
break;
case ItemDrop:
- item->doEvent(EVENT_DODROP, amount);
+ item->doEvent(Event::DoDrop, amount);
break;
case ItemSplit:
- item->doEvent(EVENT_DOSPLIT, amount);
+ item->doEvent(Event::DoSplit, amount);
break;
case StoreAdd:
{
- Mana::Event event(EVENT_DOMOVE);
+ Event event(Event::DoMove);
event.setItem("item", item);
event.setInt("amount", amount);
event.setInt("source", Inventory::INVENTORY);
event.setInt("destination", Inventory::STORAGE);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
}
break;
case StoreRemove:
{
- Mana::Event event(EVENT_DOMOVE);
+ Event event(Event::DoMove);
event.setItem("item", item);
event.setInt("amount", amount);
event.setInt("source", Inventory::STORAGE);
event.setInt("destination", Inventory::INVENTORY);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
}
break;
default:
diff --git a/src/gui/login.h b/src/gui/login.h
index 93bae338..38e858f6 100644
--- a/src/gui/login.h
+++ b/src/gui/login.h
@@ -42,11 +42,6 @@ class LoginDialog : public Window, public gcn::ActionListener,
public gcn::KeyListener
{
public:
- /**
- * Constructor
- *
- * @see Window::Window
- */
LoginDialog(LoginData *loginData);
~LoginDialog();
diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp
index fae40d03..0fdf59b1 100644
--- a/src/gui/ministatus.cpp
+++ b/src/gui/ministatus.cpp
@@ -47,7 +47,7 @@ extern volatile int tick_time;
MiniStatusWindow::MiniStatusWindow():
Popup("MiniStatus")
{
- listen(CHANNEL_ATTRIBUTES);
+ listen(Event::AttributesChannel);
mHpBar = new ProgressBar(0, 100, 20, Theme::PROG_HP);
StatusWindow::updateHPBar(mHpBar);
@@ -119,11 +119,12 @@ void MiniStatusWindow::drawIcons(Graphics *graphics)
}
}
-void MiniStatusWindow::event(Channels channel, const Mana::Event &event)
+void MiniStatusWindow::event(Event::Channel channel,
+ const Event &event)
{
- if (channel == CHANNEL_ATTRIBUTES)
+ if (channel == Event::AttributesChannel)
{
- if (event.getName() == EVENT_UPDATEATTRIBUTE)
+ if (event.getType() == Event::UpdateAttribute)
{
int id = event.getInt("id");
if (id == HP || id == MAX_HP)
@@ -140,9 +141,9 @@ void MiniStatusWindow::event(Channels channel, const Mana::Event &event)
}
}
}
- else if (channel == CHANNEL_ACTORSPRITE)
+ else if (channel == Event::ActorSpriteChannel)
{
- if (event.getName() == EVENT_UPDATESTATUSEFFECT)
+ if (event.getType() == Event::UpdateStatusEffect)
{
int index = event.getInt("index");
bool newStatus = event.getBool("newStatus");
diff --git a/src/gui/ministatus.h b/src/gui/ministatus.h
index 9dfcaeae..38025202 100644
--- a/src/gui/ministatus.h
+++ b/src/gui/ministatus.h
@@ -22,7 +22,7 @@
#ifndef MINISTATUS_H
#define MINISTATUS_H
-#include "listener.h"
+#include "eventlistener.h"
#include "gui/widgets/popup.h"
@@ -38,14 +38,14 @@ class TextPopup;
*
* \ingroup Interface
*/
-class MiniStatusWindow : public Popup, public Mana::Listener
+class MiniStatusWindow : public Popup, public EventListener
{
public:
MiniStatusWindow();
void drawIcons(Graphics *graphics);
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
void logic(); // Updates icons
diff --git a/src/gui/npcdialog.cpp b/src/gui/npcdialog.cpp
index 590001b0..bb508184 100644
--- a/src/gui/npcdialog.cpp
+++ b/src/gui/npcdialog.cpp
@@ -23,7 +23,7 @@
#include "configuration.h"
#include "event.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "playerinfo.h"
#include "gui/npcpostdialog.h"
@@ -52,10 +52,10 @@
typedef std::map<int, NpcDialog*> NpcDialogs;
-class NpcEventListener : public Mana::Listener
+class NpcEventListener : public EventListener
{
public:
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
NpcDialog *getDialog(int id, bool make = true);
@@ -143,7 +143,7 @@ NpcDialog::NpcDialog(int npcId)
setVisible(true);
requestFocus();
- listen(CHANNEL_CONFIG);
+ listen(Event::ConfigChannel);
PlayerInfo::setNPCInteractionCount(PlayerInfo::getNPCInteractionCount()
+ 1);
}
@@ -387,12 +387,12 @@ void NpcDialog::setVisible(bool visible)
}
}
-void NpcDialog::event(Channels channel, const Mana::Event &event)
+void NpcDialog::event(Event::Channel channel, const Event &event)
{
- if (channel != CHANNEL_CONFIG)
+ if (channel != Event::ConfigChannel)
return;
- if (event.getName() == EVENT_CONFIGOPTIONCHANGED &&
+ if (event.getType() == Event::ConfigOptionChanged &&
event.getString("option") == "logNpcInGui")
{
mLogInteraction = config.getBoolValue("logNpcInGui");
@@ -436,7 +436,7 @@ void NpcDialog::setup()
npcListener = new NpcEventListener();
- npcListener->listen(CHANNEL_NPC);
+ npcListener->listen(Event::NpcChannel);
}
void NpcDialog::buildLayout()
@@ -506,19 +506,19 @@ void NpcDialog::buildLayout()
mScrollArea->setVerticalScrollAmount(mScrollArea->getVerticalMaxScroll());
}
-void NpcEventListener::event(Channels channel,
- const Mana::Event &event)
+void NpcEventListener::event(Event::Channel channel,
+ const Event &event)
{
- if (channel != CHANNEL_NPC)
+ if (channel != Event::NpcChannel)
return;
- if (event.getName() == EVENT_MESSAGE)
+ if (event.getType() == Event::Message)
{
NpcDialog *dialog = getDialog(event.getInt("id"));
dialog->addText(event.getString("text"));
}
- else if (event.getName() == EVENT_MENU)
+ else if (event.getType() == Event::Menu)
{
NpcDialog *dialog = getDialog(event.getInt("id"));
@@ -528,7 +528,7 @@ void NpcEventListener::event(Channels channel,
for (int i = 1; i <= count; i++)
dialog->addChoice(event.getString("choice" + toString(i)));
}
- else if (event.getName() == EVENT_INTEGERINPUT)
+ else if (event.getType() == Event::IntegerInput)
{
NpcDialog *dialog = getDialog(event.getInt("id"));
@@ -538,7 +538,7 @@ void NpcEventListener::event(Channels channel,
dialog->integerRequest(defaultValue, min, max);
}
- else if (event.getName() == EVENT_STRINGINPUT)
+ else if (event.getType() == Event::StringInput)
{
NpcDialog *dialog = getDialog(event.getInt("id"));
@@ -546,12 +546,12 @@ void NpcEventListener::event(Channels channel,
{
dialog->textRequest(event.getString("default"));
}
- catch (Mana::BadEvent)
+ catch (BadEvent)
{
dialog->textRequest("");
}
}
- else if (event.getName() == EVENT_NEXT)
+ else if (event.getType() == Event::Next)
{
int id = event.getInt("id");
NpcDialog *dialog = getDialog(id, false);
@@ -565,7 +565,7 @@ void NpcEventListener::event(Channels channel,
dialog->showNextButton();
}
- else if (event.getName() == EVENT_CLOSE)
+ else if (event.getType() == Event::Close)
{
int id = event.getInt("id");
NpcDialog *dialog = getDialog(id, false);
@@ -579,11 +579,11 @@ void NpcEventListener::event(Channels channel,
dialog->showCloseButton();
}
- else if (event.getName() == EVENT_CLOSEALL)
+ else if (event.getType() == Event::CloseAll)
{
NpcDialog::closeAll();
}
- else if (event.getName() == EVENT_END)
+ else if (event.getType() == Event::End)
{
int id = event.getInt("id");
NpcDialog *dialog = getDialog(id, false);
@@ -591,7 +591,7 @@ void NpcEventListener::event(Channels channel,
if (dialog)
dialog->close();
}
- else if (event.getName() == EVENT_POST)
+ else if (event.getType() == Event::Post)
{
new NpcPostDialog(event.getInt("id"));
}
diff --git a/src/gui/npcdialog.h b/src/gui/npcdialog.h
index d0131d0e..433c045e 100644
--- a/src/gui/npcdialog.h
+++ b/src/gui/npcdialog.h
@@ -22,7 +22,7 @@
#ifndef NPCDIALOG_H
#define NPCDIALOG_H
-#include "listener.h"
+#include "eventlistener.h"
#include "gui/widgets/window.h"
@@ -45,14 +45,9 @@ class Button;
* \ingroup Interface
*/
class NpcDialog : public Window, public gcn::ActionListener,
- public gcn::ListModel, public Mana::Listener
+ public gcn::ListModel, public EventListener
{
public:
- /**
- * Constructor.
- *
- * @see Window::Window
- */
NpcDialog(int npcId);
~NpcDialog();
@@ -145,7 +140,7 @@ class NpcDialog : public Window, public gcn::ActionListener,
void setVisible(bool visible);
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
/**
* Returns the first active instance. Useful for pushing user
diff --git a/src/gui/npcpostdialog.h b/src/gui/npcpostdialog.h
index 248e4515..db8d1a68 100644
--- a/src/gui/npcpostdialog.h
+++ b/src/gui/npcpostdialog.h
@@ -32,9 +32,6 @@ class TextField;
class NpcPostDialog : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor
- */
NpcPostDialog(int npcId);
~NpcPostDialog();
diff --git a/src/gui/okdialog.h b/src/gui/okdialog.h
index 9974e235..68841566 100644
--- a/src/gui/okdialog.h
+++ b/src/gui/okdialog.h
@@ -36,11 +36,6 @@ class TextBox;
class OkDialog : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor.
- *
- * @see Window::Window
- */
OkDialog(const std::string &title, const std::string &msg,
bool modal = true, Window *parent = NULL);
diff --git a/src/gui/outfitwindow.cpp b/src/gui/outfitwindow.cpp
index 8da8914a..efa0e08b 100644
--- a/src/gui/outfitwindow.cpp
+++ b/src/gui/outfitwindow.cpp
@@ -172,7 +172,7 @@ void OutfitWindow::wearOutfit(int outfit)
if (item && !item->isEquipped() && item->getQuantity())
{
if (item->isEquippable())
- item->doEvent(EVENT_DOEQUIP);
+ item->doEvent(Event::DoEquip);
}
}
}
@@ -341,7 +341,7 @@ void OutfitWindow::unequipNotInOutfit(int outfit)
Item *item = inventory->getItem(i);
if (item)
- item->doEvent(EVENT_DOUNEQUIP);
+ item->doEvent(Event::DoUnequip);
}
}
}
diff --git a/src/gui/outfitwindow.h b/src/gui/outfitwindow.h
index a6051ecb..21cf6940 100644
--- a/src/gui/outfitwindow.h
+++ b/src/gui/outfitwindow.h
@@ -37,14 +37,8 @@ class Label;
class OutfitWindow : public Window, gcn::ActionListener
{
public:
- /**
- * Constructor.
- */
OutfitWindow();
- /**
- * Destructor.
- */
~OutfitWindow();
void action(const gcn::ActionEvent &event);
diff --git a/src/gui/palette.h b/src/gui/palette.h
index ee748e74..51cf7d5f 100644
--- a/src/gui/palette.h
+++ b/src/gui/palette.h
@@ -127,14 +127,8 @@ class Palette
typedef std::set<Palette*> Palettes;
static Palettes mInstances;
- /**
- * Constructor
- */
Palette(int size);
- /**
- * Destructor
- */
~Palette();
void advanceGradient();
diff --git a/src/gui/popupmenu.cpp b/src/gui/popupmenu.cpp
index f5259c35..7e648311 100644
--- a/src/gui/popupmenu.cpp
+++ b/src/gui/popupmenu.cpp
@@ -269,13 +269,13 @@ void PopupMenu::handleLink(const std::string &link)
if (mItem->isEquippable())
{
if (mItem->isEquipped())
- mItem->doEvent(EVENT_DOUNEQUIP);
+ mItem->doEvent(Event::DoUnequip);
else
- mItem->doEvent(EVENT_DOEQUIP);
+ mItem->doEvent(Event::DoEquip);
}
else
{
- mItem->doEvent(EVENT_DOUSE);
+ mItem->doEvent(Event::DoUse);
}
}
else if (link == "chat")
diff --git a/src/gui/popupmenu.h b/src/gui/popupmenu.h
index 3bb49967..969c5c20 100644
--- a/src/gui/popupmenu.h
+++ b/src/gui/popupmenu.h
@@ -37,9 +37,6 @@ class Window;
class PopupMenu : public Popup, public LinkHandler
{
public:
- /**
- * Constructor.
- */
PopupMenu();
/**
diff --git a/src/gui/quitdialog.h b/src/gui/quitdialog.h
index d0dc2c69..65a325b8 100644
--- a/src/gui/quitdialog.h
+++ b/src/gui/quitdialog.h
@@ -45,9 +45,6 @@ class QuitDialog : public Window, public gcn::ActionListener,
*/
QuitDialog(QuitDialog **pointerToMe);
- /**
- * Destructor
- */
~QuitDialog();
/**
diff --git a/src/gui/register.h b/src/gui/register.h
index 3c65695b..fe54812b 100644
--- a/src/gui/register.h
+++ b/src/gui/register.h
@@ -63,9 +63,6 @@ class RegisterDialog : public Window, public gcn::ActionListener,
*/
RegisterDialog(LoginData *loginData);
- /**
- * Destructor
- */
~RegisterDialog();
/**
diff --git a/src/gui/sell.h b/src/gui/sell.h
index c286dcc2..8db0b573 100644
--- a/src/gui/sell.h
+++ b/src/gui/sell.h
@@ -41,16 +41,8 @@ class ShopListBox;
class SellDialog : public Window, gcn::ActionListener, gcn::SelectionListener
{
public:
- /**
- * Constructor.
- *
- * @see Window::Window
- */
SellDialog(int npcId);
- /**
- * Destructor
- */
virtual ~SellDialog();
/**
diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp
index ca8da9b4..d68e2eca 100644
--- a/src/gui/serverdialog.cpp
+++ b/src/gui/serverdialog.cpp
@@ -52,6 +52,7 @@
#include <cstdlib>
#include <iostream>
#include <string>
+#include <algorithm>
static const int MAX_SERVERLIST = 6;
@@ -366,8 +367,8 @@ void ServerDialog::action(const gcn::ActionEvent &event)
else if (event.getId() == "remove")
{
int index = mServersList->getSelected();
- mServersList->setSelected(0);
mServers.erase(mServers.begin() + index);
+ mServersList->setSelected(0);
saveCustomServers();
}
@@ -591,6 +592,58 @@ void ServerDialog::loadServers()
if (!found)
mServers.push_back(server);
}
+
+ reorderList(config.getIntValue("serverListOrder"));
+}
+
+/**
+ * Returns true if serv1 must appear before serv2
+ */
+bool ServerDialog::sortByLastUsage(const ServerInfo& serv1, const ServerInfo& serv2)
+{
+ int rank1 = -1;
+ int rank2 = -1;
+
+ for (int i = 0; i < MAX_SERVERLIST; ++i)
+ {
+ const std::string index = toString(i);
+ const std::string nameKey = "MostUsedServerName" + index;
+ std::string serv = config.getValue(nameKey, "");
+ if (serv == serv1.hostname)
+ rank1 = i;
+ else if (serv == serv2.hostname)
+ rank2 = i;
+ }
+
+ if (rank1 > rank2)
+ return true;
+
+ if (rank2 > rank1)
+ return false;
+
+ return ServerDialog::sortByName(serv1, serv2);
+}
+
+/**
+ * Returns true if serv1 must appear before serv2
+ */
+bool ServerDialog::sortByName(const ServerInfo& serv1, const ServerInfo& serv2)
+{
+ return compareStrI(serv1.name, serv2.name) < 0;
+}
+
+/**
+ * Reorders the server list
+ * @param orderBy
+ * - 0 : Order by last change (default)
+ * - 1 : Order by name
+ */
+void ServerDialog::reorderList(int orderBy)
+{
+ if (orderBy == 0)
+ std::sort(mServers.begin(), mServers.end(), ServerDialog::sortByLastUsage);
+ else
+ std::sort(mServers.begin(), mServers.end(), ServerDialog::sortByName);
}
void ServerDialog::loadCustomServers()
diff --git a/src/gui/serverdialog.h b/src/gui/serverdialog.h
index f1d9c9b8..d34fbb9f 100644
--- a/src/gui/serverdialog.h
+++ b/src/gui/serverdialog.h
@@ -111,16 +111,8 @@ class ServerDialog : public Window,
public gcn::SelectionListener
{
public:
- /**
- * Constructor
- *
- * @see Window::Window
- */
ServerDialog(ServerInfo *serverInfo, const std::string &dir);
- /**
- * Destructor
- */
~ServerDialog();
/**
@@ -158,6 +150,11 @@ class ServerDialog : public Window,
void setFieldsReadOnly(bool readOnly);
+ static bool sortByLastUsage(const ServerInfo& serv1, const ServerInfo& serv2);
+ static bool sortByName(const ServerInfo& serv1, const ServerInfo& serv2);
+
+ void reorderList(int orderBy);
+
TextField *mServerNameField;
TextField *mPortField;
Label *mDescription;
diff --git a/src/gui/setup_keyboard.h b/src/gui/setup_keyboard.h
index 4c916705..5a455adb 100644
--- a/src/gui/setup_keyboard.h
+++ b/src/gui/setup_keyboard.h
@@ -32,14 +32,8 @@
class Setup_Keyboard : public SetupTab, public gcn::ActionListener
{
public:
- /**
- * Constructor
- */
Setup_Keyboard();
- /**
- * Destructor
- */
~Setup_Keyboard();
void apply();
diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp
index c8af218f..0c2ebf83 100644
--- a/src/gui/setup_video.cpp
+++ b/src/gui/setup_video.cpp
@@ -61,14 +61,8 @@ extern Graphics *graphics;
class ModeListModel : public gcn::ListModel
{
public:
- /**
- * Constructor.
- */
ModeListModel();
- /**
- * Destructor.
- */
virtual ~ModeListModel() { }
/**
@@ -156,6 +150,31 @@ public:
}
};
+const char *SERVLIST_ORDER_BY[2] =
+{
+ N_("Last usage"),
+ N_("Name")
+};
+
+class ServerListOrderListModel : public gcn::ListModel
+{
+public:
+ virtual ~ServerListOrderListModel() { }
+
+ virtual int getNumberOfElements()
+ {
+ return 2;
+ }
+
+ virtual std::string getElementAt(int i)
+ {
+ if (i >= getNumberOfElements())
+ return _("???");
+
+ return SERVLIST_ORDER_BY[i];
+ }
+};
+
static const char *speechModeToString(Being::Speech mode)
{
switch (mode)
@@ -243,6 +262,7 @@ Setup_Video::Setup_Video():
mParticleDetailSlider(new Slider(0, 3)),
mParticleDetailField(new Label),
mFontSize(config.getIntValue("fontSize")),
+ mServerListOrder(config.getIntValue("serverListOrder")),
mDisableSDLTransparencyCheckBox(
new CheckBox(_("Disable transparency (Low CPU mode)"),
mSDLTransparencyDisabled))
@@ -260,10 +280,14 @@ Setup_Video::Setup_Video():
overlayDetailLabel = new Label(_("Ambient FX"));
particleDetailLabel = new Label(_("Particle detail"));
fontSizeLabel = new Label(_("Font size"));
+ serverListOrderLabel = new Label(_("Order servers by"));
mFontSizeListModel = new FontSizeChoiceListModel;
mFontSizeDropDown = new DropDown(mFontSizeListModel);
+ mServerListOrderListModel = new ServerListOrderListModel;
+ mServerListOrderDropDown = new DropDown(mServerListOrderListModel);
+
mModeList->setEnabled(true);
#ifndef USE_OPENGL
@@ -341,6 +365,9 @@ Setup_Video::Setup_Video():
mFontSizeDropDown->setSelected(mFontSize - 10);
mFontSizeDropDown->adjustHeight();
+ mServerListOrderDropDown->setSelected(mServerListOrder);
+ mServerListOrderDropDown->adjustHeight();
+
// Do the layout
LayoutHelper h(this);
ContainerPlacer place = h.getPlacer(0, 0);
@@ -387,6 +414,9 @@ Setup_Video::Setup_Video():
place(0, 12, mDisableSDLTransparencyCheckBox, 4);
+ place(0, 13, serverListOrderLabel, 3);
+ place(1, 13, mServerListOrderDropDown, 2);
+
setDimension(gcn::Rectangle(0, 0, 365, 300));
}
@@ -395,6 +425,7 @@ Setup_Video::~Setup_Video()
delete mModeListModel;
delete mModeList;
delete mFontSizeListModel;
+ delete mServerListOrderListModel;
}
void Setup_Video::apply()
@@ -493,6 +524,7 @@ void Setup_Video::apply()
// FPS change
config.setValue("fpslimit", mFps);
config.setValue("fontSize", mFontSizeDropDown->getSelected() + 10);
+ config.setValue("serverListOrder", mServerListOrderDropDown->getSelected());
// We sync old and new values at apply time
mFullScreenEnabled = config.getBoolValue("screen");
diff --git a/src/gui/setup_video.h b/src/gui/setup_video.h
index d0e2c492..15a0387e 100644
--- a/src/gui/setup_video.h
+++ b/src/gui/setup_video.h
@@ -32,6 +32,7 @@
class ModeListModel;
class FontSizeChoiceListModel;
+class ServerListOrderListModel;
class Setup_Video : public SetupTab, public gcn::ActionListener,
public gcn::KeyListener
@@ -67,6 +68,7 @@ class Setup_Video : public SetupTab, public gcn::ActionListener,
ModeListModel *mModeListModel;
FontSizeChoiceListModel *mFontSizeListModel;
+ ServerListOrderListModel *mServerListOrderListModel;
gcn::Label *speechLabel;
gcn::Label *alphaLabel;
@@ -75,6 +77,7 @@ class Setup_Video : public SetupTab, public gcn::ActionListener,
gcn::Label *overlayDetailLabel;
gcn::Label *particleDetailLabel;
gcn::Label *fontSizeLabel;
+ gcn::Label *serverListOrderLabel;
gcn::ListBox *mModeList;
gcn::CheckBox *mFsCheckBox;
@@ -108,6 +111,9 @@ class Setup_Video : public SetupTab, public gcn::ActionListener,
int mFontSize;
gcn::DropDown *mFontSizeDropDown;
+ int mServerListOrder;
+ gcn::DropDown *mServerListOrderDropDown;
+
gcn::CheckBox *mDisableSDLTransparencyCheckBox;
};
diff --git a/src/gui/shortcutwindow.h b/src/gui/shortcutwindow.h
index a0f82541..f5905e31 100644
--- a/src/gui/shortcutwindow.h
+++ b/src/gui/shortcutwindow.h
@@ -35,14 +35,8 @@ class ShortcutContainer;
class ShortcutWindow : public Window
{
public:
- /**
- * Constructor.
- */
ShortcutWindow(const std::string &title, ShortcutContainer *content);
- /**
- * Destructor.
- */
~ShortcutWindow();
private:
diff --git a/src/gui/skilldialog.cpp b/src/gui/skilldialog.cpp
index be46132e..c7976caa 100644
--- a/src/gui/skilldialog.cpp
+++ b/src/gui/skilldialog.cpp
@@ -24,6 +24,7 @@
#include "log.h"
#include "playerinfo.h"
#include "configuration.h"
+#include "eventlistener.h"
#include "gui/setup.h"
@@ -211,6 +212,8 @@ private:
SkillDialog::SkillDialog():
Window(_("Skills"))
{
+ listen(Event::AttributesChannel);
+
setWindowName("Skills");
setCloseButton(true);
setResizable(true);
@@ -277,6 +280,17 @@ void SkillDialog::update()
}
}
+void SkillDialog::event(Event::Channel channel, const Event &event)
+{
+ if (event.getType() == Event::UpdateAttribute)
+ {
+ if (event.getInt("id") == SKILL_POINTS)
+ {
+ update();
+ }
+ }
+}
+
void SkillDialog::loadSkills(const std::string &file)
{
// Fixes issues with removing tabs
diff --git a/src/gui/skilldialog.h b/src/gui/skilldialog.h
index 3b1b1832..a49c537b 100644
--- a/src/gui/skilldialog.h
+++ b/src/gui/skilldialog.h
@@ -23,6 +23,7 @@
#define SKILLDIALOG_H
#include "gui/widgets/window.h"
+#include "eventlistener.h"
#include <guichan/actionlistener.hpp>
@@ -41,13 +42,15 @@ struct SkillInfo;
*
* \ingroup Interface
*/
-class SkillDialog : public Window, public gcn::ActionListener
+class SkillDialog : public Window, public gcn::ActionListener, public EventListener
{
public:
SkillDialog();
~SkillDialog();
+ void event(Event::Channel channel, const Event &event);
+
/**
* Called when receiving actions from widget.
*/
diff --git a/src/gui/socialwindow.cpp b/src/gui/socialwindow.cpp
index b4321b25..07f37eec 100644
--- a/src/gui/socialwindow.cpp
+++ b/src/gui/socialwindow.cpp
@@ -310,6 +310,7 @@ private:
SocialWindow::SocialWindow() :
Window(_("Social")),
+ mGuildInvited(0),
mGuildAcceptDialog(NULL),
mPartyAcceptDialog(NULL)
{
@@ -459,14 +460,12 @@ void SocialWindow::action(const gcn::ActionEvent &event)
// check if they accepted the invite
if (eventId == "yes")
{
- SERVER_NOTICE(strprintf(_("Accepted guild invite from %s."),
- mPartyInviter.c_str()))
+ SERVER_NOTICE(_("Accepted guild invite"))
Net::getGuildHandler()->inviteResponse(mGuildInvited, true);
}
else if (eventId == "no")
{
- SERVER_NOTICE(strprintf(_("Rejected guild invite from %s."),
- mPartyInviter.c_str()))
+ SERVER_NOTICE(_("Rejected guild invite."))
Net::getGuildHandler()->inviteResponse(mGuildInvited, false);
}
diff --git a/src/gui/speechbubble.h b/src/gui/speechbubble.h
index 6017398a..7316cf96 100644
--- a/src/gui/speechbubble.h
+++ b/src/gui/speechbubble.h
@@ -32,9 +32,6 @@ class TextBox;
class SpeechBubble : public Popup
{
public:
- /**
- * Constructor. Initializes the speech bubble.
- */
SpeechBubble();
/**
diff --git a/src/gui/statuswindow.cpp b/src/gui/statuswindow.cpp
index a3420f06..28ed6c68 100644
--- a/src/gui/statuswindow.cpp
+++ b/src/gui/statuswindow.cpp
@@ -96,7 +96,7 @@ class ChangeDisplay : public AttrDisplay, gcn::ActionListener
StatusWindow::StatusWindow():
Window(player_node->getName())
{
- listen(CHANNEL_ATTRIBUTES);
+ listen(Event::AttributesChannel);
setWindowName("Status");
setupWindow->registerWindowForReset(this);
@@ -217,9 +217,10 @@ StatusWindow::StatusWindow():
mLvlLabel->adjustSize();
}
-void StatusWindow::event(Channels channel, const Mana::Event &event)
+void StatusWindow::event(Event::Channel channel,
+ const Event &event)
{
- if (event.getName() == EVENT_UPDATEATTRIBUTE)
+ if (event.getType() == Event::UpdateAttribute)
{
switch(event.getInt("id"))
{
@@ -265,7 +266,7 @@ void StatusWindow::event(Channels channel, const Mana::Event &event)
break;
}
}
- else if (event.getName() == EVENT_UPDATESTAT)
+ else if (event.getType() == Event::UpdateStat)
{
int id = event.getInt("id");
diff --git a/src/gui/statuswindow.h b/src/gui/statuswindow.h
index 103111a7..9120d978 100644
--- a/src/gui/statuswindow.h
+++ b/src/gui/statuswindow.h
@@ -22,7 +22,7 @@
#ifndef STATUS_H
#define STATUS_H
-#include "listener.h"
+#include "eventlistener.h"
#include "gui/widgets/window.h"
@@ -40,15 +40,12 @@ class VertContainer;
*
* \ingroup Interface
*/
-class StatusWindow : public Window, public Mana::Listener
+class StatusWindow : public Window, public EventListener
{
public:
- /**
- * Constructor.
- */
StatusWindow();
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
void updateAttrs();
diff --git a/src/gui/textdialog.h b/src/gui/textdialog.h
index aa8fcf8f..ccaa69ce 100644
--- a/src/gui/textdialog.h
+++ b/src/gui/textdialog.h
@@ -36,11 +36,6 @@ class TextField;
class TextDialog : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor.
- *
- * @see Window::Window
- */
TextDialog(const std::string &title, const std::string &msg,
Window *parent = NULL, bool autoCompleteEnabled = false);
diff --git a/src/gui/textpopup.h b/src/gui/textpopup.h
index 51646590..04911d37 100644
--- a/src/gui/textpopup.h
+++ b/src/gui/textpopup.h
@@ -36,21 +36,15 @@ class TextBox;
class TextPopup : public Popup
{
public:
- /**
- * Constructor. Initializes the item popup.
- */
TextPopup();
- /**
- * Destructor. Cleans up the item popup on deletion.
- */
~TextPopup();
/**
* Sets the text to be displayed.
*/
void show(int x, int y, const std::string &str1)
- { show(x, y, str1, (const char*)""); };
+ { show(x, y, str1, (const char*)""); }
/**
* Sets the text to be displayed.
diff --git a/src/gui/trade.h b/src/gui/trade.h
index e22f8863..f854d698 100644
--- a/src/gui/trade.h
+++ b/src/gui/trade.h
@@ -42,14 +42,8 @@ class ScrollArea;
class TradeWindow : public Window, gcn::ActionListener, gcn::SelectionListener
{
public:
- /**
- * Constructor.
- */
TradeWindow();
- /**
- * Destructor.
- */
~TradeWindow();
/**
diff --git a/src/gui/truetypefont.h b/src/gui/truetypefont.h
index 689f45bf..41db3f86 100644
--- a/src/gui/truetypefont.h
+++ b/src/gui/truetypefont.h
@@ -56,9 +56,6 @@ class TrueTypeFont : public gcn::Font
*/
TrueTypeFont(const std::string &filename, int size, int style = 0);
- /**
- * Destructor.
- */
~TrueTypeFont();
virtual int getWidth(const std::string &text) const;
diff --git a/src/gui/unregisterdialog.h b/src/gui/unregisterdialog.h
index 87999d5d..503e0258 100644
--- a/src/gui/unregisterdialog.h
+++ b/src/gui/unregisterdialog.h
@@ -38,11 +38,6 @@ class WrongDataNoticeListener;
class UnRegisterDialog : public Window, public gcn::ActionListener
{
public:
- /**
- * Constructor
- *
- * @see Window::Window
- */
UnRegisterDialog(LoginData *loginData);
~UnRegisterDialog();
diff --git a/src/gui/updatewindow.h b/src/gui/updatewindow.h
index a62a2ad7..a4dbf674 100644
--- a/src/gui/updatewindow.h
+++ b/src/gui/updatewindow.h
@@ -19,8 +19,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _UPDATERWINDOW_H
-#define _UPDATERWINDOW_H
+#ifndef UPDATERWINDOW_H
+#define UPDATERWINDOW_H
#include "gui/widgets/window.h"
@@ -71,9 +71,6 @@ class UpdaterWindow : public Window, public gcn::ActionListener,
const std::string &updatesDir,
bool applyUpdates);
- /**
- * Destructor
- */
~UpdaterWindow();
/**
diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp
index 19bed735..f6166c8f 100644
--- a/src/gui/viewport.cpp
+++ b/src/gui/viewport.cpp
@@ -43,6 +43,8 @@
#include "utils/stringutils.h"
+#include <cmath>
+
extern volatile int tick_time;
Viewport::Viewport():
@@ -70,8 +72,8 @@ Viewport::Viewport():
setFocusable(true);
- listen(CHANNEL_CONFIG);
- listen(CHANNEL_ACTORSPRITE);
+ listen(Event::ConfigChannel);
+ listen(Event::ActorSpriteChannel);
}
Viewport::~Viewport()
@@ -122,9 +124,9 @@ void Viewport::draw(gcn::Graphics *gcnGraphics)
if (mScrollLaziness < 1)
mScrollLaziness = 1; // Avoids division by zero
- // Apply lazy scrolling
while (lastTick < tick_time)
{
+ // Apply lazy scrolling
if (player_x > mPixelViewX + mScrollRadius)
{
mPixelViewX += (player_x - mPixelViewX - mScrollRadius) /
@@ -145,6 +147,22 @@ void Viewport::draw(gcn::Graphics *gcnGraphics)
mPixelViewY += (player_y - mPixelViewY + mScrollRadius) /
mScrollLaziness;
}
+
+ // manage shake effect
+ for (ShakeEffects::iterator i = mShakeEffects.begin();
+ i != mShakeEffects.end();
+ i++)
+ {
+ // apply the effect to viewport
+ mPixelViewX += i->x *= -i->decay;
+ mPixelViewY += i->y *= -i->decay;
+ // check death conditions
+ if (abs(i->x) + abs(i->y) < 1.0f ||
+ (i->duration > 0 && --i->duration == 0))
+ {
+ i = mShakeEffects.erase(i);
+ }
+ }
lastTick++;
}
@@ -223,6 +241,24 @@ void Viewport::draw(gcn::Graphics *gcnGraphics)
WindowContainer::draw(gcnGraphics);
}
+void Viewport::shakeScreen(int intensity)
+{
+ float direction = rand()%628 / 100.0f; // random value between 0 and 2PI
+ float x = std::sin(direction) * intensity;
+ float y = std::cos(direction) * intensity;
+ shakeScreen(x, y);
+}
+
+void Viewport::shakeScreen(float x, float y, float decay, unsigned duration)
+{
+ ShakeEffect effect;
+ effect.x = x;
+ effect.y = y;
+ effect.decay = decay;
+ effect.duration = duration;
+ mShakeEffects.push_back(effect);
+}
+
void Viewport::logic()
{
WindowContainer::logic();
@@ -526,9 +562,10 @@ void Viewport::hideBeingPopup()
mBeingPopup->setVisible(false);
}
-void Viewport::event(Channels channel, const Mana::Event &event)
+void Viewport::event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_ACTORSPRITE && event.getName() == EVENT_DESTROYED)
+ if (channel == Event::ActorSpriteChannel
+ && event.getType() == Event::Destroyed)
{
ActorSprite *actor = event.getActor("source");
@@ -538,8 +575,8 @@ void Viewport::event(Channels channel, const Mana::Event &event)
if (mHoverItem == actor)
mHoverItem = 0;
}
- else if (channel == CHANNEL_CONFIG &&
- event.getName() == EVENT_CONFIGOPTIONCHANGED)
+ else if (channel == Event::ConfigChannel &&
+ event.getType() == Event::ConfigOptionChanged)
{
const std::string option = event.getString("option");
if (option == "ScrollLaziness" || option == "ScrollRadius")
diff --git a/src/gui/viewport.h b/src/gui/viewport.h
index 93e36b5b..d8687219 100644
--- a/src/gui/viewport.h
+++ b/src/gui/viewport.h
@@ -22,13 +22,15 @@
#ifndef VIEWPORT_H
#define VIEWPORT_H
-#include "listener.h"
+#include "eventlistener.h"
#include "position.h"
#include "gui/widgets/windowcontainer.h"
#include <guichan/mouselistener.hpp>
+#include <list>
+
class ActorSprite;
class Being;
class BeingPopup;
@@ -52,17 +54,11 @@ const int walkingMouseDelay = 500;
* coordinates.
*/
class Viewport : public WindowContainer, public gcn::MouseListener,
- public Mana::Listener
+ public EventListener
{
public:
- /**
- * Constructor.
- */
Viewport();
- /**
- * Destructor.
- */
~Viewport();
/**
@@ -153,7 +149,23 @@ class Viewport : public WindowContainer, public gcn::MouseListener,
*/
void hideBeingPopup();
- void event(Channels channel, const Mana::Event &event);
+ /**
+ * Makes the screen shake in a random direction
+ */
+ void shakeScreen(int intensity);
+
+ /**
+ * Makes the screen shake in a specific direction
+ */
+ void shakeScreen(float x, float y, float decay = 0.95f, unsigned duration = 0);
+
+ /**
+ * Stops all active screen shake effects
+ */
+ void shakeScreenStop()
+ { mShakeEffects.clear(); }
+
+ void event(Event::Channel channel, const Event &event);
private:
/**
@@ -190,6 +202,16 @@ class Viewport : public WindowContainer, public gcn::MouseListener,
float mPixelViewY; /**< Current viewpoint in pixels. */
int mShowDebugPath; /**< Show a path from player to pointer. */
+ struct ShakeEffect
+ {
+ float x;
+ float y;
+ float decay;
+ unsigned duration;
+ };
+ typedef std::list<ShakeEffect> ShakeEffects;
+ ShakeEffects mShakeEffects;
+
bool mPlayerFollowMouse;
int mLocalWalkTime; /**< Timestamp before the next walk can be sent. */
diff --git a/src/gui/widgets/browserbox.h b/src/gui/widgets/browserbox.h
index 54a2a8cc..28ec734a 100644
--- a/src/gui/widgets/browserbox.h
+++ b/src/gui/widgets/browserbox.h
@@ -72,14 +72,8 @@ class BrowserBox : public gcn::Widget,
public gcn::MouseListener
{
public:
- /**
- * Constructor.
- */
BrowserBox(unsigned int mode = AUTO_SIZE, bool opaque = true);
- /**
- * Destructor.
- */
~BrowserBox();
/**
diff --git a/src/gui/widgets/button.h b/src/gui/widgets/button.h
index aa37261e..b750d9bb 100644
--- a/src/gui/widgets/button.h
+++ b/src/gui/widgets/button.h
@@ -46,9 +46,6 @@ class Button : public gcn::Button
Button(const std::string &caption, const std::string &actionEventId,
gcn::ActionListener *listener);
- /**
- * Destructor.
- */
~Button();
/**
diff --git a/src/gui/widgets/channeltab.h b/src/gui/widgets/channeltab.h
index 842b80f7..0272655b 100644
--- a/src/gui/widgets/channeltab.h
+++ b/src/gui/widgets/channeltab.h
@@ -43,14 +43,8 @@ class ChannelTab : public ChatTab
protected:
friend class Channel;
- /**
- * Constructor.
- */
ChannelTab(Channel *channel);
- /**
- * Destructor.
- */
~ChannelTab();
void handleInput(const std::string &msg);
diff --git a/src/gui/widgets/chattab.h b/src/gui/widgets/chattab.h
index 1e187f23..6d262e11 100644
--- a/src/gui/widgets/chattab.h
+++ b/src/gui/widgets/chattab.h
@@ -37,9 +37,6 @@ class ScrollArea;
class ChatTab : public Tab, public AutoCompleteLister
{
public:
- /**
- * Constructor.
- */
ChatTab(const std::string &name);
~ChatTab();
diff --git a/src/gui/widgets/checkbox.h b/src/gui/widgets/checkbox.h
index a7daa52d..27962f72 100644
--- a/src/gui/widgets/checkbox.h
+++ b/src/gui/widgets/checkbox.h
@@ -34,14 +34,8 @@ class Image;
class CheckBox : public gcn::CheckBox
{
public:
- /**
- * Constructor.
- */
CheckBox(const std::string &caption, bool selected = false);
- /**
- * Destructor.
- */
~CheckBox();
/**
diff --git a/src/gui/widgets/emoteshortcutcontainer.h b/src/gui/widgets/emoteshortcutcontainer.h
index c3fb9d14..0021d838 100644
--- a/src/gui/widgets/emoteshortcutcontainer.h
+++ b/src/gui/widgets/emoteshortcutcontainer.h
@@ -35,14 +35,8 @@ class ImageSprite;
class EmoteShortcutContainer : public ShortcutContainer
{
public:
- /**
- * Constructor. Initializes the graphic.
- */
EmoteShortcutContainer();
- /**
- * Destructor.
- */
virtual ~EmoteShortcutContainer();
/**
diff --git a/src/gui/widgets/flowcontainer.h b/src/gui/widgets/flowcontainer.h
index a0e8dbf5..ee9f634b 100644
--- a/src/gui/widgets/flowcontainer.h
+++ b/src/gui/widgets/flowcontainer.h
@@ -34,17 +34,9 @@ class FlowContainer : public Container,
public gcn::WidgetListener
{
public:
- /**
- * Constructor. Initializes the shortcut container.
- */
FlowContainer(int boxWidth, int boxHeight);
/**
- * Destructor.
- */
- ~FlowContainer() {}
-
- /**
* Invoked when a widget changes its size. This is used to determine
* the new height of the container.
*/
diff --git a/src/gui/widgets/icon.h b/src/gui/widgets/icon.h
index 27ed0db8..7b297756 100644
--- a/src/gui/widgets/icon.h
+++ b/src/gui/widgets/icon.h
@@ -36,6 +36,8 @@ class Icon : public gcn::Widget
public:
/**
* Constructor.
+ *
+ * @param filename The file name of the image to display
*/
Icon(const std::string &filename);
@@ -44,7 +46,7 @@ class Icon : public gcn::Widget
*/
Icon(Image *image);
- /**
+ /**
* Gets the current Image.
*/
Image *getImage() const { return mImage; }
diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp
index 2e9b698d..0967055b 100644
--- a/src/gui/widgets/itemcontainer.cpp
+++ b/src/gui/widgets/itemcontainer.cpp
@@ -101,14 +101,38 @@ void ItemContainer::draw(gcn::Graphics *graphics)
g->setFont(getFont());
+ mFilteredMap.clear();
+ int currentIndex = 0;
+ //Filter checking
+ for (int i = 0; i < mGridColumns; i++)
+ {
+ for (int j = 0; j < mGridRows; j++)
+ {
+ int itemIndex = j * mGridColumns + i;
+ Item *item = mInventory->getItem(itemIndex);
+ if (!item || item->getId() == 0)
+ continue;
+
+ if (mFilter.size() > 0)
+ {
+ if (normalize(item->getInfo().getName()).find(mFilter) == std::string::npos)
+ continue;
+ }
+
+ mFilteredMap[currentIndex] = item;
+ currentIndex++;
+ }
+ }
+
for (int i = 0; i < mGridColumns; i++)
{
for (int j = 0; j < mGridRows; j++)
{
int itemX = i * BOX_WIDTH;
int itemY = j * BOX_HEIGHT;
- int itemIndex = (j * mGridColumns) + i;
- Item *item = mInventory->getItem(itemIndex);
+ int itemIndex = j * mGridColumns + i;
+
+ Item *item = getItemAt(itemIndex);
if (!item || item->getId() == 0)
continue;
@@ -178,7 +202,18 @@ void ItemContainer::setSelectedIndex(int newIndex)
Item *ItemContainer::getSelectedItem() const
{
- return mInventory->getItem(mSelectedIndex);
+ return getItemAt(mSelectedIndex);
+}
+
+Item *ItemContainer::getItemAt(int index) const
+{
+ std::map<int, Item*>::const_iterator i = mFilteredMap.find(index);
+ return i == mFilteredMap.end() ? 0 : i->second;
+}
+
+void ItemContainer::setFilter(const std::string &filter)
+{
+ mFilter = normalize(filter);
}
void ItemContainer::distributeValueChangedEvent()
@@ -245,7 +280,10 @@ void ItemContainer::mousePressed(gcn::MouseEvent &event)
if (index == Inventory::NO_SLOT_INDEX)
return;
- Item *item = mInventory->getItem(index);
+ Item *item = getItemAt(index);
+
+ if (!item)
+ return;
// put item name into chat window
if (mDescItems)
@@ -308,10 +346,10 @@ void ItemContainer::mouseReleased(gcn::MouseEvent &event)
Item *item = getSelectedItem();
{
- Mana::Event event(EVENT_DOMOVE);
+ Event event(Event::DoMove);
event.setItem("item", item);
event.setInt("newIndex", index);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
}
selectNone();
}
@@ -320,7 +358,7 @@ void ItemContainer::mouseReleased(gcn::MouseEvent &event)
// Show ItemTooltip
void ItemContainer::mouseMoved(gcn::MouseEvent &event)
{
- Item *item = mInventory->getItem(getSlotIndex(event.getX(), event.getY()));
+ Item *item = getItemAt(getSlotIndex(event.getX(), event.getY()));
if (item)
{
@@ -380,10 +418,10 @@ void ItemContainer::keyAction()
mHighlightedIndex != -1)
{
Item *item = getSelectedItem();
- Mana::Event event(EVENT_DOMOVE);
+ Event event(Event::DoMove);
event.setItem("item", item);
event.setInt("newIndex", mHighlightedIndex);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
setSelectedIndex(mHighlightedIndex);
}
// If the highlight is on an item then select it.
@@ -396,10 +434,10 @@ void ItemContainer::keyAction()
else if (mSelectedIndex != -1)
{
Item *item = getSelectedItem();
- Mana::Event event(EVENT_DOMOVE);
+ Event event(Event::DoMove);
event.setItem("item", item);
event.setInt("newIndex", mHighlightedIndex);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
selectNone();
}
}
diff --git a/src/gui/widgets/itemcontainer.h b/src/gui/widgets/itemcontainer.h
index 38ccf9ca..ca21ad3f 100644
--- a/src/gui/widgets/itemcontainer.h
+++ b/src/gui/widgets/itemcontainer.h
@@ -27,6 +27,7 @@
#include <guichan/widget.hpp>
#include <guichan/widgetlistener.hpp>
+#include <map>
#include <list>
class Image;
@@ -59,9 +60,6 @@ class ItemContainer : public gcn::Widget,
*/
ItemContainer(Inventory *inventory, bool forceQuantity = false);
- /**
- * Destructor.
- */
virtual ~ItemContainer();
/**
@@ -98,6 +96,12 @@ class ItemContainer : public gcn::Widget,
*/
void selectNone();
+
+ /**
+ * Sets item filter
+ */
+ void setFilter(const std::string &filter);
+
/**
* Adds a listener to the list that's notified each time a change to
* the selection occurs.
@@ -170,6 +174,8 @@ class ItemContainer : public gcn::Widget,
*/
int getSlotIndex(int x, int y) const;
+ Item *getItemAt(int) const;
+
Inventory *mInventory;
int mGridColumns, mGridRows;
Image *mSelImg;
@@ -181,6 +187,10 @@ class ItemContainer : public gcn::Widget,
bool mDescItems;
int mDragPosX, mDragPosY;
+ std::map<int, Item*> mFilteredMap;
+
+ std::string mFilter;
+
ItemPopup *mItemPopup;
typedef std::list<gcn::SelectionListener*> SelectionListenerList;
diff --git a/src/gui/widgets/itemshortcutcontainer.h b/src/gui/widgets/itemshortcutcontainer.h
index 9ec3f4c1..80f29c7b 100644
--- a/src/gui/widgets/itemshortcutcontainer.h
+++ b/src/gui/widgets/itemshortcutcontainer.h
@@ -38,14 +38,8 @@ class ItemPopup;
class ItemShortcutContainer : public ShortcutContainer
{
public:
- /**
- * Constructor. Initializes the graphic.
- */
ItemShortcutContainer();
- /**
- * Destructor.
- */
virtual ~ItemShortcutContainer();
/**
diff --git a/src/gui/widgets/label.h b/src/gui/widgets/label.h
index 2dfa254c..6b9cd2a8 100644
--- a/src/gui/widgets/label.h
+++ b/src/gui/widgets/label.h
@@ -1,6 +1,6 @@
/*
* The Mana Client
- * Copyright (c) 2009 Aethyra Development Team
+ * Copyright (c) 2009 Aethyra Development Team
*
* This file is part of The Mana Client.
*
@@ -32,9 +32,6 @@
class Label : public gcn::Label
{
public:
- /**
- * Constructor.
- */
Label();
/**
diff --git a/src/gui/widgets/layouthelper.h b/src/gui/widgets/layouthelper.h
index cf966029..0aeabb0d 100644
--- a/src/gui/widgets/layouthelper.h
+++ b/src/gui/widgets/layouthelper.h
@@ -34,14 +34,8 @@
class LayoutHelper : public gcn::WidgetListener
{
public:
- /**
- * Constructor.
- */
LayoutHelper(gcn::Container *container);
- /**
- * Destructor.
- */
~LayoutHelper();
/**
diff --git a/src/gui/widgets/listbox.h b/src/gui/widgets/listbox.h
index 8b8c8b54..92505c15 100644
--- a/src/gui/widgets/listbox.h
+++ b/src/gui/widgets/listbox.h
@@ -36,9 +36,6 @@ class SelectionListener;
class ListBox : public gcn::ListBox
{
public:
- /**
- * Constructor.
- */
ListBox(gcn::ListModel *listModel);
~ListBox();
diff --git a/src/gui/widgets/passwordfield.h b/src/gui/widgets/passwordfield.h
index 619cd842..0058233c 100644
--- a/src/gui/widgets/passwordfield.h
+++ b/src/gui/widgets/passwordfield.h
@@ -35,7 +35,7 @@ class PasswordField : public TextField
/**
* Constructor, initializes the password field with the given string.
*/
- PasswordField(const std::string &text = "");
+ PasswordField(const std::string &text = std::string());
/**
* Draws the password field.
diff --git a/src/gui/widgets/playerbox.h b/src/gui/widgets/playerbox.h
index 4ce6782d..f6e70ef7 100644
--- a/src/gui/widgets/playerbox.h
+++ b/src/gui/widgets/playerbox.h
@@ -41,9 +41,6 @@ class PlayerBox : public gcn::ScrollArea
*/
PlayerBox(const Being *being = 0);
- /**
- * Destructor.
- */
~PlayerBox();
/**
diff --git a/src/gui/widgets/radiobutton.h b/src/gui/widgets/radiobutton.h
index 7f839ea5..f8aa40f1 100644
--- a/src/gui/widgets/radiobutton.h
+++ b/src/gui/widgets/radiobutton.h
@@ -32,15 +32,9 @@ class Image;
class RadioButton : public gcn::RadioButton
{
public:
- /**
- * Constructor.
- */
RadioButton(const std::string &caption,const std::string &group,
bool marked = false);
- /**
- * Destructor.
- */
~RadioButton();
/**
diff --git a/src/gui/widgets/resizegrip.h b/src/gui/widgets/resizegrip.h
index 5ef93f29..319b574f 100644
--- a/src/gui/widgets/resizegrip.h
+++ b/src/gui/widgets/resizegrip.h
@@ -36,14 +36,8 @@ class Image;
class ResizeGrip : public gcn::Widget
{
public:
- /**
- * Constructor.
- */
ResizeGrip(const std::string &image = "resize.png");
- /**
- * Destructor.
- */
~ResizeGrip();
/**
diff --git a/src/gui/widgets/shoplistbox.h b/src/gui/widgets/shoplistbox.h
index 087bdd53..325cb562 100644
--- a/src/gui/widgets/shoplistbox.h
+++ b/src/gui/widgets/shoplistbox.h
@@ -37,9 +37,6 @@ class ItemPopup;
class ShopListBox : public ListBox
{
public:
- /**
- * Constructor.
- */
ShopListBox(gcn::ListModel *listModel);
/**
@@ -47,9 +44,6 @@ class ShopListBox : public ListBox
*/
ShopListBox(gcn::ListModel *listModel, ShopItems *shopListModel);
- /**
- * Destructor
- */
~ShopListBox();
/**
diff --git a/src/gui/widgets/shortcutcontainer.h b/src/gui/widgets/shortcutcontainer.h
index 9404ffd2..e511d7f9 100644
--- a/src/gui/widgets/shortcutcontainer.h
+++ b/src/gui/widgets/shortcutcontainer.h
@@ -38,14 +38,8 @@ class ShortcutContainer : public gcn::Widget,
public gcn::MouseListener
{
public:
- /**
- * Constructor. Initializes the shortcut container.
- */
ShortcutContainer();
- /**
- * Destructor.
- */
~ShortcutContainer() {}
/**
diff --git a/src/gui/widgets/slider.h b/src/gui/widgets/slider.h
index 9b26e404..408210ac 100644
--- a/src/gui/widgets/slider.h
+++ b/src/gui/widgets/slider.h
@@ -31,7 +31,8 @@ class Image;
*
* \ingroup GUI
*/
-class Slider : public gcn::Slider {
+class Slider : public gcn::Slider
+{
public:
/**
* Constructor with scale start equal to 0.
@@ -40,12 +41,12 @@ class Slider : public gcn::Slider {
/**
* Constructor.
+ *
+ * @param scaleStart The minimum value of the slider
+ * @param scaleEnd The maximum value of the slider
*/
Slider(double scaleStart, double scaleEnd);
- /**
- * Destructor.
- */
~Slider();
/**
diff --git a/src/gui/widgets/tabbedarea.h b/src/gui/widgets/tabbedarea.h
index 19393f8b..d364eac5 100644
--- a/src/gui/widgets/tabbedarea.h
+++ b/src/gui/widgets/tabbedarea.h
@@ -39,9 +39,6 @@ class Tab;
class TabbedArea : public gcn::TabbedArea, public gcn::WidgetListener
{
public:
- /**
- * Constructor.
- */
TabbedArea();
/**
diff --git a/src/gui/widgets/textbox.h b/src/gui/widgets/textbox.h
index 3b6778d2..6b947e0b 100644
--- a/src/gui/widgets/textbox.h
+++ b/src/gui/widgets/textbox.h
@@ -34,9 +34,6 @@
class TextBox : public gcn::TextBox
{
public:
- /**
- * Constructor.
- */
TextBox();
inline void setTextColor(const gcn::Color *color)
diff --git a/src/gui/worldselectdialog.h b/src/gui/worldselectdialog.h
index b51110b4..624560c3 100644
--- a/src/gui/worldselectdialog.h
+++ b/src/gui/worldselectdialog.h
@@ -43,16 +43,8 @@ class WorldListModel;
class WorldSelectDialog : public Window, public gcn::ActionListener,
public gcn::KeyListener {
public:
- /**
- * Constructor
- *
- * @see Window::Window
- */
WorldSelectDialog(Worlds worlds);
- /**
- * Destructor.
- */
~WorldSelectDialog();
/**
diff --git a/src/imageparticle.h b/src/imageparticle.h
index 23909fa3..5c4e4bf1 100644
--- a/src/imageparticle.h
+++ b/src/imageparticle.h
@@ -41,9 +41,6 @@ class ImageParticle : public Particle
*/
ImageParticle(Map *map, Image *image);
- /**
- * Destructor.
- */
~ImageParticle();
/**
diff --git a/src/inventory.h b/src/inventory.h
index 7af9f160..5a1d2c0a 100644
--- a/src/inventory.h
+++ b/src/inventory.h
@@ -58,9 +58,6 @@ class Inventory
*/
Inventory(Type type, int size = -1);
- /**
- * Destructor.
- */
~Inventory();
/**
diff --git a/src/item.cpp b/src/item.cpp
index fee7e86f..821a178b 100644
--- a/src/item.cpp
+++ b/src/item.cpp
@@ -72,19 +72,19 @@ void Item::setId(int id)
"unknown-item.png"));
}
-void Item::doEvent(Events eventName)
+void Item::doEvent(Event::Type eventName)
{
- Mana::Event event(eventName);
+ Event event(eventName);
event.setItem("item", this);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
}
-void Item::doEvent(Events eventName, int amount)
+void Item::doEvent(Event::Type eventName, int amount)
{
- Mana::Event event(eventName);
+ Event event(eventName);
event.setItem("item", this);
event.setInt("amount", amount);
- event.trigger(CHANNEL_ITEM);
+ event.trigger(Event::ItemChannel);
}
bool Item::isEquippable() const
diff --git a/src/item.h b/src/item.h
index 24ee2fc5..f6574f8c 100644
--- a/src/item.h
+++ b/src/item.h
@@ -34,14 +34,8 @@ class Image;
class Item
{
public:
- /**
- * Constructor.
- */
Item(int id = -1, int quantity = 0, bool equipped = false);
- /**
- * Destructor.
- */
virtual ~Item();
/**
@@ -114,9 +108,9 @@ class Item
*/
int getInvIndex() const { return mInvIndex; }
- void doEvent(Events eventName);
+ void doEvent(Event::Type eventType);
- void doEvent(Events eventName, int amount);
+ void doEvent(Event::Type eventType, int amount);
/**
* Returns information about this item type.
@@ -131,7 +125,6 @@ class Item
bool mEquipped; /**< Item is equipped. */
bool mInEquipment; /**< Item is in equipment */
int mInvIndex; /**< Inventory index. */
-
};
-#endif
+#endif // ITEM_H
diff --git a/src/itemshortcut.cpp b/src/itemshortcut.cpp
index 0e5abef8..dfcbb3b6 100644
--- a/src/itemshortcut.cpp
+++ b/src/itemshortcut.cpp
@@ -74,13 +74,13 @@ void ItemShortcut::useItem(int index)
if (item->getInfo().getEquippable())
{
if (item->isEquipped())
- item->doEvent(EVENT_DOUNEQUIP);
+ item->doEvent(Event::DoUnequip);
else
- item->doEvent(EVENT_DOEQUIP);
+ item->doEvent(Event::DoEquip);
}
else
{
- item->doEvent(EVENT_DOUSE);
+ item->doEvent(Event::DoUse);
}
}
}
diff --git a/src/itemshortcut.h b/src/itemshortcut.h
index 619d4054..b1566a61 100644
--- a/src/itemshortcut.h
+++ b/src/itemshortcut.h
@@ -32,14 +32,8 @@ class Item;
class ItemShortcut
{
public:
- /**
- * Constructor.
- */
ItemShortcut();
- /**
- * Destructor.
- */
~ItemShortcut();
/**
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index ad9d181a..99e42411 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -85,7 +85,7 @@ LocalPlayer::LocalPlayer(int id, int subtype):
mAfkTime(0),
mAwayMode(false)
{
- listen(CHANNEL_ATTRIBUTES);
+ listen(Event::AttributesChannel);
mAwayListener = new AwayListener();
@@ -93,8 +93,8 @@ LocalPlayer::LocalPlayer(int id, int subtype):
setShowName(config.getValue("showownname", 1));
- listen(CHANNEL_CONFIG);
- listen(CHANNEL_ACTORSPRITE);
+ listen(Event::ConfigChannel);
+ listen(Event::ActorSpriteChannel);
}
LocalPlayer::~LocalPlayer()
@@ -105,8 +105,8 @@ LocalPlayer::~LocalPlayer()
void LocalPlayer::logic()
{
- // Actions are allowed once per second
- if (get_elapsed_time(mLastAction) >= 1000)
+ // Actions are allowed at 5.5 per second
+ if (get_elapsed_time(mLastAction) >= 182)
mLastAction = -1;
// Show XP messages
@@ -980,11 +980,11 @@ void LocalPlayer::addMessageToQueue(const std::string &message, int color)
mMessages.push_back(MessagePair(message, color));
}
-void LocalPlayer::event(Channels channel, const Mana::Event &event)
+void LocalPlayer::event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_ACTORSPRITE)
+ if (channel == Event::ActorSpriteChannel)
{
- if (event.getName() == EVENT_DESTROYED)
+ if (event.getType() == Event::Destroyed)
{
ActorSprite *actor = event.getActor("source");
@@ -995,9 +995,9 @@ void LocalPlayer::event(Channels channel, const Mana::Event &event)
mTarget = 0;
}
}
- else if (channel == CHANNEL_ATTRIBUTES)
+ else if (channel == Event::AttributesChannel)
{
- if (event.getName() == EVENT_UPDATEATTRIBUTE)
+ if (event.getType() == Event::UpdateAttribute)
{
if (event.getInt("id") == EXP)
{
@@ -1008,9 +1008,9 @@ void LocalPlayer::event(Channels channel, const Mana::Event &event)
}
}
}
- else if (channel == CHANNEL_CONFIG)
+ else if (channel == Event::ConfigChannel)
{
- if (event.getName() == EVENT_CONFIGOPTIONCHANGED &&
+ if (event.getType() == Event::ConfigOptionChanged &&
event.getString("option") == "showownname")
{
setShowName(config.getValue("showownname", 1));
diff --git a/src/localplayer.h b/src/localplayer.h
index 01f31e01..4f7e32a6 100644
--- a/src/localplayer.h
+++ b/src/localplayer.h
@@ -55,7 +55,7 @@ enum
PICKUP_TOO_FAR,
PICKUP_INV_FULL,
PICKUP_STACK_FULL,
- PICKUP_DROP_STEAL,
+ PICKUP_DROP_STEAL
};
/**
@@ -70,14 +70,8 @@ enum { ATTACK_RANGE_NOT_SET = -1 };
class LocalPlayer : public Being
{
public:
- /**
- * Constructor.
- */
LocalPlayer(int id= 65535, int subtype = 0);
- /**
- * Destructor.
- */
~LocalPlayer();
virtual void logic();
@@ -219,7 +213,7 @@ class LocalPlayer : public Being
void addMessageToQueue(const std::string &message,
int color = UserPalette::EXP_INFO);
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
/**
* Tells the engine wether to check
@@ -274,4 +268,4 @@ class LocalPlayer : public Being
extern LocalPlayer *player_node;
-#endif
+#endif // LOCALPLAYER_H
diff --git a/src/log.h b/src/log.h
index 4615f626..a508d171 100644
--- a/src/log.h
+++ b/src/log.h
@@ -19,8 +19,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _LOG_H
-#define _LOG_H
+#ifndef LOG_H
+#define LOG_H
#include <fstream>
@@ -30,9 +30,6 @@
class Logger
{
public:
- /**
- * Constructor.
- */
Logger();
/**
diff --git a/src/main.h b/src/main.h
index 38ab6337..3a644100 100644
--- a/src/main.h
+++ b/src/main.h
@@ -55,7 +55,7 @@
#elif defined WIN32
#include "winver.h"
#elif defined __APPLE__
-#define PACKAGE_VERSION "0.5.0"
+#define PACKAGE_VERSION "0.5.1"
#endif
#ifdef PACKAGE_VERSION
diff --git a/src/map.cpp b/src/map.cpp
index b660653d..da962253 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -46,9 +46,6 @@
*/
struct Location
{
- /**
- * Constructor.
- */
Location(int px, int py, MetaTile *ptile):
x(px), y(py), tile(ptile)
{}
diff --git a/src/map.h b/src/map.h
index d49cd920..67135a99 100644
--- a/src/map.h
+++ b/src/map.h
@@ -47,9 +47,6 @@ typedef std::vector<MapLayer*> Layers;
*/
struct MetaTile
{
- /**
- * Constructor.
- */
MetaTile() : whichList(0), blockmask(0) {}
// Pathfinding members
@@ -93,9 +90,6 @@ class MapLayer
*/
MapLayer(int x, int y, int width, int height, bool isFringeLayer);
- /**
- * Destructor.
- */
~MapLayer();
/**
@@ -176,9 +170,6 @@ class Map : public Properties
*/
Map(int width, int height, int tileWidth, int tileHeight);
- /**
- * Destructor.
- */
~Map();
/**
diff --git a/src/net/logindata.h b/src/net/logindata.h
index 4a1c1a9f..dc2ef52b 100644
--- a/src/net/logindata.h
+++ b/src/net/logindata.h
@@ -29,9 +29,6 @@
class LoginData
{
public:
- /**
- * Constructor
- */
LoginData()
{
resetCharacterSlots();
@@ -57,7 +54,7 @@ public:
*/
void resetCharacterSlots()
{
- characterSlots = 3; // Default value, used for TmwAthena.
+ characterSlots = 3; // Default value, used for TmwAthena.
}
void clear()
diff --git a/src/net/manaserv/beinghandler.cpp b/src/net/manaserv/beinghandler.cpp
index 220ecfba..f8cefecf 100644
--- a/src/net/manaserv/beinghandler.cpp
+++ b/src/net/manaserv/beinghandler.cpp
@@ -40,6 +40,8 @@
#include "utils/gettext.h"
+#define POSITION_DIFF_TOLERANCE 48
+
namespace ManaServ {
BeingHandler::BeingHandler()
@@ -186,20 +188,27 @@ void BeingHandler::handleBeingsMoveMessage(Net::MessageIn &msg)
int id = msg.readInt16();
int flags = msg.readInt8();
Being *being = actorSpriteManager->findBeing(id);
- int sx = 0;
- int sy = 0;
- int speed = 0;
+ int sx, sy, dx, dy, speed = 0;
+
+ if ((!flags & (MOVING_POSITION | MOVING_DESTINATION)))
+ continue;
if (flags & MOVING_POSITION)
{
sx = msg.readInt16();
sy = msg.readInt16();
- speed = msg.readInt8();
}
- if (!being || !(flags & (MOVING_POSITION | MOVING_DESTINATION)))
+
+ if (flags & MOVING_DESTINATION)
{
- continue;
+ dx = msg.readInt16();
+ dy = msg.readInt16();
+ speed = msg.readInt8();
}
+
+ if (!being)
+ continue;
+
if (speed)
{
/*
@@ -216,10 +225,18 @@ void BeingHandler::handleBeingsMoveMessage(Net::MessageIn &msg)
if (being == player_node)
continue;
+ // If the position differs too much from the actual one, we resync
+ // the being position
if (flags & MOVING_POSITION)
{
- being->setDestination(sx, sy);
+ Vector serverPos(sx, sy);
+ if (serverPos.length()
+ - being->getPosition().length() > POSITION_DIFF_TOLERANCE)
+ being->setPosition(serverPos);
}
+
+ if (flags & MOVING_DESTINATION)
+ being->setDestination(dx, dy);
}
}
diff --git a/src/net/manaserv/charhandler.cpp b/src/net/manaserv/charhandler.cpp
index 961b364a..79f3b35a 100644
--- a/src/net/manaserv/charhandler.cpp
+++ b/src/net/manaserv/charhandler.cpp
@@ -196,6 +196,14 @@ void CharHandler::handleCharacterDeleteResponse(Net::MessageIn &msg)
if (errMsg == ERRMSG_OK)
{
// Character deletion successful
+ for (unsigned i = 0; i < mCachedCharacterInfos.size(); ++i)
+ {
+ if (mCachedCharacterInfos[i].slot == mSelectedCharacter->slot)
+ {
+ mCachedCharacterInfos.erase(mCachedCharacterInfos.begin() + i);
+ break;
+ }
+ }
delete mSelectedCharacter;
mCharacters.remove(mSelectedCharacter);
updateCharSelectDialog();
@@ -248,9 +256,20 @@ void CharHandler::handleCharacterSelectResponse(Net::MessageIn &msg)
Client::setState(STATE_CONNECT_GAME);
}
- else if (errMsg == ERRMSG_FAILURE)
+ else
{
- errorMessage = _("No gameservers are available.");
+ switch (errMsg)
+ {
+ case ERRMSG_FAILURE:
+ errorMessage = _("No gameservers are available.");
+ break;
+ case ERRMSG_INVALID_ARGUMENT:
+ errorMessage = _("Invalid character slot selected.");
+ break;
+ default:
+ errorMessage = strprintf(_("Unhandled character select "
+ "error message %i."), errMsg);
+ }
delete_all(mCharacters);
mCharacters.clear();
Client::setState(STATE_ERROR);
diff --git a/src/net/manaserv/chathandler.cpp b/src/net/manaserv/chathandler.cpp
index 705795f4..6c97fae3 100644
--- a/src/net/manaserv/chathandler.cpp
+++ b/src/net/manaserv/chathandler.cpp
@@ -165,7 +165,8 @@ void ChatHandler::handleGameChatMessage(Net::MessageIn &msg)
std::string mes = being->getName() + " : " + chatMsg;
- Mana::Event event(being == player_node ? EVENT_PLAYER : EVENT_BEING);
+ Event event(being == player_node ? Event::Player
+ : Event::Being);
event.setString("message", mes);
event.setString("text", chatMsg);
event.setString("nick", being->getName());
@@ -173,7 +174,7 @@ void ChatHandler::handleGameChatMessage(Net::MessageIn &msg)
event.setInt("permissions", player_relations
.checkPermissionSilently(being->getName(),
PlayerRelation::SPEECH_LOG | PlayerRelation::SPEECH_FLOAT));
- event.trigger(CHANNEL_CHAT);
+ event.trigger(Event::ChatChannel);
}
void ChatHandler::handleEnterChannelResponse(Net::MessageIn &msg)
@@ -233,18 +234,18 @@ void ChatHandler::handlePrivateMessage(Net::MessageIn &msg)
std::string userNick = msg.readString();
std::string chatMsg = msg.readString();
- Mana::Event event(EVENT_WHISPER);
+ Event event(Event::Whisper);
event.setString("nick", userNick);
event.setString("message", chatMsg);
- event.trigger(CHANNEL_CHAT);
+ event.trigger(Event::ChatChannel);
}
void ChatHandler::handleAnnouncement(Net::MessageIn &msg)
{
std::string chatMsg = msg.readString();
- Mana::Event event(EVENT_ANNOUNCEMENT);
+ Event event(Event::Announcement);
event.setString("message", chatMsg);
- event.trigger(CHANNEL_CHAT);
+ event.trigger(Event::ChatChannel);
}
void ChatHandler::handleChatMessage(Net::MessageIn &msg)
diff --git a/src/net/manaserv/connection.cpp b/src/net/manaserv/connection.cpp
index b404191f..4b421a04 100644
--- a/src/net/manaserv/connection.cpp
+++ b/src/net/manaserv/connection.cpp
@@ -60,11 +60,7 @@ bool Connection::connect(const std::string &address, short port)
enetAddress.port = port;
// Initiate the connection, allocating channel 0.
-#if defined(ENET_VERSION) && ENET_VERSION >= ENET_CUTOFF
mConnection = enet_host_connect(mClient, &enetAddress, 1, 0);
-#else
- mConnection = enet_host_connect(mClient, &enetAddress, 1);
-#endif
if (!mConnection)
{
diff --git a/src/net/manaserv/connection.h b/src/net/manaserv/connection.h
index 808a6d40..b39f8957 100644
--- a/src/net/manaserv/connection.h
+++ b/src/net/manaserv/connection.h
@@ -26,12 +26,6 @@
#include <iosfwd>
-#ifdef ENET_VERSION_CREATE
-#define ENET_CUTOFF ENET_VERSION_CREATE(1,3,0)
-#else
-#define ENET_CUTOFF 0xFFFFFFFF
-#endif
-
namespace ManaServ
{
class MessageOut;
diff --git a/src/net/manaserv/effecthandler.cpp b/src/net/manaserv/effecthandler.cpp
index 2df3fe0b..7051bedd 100644
--- a/src/net/manaserv/effecthandler.cpp
+++ b/src/net/manaserv/effecthandler.cpp
@@ -25,6 +25,8 @@
#include "effectmanager.h"
#include "log.h"
+#include "gui/viewport.h"
+
#include "net/messagein.h"
#include "net/manaserv/manaserv_protocol.h"
@@ -36,6 +38,7 @@ EffectHandler::EffectHandler()
static const Uint16 _messages[] = {
GPMSG_CREATE_EFFECT_POS,
GPMSG_CREATE_EFFECT_BEING,
+ GPMSG_SHAKE,
0
};
handledMessages = _messages;
@@ -51,6 +54,9 @@ void EffectHandler::handleMessage(Net::MessageIn &msg)
case GPMSG_CREATE_EFFECT_BEING:
handleCreateEffectBeing(msg);
break;
+ case GPMSG_SHAKE:
+ handleShake(msg);
+ break;
default:
break;
}
@@ -75,4 +81,36 @@ void EffectHandler::handleCreateEffectBeing(Net::MessageIn &msg)
logger->log("Warning: CreateEffect called for unknown being #%d", bid);
}
+void EffectHandler::handleShake(Net::MessageIn &msg)
+{
+ int16_t intensityX = 0;
+ int16_t intensityY = 0;
+ float decay;
+ int duration;
+
+ switch (msg.getUnreadLength())
+ {
+ case 4:
+ intensityX = msg.readInt16();
+ intensityY = msg.readInt16();
+ viewport->shakeScreen(intensityX, intensityY);
+ break;
+ case 6:
+ intensityX = msg.readInt16();
+ intensityY = msg.readInt16();
+ decay = msg.readInt16() / 10000.0f;
+ viewport->shakeScreen(intensityX, intensityY, decay);
+ break;
+ case 8:
+ intensityX = msg.readInt16();
+ intensityY = msg.readInt16();
+ decay = msg.readInt16() / 10000.0f;
+ duration = msg.readInt16();
+ viewport->shakeScreen(intensityX, intensityY, decay, duration);
+ break;
+ default:
+ logger->log("Warning: Received GPMSG_SHAKE message with unexpected length of %d bytes", msg.getUnreadLength());
+ }
+}
+
} // namespace ManaServ
diff --git a/src/net/manaserv/effecthandler.h b/src/net/manaserv/effecthandler.h
index a0445aad..d31c3421 100644
--- a/src/net/manaserv/effecthandler.h
+++ b/src/net/manaserv/effecthandler.h
@@ -36,6 +36,7 @@ class EffectHandler : public MessageHandler
private:
void handleCreateEffectPos(Net::MessageIn &msg);
void handleCreateEffectBeing(Net::MessageIn &msg);
+ void handleShake(Net::MessageIn &msg);
};
} // namespace ManaServ
diff --git a/src/net/manaserv/generalhandler.cpp b/src/net/manaserv/generalhandler.cpp
index d2151307..68d5ee9e 100644
--- a/src/net/manaserv/generalhandler.cpp
+++ b/src/net/manaserv/generalhandler.cpp
@@ -91,8 +91,8 @@ GeneralHandler::GeneralHandler():
generalHandler = this;
- listen(CHANNEL_CLIENT);
- listen(CHANNEL_GAME);
+ listen(Event::ClientChannel);
+ listen(Event::GameChannel);
}
void GeneralHandler::load()
@@ -171,12 +171,12 @@ void GeneralHandler::clearHandlers()
clearNetworkHandlers();
}
-void GeneralHandler::event(Channels channel,
- const Mana::Event &event)
+void GeneralHandler::event(Event::Channel channel,
+ const Event &event)
{
- if (channel == CHANNEL_CLIENT)
+ if (channel == Event::ClientChannel)
{
- if (event.getName() == EVENT_STATECHANGE)
+ if (event.getType() == Event::StateChange)
{
int newState = event.getInt("newState");
@@ -186,15 +186,15 @@ void GeneralHandler::event(Channels channel,
game->gameLoading();
}
}
- else if (event.getName() == EVENT_DBSLOADING)
+ else if (event.getType() == Event::LoadingDatabases)
{
Attributes::load();
Attributes::informItemDB();
}
}
- else if (channel == CHANNEL_GAME)
+ else if (channel == Event::GameChannel)
{
- if (event.getName() == EVENT_GUIWINDOWSLOADED)
+ if (event.getType() == Event::GuiWindowsLoaded)
{
inventoryWindow->setSplitAllowed(true);
skillDialog->loadSkills("mana-skills.xml");
diff --git a/src/net/manaserv/generalhandler.h b/src/net/manaserv/generalhandler.h
index c8671ec1..45ded011 100644
--- a/src/net/manaserv/generalhandler.h
+++ b/src/net/manaserv/generalhandler.h
@@ -22,7 +22,7 @@
#ifndef NET_MANASERV_GENERALHANDLER_H
#define NET_MANASERV_GENERALHANDLER_H
-#include "listener.h"
+#include "eventlistener.h"
#include "net/generalhandler.h"
#include "net/net.h"
@@ -31,7 +31,7 @@
namespace ManaServ {
-class GeneralHandler : public Net::GeneralHandler, public Mana::Listener
+class GeneralHandler : public Net::GeneralHandler, public EventListener
{
public:
GeneralHandler();
@@ -46,7 +46,7 @@ class GeneralHandler : public Net::GeneralHandler, public Mana::Listener
void clearHandlers();
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
protected:
MessageHandlerPtr mBeingHandler;
diff --git a/src/net/manaserv/inventoryhandler.cpp b/src/net/manaserv/inventoryhandler.cpp
index 5edf3597..ff9b69e6 100644
--- a/src/net/manaserv/inventoryhandler.cpp
+++ b/src/net/manaserv/inventoryhandler.cpp
@@ -52,7 +52,7 @@ InventoryHandler::InventoryHandler()
handledMessages = _messages;
inventoryHandler = this;
- listen(CHANNEL_ITEM);
+ listen(Event::ItemChannel);
}
void InventoryHandler::handleMessage(Net::MessageIn &msg)
@@ -108,10 +108,10 @@ void InventoryHandler::handleMessage(Net::MessageIn &msg)
}
}
-void InventoryHandler::event(Channels channel,
- const Mana::Event &event)
+void InventoryHandler::event(Event::Channel channel,
+ const Event &event)
{
- if (channel == CHANNEL_ITEM)
+ if (channel == Event::ItemChannel)
{
Item *item = event.getItem("item");
@@ -120,13 +120,13 @@ void InventoryHandler::event(Channels channel,
int index = item->getInvIndex();
- if (event.getName() == EVENT_DOEQUIP)
+ if (event.getType() == Event::DoEquip)
{
MessageOut msg(PGMSG_EQUIP);
msg.writeInt8(index);
gameServerConnection->send(msg);
}
- else if (event.getName() == EVENT_DOUNEQUIP)
+ else if (event.getType() == Event::DoUnequip)
{
MessageOut msg(PGMSG_UNEQUIP);
msg.writeInt8(index);
@@ -136,13 +136,13 @@ void InventoryHandler::event(Channels channel,
// for instance.
mEquips.setEquipment(index, 0, 0);
}
- else if (event.getName() == EVENT_DOUSE)
+ else if (event.getType() == Event::DoUse)
{
MessageOut msg(PGMSG_USE_ITEM);
msg.writeInt8(index);
gameServerConnection->send(msg);
}
- else if (event.getName() == EVENT_DODROP)
+ else if (event.getType() == Event::DoDrop)
{
int amount = event.getInt("amount", 1);
@@ -151,7 +151,7 @@ void InventoryHandler::event(Channels channel,
msg.writeInt8(amount);
gameServerConnection->send(msg);
}
- else if (event.getName() == EVENT_DOSPLIT)
+ else if (event.getType() == Event::DoSplit)
{
int amount = event.getInt("amount", 1);
@@ -165,7 +165,7 @@ void InventoryHandler::event(Channels channel,
gameServerConnection->send(msg);
}
}
- else if (event.getName() == EVENT_DOMOVE)
+ else if (event.getType() == Event::DoMove)
{
int newIndex = event.getInt("newIndex", -1);
diff --git a/src/net/manaserv/inventoryhandler.h b/src/net/manaserv/inventoryhandler.h
index bb68ceeb..2733f3da 100644
--- a/src/net/manaserv/inventoryhandler.h
+++ b/src/net/manaserv/inventoryhandler.h
@@ -23,7 +23,7 @@
#define NET_MANASERV_INVENTORYHANDLER_H
#include "equipment.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "net/inventoryhandler.h"
@@ -59,14 +59,14 @@ class EquipBackend : public Equipment::Backend
};
class InventoryHandler : public MessageHandler, Net::InventoryHandler,
- public Mana::Listener
+ public EventListener
{
public:
InventoryHandler();
void handleMessage(Net::MessageIn &msg);
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
bool canSplit(const Item *item);
diff --git a/src/net/manaserv/manaserv_protocol.h b/src/net/manaserv/manaserv_protocol.h
index 84f1c1a5..b5023a42 100644
--- a/src/net/manaserv/manaserv_protocol.h
+++ b/src/net/manaserv/manaserv_protocol.h
@@ -118,7 +118,7 @@ enum {
PGMSG_DIRECTION_CHANGE = 0x0272, // B Direction
GPMSG_BEING_DIR_CHANGE = 0x0273, // W being id, B direction
GPMSG_BEING_HEALTH_CHANGE = 0x0274, // W being id, W hp, W max hp
- GPMSG_BEINGS_MOVE = 0x0280, // { W being id, B flags [, W*2 position, B speed] }*
+ GPMSG_BEINGS_MOVE = 0x0280, // { W being id, B flags [, [W*2 position,] W*2 destination, B speed] }*
GPMSG_ITEMS = 0x0281, // { W item id, W*2 position }*
PGMSG_ATTACK = 0x0290, // W being id
GPMSG_BEING_ATTACK = 0x0291, // W being id, B direction, B attacktype
@@ -163,6 +163,7 @@ enum {
GPMSG_BEINGS_DAMAGE = 0x0310, // { W being id, W amount }*
GPMSG_CREATE_EFFECT_POS = 0x0320, // W effect id, W*2 position
GPMSG_CREATE_EFFECT_BEING = 0x0321, // W effect id, W BeingID
+ GPMSG_SHAKE = 0x0330, // W intensityX, W intensityY, [W decay_times_10000, [W duration]]
// Guild
PCMSG_GUILD_CREATE = 0x0350, // S name
@@ -353,11 +354,6 @@ enum {
MOVING_DESTINATION = 2
};
-// Email change specific return values
-enum {
- EMAILCHG_EXISTS_EMAIL = 0x40
-};
-
// Chat errors return values
enum {
CHAT_USING_BAD_WORDS = 0x40,
diff --git a/src/net/manaserv/messagein.h b/src/net/manaserv/messagein.h
index fe77c436..6d0a4035 100644
--- a/src/net/manaserv/messagein.h
+++ b/src/net/manaserv/messagein.h
@@ -34,9 +34,6 @@ namespace ManaServ {
class MessageIn : public Net::MessageIn
{
public:
- /**
- * Constructor.
- */
MessageIn(const char *data, unsigned int length);
int readInt16(); /**< Reads a short. */
diff --git a/src/net/manaserv/messageout.h b/src/net/manaserv/messageout.h
index 7c474cda..451bc0aa 100644
--- a/src/net/manaserv/messageout.h
+++ b/src/net/manaserv/messageout.h
@@ -29,14 +29,8 @@ namespace ManaServ {
class MessageOut : public Net::MessageOut
{
public:
- /**
- * Constructor.
- */
MessageOut(short id);
- /**
- * Destructor.
- */
~MessageOut();
void writeInt16(Sint16 value); /**< Writes a short. */
diff --git a/src/net/manaserv/network.cpp b/src/net/manaserv/network.cpp
index a5bf6186..03bd7b28 100644
--- a/src/net/manaserv/network.cpp
+++ b/src/net/manaserv/network.cpp
@@ -53,11 +53,7 @@ void initialize()
logger->error("Failed to initialize ENet.");
}
-#if defined(ENET_VERSION) && ENET_VERSION >= ENET_CUTOFF
client = enet_host_create(NULL, 3, 0, 0, 0);
-#else
- client = enet_host_create(NULL, 3, 0, 0);
-#endif
if (!client)
{
diff --git a/src/net/manaserv/npchandler.cpp b/src/net/manaserv/npchandler.cpp
index ca7d7415..1c89f39f 100644
--- a/src/net/manaserv/npchandler.cpp
+++ b/src/net/manaserv/npchandler.cpp
@@ -62,12 +62,12 @@ void NpcHandler::handleMessage(Net::MessageIn &msg)
}
int npcId = being->getId(), count = 0;
- Mana::Event *event = 0;
+ Event *event = 0;
switch (msg.getId())
{
case GPMSG_NPC_CHOICE:
- event = new Mana::Event(EVENT_MENU);
+ event = new Event(Event::Menu);
event->setInt("id", npcId);
while (msg.getUnreadLength())
{
@@ -75,52 +75,52 @@ void NpcHandler::handleMessage(Net::MessageIn &msg)
event->setString("choice" + toString(count), msg.readString());
}
event->setInt("choiceCount", count);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case GPMSG_NPC_NUMBER:
- event = new Mana::Event(EVENT_INTEGERINPUT);
+ event = new Event(Event::IntegerInput);
event->setInt("id", npcId);
event->setInt("min", msg.readInt32());
event->setInt("max", msg.readInt32());
event->setInt("default", msg.readInt32());
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case GPMSG_NPC_STRING:
- event = new Mana::Event(EVENT_STRINGINPUT);
+ event = new Event(Event::StringInput);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case GPMSG_NPC_POST:
- event = new Mana::Event(EVENT_POST);
+ event = new Event(Event::Post);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case GPMSG_NPC_ERROR:
- event = new Mana::Event(EVENT_END);
+ event = new Event(Event::End);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case GPMSG_NPC_MESSAGE:
- event = new Mana::Event(EVENT_MESSAGE);
+ event = new Event(Event::Message);
event->setInt("id", npcId);
event->setString("text", msg.readString(msg.getUnreadLength()));
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
delete event;
- event = new Mana::Event(EVENT_NEXT);
+ event = new Event(Event::Next);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case GPMSG_NPC_CLOSE:
- event = new Mana::Event(EVENT_CLOSE);
+ event = new Event(Event::Close);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
}
@@ -169,9 +169,9 @@ void NpcHandler::talk(int npcId)
msg.writeInt16(npcId);
gameServerConnection->send(msg);
- Mana::Event event(EVENT_TALKSENT);
+ Event event(Event::TalkSent);
event.setInt("npcId", npcId);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::nextDialog(int npcId)
@@ -180,9 +180,9 @@ void NpcHandler::nextDialog(int npcId)
msg.writeInt16(npcId);
gameServerConnection->send(msg);
- Mana::Event event(EVENT_NEXTSENT);
+ Event event(Event::NextSent);
event.setInt("npcId", npcId);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::closeDialog(int npcId)
@@ -191,9 +191,9 @@ void NpcHandler::closeDialog(int npcId)
msg.writeInt16(npcId);
gameServerConnection->send(msg);
- Mana::Event event(EVENT_CLOSESENT);
+ Event event(Event::CloseSent);
event.setInt("npcId", npcId);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::menuSelect(int npcId, int choice)
@@ -203,10 +203,10 @@ void NpcHandler::menuSelect(int npcId, int choice)
msg.writeInt8(choice);
gameServerConnection->send(msg);
- Mana::Event event(EVENT_MENUSENT);
+ Event event(Event::MenuSent);
event.setInt("npcId", npcId);
event.setInt("choice", choice);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::integerInput(int npcId, int value)
@@ -216,10 +216,10 @@ void NpcHandler::integerInput(int npcId, int value)
msg.writeInt32(value);
gameServerConnection->send(msg);
- Mana::Event event(EVENT_INTEGERINPUTSENT);
+ Event event(Event::IntegerInputSent);
event.setInt("npcId", npcId);
event.setInt("value", value);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::stringInput(int npcId, const std::string &value)
@@ -229,10 +229,10 @@ void NpcHandler::stringInput(int npcId, const std::string &value)
msg.writeString(value);
gameServerConnection->send(msg);
- Mana::Event event(EVENT_STRINGINPUTSENT);
+ Event event(Event::StringInputSent);
event.setInt("npcId", npcId);
event.setString("value", value);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::sendLetter(int npcId, const std::string &recipient,
@@ -243,11 +243,11 @@ void NpcHandler::sendLetter(int npcId, const std::string &recipient,
msg.writeString(text);
gameServerConnection->send(msg);
- Mana::Event event(EVENT_SENDLETTERSENT);
+ Event event(Event::SendLetterSent);
event.setInt("npcId", npcId);
event.setString("recipient", recipient);
event.setString("text", text);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
} // namespace ManaServ
diff --git a/src/net/manaserv/npchandler.h b/src/net/manaserv/npchandler.h
index cb8fd67d..bda4de31 100644
--- a/src/net/manaserv/npchandler.h
+++ b/src/net/manaserv/npchandler.h
@@ -22,7 +22,7 @@
#ifndef NET_MANASERV_NPCHANDLER_H
#define NET_MANASERV_NPCHANDLER_H
-#include "listener.h"
+#include "eventlistener.h"
#include "net/npchandler.h"
diff --git a/src/net/manaserv/playerhandler.cpp b/src/net/manaserv/playerhandler.cpp
index 0ac55d86..4249bac8 100644
--- a/src/net/manaserv/playerhandler.cpp
+++ b/src/net/manaserv/playerhandler.cpp
@@ -65,7 +65,7 @@ void RespawnRequestListener::action(const gcn::ActionEvent &event)
{
Net::getPlayerHandler()->respawn();
- Mana::Event::trigger(CHANNEL_NPC, EVENT_CLOSEALL);
+ Event::trigger(Event::NpcChannel, Event::CloseAll);
}
PlayerHandler::PlayerHandler()
diff --git a/src/net/messagein.h b/src/net/messagein.h
index e6118a04..29f5e930 100644
--- a/src/net/messagein.h
+++ b/src/net/messagein.h
@@ -89,9 +89,6 @@ class MessageIn
virtual ~MessageIn() {}
protected:
- /**
- * Constructor.
- */
MessageIn(const char *data, unsigned int length);
const char *mData; /**< The message data. */
diff --git a/src/net/messageout.h b/src/net/messageout.h
index 7fd6fbc5..05a55422 100644
--- a/src/net/messageout.h
+++ b/src/net/messageout.h
@@ -59,9 +59,6 @@ class MessageOut
virtual ~MessageOut() {}
protected:
- /**
- * Constructor.
- */
MessageOut(short id);
/**
diff --git a/src/net/tmwa/chathandler.cpp b/src/net/tmwa/chathandler.cpp
index 33826762..51974eb2 100644
--- a/src/net/tmwa/chathandler.cpp
+++ b/src/net/tmwa/chathandler.cpp
@@ -82,20 +82,20 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
break;
case 0x01:
{
- Mana::Event event(EVENT_WHISPERERROR);
+ Event event(Event::WhisperError);
event.setString("nick", nick);
event.setString("error", strprintf(_("Whisper could "
"not be sent, %s is offline."), nick.c_str()));
- event.trigger(CHANNEL_CHAT);
+ event.trigger(Event::ChatChannel);
}
break;
case 0x02:
{
- Mana::Event event(EVENT_WHISPERERROR);
+ Event event(Event::WhisperError);
event.setString("nick", nick);
event.setString("error", strprintf(_("Whisper could "
"not be sent, ignored by %s."), nick.c_str()));
- event.Event::trigger(CHANNEL_CHAT);
+ event.Event::trigger(Event::ChatChannel);
}
break;
}
@@ -115,10 +115,10 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
{
if (player_relations.hasPermission(nick, PlayerRelation::WHISPER))
{
- Mana::Event event(EVENT_WHISPER);
+ Event event(Event::Whisper);
event.setString("nick", nick);
event.setString("message", chatMsg);
- event.trigger(CHANNEL_CHAT);
+ event.trigger(Event::ChatChannel);
}
}
else
@@ -174,13 +174,13 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
std::string reducedMessage = chatMsg;
chatMsg = removeColors(sender_name) + " : " + reducedMessage;
- Mana::Event event(EVENT_BEING);
+ Event event(Event::Being);
event.setString("message", chatMsg);
event.setString("text", reducedMessage);
event.setString("nick", sender_name);
event.setInt("beingId", beingId);
event.setInt("permissions", perms);
- event.trigger(CHANNEL_CHAT);
+ event.trigger(Event::ChatChannel);
break;
}
@@ -205,7 +205,7 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
trim(chatMsg);
- Mana::Event event(EVENT_PLAYER);
+ Event event(Event::Player);
event.setString("message", mes);
event.setString("text", chatMsg);
event.setString("nick", player_node->getName());
@@ -213,13 +213,13 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
event.setInt("permissions", player_relations.getDefault()
& (PlayerRelation::SPEECH_LOG
| PlayerRelation::SPEECH_FLOAT));
- event.trigger(CHANNEL_CHAT);
+ event.trigger(Event::ChatChannel);
}
else
{
- Mana::Event event(EVENT_ANNOUNCEMENT);
+ Event event(Event::Announcement);
event.setString("message", chatMsg);
- event.trigger(CHANNEL_CHAT);
+ event.trigger(Event::ChatChannel);
}
break;
}
diff --git a/src/net/tmwa/gamehandler.cpp b/src/net/tmwa/gamehandler.cpp
index a72c12da..2194c77d 100644
--- a/src/net/tmwa/gamehandler.cpp
+++ b/src/net/tmwa/gamehandler.cpp
@@ -58,7 +58,7 @@ GameHandler::GameHandler()
handledMessages = _messages;
gameHandler = this;
- listen(CHANNEL_GAME);
+ listen(Event::GameChannel);
}
void GameHandler::handleMessage(Net::MessageIn &msg)
@@ -106,11 +106,11 @@ void GameHandler::handleMessage(Net::MessageIn &msg)
}
}
-void GameHandler::event(Channels channel, const Mana::Event &event)
+void GameHandler::event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_GAME)
+ if (channel == Event::GameChannel)
{
- if (event.getName() == EVENT_ENGINESINITALIZED)
+ if (event.getType() == Event::EnginesInitialized)
{
Game *game = Game::instance();
game->changeMap(mMap);
@@ -124,7 +124,7 @@ void GameHandler::event(Channels channel, const Mana::Event &event)
mTileX = mTileY = 0;
}
}
- else if (event.getName() == EVENT_MAPLOADED)
+ else if (event.getType() == Event::MapLoaded)
{
MessageOut outMsg(CMSG_MAP_LOADED);
}
diff --git a/src/net/tmwa/gamehandler.h b/src/net/tmwa/gamehandler.h
index 7aa18b12..016df18e 100644
--- a/src/net/tmwa/gamehandler.h
+++ b/src/net/tmwa/gamehandler.h
@@ -22,7 +22,7 @@
#ifndef NET_TA_MAPHANDLER_H
#define NET_TA_MAPHANDLER_H
-#include "listener.h"
+#include "eventlistener.h"
#include "net/gamehandler.h"
#include "net/net.h"
@@ -34,14 +34,14 @@
namespace TmwAthena {
class GameHandler : public MessageHandler, public Net::GameHandler,
- public Mana::Listener
+ public EventListener
{
public:
GameHandler();
void handleMessage(Net::MessageIn &msg);
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
void connect();
diff --git a/src/net/tmwa/generalhandler.cpp b/src/net/tmwa/generalhandler.cpp
index 1935ad72..ef59ee12 100644
--- a/src/net/tmwa/generalhandler.cpp
+++ b/src/net/tmwa/generalhandler.cpp
@@ -108,7 +108,7 @@ GeneralHandler::GeneralHandler():
setStatsList(stats);
- listen(CHANNEL_GAME);
+ listen(Event::GameChannel);
}
GeneralHandler::~GeneralHandler()
@@ -217,12 +217,12 @@ void GeneralHandler::clearHandlers()
mNetwork->clearHandlers();
}
-void GeneralHandler::event(Channels channel,
- const Mana::Event &event)
+void GeneralHandler::event(Event::Channel channel,
+ const Event &event)
{
- if (channel == CHANNEL_GAME)
+ if (channel == Event::GameChannel)
{
- if (event.getName() == EVENT_GUIWINDOWSLOADED)
+ if (event.getType() == Event::GuiWindowsLoaded)
{
inventoryWindow->setSplitAllowed(false);
skillDialog->loadSkills("ea-skills.xml");
@@ -242,7 +242,7 @@ void GeneralHandler::event(Channels channel,
statusWindow->addAttribute(FLEE, _("% Evade"), false, "");
statusWindow->addAttribute(CRIT, _("% Critical"), false, "");
}
- else if (event.getName() == EVENT_GUIWINDOWSUNLOADING)
+ else if (event.getType() == Event::GuiWindowsUnloading)
{
socialWindow->removeTab(taGuild);
socialWindow->removeTab(taParty);
diff --git a/src/net/tmwa/generalhandler.h b/src/net/tmwa/generalhandler.h
index 722c3215..a4725b89 100644
--- a/src/net/tmwa/generalhandler.h
+++ b/src/net/tmwa/generalhandler.h
@@ -22,7 +22,7 @@
#ifndef NET_TMWA_GENERALHANDLER_H
#define NET_TMWA_GENERALHANDLER_H
-#include "listener.h"
+#include "eventlistener.h"
#include "net/generalhandler.h"
#include "net/net.h"
@@ -32,7 +32,7 @@
namespace TmwAthena {
class GeneralHandler : public MessageHandler, public Net::GeneralHandler,
- public Mana::Listener
+ public EventListener
{
public:
GeneralHandler();
@@ -51,7 +51,7 @@ class GeneralHandler : public MessageHandler, public Net::GeneralHandler,
void clearHandlers();
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
protected:
MessageHandlerPtr mAdminHandler;
diff --git a/src/net/tmwa/inventoryhandler.cpp b/src/net/tmwa/inventoryhandler.cpp
index 88c72ed6..1340a091 100644
--- a/src/net/tmwa/inventoryhandler.cpp
+++ b/src/net/tmwa/inventoryhandler.cpp
@@ -111,7 +111,7 @@ InventoryHandler::InventoryHandler()
mStorage = 0;
mStorageWindow = 0;
- listen(CHANNEL_ITEM);
+ listen(Event::ItemChannel);
}
InventoryHandler::~InventoryHandler()
@@ -452,12 +452,12 @@ void InventoryHandler::handleMessage(Net::MessageIn &msg)
}
}
-void InventoryHandler::event(Channels channel,
- const Mana::Event &event)
+void InventoryHandler::event(Event::Channel channel,
+ const Event &event)
{
- if (channel == CHANNEL_ITEM)
+ if (channel == Event::ItemChannel)
{
- if (event.getName() == EVENT_DOCLOSEINVENTORY)
+ if (event.getType() == Event::DoCloseInventory)
{
// No need to worry about type
MessageOut outMsg(CMSG_CLOSE_STORAGE);
@@ -471,24 +471,24 @@ void InventoryHandler::event(Channels channel,
int index = item->getInvIndex() + INVENTORY_OFFSET;
- if (event.getName() == EVENT_DOEQUIP)
+ if (event.getType() == Event::DoEquip)
{
MessageOut outMsg(CMSG_PLAYER_EQUIP);
outMsg.writeInt16(index);
outMsg.writeInt16(0);
}
- else if (event.getName() == EVENT_DOUNEQUIP)
+ else if (event.getType() == Event::DoUnequip)
{
MessageOut outMsg(CMSG_PLAYER_UNEQUIP);
outMsg.writeInt16(index);
}
- else if (event.getName() == EVENT_DOUSE)
+ else if (event.getType() == Event::DoUse)
{
MessageOut outMsg(CMSG_PLAYER_INVENTORY_USE);
outMsg.writeInt16(index);
outMsg.writeInt32(item->getId()); // unused
}
- else if (event.getName() == EVENT_DODROP)
+ else if (event.getType() == Event::DoDrop)
{
int amount = event.getInt("amount", 1);
@@ -498,7 +498,7 @@ void InventoryHandler::event(Channels channel,
outMsg.writeInt16(index);
outMsg.writeInt16(amount);
}
- else if (event.getName() == EVENT_DOMOVE)
+ else if (event.getType() == Event::DoMove)
{
int newIndex = event.getInt("newIndex", -1);
diff --git a/src/net/tmwa/inventoryhandler.h b/src/net/tmwa/inventoryhandler.h
index dfbefaa8..315be16c 100644
--- a/src/net/tmwa/inventoryhandler.h
+++ b/src/net/tmwa/inventoryhandler.h
@@ -24,7 +24,7 @@
#include "equipment.h"
#include "inventory.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "playerinfo.h"
#include "gui/inventorywindow.h"
@@ -38,7 +38,8 @@
namespace TmwAthena {
-class EquipBackend : public Equipment::Backend {
+class EquipBackend : public Equipment::Backend
+{
public:
EquipBackend()
{
@@ -119,7 +120,7 @@ class InventoryItem
typedef std::list<InventoryItem> InventoryItems;
class InventoryHandler : public MessageHandler, public Net::InventoryHandler,
- public Mana::Listener
+ public EventListener
{
public:
enum {
@@ -133,7 +134,7 @@ class InventoryHandler : public MessageHandler, public Net::InventoryHandler,
void handleMessage(Net::MessageIn &msg);
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
bool canSplit(const Item *item);
diff --git a/src/net/tmwa/messagein.h b/src/net/tmwa/messagein.h
index aa94bba1..13d6adf5 100644
--- a/src/net/tmwa/messagein.h
+++ b/src/net/tmwa/messagein.h
@@ -37,9 +37,6 @@ namespace TmwAthena {
class MessageIn : public Net::MessageIn
{
public:
- /**
- * Constructor.
- */
MessageIn(const char *data, unsigned int length);
int readInt16(); /**< Reads a short. */
diff --git a/src/net/tmwa/messageout.h b/src/net/tmwa/messageout.h
index c9d87a1b..34958e82 100644
--- a/src/net/tmwa/messageout.h
+++ b/src/net/tmwa/messageout.h
@@ -39,9 +39,6 @@ class Network;
class MessageOut : public Net::MessageOut
{
public:
- /**
- * Constructor.
- */
MessageOut(short id);
void writeInt16(Sint16 value); /**< Writes a short. */
diff --git a/src/net/tmwa/npchandler.cpp b/src/net/tmwa/npchandler.cpp
index 337226a9..092e3046 100644
--- a/src/net/tmwa/npchandler.cpp
+++ b/src/net/tmwa/npchandler.cpp
@@ -38,7 +38,7 @@
extern Net::NpcHandler *npcHandler;
-static void parseMenu(Mana::Event *event, const std::string &options)
+static void parseMenu(Event *event, const std::string &options)
{
std::istringstream iss(options);
@@ -78,50 +78,50 @@ void NpcHandler::handleMessage(Net::MessageIn &msg)
}
int npcId = msg.readInt32();
- Mana::Event *event = 0;
+ Event *event = 0;
switch (msg.getId())
{
case SMSG_NPC_CHOICE:
- event = new Mana::Event(EVENT_MENU);
+ event = new Event(Event::Menu);
event->setInt("id", npcId);
parseMenu(event, msg.readString(msg.getLength() - 8));
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case SMSG_NPC_MESSAGE:
- event = new Mana::Event(EVENT_MESSAGE);
+ event = new Event(Event::Message);
event->setInt("id", npcId);
event->setString("text", msg.readString(msg.getLength() - 8));
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case SMSG_NPC_CLOSE:
// Show the close button
- event = new Mana::Event(EVENT_CLOSE);
+ event = new Event(Event::Close);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case SMSG_NPC_NEXT:
// Show the next button
- event = new Mana::Event(EVENT_NEXT);
+ event = new Event(Event::Next);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case SMSG_NPC_INT_INPUT:
// Request for an integer
- event = new Mana::Event(EVENT_INTEGERINPUT);
+ event = new Event(Event::IntegerInput);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
case SMSG_NPC_STR_INPUT:
// Request for a string
- event = new Mana::Event(EVENT_STRINGINPUT);
+ event = new Event(Event::StringInput);
event->setInt("id", npcId);
- event->trigger(CHANNEL_NPC);
+ event->trigger(Event::NpcChannel);
break;
}
@@ -177,9 +177,9 @@ void NpcHandler::talk(int npcId)
outMsg.writeInt32(npcId);
outMsg.writeInt8(0); // Unused
- Mana::Event event(EVENT_TALKSENT);
+ Event event(Event::TalkSent);
event.setInt("npcId", npcId);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::nextDialog(int npcId)
@@ -187,9 +187,9 @@ void NpcHandler::nextDialog(int npcId)
MessageOut outMsg(CMSG_NPC_NEXT_REQUEST);
outMsg.writeInt32(npcId);
- Mana::Event event(EVENT_NEXTSENT);
+ Event event(Event::NextSent);
event.setInt("npcId", npcId);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::closeDialog(int npcId)
@@ -197,9 +197,9 @@ void NpcHandler::closeDialog(int npcId)
MessageOut outMsg(CMSG_NPC_CLOSE);
outMsg.writeInt32(npcId);
- Mana::Event event(EVENT_CLOSESENT);
+ Event event(Event::CloseSent);
event.setInt("npcId", npcId);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::menuSelect(int npcId, int choice)
@@ -208,10 +208,10 @@ void NpcHandler::menuSelect(int npcId, int choice)
outMsg.writeInt32(npcId);
outMsg.writeInt8(choice);
- Mana::Event event(EVENT_MENUSENT);
+ Event event(Event::MenuSent);
event.setInt("npcId", npcId);
event.setInt("choice", choice);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::integerInput(int npcId, int value)
@@ -220,10 +220,10 @@ void NpcHandler::integerInput(int npcId, int value)
outMsg.writeInt32(npcId);
outMsg.writeInt32(value);
- Mana::Event event(EVENT_INTEGERINPUTSENT);
+ Event event(Event::IntegerInputSent);
event.setInt("npcId", npcId);
event.setInt("value", value);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::stringInput(int npcId, const std::string &value)
@@ -234,10 +234,10 @@ void NpcHandler::stringInput(int npcId, const std::string &value)
outMsg.writeString(value, value.length());
outMsg.writeInt8(0); // Prevent problems with string reading
- Mana::Event event(EVENT_STRINGINPUTSENT);
+ Event event(Event::StringInputSent);
event.setInt("npcId", npcId);
event.setString("value", value);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
void NpcHandler::sendLetter(int npcId, const std::string &recipient,
diff --git a/src/net/tmwa/npchandler.h b/src/net/tmwa/npchandler.h
index 1e933418..7829924b 100644
--- a/src/net/tmwa/npchandler.h
+++ b/src/net/tmwa/npchandler.h
@@ -22,7 +22,7 @@
#ifndef NET_TA_NPCHANDLER_H
#define NET_TA_NPCHANDLER_H
-#include "listener.h"
+#include "eventlistener.h"
#include "net/npchandler.h"
diff --git a/src/net/tmwa/playerhandler.cpp b/src/net/tmwa/playerhandler.cpp
index f7a211d1..4bd637c3 100644
--- a/src/net/tmwa/playerhandler.cpp
+++ b/src/net/tmwa/playerhandler.cpp
@@ -83,7 +83,7 @@ namespace {
viewport->closePopupMenu();
- Mana::Event::trigger(CHANNEL_NPC, EVENT_CLOSEALL);
+ Event::trigger(Event::NpcChannel, Event::CloseAll);
}
} deathListener;
@@ -288,6 +288,7 @@ void PlayerHandler::handleMessage(Net::MessageIn &msg)
if (PlayerInfo::getAttribute(HP) == 0 && !deathNotice)
{
+ viewport->shakeScreen(100);
deathNotice = new OkDialog(_("Message"),
randomDeathMessage(),
false);
diff --git a/src/net/tmwa/tradehandler.cpp b/src/net/tmwa/tradehandler.cpp
index 034b959d..69ba24af 100644
--- a/src/net/tmwa/tradehandler.cpp
+++ b/src/net/tmwa/tradehandler.cpp
@@ -191,7 +191,7 @@ void TradeHandler::handleMessage(Net::MessageIn &msg)
// Successfully added item
if (item->isEquippable() && item->isEquipped())
{
- item->doEvent(EVENT_DOUNEQUIP);
+ item->doEvent(Event::DoUnequip);
}
tradeWindow->addItem(item->getId(), true, quantity);
diff --git a/src/particle.h b/src/particle.h
index 0e39883b..bb8b17fe 100644
--- a/src/particle.h
+++ b/src/particle.h
@@ -68,9 +68,6 @@ class Particle : public Actor
*/
Particle(Map *map);
- /**
- * Destructor.
- */
~Particle();
/**
diff --git a/src/particleemitter.h b/src/particleemitter.h
index 9baaa73c..2dd6665e 100644
--- a/src/particleemitter.h
+++ b/src/particleemitter.h
@@ -41,9 +41,6 @@ class Particle;
class ParticleEmitter
{
public:
- /**
- * Constructor.
- */
ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map *map, int rotation = 0);
/**
@@ -56,9 +53,6 @@ class ParticleEmitter
*/
ParticleEmitter & operator=(const ParticleEmitter &o);
- /**
- * Destructor.
- */
~ParticleEmitter();
/**
diff --git a/src/playerinfo.cpp b/src/playerinfo.cpp
index 1915822f..feb39413 100644
--- a/src/playerinfo.cpp
+++ b/src/playerinfo.cpp
@@ -24,7 +24,7 @@
#include "equipment.h"
#include "event.h"
#include "inventory.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "log.h"
#include "resources/iteminfo.h"
@@ -57,17 +57,17 @@ int mLevelProgress = 0;
void triggerAttr(int id, int old)
{
- Mana::Event event(EVENT_UPDATEATTRIBUTE);
+ Event event(Event::UpdateAttribute);
event.setInt("id", id);
event.setInt("oldValue", old);
event.setInt("newValue", mData.mAttributes.find(id)->second);
- event.trigger(CHANNEL_ATTRIBUTES);
+ event.trigger(Event::AttributesChannel);
}
void triggerStat(int id, const std::string &changed, int old1, int old2 = 0)
{
StatMap::iterator it = mData.mStats.find(id);
- Mana::Event event(EVENT_UPDATESTAT);
+ Event event(Event::UpdateStat);
event.setInt("id", id);
event.setInt("base", it->second.base);
event.setInt("mod", it->second.mod);
@@ -76,7 +76,7 @@ void triggerStat(int id, const std::string &changed, int old1, int old2 = 0)
event.setString("changed", changed);
event.setInt("oldValue1", old1);
event.setInt("oldValue2", old2);
- event.trigger(CHANNEL_ATTRIBUTES);
+ event.trigger(Event::AttributesChannel);
}
// --- Attributes -------------------------------------------------------------
@@ -215,10 +215,10 @@ void setStorageCount(int count)
if (count != old)
{
- Mana::Event event(EVENT_STORAGECOUNT);
+ Event event(Event::StorageCount);
event.setInt("oldCount", old);
event.setInt("newCount", count);
- event.trigger(CHANNEL_STORAGE);
+ event.trigger(Event::StorageChannel);
}
}
@@ -236,10 +236,10 @@ void setNPCInteractionCount(int count)
if (count != old)
{
- Mana::Event event(EVENT_NPCCOUNT);
+ Event event(Event::NpcCount);
event.setInt("oldCount", old);
event.setInt("newCount", count);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
}
@@ -255,10 +255,10 @@ void setNPCPostCount(int count)
if (count != old)
{
- Mana::Event event(EVENT_POSTCOUNT);
+ Event event(Event::PostCount);
event.setInt("oldCount", old);
event.setInt("newCount", count);
- event.trigger(CHANNEL_NPC);
+ event.trigger(Event::NpcChannel);
}
}
@@ -276,10 +276,10 @@ void setBuySellState(BuySellState buySellState)
if (buySellState != old)
{
- Mana::Event event(EVENT_STATECHANGE);
+ Event event(Event::StateChange);
event.setInt("oldState", old);
event.setInt("newState", buySellState);
- event.trigger(CHANNEL_BUYSELL);
+ event.trigger(Event::BuySellChannel);
}
}
@@ -295,9 +295,9 @@ void setTrading(bool trading)
if (notify)
{
- Mana::Event event(EVENT_TRADING);
+ Event event(Event::Trading);
event.setBool("trading", trading);
- event.trigger(CHANNEL_STATUS);
+ event.trigger(Event::StatusChannel);
}
}
@@ -348,20 +348,20 @@ void logic()
mSpecialRechargeUpdateNeeded++;
}
-class PlayerLogic : Mana::Listener
+class PlayerLogic : EventListener
{
public:
PlayerLogic()
{
- listen(CHANNEL_CLIENT);
- listen(CHANNEL_GAME);
+ listen(Event::ClientChannel);
+ listen(Event::GameChannel);
}
- void event(Channels channel, const Mana::Event &event)
+ void event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_CLIENT)
+ if (channel == Event::ClientChannel)
{
- if (event.getName() == EVENT_STATECHANGE)
+ if (event.getType() == Event::StateChange)
{
int newState = event.getInt("newState");
@@ -375,9 +375,9 @@ public:
}
}
}
- else if (channel == CHANNEL_GAME)
+ else if (channel == Event::GameChannel)
{
- if (event.getName() == EVENT_DESTRUCTED)
+ if (event.getType() == Event::Destructed)
{
delete mInventory;
delete mEquipment;
diff --git a/src/properties.h b/src/properties.h
index 1320b0c9..ce4904bf 100644
--- a/src/properties.h
+++ b/src/properties.h
@@ -32,9 +32,6 @@
class Properties
{
public:
- /**
- * Destructor.
- */
virtual ~Properties() {}
/**
diff --git a/src/resources/image.h b/src/resources/image.h
index 9fdc0997..5b361e1a 100644
--- a/src/resources/image.h
+++ b/src/resources/image.h
@@ -53,9 +53,6 @@ class Image : public Resource
#endif
public:
- /**
- * Destructor.
- */
virtual ~Image();
/**
@@ -274,9 +271,6 @@ class Image : public Resource
class SubImage : public Image
{
public:
- /**
- * Constructor.
- */
SubImage(Image *parent, SDL_Surface *image,
int x, int y, int width, int height);
#ifdef USE_OPENGL
@@ -284,9 +278,6 @@ class SubImage : public Image
int width, int height, int texWidth, int textHeight);
#endif
- /**
- * Destructor.
- */
~SubImage();
/**
diff --git a/src/resources/imageset.h b/src/resources/imageset.h
index 3289788f..7d2ce1f2 100644
--- a/src/resources/imageset.h
+++ b/src/resources/imageset.h
@@ -39,9 +39,6 @@ class ImageSet : public Resource
*/
ImageSet(Image *img, int w, int h, int margin = 0, int spacing = 0);
- /**
- * Destructor.
- */
~ImageSet();
/**
diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp
index 96cf8aef..1f17865f 100644
--- a/src/resources/itemdb.cpp
+++ b/src/resources/itemdb.cpp
@@ -275,7 +275,7 @@ static void checkParameter(int id, const T param, const T errorValue)
std::stringstream errMsg;
errMsg << "ItemDB: Missing " << param << " attribute for item id "
<< id << "!";
- logger->log(errMsg.str().c_str());
+ logger->log("%s", errMsg.str().c_str());
}
}
diff --git a/src/resources/iteminfo.h b/src/resources/iteminfo.h
index 2fbcc228..76a74111 100644
--- a/src/resources/iteminfo.h
+++ b/src/resources/iteminfo.h
@@ -76,9 +76,6 @@ class ItemInfo
friend class ManaServ::ManaServItemDB;
public:
- /**
- * Constructor.
- */
ItemInfo():
mType(ITEM_UNUSABLE),
mWeight(0),
@@ -221,16 +218,13 @@ class TaItemInfo: public ItemInfo
friend class TaItemDB;
public:
- /**
- * Constructor.
- */
- TaItemInfo():ItemInfo()
+ TaItemInfo() : ItemInfo()
{}
// Declare TmwAthena Specific item info here
};
-}; // namespace TmwAthena
+} // namespace TmwAthena
namespace ManaServ {
@@ -241,16 +235,13 @@ namespace ManaServ {
class ManaServItemInfo: public ItemInfo
{
public:
- /**
- * Constructor.
- */
- ManaServItemInfo():ItemInfo()
+ ManaServItemInfo() : ItemInfo()
{}
// Declare Manaserv Specific item info here
};
-}; // namespace ManaServ
+} // namespace ManaServ
#endif
diff --git a/src/resources/music.h b/src/resources/music.h
index c0cf5abe..2556c1ee 100644
--- a/src/resources/music.h
+++ b/src/resources/music.h
@@ -36,9 +36,6 @@
class Music : public Resource
{
public:
- /**
- * Destructor.
- */
virtual ~Music();
/**
@@ -68,9 +65,6 @@ class Music : public Resource
virtual void stop();
protected:
- /**
- * Constructor.
- */
Music(Mix_Chunk *music);
//Mix_Music *music;
diff --git a/src/resources/resource.h b/src/resources/resource.h
index 28f390b5..69fa5dc9 100644
--- a/src/resources/resource.h
+++ b/src/resources/resource.h
@@ -33,9 +33,6 @@ class Resource
friend class ResourceManager;
public:
- /**
- * Constructor
- */
Resource(): mRefCount(0) {}
/**
@@ -59,9 +56,6 @@ class Resource
{ return mIdPath; }
protected:
- /**
- * Destructor.
- */
virtual ~Resource();
private:
diff --git a/src/resources/soundeffect.h b/src/resources/soundeffect.h
index e7c832f4..bc499a96 100644
--- a/src/resources/soundeffect.h
+++ b/src/resources/soundeffect.h
@@ -36,9 +36,6 @@
class SoundEffect : public Resource
{
public:
- /**
- * Destructor.
- */
virtual ~SoundEffect();
/**
@@ -64,9 +61,6 @@ class SoundEffect : public Resource
virtual bool play(int loops, int volume);
protected:
- /**
- * Constructor.
- */
SoundEffect(Mix_Chunk *soundEffect): mChunk(soundEffect) {}
Mix_Chunk *mChunk;
diff --git a/src/resources/spritedef.h b/src/resources/spritedef.h
index 18a70c9b..cef158fa 100644
--- a/src/resources/spritedef.h
+++ b/src/resources/spritedef.h
@@ -113,14 +113,8 @@ class SpriteDef : public Resource
makeSpriteDirection(const std::string &direction);
private:
- /**
- * Constructor.
- */
SpriteDef() {}
- /**
- * Destructor.
- */
~SpriteDef();
/**
diff --git a/src/resources/theme.cpp b/src/resources/theme.cpp
index 8de275ae..869f225c 100644
--- a/src/resources/theme.cpp
+++ b/src/resources/theme.cpp
@@ -111,7 +111,7 @@ Theme::Theme():
{
initDefaultThemePath();
- listen(CHANNEL_CONFIG);
+ listen(Event::ConfigChannel);
loadColors();
mColors[HIGHLIGHT].ch = 'H';
@@ -208,10 +208,10 @@ void Theme::updateAlpha()
iter->second->updateAlpha(mMinimumOpacity);
}
-void Theme::event(Channels channel, const Mana::Event &event)
+void Theme::event(Event::Channel channel, const Event &event)
{
- if (channel == CHANNEL_CONFIG &&
- event.getName() == EVENT_CONFIGOPTIONCHANGED &&
+ if (channel == Event::ConfigChannel &&
+ event.getType() == Event::ConfigOptionChanged &&
event.getString("option") == "guialpha")
{
updateAlpha();
diff --git a/src/resources/theme.h b/src/resources/theme.h
index f830c94f..d6d660e2 100644
--- a/src/resources/theme.h
+++ b/src/resources/theme.h
@@ -25,7 +25,7 @@
#define SKIN_H
#include "graphics.h"
-#include "listener.h"
+#include "eventlistener.h"
#include "gui/palette.h"
@@ -100,7 +100,7 @@ class Skin
Image *mStickyImageDown; /**< Sticky Button Image */
};
-class Theme : public Palette, public Mana::Listener
+class Theme : public Palette, public EventListener
{
public:
static Theme *instance();
@@ -218,7 +218,7 @@ class Theme : public Palette, public Mana::Listener
*/
void setMinimumOpacity(float minimumOpacity);
- void event(Channels channel, const Mana::Event &event);
+ void event(Event::Channel channel, const Event &event);
private:
Theme();
diff --git a/src/resources/userpalette.h b/src/resources/userpalette.h
index be02db10..01f66ca7 100644
--- a/src/resources/userpalette.h
+++ b/src/resources/userpalette.h
@@ -56,14 +56,8 @@ class UserPalette : public Palette, public gcn::ListModel
USER_COLOR_LAST
};
- /**
- * Constructor
- */
UserPalette();
- /**
- * Destructor
- */
~UserPalette();
/**
diff --git a/src/shopitem.h b/src/shopitem.h
index 7a86fedc..ecb99e72 100644
--- a/src/shopitem.h
+++ b/src/shopitem.h
@@ -19,8 +19,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _SHOPITEM_H
-#define _SHOPITEM_H
+#ifndef SHOPITEM_H
+#define SHOPITEM_H
#include "item.h"
@@ -52,9 +52,6 @@ class ShopItem : public Item
*/
ShopItem(int id, int price);
- /**
- * Destructor.
- */
~ShopItem();
/**
diff --git a/src/sound.cpp b/src/sound.cpp
index 4f84d4b9..4216c8fa 100644
--- a/src/sound.cpp
+++ b/src/sound.cpp
@@ -30,16 +30,37 @@
#include "resources/resourcemanager.h"
#include "resources/soundeffect.h"
+/**
+ * This will be set to true, when a music can be freed after a fade out
+ * Currently used by fadeOutCallBack()
+ */
+static bool sFadingOutEnded = false;
+
+/**
+ * Callback used at end of fadeout.
+ * It is called by Mix_MusicFadeFinished().
+ */
+static void fadeOutCallBack()
+{
+ sFadingOutEnded = true;
+}
+
Sound::Sound():
mInstalled(false),
mSfxVolume(100),
mMusicVolume(60),
mMusic(NULL)
{
+ // This set up our callback function used to
+ // handle fade outs endings.
+ sFadingOutEnded = false;
+ Mix_HookMusicFinished(fadeOutCallBack);
}
Sound::~Sound()
{
+ // Unlink the callback function.
+ Mix_HookMusicFinished(NULL);
}
void Sound::init()
@@ -119,11 +140,6 @@ void Sound::info()
logger->log("Sound::info() Channels: %i", channels);
}
-int Sound::getMaxVolume() const
-{
- return MIX_MAX_VOLUME;
-}
-
void Sound::setMusicVolume(int volume)
{
mMusicVolume = volume;
@@ -224,8 +240,37 @@ void Sound::fadeOutMusic(int ms)
if (mMusic)
{
Mix_FadeOutMusic(ms);
- Mix_FreeMusic(mMusic);
- mMusic = NULL;
+ // Note: The fadeOutCallBack handler will take care about freeing
+ // the music file at fade out ending.
+ }
+ else
+ {
+ sFadingOutEnded = true;
+ }
+}
+
+void Sound::fadeOutAndPlayMusic(const std::string &path, int ms)
+{
+ mNextMusicPath = path;
+ fadeOutMusic(ms);
+}
+
+void Sound::logic()
+{
+ if (sFadingOutEnded)
+ {
+ if (mMusic)
+ {
+ Mix_FreeMusic(mMusic);
+ mMusic = NULL;
+ }
+ sFadingOutEnded = false;
+
+ if (!mNextMusicPath.empty())
+ {
+ playMusic(mNextMusicPath);
+ mNextMusicPath.clear();
+ }
}
}
diff --git a/src/sound.h b/src/sound.h
index b619ab6b..032ff62b 100644
--- a/src/sound.h
+++ b/src/sound.h
@@ -68,16 +68,25 @@ class Sound
* @param path The full path to the music file.
* @param ms Duration of fade-in effect (ms)
*/
- void fadeInMusic(const std::string &path, int ms = 2000);
+ void fadeInMusic(const std::string &path, int ms = 1000);
/**
* Fades out currently running background music track.
*
* @param ms Duration of fade-out effect (ms)
*/
- void fadeOutMusic(int ms);
+ void fadeOutMusic(int ms = 1000);
- int getMaxVolume() const;
+ /**
+ * Fades out a background music and play a new one.
+ *
+ * @param path The full path to the fade in music file.
+ * @param ms Duration of fade-out effect (ms)
+ */
+ void fadeOutAndPlayMusic(const std::string &path, int ms = 1000);
+
+ int getMaxVolume() const
+ { return MIX_MAX_VOLUME; }
void setMusicVolume(int volume);
void setSfxVolume(int volume);
@@ -91,6 +100,13 @@ class Sound
*/
void playSfx(const std::string &path, int x = 0, int y = 0);
+ /**
+ * The sound logic.
+ * Currently used to check whether the music file can be freed after
+ * a fade out, and whether new music has to be played.
+ */
+ void logic();
+
private:
/** Logs various info about sound device. */
void info();
@@ -98,6 +114,12 @@ class Sound
/** Halts and frees currently playing music. */
void haltMusic();
+ /**
+ * When calling fadeOutAndPlayMusic(),
+ * the music file below will then be played
+ */
+ std::string mNextMusicPath;
+
bool mInstalled;
int mSfxVolume;
diff --git a/src/textmanager.h b/src/textmanager.h
index 07aed2d5..13c30b14 100644
--- a/src/textmanager.h
+++ b/src/textmanager.h
@@ -30,9 +30,6 @@ class Text;
class TextManager
{
public:
- /**
- * Constructor
- */
TextManager();
/**
diff --git a/src/textparticle.h b/src/textparticle.h
index 79af7406..2791cb03 100644
--- a/src/textparticle.h
+++ b/src/textparticle.h
@@ -27,9 +27,6 @@
class TextParticle : public Particle
{
public:
- /**
- * Constructor.
- */
TextParticle(Map *map, const std::string &text,
const gcn::Color* color,
gcn::Font *font, bool outline = false);
diff --git a/src/tileset.h b/src/tileset.h
index 6c2ee394..387222b3 100644
--- a/src/tileset.h
+++ b/src/tileset.h
@@ -30,9 +30,6 @@
class Tileset : public ImageSet
{
public:
- /**
- * Constructor.
- */
Tileset(Image *img, int w, int h, int firstGid, int margin, int spacing):
ImageSet(img, w, h, margin, spacing),
mFirstGid(firstGid)
diff --git a/src/utils/mkdir.cpp b/src/utils/mkdir.cpp
index 43f5264e..549e77a2 100644
--- a/src/utils/mkdir.cpp
+++ b/src/utils/mkdir.cpp
@@ -28,8 +28,8 @@
#include <sys/stat.h>
-#ifdef _MKDIR_TEST_
-// compile with -D_MKDIR_TEST_ to get a standalone binary
+#ifdef MKDIR_TEST
+// compile with -DMKDIR_TEST to get a standalone binary
#include <cstdio>
#include <cstdlib>
#endif
@@ -96,7 +96,7 @@ int mkdir_r(const char *pathname) {
return -1;
}
-#ifdef _MKDIR_TEST_
+#ifdef MKDIR_TEST
printf("%s\n", tmp);
#endif
*p = '/';
@@ -105,7 +105,7 @@ int mkdir_r(const char *pathname) {
return 0;
}
-#ifdef _MKDIR_TEST_
+#ifdef MKDIR_TEST
int main(int argc, char** argv) {
if (argc < 2) exit(1);
mkdir_r(argv[1]);
diff --git a/src/utils/mkdir.h b/src/utils/mkdir.h
index 9369b4e7..13cfc1c1 100644
--- a/src/utils/mkdir.h
+++ b/src/utils/mkdir.h
@@ -18,8 +18,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _MKDIR_H
-#define _MKDIR_H
+#ifndef MKDIR_H
+#define MKDIR_H
int mkdir_r(const char *pathname);
diff --git a/src/utils/specialfolder.cpp b/src/utils/specialfolder.cpp
index 64607716..221aeac2 100644
--- a/src/utils/specialfolder.cpp
+++ b/src/utils/specialfolder.cpp
@@ -22,8 +22,8 @@
#include "specialfolder.h"
#include <windows.h>
-#ifdef _SPECIALFOLDERLOCATION_TEST_
-// compile with -D_SPECIALFOLDERLOCATION_TEST_ to get a standalone
+#ifdef SPECIALFOLDERLOCATION_TEST
+// compile with -DSPECIALFOLDERLOCATION_TEST to get a standalone
// binary for testing
#include <iostream>
#endif
@@ -59,7 +59,7 @@ std::string getSpecialFolderLocation(int folderId)
return ret;
}
-#ifdef _SPECIALFOLDERLOCATION_TEST_
+#ifdef SPECIALFOLDERLOCATION_TEST
int main()
{
std::cout << "APPDATA " << getSpecialFolderLocation(CSIDL_APPDATA)
diff --git a/src/utils/specialfolder.h b/src/utils/specialfolder.h
index c2c2e0be..eef6416b 100644
--- a/src/utils/specialfolder.h
+++ b/src/utils/specialfolder.h
@@ -18,8 +18,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _SPECIALFOLDER_H
-#define _SPECIALFOLDER_H
+#ifndef SPECIALFOLDER_H
+#define SPECIALFOLDER_H
#ifdef WIN32
#include <shlobj.h>
diff --git a/src/variabledata.h b/src/variabledata.h
index 19e09795..0855a1d0 100644
--- a/src/variabledata.h
+++ b/src/variabledata.h
@@ -26,9 +26,6 @@
class ActorSprite;
class Item;
-namespace Mana
-{
-
class VariableData
{
public:
@@ -43,7 +40,7 @@ class VariableData
DATA_ACTOR
};
- virtual ~VariableData() {};
+ virtual ~VariableData() {}
virtual int getType() const = 0;
};
@@ -126,6 +123,4 @@ private:
ActorSprite *mData;
};
-} // namespace Mana
-
#endif
diff --git a/src/vector.h b/src/vector.h
index 163dcdbd..3360c20b 100644
--- a/src/vector.h
+++ b/src/vector.h
@@ -33,27 +33,18 @@
class Vector
{
public:
- /**
- * Constructor.
- */
Vector():
x(0.0f),
y(0.0f),
z(0.0f)
{}
- /**
- * Constructor.
- */
Vector(float x, float y, float z = 0.0f):
x(x),
y(y),
z(z)
{}
- /**
- * Copy constructor.
- */
Vector(const Vector &v):
x(v.x),
y(v.y),