diff options
186 files changed, 4633 insertions, 4702 deletions
@@ -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 @@ -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)) { @@ -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" /> @@ -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" @@ -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 @@ -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 @@ -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(); /** @@ -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) {} @@ -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), |