summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBlue <bluesansdouze@gmail.com>2009-05-21 15:14:52 +0200
committerBlue <bluesansdouze@gmail.com>2009-05-21 15:14:52 +0200
commita9df0306b4949f10287657a229e1f8d33cfae5e9 (patch)
treeb3dff4b9f36e12d1492d534943796017a955bc3e /src
parent7b76f0e8c4c489254d7519e2916b951601423801 (diff)
parentb85793ec89e57ae20140957f833a06b874eb3120 (diff)
downloadmana-a9df0306b4949f10287657a229e1f8d33cfae5e9.tar.gz
mana-a9df0306b4949f10287657a229e1f8d33cfae5e9.tar.bz2
mana-a9df0306b4949f10287657a229e1f8d33cfae5e9.tar.xz
mana-a9df0306b4949f10287657a229e1f8d33cfae5e9.zip
Merge branch 'master' of git@gitorious.org:tmw/mainline
Diffstat (limited to 'src')
-rw-r--r--src/commandhandler.cpp8
-rw-r--r--src/gui/charselectdialog.cpp2
-rw-r--r--src/gui/connection.cpp2
-rw-r--r--src/gui/connection.h6
-rw-r--r--src/gui/itemamount.cpp24
-rw-r--r--src/gui/npcpostdialog.cpp9
-rw-r--r--src/gui/okdialog.cpp2
-rw-r--r--src/gui/outfitwindow.cpp9
-rw-r--r--src/gui/partywindow.cpp17
-rw-r--r--src/gui/quitdialog.cpp2
-rw-r--r--src/gui/serverdialog.cpp2
-rw-r--r--src/gui/skill.cpp2
-rw-r--r--src/gui/skin.cpp10
-rw-r--r--src/gui/storagewindow.cpp2
-rw-r--r--src/gui/trade.cpp2
-rw-r--r--src/gui/viewport.cpp16
-rw-r--r--src/gui/widgets/avatar.cpp6
-rw-r--r--src/gui/widgets/avatar.h3
-rw-r--r--src/gui/widgets/chattab.cpp20
-rw-r--r--src/gui/widgets/progressbar.cpp14
-rw-r--r--src/keyboardconfig.cpp2
-rw-r--r--src/localplayer.cpp51
-rw-r--r--src/localplayer.h4
-rw-r--r--src/main.cpp22
-rw-r--r--src/net/ea/buysellhandler.cpp10
-rw-r--r--src/net/ea/charserverhandler.cpp6
-rw-r--r--src/net/ea/chathandler.cpp6
-rw-r--r--src/net/ea/inventoryhandler.cpp9
-rw-r--r--src/net/ea/loginhandler.cpp2
-rw-r--r--src/net/ea/playerhandler.cpp10
-rw-r--r--src/net/ea/playerhandler.h6
-rw-r--r--src/net/ea/tradehandler.cpp45
-rw-r--r--src/net/playerhandler.h6
-rw-r--r--src/net/tmwserv/chathandler.cpp13
-rw-r--r--src/net/tmwserv/gameserver/player.cpp7
-rw-r--r--src/net/tmwserv/gameserver/player.h1
-rw-r--r--src/net/tmwserv/guildhandler.cpp25
-rw-r--r--src/net/tmwserv/partyhandler.cpp8
-rw-r--r--src/net/tmwserv/playerhandler.cpp12
-rw-r--r--src/net/tmwserv/playerhandler.h6
-rw-r--r--src/net/tmwserv/protocol.h8
-rw-r--r--src/net/tmwserv/tradehandler.cpp19
-rw-r--r--src/resources/itemdb.cpp6
-rw-r--r--src/resources/monsterdb.cpp2
44 files changed, 248 insertions, 196 deletions
diff --git a/src/commandhandler.cpp b/src/commandhandler.cpp
index f2fafed4..aaca632a 100644
--- a/src/commandhandler.cpp
+++ b/src/commandhandler.cpp
@@ -110,7 +110,7 @@ void CommandHandler::handleCommand(const std::string &command, ChatTab *tab)
}
else
{
- tab->chatLog("Unknown command");
+ tab->chatLog(_("Unknown command."));
}
}
@@ -167,7 +167,7 @@ void CommandHandler::handleHelp(const std::string &args, ChatTab *tab)
tab->showHelp(); // Allow the tab to show it's help
- tab->chatLog(_("For more information, type /help <command>"));
+ tab->chatLog(_("For more information, type /help <command>."));
}
else if (args == "help") // Do this before tabs so they can't change it
{
@@ -344,7 +344,7 @@ void CommandHandler::handleQuery(const std::string &args, ChatTab *tab) {
if (chatWindow->addWhisperTab(args, true))
return;
- tab->chatLog(strprintf(_("Cannot create a whisper tab for nick '%s'! "
+ tab->chatLog(strprintf(_("Cannot create a whisper tab for nick \"%s\"! "
"It either already exists, or is you."), args.c_str()), BY_SERVER);
}
@@ -358,7 +358,7 @@ void CommandHandler::handleJoin(const std::string &args, ChatTab *tab)
std::string::size_type pos = args.find(' ');
std::string name(args, 0, pos);
std::string password(args, pos+1);
- tab->chatLog("Requesting to join channel " + name);
+ tab->chatLog(strprintf(_("Requesting to join channel %s."), name.c_str()));
Net::getChatHandler()->enterChannel(name, password);
}
diff --git a/src/gui/charselectdialog.cpp b/src/gui/charselectdialog.cpp
index f88fa733..4df0243b 100644
--- a/src/gui/charselectdialog.cpp
+++ b/src/gui/charselectdialog.cpp
@@ -107,7 +107,7 @@ CharSelectDialog::CharSelectDialog(LockedArray<LocalPlayer*> *charInfo,
mGender(gender)
#endif
{
- mSelectButton = new Button(_("Ok"), "ok", this);
+ mSelectButton = new Button(_("OK"), "ok", this);
mCancelButton = new Button(_("Cancel"), "cancel", this);
mPreviousButton = new Button(_("Previous"), "previous", this);
mNextButton = new Button(_("Next"), "next", this);
diff --git a/src/gui/connection.cpp b/src/gui/connection.cpp
index 0862ee69..4863edcd 100644
--- a/src/gui/connection.cpp
+++ b/src/gui/connection.cpp
@@ -30,7 +30,7 @@
#include "utils/gettext.h"
-ConnectionDialog::ConnectionDialog(int previousState):
+ConnectionDialog::ConnectionDialog(State previousState):
Window("Info"), mProgress(0), mPreviousState(previousState)
{
setContentSize(200, 100);
diff --git a/src/gui/connection.h b/src/gui/connection.h
index 62441fa9..d6059c3f 100644
--- a/src/gui/connection.h
+++ b/src/gui/connection.h
@@ -24,6 +24,8 @@
#include "gui/widgets/window.h"
+#include "main.h"
+
#include <guichan/actionlistener.hpp>
class ProgressBar;
@@ -41,7 +43,7 @@ class ConnectionDialog : public Window, gcn::ActionListener
*
* @see Window::Window
*/
- ConnectionDialog(int previousState);
+ ConnectionDialog(State previousState);
/**
* Called when the user presses Cancel. Restores the global state to
@@ -54,7 +56,7 @@ class ConnectionDialog : public Window, gcn::ActionListener
private:
ProgressBar *mProgressBar;
float mProgress;
- int mPreviousState;
+ State mPreviousState;
};
#endif
diff --git a/src/gui/itemamount.cpp b/src/gui/itemamount.cpp
index 252daf19..87df46c1 100644
--- a/src/gui/itemamount.cpp
+++ b/src/gui/itemamount.cpp
@@ -82,7 +82,7 @@ ItemAmountWindow::ItemAmountWindow(Usage usage, Window *parent, Item *item,
// Slider
mItemAmountSlide = new Slider(1.0, mMax);
mItemAmountSlide->setHeight(10);
- mItemAmountSlide->setActionEventId("Slide");
+ mItemAmountSlide->setActionEventId("slide");
mItemAmountSlide->addActionListener(this);
//Item icon
@@ -90,11 +90,11 @@ ItemAmountWindow::ItemAmountWindow(Usage usage, Window *parent, Item *item,
mItemIcon = new Icon(image);
// Buttons
- Button *minusButton = new Button("-", "Minus", this);
- Button *plusButton = new Button("+", "Plus", this);
- Button *okButton = new Button(_("Ok"), "Ok", this);
- Button *cancelButton = new Button(_("Cancel"), "Cancel", this);
- Button *addAllButton = new Button(_("All"), "All", this);
+ Button *minusButton = new Button("-", "minus", this);
+ Button *plusButton = new Button("+", "plus", this);
+ Button *okButton = new Button(_("Ok"), "ok", this);
+ Button *cancelButton = new Button(_("Cancel"), "cancel", this);
+ Button *addAllButton = new Button(_("All"), "all", this);
minusButton->adjustSize();
minusButton->setWidth(plusButton->getWidth());
@@ -168,27 +168,27 @@ void ItemAmountWindow::action(const gcn::ActionEvent &event)
{
int amount = mItemAmountTextField->getValue();
- if (event.getId() == "Cancel")
+ if (event.getId() == "cancel")
{
close();
}
- else if (event.getId() == "Plus" && amount < mMax)
+ else if (event.getId() == "plus" && amount < mMax)
{
amount++;
}
- else if (event.getId() == "Minus" && amount > 1)
+ else if (event.getId() == "minus" && amount > 1)
{
amount--;
}
- else if (event.getId() == "All")
+ else if (event.getId() == "all")
{
amount = mMax;
}
- else if (event.getId() == "Slide")
+ else if (event.getId() == "slide")
{
amount = static_cast<int>(mItemAmountSlide->getValue());
}
- else if (event.getId() == "Ok")
+ else if (event.getId() == "ok")
{
finish(mItem, amount, mUsage);
scheduleDelete();
diff --git a/src/gui/npcpostdialog.cpp b/src/gui/npcpostdialog.cpp
index 20123745..32dbe22c 100644
--- a/src/gui/npcpostdialog.cpp
+++ b/src/gui/npcpostdialog.cpp
@@ -41,7 +41,7 @@ NpcPostDialog::NpcPostDialog():
setContentSize(400, 180);
// create text field for receiver
- gcn::Label *senderText = new Label("To:");
+ gcn::Label *senderText = new Label(_("To:"));
senderText->setPosition(5, 5);
mSender = new TextField;
mSender->setPosition(senderText->getWidth() + 5, 5);
@@ -49,8 +49,8 @@ NpcPostDialog::NpcPostDialog():
// create button for sending
Button *sendButton = new Button(_("Send"), "send", this);
- sendButton->setPosition(400-sendButton->getWidth(),
- 170-sendButton->getHeight());
+ sendButton->setPosition(400 - sendButton->getWidth(),
+ 170 - sendButton->getHeight());
Button *cancelButton = new Button(_("Cancel"), "cancel", this);
cancelButton->setPosition(sendButton->getX() - (cancelButton->getWidth() + 2),
sendButton->getY());
@@ -82,7 +82,8 @@ void NpcPostDialog::action(const gcn::ActionEvent &event)
{
if (mSender->getText().empty() || mText->getText().empty())
{
- localChatTab->chatLog("Failed to send as sender or letter invalid");
+ localChatTab->chatLog(_("Failed to send as sender or letter "
+ "invalid."));
}
else
{
diff --git a/src/gui/okdialog.cpp b/src/gui/okdialog.cpp
index 9da070eb..8982d528 100644
--- a/src/gui/okdialog.cpp
+++ b/src/gui/okdialog.cpp
@@ -39,7 +39,7 @@ OkDialog::OkDialog(const std::string &title, const std::string &msg,
mTextBox->setOpaque(false);
mTextBox->setTextWrapped(msg, 260);
- gcn::Button *okButton = new Button(_("Ok"), "ok", this);
+ gcn::Button *okButton = new Button(_("OK"), "ok", this);
const int numRows = mTextBox->getNumberOfRows();
const int fontHeight = getFont()->getHeight();
diff --git a/src/gui/outfitwindow.cpp b/src/gui/outfitwindow.cpp
index 53950299..f43e1440 100644
--- a/src/gui/outfitwindow.cpp
+++ b/src/gui/outfitwindow.cpp
@@ -153,9 +153,14 @@ void OutfitWindow::wearOutfit(int outfit)
//non vis is 3,4,7
if (i != 3 && i != 4 && i != 7)
{
- if (!(item = player_node->getInventory()->getItem(player_node
- ->mEquipment.get()->getEquipment(i))))
+#ifdef TMWSERV_SUPPORT
+ if (!(item = player_node->mEquipment.get()->getEquipment(i)))
continue;
+#else
+ if (!(item = player_node->getInventory()->getItem(
+ player_node->mEquipment.get()->getEquipment(i))))
+ continue;
+#endif
Net::getInventoryHandler()->unequipItem(item);
}
}
diff --git a/src/gui/partywindow.cpp b/src/gui/partywindow.cpp
index 68e5a371..f66ffaac 100644
--- a/src/gui/partywindow.cpp
+++ b/src/gui/partywindow.cpp
@@ -123,6 +123,7 @@ void PartyWindow::updateMember(int id, const std::string &memberName,
member->name = memberName;
member->leader = leader;
member->online = online;
+ member->avatar->setDisplayBold(leader);
member->avatar->setName(memberName);
member->avatar->setOnline(online);
@@ -170,24 +171,24 @@ void PartyWindow::showPartyInvite(const std::string &inviter,
// check there isnt already an invite showing
if (mPartyInviter != "")
{
- localChatTab->chatLog("Received party request, but one already exists",
- BY_SERVER);
+ localChatTab->chatLog(_("Received party request, but one already "
+ "exists."), BY_SERVER);
return;
}
std::string msg;
// log invite
if (partyName.empty())
- msg = strprintf("%s has invited you to join their party",
+ msg = strprintf(N_("%s has invited you to join their party."),
inviter.c_str());
else
- msg = strprintf("%s has invited you to join the %s party",
+ msg = strprintf(N_("%s has invited you to join the %s party."),
inviter.c_str(), partyName.c_str());
localChatTab->chatLog(msg, BY_SERVER);
// show invite
- acceptDialog = new ConfirmDialog("Accept Party Invite", msg, this);
+ acceptDialog = new ConfirmDialog(_("Accept Party Invite"), msg, this);
acceptDialog->addActionListener(this);
mPartyInviter = inviter;
@@ -200,13 +201,15 @@ void PartyWindow::action(const gcn::ActionEvent &event)
// check if they accepted the invite
if (eventId == "yes")
{
- localChatTab->chatLog("Accepted invite from " + mPartyInviter);
+ localChatTab->chatLog(strprintf(_("Accepted invite from %s."),
+ mPartyInviter.c_str()));
Net::getPartyHandler()->inviteResponse(mPartyInviter, true);
mPartyInviter = "";
}
else if (eventId == "no")
{
- localChatTab->chatLog("Rejected invite from " + mPartyInviter);
+ localChatTab->chatLog(strprintf(_("Rejected invite from %s."),
+ mPartyInviter.c_str()));
Net::getPartyHandler()->inviteResponse(mPartyInviter, false);
mPartyInviter = "";
}
diff --git a/src/gui/quitdialog.cpp b/src/gui/quitdialog.cpp
index e506aea3..98657001 100644
--- a/src/gui/quitdialog.cpp
+++ b/src/gui/quitdialog.cpp
@@ -36,7 +36,7 @@ QuitDialog::QuitDialog(bool* quitGame, QuitDialog** pointerToMe):
mForceQuit = new RadioButton(_("Quit"), "quitdialog");
mSwitchAccountServer = new RadioButton(_("Switch server"), "quitdialog");
mSwitchCharacter = new RadioButton(_("Switch character"), "quitdialog");
- mOkButton = new Button(_("Ok"), "ok", this);
+ mOkButton = new Button(_("OK"), "ok", this);
mCancelButton = new Button(_("Cancel"), "cancel", this);
setContentSize(200, 91);
diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp
index a3dfdeae..5d08a2ec 100644
--- a/src/gui/serverdialog.cpp
+++ b/src/gui/serverdialog.cpp
@@ -100,7 +100,7 @@ ServerDialog::ServerDialog(LoginData *loginData):
mMostUsedServersDropDown = new DropDown(mMostUsedServersListModel);
- mOkButton = new Button(_("Ok"), "connect", this);
+ mOkButton = new Button(_("OK"), "connect", this);
mCancelButton = new Button(_("Cancel"), "cancel", this);
mServerNameField->setActionEventId("connect");
diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp
index 3a4fb75c..7698098c 100644
--- a/src/gui/skill.cpp
+++ b/src/gui/skill.cpp
@@ -41,7 +41,7 @@
#include "utils/stringutils.h"
#include "utils/xml.h"
-static const char *SKILLS_FILE = _("skills.xml");
+static const char *SKILLS_FILE = "skills.xml";
struct SkillInfo
{
diff --git a/src/gui/skin.cpp b/src/gui/skin.cpp
index f6eb0d58..5881a073 100644
--- a/src/gui/skin.cpp
+++ b/src/gui/skin.cpp
@@ -101,16 +101,14 @@ void Skin::updateAlpha()
int Skin::getMinWidth() const
{
- return (mBorder.grid[ImageRect::UPPER_LEFT]->getWidth() +
- mBorder.grid[ImageRect::UPPER_CENTER]->getWidth()) +
- mBorder.grid[ImageRect::UPPER_RIGHT]->getWidth();
+ return mBorder.grid[ImageRect::UPPER_LEFT]->getWidth() +
+ mBorder.grid[ImageRect::UPPER_RIGHT]->getWidth();
}
int Skin::getMinHeight() const
{
- return (mBorder.grid[ImageRect::UPPER_LEFT]->getHeight() +
- mBorder.grid[ImageRect::LEFT]->getHeight()) +
- mBorder.grid[ImageRect::LOWER_LEFT]->getHeight();
+ return mBorder.grid[ImageRect::UPPER_LEFT]->getHeight() +
+ mBorder.grid[ImageRect::LOWER_LEFT]->getHeight();
}
SkinLoader::SkinLoader()
diff --git a/src/gui/storagewindow.cpp b/src/gui/storagewindow.cpp
index 593a49a3..91224359 100644
--- a/src/gui/storagewindow.cpp
+++ b/src/gui/storagewindow.cpp
@@ -75,7 +75,7 @@ StorageWindow::StorageWindow(int invSize):
mUsedSlots = player_node->getStorage()->getNumberOfSlotsUsed();
- mSlotsLabel = new Label(_("Slots: "));
+ mSlotsLabel = new Label(_("Slots:"));
mSlotsBar = new ProgressBar(0.0f, 100, 20, gcn::Color(225, 200, 25));
mSlotsBar->setText(strprintf("%d/%d", mUsedSlots, mMaxSlots));
diff --git a/src/gui/trade.cpp b/src/gui/trade.cpp
index 1e7faa97..3abb985e 100644
--- a/src/gui/trade.cpp
+++ b/src/gui/trade.cpp
@@ -308,7 +308,7 @@ void TradeWindow::action(const gcn::ActionEvent &event)
int curMoney = player_node->getMoney();
if(v > curMoney)
{
- localChatTab->chatLog(_("You don't have enough money"), BY_SERVER);
+ localChatTab->chatLog(_("You don't have enough money."), BY_SERVER);
v = curMoney;
}
Net::getTradeHandler()->setMoney(v);
diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp
index 2c3f4007..787723c0 100644
--- a/src/gui/viewport.cpp
+++ b/src/gui/viewport.cpp
@@ -357,24 +357,12 @@ void Viewport::mousePressed(gcn::MouseEvent &event)
if (player_node->withinAttackRange(being) ||
keyboard.isKeyActive(keyboard.KEY_ATTACK))
{
- player_node->setGotoTarget(being);
-//TODO: This can be changed when TMWServ moves to target based combat
-#ifdef TMWSERV_SUPPORT
- player_node->attack();
-#else
player_node->attack(being,
!keyboard.isKeyActive(keyboard.KEY_TARGET));
-#endif
-
}
else
{
-#ifdef TMWSERV_SUPPORT
- player_node->setDestination(event.getX() + (int) mPixelViewX,
- event.getY() + (int) mPixelViewY);
-#else
- player_node->setDestination(tilex, tiley);
-#endif
+ player_node->setGotoTarget(being);
}
break;
default:
@@ -403,9 +391,9 @@ void Viewport::mousePressed(gcn::MouseEvent &event)
event.getY() + (int) mPixelViewY);
}
#else
- player_node->stopAttack();
player_node->setDestination(tilex, tiley);
#endif
+ player_node->stopAttack();
mPlayerFollowMouse = true;
}
}
diff --git a/src/gui/widgets/avatar.cpp b/src/gui/widgets/avatar.cpp
index 16c77233..f7273c75 100644
--- a/src/gui/widgets/avatar.cpp
+++ b/src/gui/widgets/avatar.cpp
@@ -23,6 +23,7 @@
#include "localplayer.h"
+#include "gui/gui.h"
#include "gui/widgets/icon.h"
#include "gui/widgets/label.h"
@@ -39,7 +40,8 @@ namespace {
Avatar::Avatar():
mHp(0),
- mMaxHp(0)
+ mMaxHp(0),
+ mDisplayBold(false)
{
setOpaque(false);
@@ -111,6 +113,8 @@ void Avatar::updateAvatarLabel()
if (mName != player_node->getName() && mMaxHp != 0)
ss << " (" << mHp << "/" << mMaxHp << ")";
+ if (mDisplayBold)
+ mLabel->setFont(boldFont);
mLabel->setCaption(ss.str());
mLabel->adjustSize();
}
diff --git a/src/gui/widgets/avatar.h b/src/gui/widgets/avatar.h
index 32586668..dbe30a94 100644
--- a/src/gui/widgets/avatar.h
+++ b/src/gui/widgets/avatar.h
@@ -51,6 +51,8 @@ public:
void setMaxHp(int maxHp);
+ void setDisplayBold(bool displayBold) { mDisplayBold = displayBold; }
+
private:
void updateAvatarLabel();
@@ -59,6 +61,7 @@ private:
int mMaxHp;
Icon *mStatus;
gcn::Label *mLabel;
+ bool mDisplayBold;
};
#endif // AVATAR_H
diff --git a/src/gui/widgets/chattab.cpp b/src/gui/widgets/chattab.cpp
index 711680d1..85353bf7 100644
--- a/src/gui/widgets/chattab.cpp
+++ b/src/gui/widgets/chattab.cpp
@@ -227,15 +227,19 @@ void ChatTab::chatInput(std::string &msg)
std::string temp = msg.substr(start + 1, end - start - 1);
- toLower(trim(temp));
-
- const ItemInfo itemInfo = ItemDB::get(temp);
- if (itemInfo.getName() != _("Unknown item"))
+ // Do not parse an empty string (it crashes the client)
+ if (!temp.empty())
{
- msg.insert(end, "@@");
- msg.insert(start+1, "|");
- msg.insert(start+1, toString(itemInfo.getId()));
- msg.insert(start+1, "@@");
+ toLower(trim(temp));
+
+ const ItemInfo itemInfo = ItemDB::get(temp);
+ if (itemInfo.getName() != _("Unknown item"))
+ {
+ msg.insert(end, "@@");
+ msg.insert(start+1, "|");
+ msg.insert(start+1, toString(itemInfo.getId()));
+ msg.insert(start+1, "@@");
+ }
}
}
start = msg.find('[', start + 1);
diff --git a/src/gui/widgets/progressbar.cpp b/src/gui/widgets/progressbar.cpp
index 58f24651..c673ffb3 100644
--- a/src/gui/widgets/progressbar.cpp
+++ b/src/gui/widgets/progressbar.cpp
@@ -31,6 +31,8 @@
#include "resources/image.h"
#include "resources/resourcemanager.h"
+#include "utils/dtor.h"
+
#include <guichan/font.hpp>
ImageRect ProgressBar::mBorder;
@@ -59,7 +61,7 @@ ProgressBar::ProgressBar(float progress,
mBorder.grid[1] = dBorders->getSubImage(4, 0, 3, 4);
mBorder.grid[2] = dBorders->getSubImage(7, 0, 4, 4);
mBorder.grid[3] = dBorders->getSubImage(0, 4, 4, 10);
- mBorder.grid[4] = resman->getImage("graphics/gui/bg_quad_dis.png");
+ mBorder.grid[4] = dBorders->getSubImage(4, 4, 3, 10);
mBorder.grid[5] = dBorders->getSubImage(7, 4, 4, 10);
mBorder.grid[6] = dBorders->getSubImage(0, 15, 4, 4);
mBorder.grid[7] = dBorders->getSubImage(4, 15, 3, 4);
@@ -82,15 +84,7 @@ ProgressBar::~ProgressBar()
if (mInstances == 0)
{
- delete mBorder.grid[0];
- delete mBorder.grid[1];
- delete mBorder.grid[2];
- delete mBorder.grid[3];
- mBorder.grid[4]->decRef();
- delete mBorder.grid[5];
- delete mBorder.grid[6];
- delete mBorder.grid[7];
- delete mBorder.grid[8];
+ for_each(mBorder.grid, mBorder.grid + 9, dtor<Image*>());
}
}
diff --git a/src/keyboardconfig.cpp b/src/keyboardconfig.cpp
index ca6804f4..89b1aaf9 100644
--- a/src/keyboardconfig.cpp
+++ b/src/keyboardconfig.cpp
@@ -71,7 +71,7 @@ static KeyData const keyData[KeyboardConfig::KEY_TOTAL] = {
{"keyWindowHelp", SDLK_F1, _("Help Window")},
{"keyWindowStatus", SDLK_F2, _("Status Window")},
{"keyWindowInventory", SDLK_F3, _("Inventory Window")},
- {"keyWindowEquipment", SDLK_F4, _("Equipment WIndow")},
+ {"keyWindowEquipment", SDLK_F4, _("Equipment Window")},
{"keyWindowSkill", SDLK_F5, _("Skill Window")},
{"keyWindowMinimap", SDLK_F6, _("Minimap Window")},
{"keyWindowChat", SDLK_F7, _("Chat Window")},
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index e9bc30f2..c9dc771d 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -193,6 +193,8 @@ void LocalPlayer::logic()
mLastTarget = -1;
}
+#endif
+
if (mTarget)
{
if (mTarget->getType() == Being::NPC)
@@ -203,13 +205,18 @@ void LocalPlayer::logic()
}
else
{
+#ifdef TMWSERV_SUPPORT
+ // Find whether target is in range
+ const int rangeX = abs(mTarget->getPosition().x - getPosition().x);
+ const int rangeY = abs(mTarget->getPosition().y - getPosition().y);
+#else
// Find whether target is in range
const int rangeX = abs(mTarget->mX - mX);
const int rangeY = abs(mTarget->mY - mY);
+#endif
const int attackRange = getAttackRange();
const int inRange = rangeX > attackRange || rangeY > attackRange
? 1 : 0;
-
mTarget->setTargetAnimation(
mTargetCursor[inRange][mTarget->getTargetCursorSize()]);
@@ -220,7 +227,6 @@ void LocalPlayer::logic()
attack(mTarget, true);
}
}
-#endif
Player::logic();
}
@@ -280,9 +286,7 @@ void LocalPlayer::nextStep()
if (mGoingToTarget && mTarget && withinAttackRange(mTarget))
{
mAction = Being::STAND;
-#ifdef EATHENA_SUPPORT
attack(mTarget, true);
-#endif
mGoingToTarget = false;
mPath.clear();
return;
@@ -606,7 +610,7 @@ void LocalPlayer::emote(Uint8 emotion)
}
#ifdef TMWSERV_SUPPORT
-
+/*
void LocalPlayer::attack()
{
if (mLastAction != -1)
@@ -656,16 +660,25 @@ void LocalPlayer::attack()
}
Net::GameServer::Player::attack(getSpriteDirection());
}
-
+*/
void LocalPlayer::useSpecial(int special)
{
Net::GameServer::Player::useSpecial(special);
}
-#else
+#endif
void LocalPlayer::attack(Being *target, bool keep)
{
+#ifdef TMWSERV_SUPPORT
+ if (mLastAction != -1)
+ return;
+
+ // Can only attack when standing still
+ if (mAction != STAND && mAction != ATTACK)
+ return;
+#endif
+
mKeepAttacking = keep;
if (!target || target->getType() == Being::NPC)
@@ -676,13 +689,19 @@ void LocalPlayer::attack(Being *target, bool keep)
mLastTarget = -1;
setTarget(target);
}
-
+#ifdef TMWSERV_SUPPORT
+ Vector plaPos = this->getPosition();
+ Vector tarPos = mTarget->getPosition();
+ int dist_x = plaPos.x - tarPos.x;
+ int dist_y = plaPos.y - tarPos.y;
+#else
int dist_x = target->mX - mX;
int dist_y = target->mY - mY;
// Must be standing to attack
if (mAction != STAND)
return;
+#endif
if (abs(dist_y) >= abs(dist_x))
{
@@ -699,8 +718,12 @@ void LocalPlayer::attack(Being *target, bool keep)
setDirection(LEFT);
}
+#ifdef TMWSERV_SUPPORT
+ mLastAction = tick_time;
+#else
mWalkTime = tick_time;
mTargetTime = tick_time;
+#endif
setAction(ATTACK);
@@ -715,14 +738,16 @@ void LocalPlayer::attack(Being *target, bool keep)
sound.playSfx("sfx/fist-swish.ogg");
}
- Net::getPlayerHandler()->attack(target);
-
+#ifdef TMWSERV_SUPPORT
+ if (mLastAction == STAND)
+#endif
+ Net::getPlayerHandler()->attack(target->getId());
+#ifdef EATHENA_SUPPORT
if (!keep)
stopAttack();
+#endif
}
-#endif // no TMWSERV_SUPPORT
-
void LocalPlayer::stopAttack()
{
if (mTarget)
@@ -845,7 +870,7 @@ int LocalPlayer::getAttackRange()
const ItemInfo info = weapon->getInfo();
return info.getAttackRange();
}
- return 32; // unarmed range
+ return 48; // unarmed range
#else
return mAttackRange;
#endif
diff --git a/src/localplayer.h b/src/localplayer.h
index 4a85dd75..85681e03 100644
--- a/src/localplayer.h
+++ b/src/localplayer.h
@@ -214,11 +214,9 @@ class LocalPlayer : public Player
void setTrading(bool trading) { mTrading = trading; }
#ifdef TMWSERV_SUPPORT
- void attack();
void useSpecial(int id);
-#else
- void attack(Being *target = NULL, bool keep = false);
#endif
+ void attack(Being *target = NULL, bool keep = false);
/**
* Triggers whether or not to show the name as a GM name.
diff --git a/src/main.cpp b/src/main.cpp
index fb061818..61e5a408 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -126,6 +126,12 @@
#include <sys/stat.h>
#endif
+#ifdef TWMSERV_SUPPORT
+#define DEFAULT_PORT 9601
+#else
+#define DEFAULT_PORT 6901
+#endif
+
namespace
{
struct SetupListener : public gcn::ActionListener
@@ -307,7 +313,7 @@ static void setUpdatesDir()
static void initHomeDir(const Options &options)
{
homeDir = options.homeDir;
-
+
if (homeDir.empty())
{
homeDir = std::string(PHYSFS_getUserDir()) +
@@ -347,11 +353,7 @@ static void initConfiguration(const Options &options)
std::string defaultHost = branding.getValue("defaultServer",
"server.themanaworld.org");
config.setValue("host", defaultHost);
-#ifdef TWMSERV_SUPPORT
- int defaultPort = (int)branding.getValue("defaultPort", 9601);
-#else
- int defaultPort = (int)branding.getValue("defaultPort", 6901);
-#endif
+ int defaultPort = (int)branding.getValue("defaultPort", DEFAULT_PORT);
config.setValue("port", defaultPort);
config.setValue("hwaccel", false);
#if (defined __APPLE__ || defined WIN32) && defined USE_OPENGL
@@ -581,8 +583,8 @@ static void printHelp()
<< _(" -H --update-host : Use this update host") << endl
<< _(" -P --password : Login with this password") << endl
<< _(" -c --character : Login with this character") << endl
- << _(" -p --port : Login Server Port") << endl
- << _(" -s --server : Login Server name or IP") << endl
+ << _(" -p --port : Login server port") << endl
+ << _(" -s --server : Login server name or IP") << endl
<< _(" -u --skip-update : Skip the update downloads") << endl
<< _(" -U --username : Login with this username") << endl
#ifdef USE_OPENGL
@@ -593,7 +595,7 @@ static void printHelp()
static void printVersion()
{
- std::cout << _("The Mana World ") << FULL_VERSION << std::endl;
+ std::cout << strprintf(_("The Mana World %s"), FULL_VERSION) << std::endl;
}
static void parseOptions(int argc, char *argv[], Options &options)
@@ -953,7 +955,7 @@ int main(int argc, char *argv[])
"server.themanaworld.org").c_str();
}
if (options.serverPort == 0) {
- loginData.port = (short) branding.getValue("defaultPort", 9601);
+ loginData.port = (short) branding.getValue("defaultPort", DEFAULT_PORT);
}
if (loginData.username.empty() && loginData.remember) {
loginData.username = config.getValue("username", "");
diff --git a/src/net/ea/buysellhandler.cpp b/src/net/ea/buysellhandler.cpp
index ca155228..48e856e4 100644
--- a/src/net/ea/buysellhandler.cpp
+++ b/src/net/ea/buysellhandler.cpp
@@ -108,7 +108,7 @@ void BuySellHandler::handleMessage(MessageIn &msg)
}
else
{
- localChatTab->chatLog(_("Nothing to sell"), BY_SERVER);
+ localChatTab->chatLog(_("Nothing to sell."), BY_SERVER);
current_npc = 0;
}
break;
@@ -116,22 +116,22 @@ void BuySellHandler::handleMessage(MessageIn &msg)
case SMSG_NPC_BUY_RESPONSE:
if (msg.readInt8() == 0)
{
- localChatTab->chatLog(_("Thanks for buying"), BY_SERVER);
+ localChatTab->chatLog(_("Thanks for buying."), BY_SERVER);
}
else
{
// Reset player money since buy dialog already assumed purchase
// would go fine
buyDialog->setMoney(player_node->getMoney());
- localChatTab->chatLog(_("Unable to buy"), BY_SERVER);
+ localChatTab->chatLog(_("Unable to buy."), BY_SERVER);
}
break;
case SMSG_NPC_SELL_RESPONSE:
if (msg.readInt8() == 0)
- localChatTab->chatLog(_("Thanks for selling"), BY_SERVER);
+ localChatTab->chatLog(_("Thanks for selling."), BY_SERVER);
else
- localChatTab->chatLog(_("Unable to sell"), BY_SERVER);
+ localChatTab->chatLog(_("Unable to sell."), BY_SERVER);
break;
}
diff --git a/src/net/ea/charserverhandler.cpp b/src/net/ea/charserverhandler.cpp
index b28961b6..77bfaa50 100644
--- a/src/net/ea/charserverhandler.cpp
+++ b/src/net/ea/charserverhandler.cpp
@@ -120,8 +120,8 @@ void CharServerHandler::handleMessage(MessageIn &msg)
break;
case SMSG_CHAR_CREATE_FAILED:
- new OkDialog(_("Error"), _("Failed to create character. Most likely"
- " the name is already taken."));
+ new OkDialog(_("Error"), _("Failed to create character. Most "
+ "likely the name is already taken."));
if (mCharCreateDialog)
mCharCreateDialog->unlock();
@@ -132,7 +132,7 @@ void CharServerHandler::handleMessage(MessageIn &msg)
mCharInfo->setEntry(0);
mCharInfo->unlock();
n_character--;
- new OkDialog(_("Info"), _("Player deleted"));
+ new OkDialog(_("Info"), _("Character deleted."));
break;
case SMSG_CHAR_DELETE_FAILED:
diff --git a/src/net/ea/chathandler.cpp b/src/net/ea/chathandler.cpp
index 09eca6f9..49f83e67 100644
--- a/src/net/ea/chathandler.cpp
+++ b/src/net/ea/chathandler.cpp
@@ -75,10 +75,12 @@ void ChatHandler::handleMessage(MessageIn &msg)
//localChatTab->chatLog("Whisper sent", BY_SERVER);
break;
case 0x01:
- localChatTab->chatLog(_("Whisper could not be sent, user is offline"), BY_SERVER);
+ localChatTab->chatLog(_("Whisper could not be sent, user "
+ "is offline."), BY_SERVER);
break;
case 0x02:
- localChatTab->chatLog(_("Whisper could not be sent, ignored by user"), BY_SERVER);
+ localChatTab->chatLog(_("Whisper could not be sent, "
+ "ignored by user."), BY_SERVER);
break;
}
break;
diff --git a/src/net/ea/inventoryhandler.cpp b/src/net/ea/inventoryhandler.cpp
index 30c583b8..e91a1c19 100644
--- a/src/net/ea/inventoryhandler.cpp
+++ b/src/net/ea/inventoryhandler.cpp
@@ -181,7 +181,10 @@ void InventoryHandler::handleMessage(MessageIn &msg)
if (msg.readInt8() > 0)
{
if (config.getValue("showpickupchat", 1))
- localChatTab->chatLog(_("Unable to pick up item"), BY_SERVER);
+ {
+ localChatTab->chatLog(_("Unable to pick up item."),
+ BY_SERVER);
+ }
}
else
{
@@ -191,7 +194,7 @@ void InventoryHandler::handleMessage(MessageIn &msg)
if (config.getValue("showpickupchat", 1))
{
- localChatTab->chatLog(strprintf(_("You picked up %s [@@%d|%s@@]"),
+ localChatTab->chatLog(strprintf(_("You picked up %s [@@%d|%s@@]."),
amountStr.c_str(), itemInfo.getId(), itemInfo.getName().c_str()),
BY_SERVER);
}
@@ -237,7 +240,7 @@ void InventoryHandler::handleMessage(MessageIn &msg)
amount = msg.readInt16();
if (msg.readInt8() == 0) {
- localChatTab->chatLog(_("Failed to use item"), BY_SERVER);
+ localChatTab->chatLog(_("Failed to use item."), BY_SERVER);
} else {
if (Item *item = inventory->getItem(index))
item->setQuantity(amount);
diff --git a/src/net/ea/loginhandler.cpp b/src/net/ea/loginhandler.cpp
index 44eabe46..31d2c020 100644
--- a/src/net/ea/loginhandler.cpp
+++ b/src/net/ea/loginhandler.cpp
@@ -126,7 +126,7 @@ void LoginHandler::handleMessage(MessageIn &msg)
case 6:
errorMessage = strprintf(_("You have been temporarily "
"banned from the game until "
- "%s.\n Please contact the GM "
+ "%s.\nPlease contact the GM "
"team via the forums."),
msg.readString(20).c_str());
break;
diff --git a/src/net/ea/playerhandler.cpp b/src/net/ea/playerhandler.cpp
index b7131f0a..c1b7cc84 100644
--- a/src/net/ea/playerhandler.cpp
+++ b/src/net/ea/playerhandler.cpp
@@ -410,7 +410,7 @@ void PlayerHandler::handleMessage(MessageIn &msg)
switch (type) {
case 0:
- localChatTab->chatLog(_("Equip arrows first"),
+ localChatTab->chatLog(_("Equip arrows first."),
BY_SERVER);
break;
default:
@@ -422,10 +422,10 @@ void PlayerHandler::handleMessage(MessageIn &msg)
}
}
-void PlayerHandler::attack(Being *being)
+void PlayerHandler::attack(int id)
{
MessageOut outMsg(CMSG_PLAYER_ATTACK);
- outMsg.writeInt32(being->getId());
+ outMsg.writeInt32(id);
outMsg.writeInt8(0);
}
@@ -513,12 +513,12 @@ void PlayerHandler::respawn()
outMsg.writeInt8(0);
}
-void PlayerHandler::ingorePlayer(const std::string &player, bool ignore)
+void PlayerHandler::ignorePlayer(const std::string &player, bool ignore)
{
// TODO
}
-void PlayerHandler::ingoreAll(bool ignore)
+void PlayerHandler::ignoreAll(bool ignore)
{
// TODO
}
diff --git a/src/net/ea/playerhandler.h b/src/net/ea/playerhandler.h
index 94ae952f..5dbc171b 100644
--- a/src/net/ea/playerhandler.h
+++ b/src/net/ea/playerhandler.h
@@ -35,7 +35,7 @@ class PlayerHandler : public MessageHandler, public Net::PlayerHandler
void handleMessage(MessageIn &msg);
- void attack(Being *being);
+ void attack(int id);
void emote(int emoteId);
@@ -53,9 +53,9 @@ class PlayerHandler : public MessageHandler, public Net::PlayerHandler
void respawn();
- void ingorePlayer(const std::string &player, bool ignore);
+ void ignorePlayer(const std::string &player, bool ignore);
- void ingoreAll(bool ignore);
+ void ignoreAll(bool ignore);
};
} // namespace EAthena
diff --git a/src/net/ea/tradehandler.cpp b/src/net/ea/tradehandler.cpp
index 74722332..4f045573 100644
--- a/src/net/ea/tradehandler.cpp
+++ b/src/net/ea/tradehandler.cpp
@@ -38,6 +38,7 @@
#include "gui/widgets/chattab.h"
#include "utils/gettext.h"
+#include "utils/stringutils.h"
std::string tradePartnerName;
@@ -88,7 +89,8 @@ void TradeHandler::handleMessage(MessageIn &msg)
// special message about the player being occupied.
tradePartnerName = msg.readString(24);
- if (player_relations.hasPermission(tradePartnerName, PlayerRelation::TRADE))
+ if (player_relations.hasPermission(tradePartnerName,
+ PlayerRelation::TRADE))
{
if (!player_node->tradeRequestOk())
{
@@ -98,9 +100,9 @@ void TradeHandler::handleMessage(MessageIn &msg)
player_node->setTrading(true);
ConfirmDialog *dlg;
- dlg = new ConfirmDialog(_("Request for trade"),
- tradePartnerName +
- _(" wants to trade with you, do you accept?"));
+ dlg = new ConfirmDialog(_("Request for Trade"),
+ strprintf(_("%s wants to trade with you, do you "
+ "accept?"), tradePartnerName.c_str()));
dlg->addActionListener(&listener);
}
else
@@ -114,35 +116,36 @@ void TradeHandler::handleMessage(MessageIn &msg)
switch (msg.readInt8())
{
case 0: // Too far away
- localChatTab->chatLog(_("Trading isn't possible. Trade partner is too far away."),
- BY_SERVER);
+ localChatTab->chatLog(_("Trading isn't possible. Trade "
+ "partner is too far away."), BY_SERVER);
break;
case 1: // Character doesn't exist
- localChatTab->chatLog(_("Trading isn't possible. Character doesn't exist."),
- BY_SERVER);
+ localChatTab->chatLog(_("Trading isn't possible. Character "
+ "doesn't exist."), BY_SERVER);
break;
case 2: // Invite request check failed...
- localChatTab->chatLog(_("Trade cancelled due to an unknown reason."),
- BY_SERVER);
+ localChatTab->chatLog(_("Trade cancelled due to an unknown "
+ "reason."), BY_SERVER);
break;
case 3: // Trade accepted
tradeWindow->reset();
- tradeWindow->setCaption(
- _("Trade: You and ") + tradePartnerName);
+ tradeWindow->setCaption(strprintf(_("Trade: You and %s"),
+ tradePartnerName.c_str()));
tradeWindow->setVisible(true);
break;
case 4: // Trade cancelled
if (player_relations.hasPermission(tradePartnerName,
PlayerRelation::SPEECH_LOG))
- localChatTab->chatLog(_("Trade with ") + tradePartnerName +
- _(" cancelled"), BY_SERVER);
+ localChatTab->chatLog(strprintf(_("Trade with %s "
+ "cancelled."), tradePartnerName.c_str()),
+ BY_SERVER);
// otherwise ignore silently
tradeWindow->setVisible(false);
player_node->setTrading(false);
break;
default: // Shouldn't happen as well, but to be sure
- localChatTab->chatLog(_("Unhandled trade cancel packet"),
+ localChatTab->chatLog(_("Unhandled trade cancel packet."),
BY_SERVER);
break;
}
@@ -192,17 +195,17 @@ void TradeHandler::handleMessage(MessageIn &msg)
break;
case 1:
// Add item failed - player overweighted
- localChatTab->chatLog(_("Failed adding item. Trade partner is over weighted."),
- BY_SERVER);
+ localChatTab->chatLog(_("Failed adding item. Trade "
+ "partner is over weighted."), BY_SERVER);
break;
case 2:
// Add item failed - player has no free slot
- localChatTab->chatLog(_("Failed adding item. Trade partner has no free slot."),
- BY_SERVER);
+ localChatTab->chatLog(_("Failed adding item. Trade "
+ "partner has no free slot."), BY_SERVER);
break;
default:
- localChatTab->chatLog(_("Failed adding item for unknown reason."),
- BY_SERVER);
+ localChatTab->chatLog(_("Failed adding item for "
+ "unknown reason."), BY_SERVER);
break;
}
}
diff --git a/src/net/playerhandler.h b/src/net/playerhandler.h
index 0998da04..163b48f3 100644
--- a/src/net/playerhandler.h
+++ b/src/net/playerhandler.h
@@ -31,7 +31,7 @@ namespace Net {
class PlayerHandler
{
public:
- virtual void attack(Being *being) = 0;
+ virtual void attack(int id) = 0;
virtual void emote(int emoteId) = 0;
@@ -49,9 +49,9 @@ class PlayerHandler
virtual void respawn() = 0;
- virtual void ingorePlayer(const std::string &player, bool ignore) = 0;
+ virtual void ignorePlayer(const std::string &player, bool ignore) = 0;
- virtual void ingoreAll(bool ignore) = 0;
+ virtual void ignoreAll(bool ignore) = 0;
};
} // namespace Net
diff --git a/src/net/tmwserv/chathandler.cpp b/src/net/tmwserv/chathandler.cpp
index 41dc7bee..e2d09534 100644
--- a/src/net/tmwserv/chathandler.cpp
+++ b/src/net/tmwserv/chathandler.cpp
@@ -43,11 +43,12 @@
#include "gui/chat.h"
#include "gui/guildwindow.h"
+#include "utils/gettext.h"
+#include "utils/stringutils.h"
+
#include <string>
#include <iostream>
-#include "utils/gettext.h"
-
extern Being *player_node;
Net::ChatHandler *chatHandler;
@@ -154,7 +155,7 @@ void ChatHandler::handleEnterChannelResponse(MessageIn &msg)
Channel *channel = new Channel(channelId, channelName, announcement);
channelManager->addChannel(channel);
ChatTab *tab = channel->getTab();
- tab->chatLog(_("Topic: ") + announcement, BY_CHANNEL);
+ tab->chatLog(strprintf(_("Topic: %s"), announcement.c_str()), BY_CHANNEL);
std::string user;
std::string userModes;
@@ -175,13 +176,13 @@ void ChatHandler::handleEnterChannelResponse(MessageIn &msg)
}
else
{
- localChatTab->chatLog("Error joining channel", BY_SERVER);
+ localChatTab->chatLog("Error joining channel.", BY_SERVER);
}
}
void ChatHandler::handleListChannelsResponse(MessageIn &msg)
{
- localChatTab->chatLog("Listing Channels", BY_SERVER);
+ localChatTab->chatLog("Listing channels", BY_SERVER);
while(msg.getUnreadLength())
{
std::string channelName = msg.readString();
@@ -193,7 +194,7 @@ void ChatHandler::handleListChannelsResponse(MessageIn &msg)
channelName += numUsers.str();
localChatTab->chatLog(channelName, BY_SERVER);
}
- localChatTab->chatLog("End of channel list", BY_SERVER);
+ localChatTab->chatLog("End of channel list.", BY_SERVER);
}
void ChatHandler::handlePrivateMessage(MessageIn &msg)
diff --git a/src/net/tmwserv/gameserver/player.cpp b/src/net/tmwserv/gameserver/player.cpp
index 3f05c954..93853681 100644
--- a/src/net/tmwserv/gameserver/player.cpp
+++ b/src/net/tmwserv/gameserver/player.cpp
@@ -58,13 +58,6 @@ void Net::GameServer::Player::moveItem(int oldSlot, int newSlot, int amount)
Net::GameServer::connection->send(msg);
}
-void Net::GameServer::Player::attack(int direction)
-{
- MessageOut msg(PGMSG_ATTACK);
- msg.writeInt8(direction);
- Net::GameServer::connection->send(msg);
-}
-
void Net::GameServer::Player::useSpecial(int special)
{
MessageOut msg(PGMSG_USE_SPECIAL);
diff --git a/src/net/tmwserv/gameserver/player.h b/src/net/tmwserv/gameserver/player.h
index eddd9102..24b25dc7 100644
--- a/src/net/tmwserv/gameserver/player.h
+++ b/src/net/tmwserv/gameserver/player.h
@@ -43,7 +43,6 @@ namespace Net
void walk(int x, int y);
void pickUp(int x, int y);
void moveItem(int oldSlot, int newSlot, int amount);
- void attack(int direction);
void useSpecial(int special);
void requestTrade(int id);
void acceptTrade(bool accept);
diff --git a/src/net/tmwserv/guildhandler.cpp b/src/net/tmwserv/guildhandler.cpp
index 92057e6e..8d078740 100644
--- a/src/net/tmwserv/guildhandler.cpp
+++ b/src/net/tmwserv/guildhandler.cpp
@@ -37,6 +37,9 @@
#include "channel.h"
#include "channelmanager.h"
+#include "utils/gettext.h"
+#include "utils/stringutils.h"
+
#include <iostream>
namespace TmwServ {
@@ -68,12 +71,12 @@ void GuildHandler::handleMessage(MessageIn &msg)
if(msg.readInt8() == ERRMSG_OK)
{
// TODO - Acknowledge guild was created
- localChatTab->chatLog("Guild created.");
+ localChatTab->chatLog(_("Guild created."));
joinedGuild(msg);
}
else
{
- localChatTab->chatLog("Error creating guild.");
+ localChatTab->chatLog(_("Error creating guild."));
}
} break;
@@ -83,7 +86,7 @@ void GuildHandler::handleMessage(MessageIn &msg)
if(msg.readInt8() == ERRMSG_OK)
{
// TODO - Acknowledge invite was sent
- localChatTab->chatLog("Invite sent.");
+ localChatTab->chatLog(_("Invite sent."));
}
} break;
@@ -144,7 +147,8 @@ void GuildHandler::handleMessage(MessageIn &msg)
{
case GUILD_EVENT_NEW_PLAYER:
guild->addMember(guildMember);
- guildWindow->setOnline(guild->getName(), guildMember, true);
+ guildWindow->setOnline(guild->getName(), guildMember,
+ true);
break;
case GUILD_EVENT_LEAVING_PLAYER:
@@ -152,11 +156,13 @@ void GuildHandler::handleMessage(MessageIn &msg)
break;
case GUILD_EVENT_ONLINE_PLAYER:
- guildWindow->setOnline(guild->getName(), guildMember, true);
+ guildWindow->setOnline(guild->getName(), guildMember,
+ true);
break;
case GUILD_EVENT_OFFLINE_PLAYER:
- guildWindow->setOnline(guild->getName(), guildMember, false);
+ guildWindow->setOnline(guild->getName(), guildMember,
+ false);
break;
default:
@@ -185,12 +191,12 @@ void GuildHandler::handleMessage(MessageIn &msg)
if (msg.readInt8() == ERRMSG_OK)
{
// promotion succeeded
- localChatTab->chatLog("Member was promoted successfully");
+ localChatTab->chatLog(_("Member was promoted successfully."));
}
else
{
// promotion failed
- localChatTab->chatLog("Failed to promote member");
+ localChatTab->chatLog(_("Failed to promote member."));
}
}
@@ -241,7 +247,8 @@ void GuildHandler::joinedGuild(MessageIn &msg)
// COMMENT: Should this go here??
Channel *channel = new Channel(channelId, guildName, announcement);
channelManager->addChannel(channel);
- channel->getTab()->chatLog("Topic: " + announcement, BY_CHANNEL);
+ channel->getTab()->chatLog(strprintf(_("Topic: %s"), announcement.c_str()),
+ BY_CHANNEL);
}
} // namespace TmwServ
diff --git a/src/net/tmwserv/partyhandler.cpp b/src/net/tmwserv/partyhandler.cpp
index 47ef791c..557a3a43 100644
--- a/src/net/tmwserv/partyhandler.cpp
+++ b/src/net/tmwserv/partyhandler.cpp
@@ -35,6 +35,9 @@
#include "log.h"
#include "localplayer.h"
+#include "utils/gettext.h"
+#include "utils/stringutils.h"
+
#include <iostream>
Net::PartyHandler *partyHandler;
@@ -80,7 +83,7 @@ void PartyHandler::handleMessage(MessageIn &msg)
if (msg.readInt8() == ERRMSG_OK)
{
player_node->setInParty(true);
- localChatTab->chatLog("Joined party");
+ localChatTab->chatLog(_("Joined party."));
}
}
@@ -97,7 +100,8 @@ void PartyHandler::handleMessage(MessageIn &msg)
int id = msg.readInt16(); // being id
std::string name = msg.readString();
- localChatTab->chatLog(name + " joined the party");
+ localChatTab->chatLog(strprintf(_("%s joined the "
+ "party."), name.c_str()));
if (!player_node->isInParty())
player_node->setInParty(true);
diff --git a/src/net/tmwserv/playerhandler.cpp b/src/net/tmwserv/playerhandler.cpp
index b697e8a8..e2b922f8 100644
--- a/src/net/tmwserv/playerhandler.cpp
+++ b/src/net/tmwserv/playerhandler.cpp
@@ -284,7 +284,7 @@ void PlayerHandler::handleMessage(MessageIn &msg)
switch (type) {
case 0:
- localChatTab->chatLog("Equip arrows first",
+ localChatTab->chatLog(_("Equip arrows first."),
BY_SERVER);
break;
default:
@@ -332,9 +332,11 @@ void PlayerHandler::handleMapChangeMessage(MessageIn &msg)
viewport->scrollBy(scrollOffsetX, scrollOffsetY);
}
-void PlayerHandler::attack(Being *being)
+void PlayerHandler::attack(int id)
{
- // TODO
+ MessageOut msg(PGMSG_ATTACK);
+ msg.writeInt16(id);
+ Net::GameServer::connection->send(msg);
}
void PlayerHandler::emote(int emoteId)
@@ -391,12 +393,12 @@ void PlayerHandler::respawn()
// TODO
}
-void PlayerHandler::ingorePlayer(const std::string &player, bool ignore)
+void PlayerHandler::ignorePlayer(const std::string &player, bool ignore)
{
// TODO
}
-void PlayerHandler::ingoreAll(bool ignore)
+void PlayerHandler::ignoreAll(bool ignore)
{
// TODO
}
diff --git a/src/net/tmwserv/playerhandler.h b/src/net/tmwserv/playerhandler.h
index 5524415e..164d30ae 100644
--- a/src/net/tmwserv/playerhandler.h
+++ b/src/net/tmwserv/playerhandler.h
@@ -34,7 +34,7 @@ class PlayerHandler : public MessageHandler, public Net::PlayerHandler
void handleMessage(MessageIn &msg);
- void attack(Being *being);
+ void attack(int id);
void emote(int emoteId);
@@ -52,9 +52,9 @@ class PlayerHandler : public MessageHandler, public Net::PlayerHandler
void respawn();
- void ingorePlayer(const std::string &player, bool ignore);
+ void ignorePlayer(const std::string &player, bool ignore);
- void ingoreAll(bool ignore);
+ void ignoreAll(bool ignore);
private:
void handleMapChangeMessage(MessageIn &msg);
diff --git a/src/net/tmwserv/protocol.h b/src/net/tmwserv/protocol.h
index 7fa3b372..6124263a 100644
--- a/src/net/tmwserv/protocol.h
+++ b/src/net/tmwserv/protocol.h
@@ -106,7 +106,7 @@ enum {
GPMSG_BEING_DIR_CHANGE = 0x0273, // W being id, B direction
GPMSG_BEINGS_MOVE = 0x0280, // { W being id, B flags [, C position, B speed] [, W*2 destination] }*
GPMSG_ITEMS = 0x0281, // { W item id, W*2 position }*
- PGMSG_ATTACK = 0x0290, // B direction
+ PGMSG_ATTACK = 0x0290, // W being id
PGMSG_USE_SPECIAL = 0x0292, // B specialID
GPMSG_BEING_ATTACK = 0x0291, // W being id
PGMSG_SAY = 0x02A0, // S text
@@ -162,9 +162,11 @@ enum {
CPMSG_GUILD_QUIT_RESPONSE = 0x0361, // B error
PCMSG_GUILD_PROMOTE_MEMBER = 0x0365, // W guild, S name, B rights
CPMSG_GUILD_PROMOTE_MEMBER_RESPONSE = 0x0366, // B error
+ PCMSG_GUILD_KICK_MEMBER = 0x0370, // W guild, S name
+ CPMSG_GUILD_KICK_MEMBER_RESPONSE = 0x0371, // B error
- CPMSG_GUILD_INVITED = 0x0370, // S char name, S guild name, W id
- CPMSG_GUILD_REJOIN = 0x0371, // S name, W guild, W rights, W channel, S announce
+ CPMSG_GUILD_INVITED = 0x0388, // S char name, S guild name, W id
+ CPMSG_GUILD_REJOIN = 0x0389, // S name, W guild, W rights, W channel, S announce
// Party
PCMSG_PARTY_INVITE = 0x03A0, // S name
diff --git a/src/net/tmwserv/tradehandler.cpp b/src/net/tmwserv/tradehandler.cpp
index 74789a34..aabd8b2a 100644
--- a/src/net/tmwserv/tradehandler.cpp
+++ b/src/net/tmwserv/tradehandler.cpp
@@ -40,6 +40,9 @@
#include "gui/widgets/chattab.h"
+#include "utils/gettext.h"
+#include "utils/stringutils.h"
+
std::string tradePartnerName;
int tradePartnerID;
@@ -87,9 +90,9 @@ void TradeHandler::setAcceptTradeRequests(bool acceptTradeRequests)
{
mAcceptTradeRequests = acceptTradeRequests;
if (mAcceptTradeRequests) {
- localChatTab->chatLog("Accepting incoming trade requests", BY_SERVER);
+ localChatTab->chatLog(_("Accepting incoming trade requests."), BY_SERVER);
} else {
- localChatTab->chatLog("Ignoring incoming trade requests", BY_SERVER);
+ localChatTab->chatLog(_("Ignoring incoming trade requests."), BY_SERVER);
}
}
@@ -108,8 +111,9 @@ void TradeHandler::handleMessage(MessageIn &msg)
player_node->setTrading(true);
tradePartnerName = being->getName();
tradePartnerID = being->getId();
- ConfirmDialog *dlg = new ConfirmDialog("Request for trade",
- tradePartnerName + " wants to trade with you, do you accept?");
+ ConfirmDialog *dlg = new ConfirmDialog(_("Request for Trade"),
+ strprintf(_("%s wants to trade with you, do you accept?"),
+ tradePartnerName.c_str()));
dlg->addActionListener(&listener);
} break;
@@ -126,7 +130,8 @@ void TradeHandler::handleMessage(MessageIn &msg)
case GPMSG_TRADE_START:
tradeWindow->reset();
- tradeWindow->setCaption("Trading with " + tradePartnerName);
+ tradeWindow->setCaption(strprintf(_("Trading with %s"),
+ tradePartnerName.c_str()));
tradeWindow->setVisible(true);
break;
@@ -139,14 +144,14 @@ void TradeHandler::handleMessage(MessageIn &msg)
break;
case GPMSG_TRADE_CANCEL:
- localChatTab->chatLog("Trade canceled.", BY_SERVER);
+ localChatTab->chatLog(_("Trade canceled."), BY_SERVER);
tradeWindow->setVisible(false);
tradeWindow->reset();
player_node->setTrading(false);
break;
case GPMSG_TRADE_COMPLETE:
- localChatTab->chatLog("Trade completed.", BY_SERVER);
+ localChatTab->chatLog(_("Trade completed."), BY_SERVER);
tradeWindow->setVisible(false);
tradeWindow->reset();
player_node->setTrading(false);
diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp
index 99907ca7..899dd977 100644
--- a/src/resources/itemdb.cpp
+++ b/src/resources/itemdb.cpp
@@ -109,7 +109,7 @@ void ItemDB::load()
mUnknown->setSprite("error.xml", GENDER_MALE);
mUnknown->setSprite("error.xml", GENDER_FEMALE);
- XML::Document doc(_("items.xml"));
+ XML::Document doc("items.xml");
xmlNodePtr rootNode = doc.rootNode();
if (!rootNode || !xmlStrEqual(rootNode->name, BAD_CAST "items"))
@@ -210,6 +210,10 @@ void ItemDB::load()
}
}
+ if (weaponType > 0)
+ if (attackRange == 0)
+ logger->log("ItemDB: Missing attack range from weapon %i!", id);
+
#define CHECK_PARAM(param, error_value) \
if (param == error_value) \
logger->log("ItemDB: Missing " #param " attribute for item %i!",id)
diff --git a/src/resources/monsterdb.cpp b/src/resources/monsterdb.cpp
index 7bbf9288..0c28586a 100644
--- a/src/resources/monsterdb.cpp
+++ b/src/resources/monsterdb.cpp
@@ -46,7 +46,7 @@ void MonsterDB::load()
logger->log("Initializing monster database...");
- XML::Document doc(_("monsters.xml"));
+ XML::Document doc("monsters.xml");
xmlNodePtr rootNode = doc.rootNode();
if (!rootNode || !xmlStrEqual(rootNode->name, BAD_CAST "monsters"))