summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2009-03-27 19:44:23 +0100
committerBjørn Lindeijer <bjorn@lindeijer.nl>2009-03-27 20:18:11 +0100
commit712ca58c011123505c807266dcc8d9d84ca1aa44 (patch)
tree27c0dfe49f21bffe25007f70475be3223d3fa851 /src
parentff5e1957dd4fde40e41e4c5e4b9e04e1f36e5ef2 (diff)
downloadmana-client-712ca58c011123505c807266dcc8d9d84ca1aa44.tar.gz
mana-client-712ca58c011123505c807266dcc8d9d84ca1aa44.tar.bz2
mana-client-712ca58c011123505c807266dcc8d9d84ca1aa44.tar.xz
mana-client-712ca58c011123505c807266dcc8d9d84ca1aa44.zip
Made eAthena's Network class statically accessible
Now the instance doesn't need to be passed into the MessageOut class anymore. Expect a lot of cleanup in the next commit.
Diffstat (limited to 'src')
-rw-r--r--src/beingmanager.cpp3
-rw-r--r--src/commandhandler.cpp6
-rw-r--r--src/engine.cpp3
-rw-r--r--src/game.cpp3
-rw-r--r--src/gui/buy.cpp3
-rw-r--r--src/gui/buysell.cpp3
-rw-r--r--src/gui/char_select.cpp9
-rw-r--r--src/gui/npc_text.cpp6
-rw-r--r--src/gui/npcintegerdialog.cpp3
-rw-r--r--src/gui/npclistdialog.cpp3
-rw-r--r--src/gui/npcstringdialog.cpp3
-rw-r--r--src/gui/popupmenu.cpp3
-rw-r--r--src/gui/sell.cpp4
-rw-r--r--src/gui/storagewindow.cpp9
-rw-r--r--src/gui/trade.cpp18
-rw-r--r--src/gui/widgets/chattab.cpp7
-rw-r--r--src/gui/widgets/whispertab.cpp3
-rw-r--r--src/localplayer.cpp42
-rw-r--r--src/main.cpp10
-rw-r--r--src/net/ea/network.cpp9
-rw-r--r--src/net/ea/network.h6
-rw-r--r--src/net/messageout.cpp11
-rw-r--r--src/net/messageout.h4
-rw-r--r--src/npc.cpp3
-rw-r--r--src/party.cpp12
25 files changed, 69 insertions, 117 deletions
diff --git a/src/beingmanager.cpp b/src/beingmanager.cpp
index d72c4ee4..ae9ee787 100644
--- a/src/beingmanager.cpp
+++ b/src/beingmanager.cpp
@@ -120,8 +120,7 @@ Being *BeingManager::createBeing(int id, Uint16 job)
// Player or NPC
if (job <= 1000 || (job >= 4001 && job <= 4049))
{
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x0094);
+ MessageOut outMsg(0x0094);
outMsg.writeInt32(id);//readLong(2));
}
#endif
diff --git a/src/commandhandler.cpp b/src/commandhandler.cpp
index 14c5434a..73e41554 100644
--- a/src/commandhandler.cpp
+++ b/src/commandhandler.cpp
@@ -142,8 +142,7 @@ void CommandHandler::handleAnnounce(const std::string &args)
#ifdef TMWSERV_SUPPORT
Net::ChatServer::announce(args);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x0099);
+ MessageOut outMsg(0x0099);
outMsg.writeInt16(args.length() + 4);
outMsg.writeString(args, args.length());
#endif
@@ -332,8 +331,7 @@ void CommandHandler::handleWho()
#ifdef TMWSERV_SUPPORT
//TODO
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x00c1);
+ MessageOut outMsg(0x00c1);
#endif
}
diff --git a/src/engine.cpp b/src/engine.cpp
index da4eb336..13563e66 100644
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -151,8 +151,7 @@ void Engine::changeMap(const std::string &mapPath)
#ifdef EATHENA_SUPPORT
// Send "map loaded"
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_MAP_LOADED);
+ MessageOut outMsg(CMSG_MAP_LOADED);
#endif
}
diff --git a/src/game.cpp b/src/game.cpp
index 4687ed1f..5b389c3f 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -468,8 +468,7 @@ Game::Game(Network *network):
* packet is handled by the older version, but its response
* is ignored by the client
*/
- MessageOut msg(mNetwork);
- msg.writeInt16(CMSG_CLIENT_PING);
+ MessageOut msg(CMSG_CLIENT_PING);
msg.writeInt32(tick_time);
engine->changeMap(map_path);
diff --git a/src/gui/buy.cpp b/src/gui/buy.cpp
index 6df2ae25..003e730e 100644
--- a/src/gui/buy.cpp
+++ b/src/gui/buy.cpp
@@ -199,8 +199,7 @@ void BuyDialog::action(const gcn::ActionEvent &event)
Net::GameServer::Player::tradeWithNPC
(mShopItems->at(selectedItem)->getId(), mAmountItems);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_NPC_BUY_REQUEST);
+ MessageOut outMsg(CMSG_NPC_BUY_REQUEST);
outMsg.writeInt16(8);
outMsg.writeInt16(mAmountItems);
outMsg.writeInt16(mShopItems->at(selectedItem)->getId());
diff --git a/src/gui/buysell.cpp b/src/gui/buysell.cpp
index b9a6a1dc..f45a5adb 100644
--- a/src/gui/buysell.cpp
+++ b/src/gui/buysell.cpp
@@ -97,8 +97,7 @@ void BuySellDialog::action(const gcn::ActionEvent &event)
}
#ifdef EATHENA_SUPPORT
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_NPC_BUY_SELL_REQUEST);
+ MessageOut outMsg(CMSG_NPC_BUY_SELL_REQUEST);
outMsg.writeInt32(current_npc);
outMsg.writeInt8(action);
#endif
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp
index 4ab3d9ef..b6cd47d4 100644
--- a/src/gui/char_select.cpp
+++ b/src/gui/char_select.cpp
@@ -348,8 +348,7 @@ void CharSelectDialog::attemptCharDelete()
Net::AccountServer::Account::deleteCharacter(mCharInfo->getPos());
#else
// Request character deletion
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x0068);
+ MessageOut outMsg(0x0068);
outMsg.writeInt32(mCharInfo->getEntry()->mCharId);
outMsg.writeString("a@a.com", 40);
#endif
@@ -362,8 +361,7 @@ void CharSelectDialog::attemptCharSelect()
Net::AccountServer::Account::selectCharacter(mCharInfo->getPos());
#else
// Request character selection
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x0066);
+ MessageOut outMsg(0x0066);
outMsg.writeInt8(mCharInfo->getPos());
#endif
mCharInfo->lock();
@@ -693,8 +691,7 @@ int CharCreateDialog::getDistributedPoints()
void CharCreateDialog::attemptCharCreate()
{
// Send character infos
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x0067);
+ MessageOut outMsg(0x0067);
outMsg.writeString(getName(), 24);
outMsg.writeInt8(5);
outMsg.writeInt8(5);
diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp
index 9fa57be8..bf7b60ed 100644
--- a/src/gui/npc_text.cpp
+++ b/src/gui/npc_text.cpp
@@ -136,8 +136,7 @@ void NpcTextDialog::nextDialog(int npcID)
#ifdef TMWSERV_SUPPORT
Net::GameServer::Player::talkToNPC(npcID, false);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_NPC_NEXT_REQUEST);
+ MessageOut outMsg(CMSG_NPC_NEXT_REQUEST);
outMsg.writeInt32(npcID);
#endif
}
@@ -145,8 +144,7 @@ void NpcTextDialog::nextDialog(int npcID)
void NpcTextDialog::closeDialog(int npcID)
{
#ifdef EATHENA_SUPPORT
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_NPC_CLOSE);
+ MessageOut outMsg(CMSG_NPC_CLOSE);
outMsg.writeInt32(npcID);
#endif
}
diff --git a/src/gui/npcintegerdialog.cpp b/src/gui/npcintegerdialog.cpp
index a7ae2748..4dae8d83 100644
--- a/src/gui/npcintegerdialog.cpp
+++ b/src/gui/npcintegerdialog.cpp
@@ -127,8 +127,7 @@ void NpcIntegerDialog::action(const gcn::ActionEvent &event)
NPC::isTalking = false;
#ifdef EATHENA_SUPPORT
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_NPC_INT_RESPONSE);
+ MessageOut outMsg(CMSG_NPC_INT_RESPONSE);
outMsg.writeInt32(current_npc);
outMsg.writeInt32(mValueField->getValue());
#endif
diff --git a/src/gui/npclistdialog.cpp b/src/gui/npclistdialog.cpp
index ff91c9fc..6df0979f 100644
--- a/src/gui/npclistdialog.cpp
+++ b/src/gui/npclistdialog.cpp
@@ -143,8 +143,7 @@ void NpcListDialog::action(const gcn::ActionEvent &event)
#ifdef TMWSERV_SUPPORT
Net::GameServer::Player::selectFromNPC(current_npc, choice);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_NPC_LIST_CHOICE);
+ MessageOut outMsg(CMSG_NPC_LIST_CHOICE);
outMsg.writeInt32(current_npc);
outMsg.writeInt8(choice);
#endif
diff --git a/src/gui/npcstringdialog.cpp b/src/gui/npcstringdialog.cpp
index c84de015..7297d7e8 100644
--- a/src/gui/npcstringdialog.cpp
+++ b/src/gui/npcstringdialog.cpp
@@ -95,8 +95,7 @@ void NpcStringDialog::action(const gcn::ActionEvent &event)
mValueField->setText("");
#ifdef EATHENA_SUPPORT
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_NPC_STR_RESPONSE);
+ MessageOut outMsg(CMSG_NPC_STR_RESPONSE);
outMsg.writeInt16(text.length() + 9);
outMsg.writeInt32(current_npc);
outMsg.writeString(text, text.length());
diff --git a/src/gui/popupmenu.cpp b/src/gui/popupmenu.cpp
index 5b5b2b8c..1f36ef45 100644
--- a/src/gui/popupmenu.cpp
+++ b/src/gui/popupmenu.cpp
@@ -297,8 +297,7 @@ void PopupMenu::handleLink(const std::string &link)
being &&
being->getType() == Being::PLAYER)
{
- MessageOut outMsg(player_node->getNetwork());
- outMsg.writeInt16(CMSG_PARTY_INVITE);
+ MessageOut outMsg(CMSG_PARTY_INVITE);
outMsg.writeInt32(being->getId());
}
#endif
diff --git a/src/gui/sell.cpp b/src/gui/sell.cpp
index e7671110..648bff08 100644
--- a/src/gui/sell.cpp
+++ b/src/gui/sell.cpp
@@ -207,15 +207,13 @@ void SellDialog::action(const gcn::ActionEvent &event)
(mShopItems->at(selectedItem)->getId(), mAmountItems);
#else
// Attempt sell
- MessageOut outMsg(mNetwork);
-
ShopItem *item = mShopItems->at(selectedItem);
int sellCount;
mPlayerMoney +=
mAmountItems * mShopItems->at(selectedItem)->getPrice();
mMaxItems -= mAmountItems;
while (mAmountItems > 0) {
- outMsg.writeInt16(CMSG_NPC_SELL_REQUEST);
+ MessageOut outMsg(CMSG_NPC_SELL_REQUEST);
outMsg.writeInt16(8);
outMsg.writeInt16(item->getCurrentInvIndex());
// This order is important, item->getCurrentInvIndex() would return
diff --git a/src/gui/storagewindow.cpp b/src/gui/storagewindow.cpp
index 1289a4e7..847886cb 100644
--- a/src/gui/storagewindow.cpp
+++ b/src/gui/storagewindow.cpp
@@ -190,22 +190,19 @@ Item* StorageWindow::getSelectedItem() const
void StorageWindow::addStore(Item* item, int ammount)
{
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_MOVE_TO_STORAGE);
+ MessageOut outMsg(CMSG_MOVE_TO_STORAGE);
outMsg.writeInt16(item->getInvIndex());
outMsg.writeInt32(ammount);
}
void StorageWindow::removeStore(Item* item, int ammount)
{
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CSMG_MOVE_FROM_STORAGE);
+ MessageOut outMsg(CSMG_MOVE_FROM_STORAGE);
outMsg.writeInt16(item->getInvIndex());
outMsg.writeInt32(ammount);
}
void StorageWindow::close()
{
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_CLOSE_STORAGE);
+ MessageOut outMsg(CMSG_CLOSE_STORAGE);
}
diff --git a/src/gui/trade.cpp b/src/gui/trade.cpp
index 4ecdede8..6cba1c41 100644
--- a/src/gui/trade.cpp
+++ b/src/gui/trade.cpp
@@ -252,8 +252,7 @@ void TradeWindow::tradeItem(Item *item, int quantity)
// function. Detect the actual server version, and re-enable this
// for that version only.
//addItem(item->getId(), true, quantity, item->isEquipment());
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_TRADE_ITEM_ADD_REQUEST);
+ MessageOut outMsg(CMSG_TRADE_ITEM_ADD_REQUEST);
outMsg.writeInt16(item->getInvIndex());
outMsg.writeInt32(quantity);
#endif
@@ -329,8 +328,7 @@ void TradeWindow::action(const gcn::ActionEvent &event)
#ifdef TMWSERV_SUPPORT
Net::GameServer::Player::acceptTrade(false);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_TRADE_CANCEL_REQUEST);
+ MessageOut outMsg(CMSG_TRADE_CANCEL_REQUEST);
#endif
}
#ifdef EATHENA_SUPPORT
@@ -342,8 +340,7 @@ void TradeWindow::action(const gcn::ActionEvent &event)
{
mMoneyField->setText(toString(tempInt));
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_TRADE_ITEM_ADD_REQUEST);
+ MessageOut outMsg(CMSG_TRADE_ITEM_ADD_REQUEST);
outMsg.writeInt16(0);
outMsg.writeInt32(tempInt);
}
@@ -352,8 +349,7 @@ void TradeWindow::action(const gcn::ActionEvent &event)
mMoneyField->setText("");
}
mMoneyField->setEnabled(false);
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_TRADE_ADD_COMPLETE);
+ MessageOut outMsg(CMSG_TRADE_ADD_COMPLETE);
}
#endif
else if (event.getId() == "trade")
@@ -362,8 +358,7 @@ void TradeWindow::action(const gcn::ActionEvent &event)
Net::GameServer::Player::acceptTrade(true);
setStatus(PROPOSING);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_TRADE_OK);
+ MessageOut outMsg(CMSG_TRADE_OK);
#endif
}
#ifdef TMWSERV_SUPPORT
@@ -382,7 +377,6 @@ void TradeWindow::close()
#ifdef TMWSERV_SUPPORT
Net::GameServer::Player::acceptTrade(false);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_TRADE_CANCEL_REQUEST);
+ MessageOut outMsg(CMSG_TRADE_CANCEL_REQUEST);
#endif
}
diff --git a/src/gui/widgets/chattab.cpp b/src/gui/widgets/chattab.cpp
index 715aaf20..c4b2196b 100644
--- a/src/gui/widgets/chattab.cpp
+++ b/src/gui/widgets/chattab.cpp
@@ -239,9 +239,7 @@ void ChatTab::chatInput(std::string &msg)
chatLog(_("Trying to send a blank party message."), BY_SERVER, true);
return;
}
- MessageOut outMsg(chatWindow->mNetwork);
-
- outMsg.writeInt16(CMSG_PARTY_MESSAGE);
+ MessageOut outMsg(CMSG_PARTY_MESSAGE);
outMsg.writeInt16(length + 4);
outMsg.writeString(msg, length);
return;
@@ -306,8 +304,7 @@ void ChatTab::handleInput(const std::string &msg) {
#else
std::string mes = player_node->getName() + " : " + msg;
- MessageOut outMsg(chatWindow->mNetwork);
- outMsg.writeInt16(CMSG_CHAT_MESSAGE);
+ MessageOut outMsg(CMSG_CHAT_MESSAGE);
// Added + 1 in order to let eAthena parse admin commands correctly
outMsg.writeInt16(mes.length() + 4 + 1);
outMsg.writeString(mes, mes.length() + 1);
diff --git a/src/gui/widgets/whispertab.cpp b/src/gui/widgets/whispertab.cpp
index 0ae042df..1621e965 100644
--- a/src/gui/widgets/whispertab.cpp
+++ b/src/gui/widgets/whispertab.cpp
@@ -57,8 +57,7 @@ void WhisperTab::handleInput(const std::string &msg) {
#ifdef TMWSERV_SUPPORT
Net::ChatServer::privMsg(mNick, msg);
#else
- MessageOut outMsg(chatWindow->mNetwork);
- outMsg.writeInt16(CMSG_CHAT_WHISPER);
+ MessageOut outMsg(CMSG_CHAT_WHISPER);
outMsg.writeInt16(msg.length() + 28);
outMsg.writeString(mNick, 24);
outMsg.writeString(msg, msg.length());
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index f8fad1e8..8b2d6907 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -399,8 +399,7 @@ void LocalPlayer::equipItem(Item *item)
#ifdef TMWSERV_SUPPORT
Net::GameServer::Player::equip(item->getInvIndex());
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_PLAYER_EQUIP);
+ MessageOut outMsg(CMSG_PLAYER_EQUIP);
outMsg.writeInt16(item->getInvIndex());
outMsg.writeInt16(0);
#endif
@@ -428,8 +427,7 @@ void LocalPlayer::unequipItem(Item *item)
if (!item)
return;
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_PLAYER_UNEQUIP);
+ MessageOut outMsg(CMSG_PLAYER_UNEQUIP);
outMsg.writeInt16(item->getInvIndex());
// Tidy equipment directly to avoid weapon still shown bug, for instance
@@ -438,8 +436,7 @@ void LocalPlayer::unequipItem(Item *item)
void LocalPlayer::useItem(Item *item)
{
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_PLAYER_INVENTORY_USE);
+ MessageOut outMsg(CMSG_PLAYER_INVENTORY_USE);
outMsg.writeInt16(item->getInvIndex());
outMsg.writeInt32(item->getId());
// Note: id is dest of item, usually player_node->account_ID ??
@@ -453,8 +450,7 @@ void LocalPlayer::dropItem(Item *item, int quantity)
Net::GameServer::Player::drop(item->getInvIndex(), quantity);
#else
// TODO: Fix wrong coordinates of drops, serverside?
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_PLAYER_INVENTORY_DROP);
+ MessageOut outMsg(CMSG_PLAYER_INVENTORY_DROP);
outMsg.writeInt16(item->getInvIndex());
outMsg.writeInt16(quantity);
#endif
@@ -488,8 +484,7 @@ void LocalPlayer::pickUp(FloorItem *item)
int id = item->getId();
Net::GameServer::Player::pickUp(id >> 16, id & 0xFFFF);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_ITEM_PICKUP);
+ MessageOut outMsg(CMSG_ITEM_PICKUP);
outMsg.writeInt32(item->getId());
#endif
mPickUpTarget = NULL;
@@ -689,9 +684,8 @@ void LocalPlayer::setDestination(Uint16 x, Uint16 y)
effectManager->trigger(15,x,y);
#else
char temp[4] = "";
- MessageOut outMsg(mNetwork);
set_coordinates(temp, x, y, mDirection);
- outMsg.writeInt16(0x0085);
+ MessageOut outMsg(0x0085);
outMsg.writeString(temp, 3);
#endif
}
@@ -734,8 +728,7 @@ void LocalPlayer::stopWalking(bool sendToServer)
#ifdef EATHENA_SUPPORT
void LocalPlayer::raiseAttribute(Attribute attr)
{
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_STAT_UPDATE_REQUEST);
+ MessageOut outMsg(CMSG_STAT_UPDATE_REQUEST);
switch (attr)
{
@@ -771,8 +764,7 @@ void LocalPlayer::raiseSkill(Uint16 skillId)
if (mSkillPoint <= 0)
return;
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_SKILL_LEVELUP_REQUEST);
+ MessageOut outMsg(CMSG_SKILL_LEVELUP_REQUEST);
outMsg.writeInt16(skillId);
}
#endif
@@ -795,8 +787,7 @@ void LocalPlayer::toggleSit()
setAction(newAction);
Net::GameServer::Player::changeAction(newAction);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x0089);
+ MessageOut outMsg(0x0089);
outMsg.writeInt32(0);
outMsg.writeInt8((newAction == SIT) ? 2 : 3);
#endif
@@ -810,8 +801,7 @@ void LocalPlayer::emote(Uint8 emotion)
// XXX Convert for new server
#ifdef EATHENA_SUPPORT
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x00bf);
+ MessageOut outMsg(0x00bf);
outMsg.writeInt8(emotion);
#endif
}
@@ -822,8 +812,7 @@ void LocalPlayer::tradeReply(bool accept)
if (!accept)
mTrading = false;
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_TRADE_RESPONSE);
+ MessageOut outMsg(CMSG_TRADE_RESPONSE);
outMsg.writeInt8(accept ? 3 : 4);
}
#endif
@@ -837,8 +826,7 @@ void LocalPlayer::trade(Being *being) const
tradePartnerID = being->getId();
Net::GameServer::Player::requestTrade(tradePartnerID);
#else
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_TRADE_REQUEST);
+ MessageOut outMsg(CMSG_TRADE_REQUEST);
outMsg.writeInt32(being->getId());
#endif
}
@@ -957,8 +945,7 @@ void LocalPlayer::attack(Being *target, bool keep)
sound.playSfx("sfx/fist-swish.ogg");
}
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x0089);
+ MessageOut outMsg(0x0089);
outMsg.writeInt32(target->getId());
outMsg.writeInt8(0);
@@ -983,8 +970,7 @@ void LocalPlayer::revive()
{
// XXX Convert for new server
#ifdef EATHENA_SUPPORT
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(0x00b2);
+ MessageOut outMsg(0x00b2);
outMsg.writeInt8(0);
#endif
}
diff --git a/src/main.cpp b/src/main.cpp
index 321a4ee0..bd17ce9c 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -752,8 +752,7 @@ static void accountLogin(Network *network, LoginData *loginData)
loginData->username,
loginData->password);
#else
- MessageOut outMsg(network);
- outMsg.writeInt16(0x0064);
+ MessageOut outMsg(0x0064);
outMsg.writeInt32(0); // client version
outMsg.writeString(loginData->username, 24);
outMsg.writeString(loginData->password, 24);
@@ -807,8 +806,7 @@ static void charLogin(Network *network, LoginData *loginData)
charServerHandler.setLoginData(loginData);
// Send login infos
- MessageOut outMsg(network);
- outMsg.writeInt16(0x0065);
+ MessageOut outMsg(0x0065);
outMsg.writeInt32(loginData->account_ID);
outMsg.writeInt32(loginData->session_ID1);
outMsg.writeInt32(loginData->session_ID2);
@@ -827,8 +825,6 @@ static void mapLogin(Network *network, LoginData *loginData)
player_node->getName().c_str());
config.setValue("lastCharacter", player_node->getName());
- MessageOut outMsg(network);
-
logger->log("Trying to connect to map server...");
logger->log("Map: %s", map_path.c_str());
@@ -836,7 +832,7 @@ static void mapLogin(Network *network, LoginData *loginData)
network->registerHandler(&mapLoginHandler);
// Send login infos
- outMsg.writeInt16(0x0072);
+ MessageOut outMsg(0x0072);
outMsg.writeInt32(loginData->account_ID);
outMsg.writeInt32(player_node->mCharId);
outMsg.writeInt32(loginData->session_ID1);
diff --git a/src/net/ea/network.cpp b/src/net/ea/network.cpp
index e17b8f3b..4aecb268 100644
--- a/src/net/ea/network.cpp
+++ b/src/net/ea/network.cpp
@@ -91,6 +91,8 @@ int networkThread(void *data)
return 0;
}
+Network *Network::mInstance = 0;
+
Network::Network():
mSocket(0),
mAddress(), mPort(0),
@@ -102,6 +104,7 @@ Network::Network():
mWorkerThread(0)
{
mMutex = SDL_CreateMutex();
+ mInstance = this;
}
Network::~Network()
@@ -112,6 +115,7 @@ Network::~Network()
disconnect();
SDL_DestroyMutex(mMutex);
+ mInstance = 0;
delete[] mInBuffer;
delete[] mOutBuffer;
@@ -420,6 +424,11 @@ void Network::receive()
SDLNet_FreeSocketSet(set);
}
+Network *Network::instance()
+{
+ return mInstance;
+}
+
void Network::setError(const std::string &error)
{
logger->log("Network error: %s", error.c_str());
diff --git a/src/net/ea/network.h b/src/net/ea/network.h
index 651b1182..40d563aa 100644
--- a/src/net/ea/network.h
+++ b/src/net/ea/network.h
@@ -85,7 +85,9 @@ class Network
NET_ERROR
};
- protected:
+ private:
+ static Network *instance();
+
void setError(const std::string &error);
Uint16 readWord(int pos);
@@ -113,6 +115,8 @@ class Network
typedef std::map<Uint16, MessageHandler*> MessageHandlers;
typedef MessageHandlers::iterator MessageHandlerIterator;
MessageHandlers mMessageHandlers;
+
+ static Network *mInstance;
};
#endif
diff --git a/src/net/messageout.cpp b/src/net/messageout.cpp
index 4cb4dc36..35e9a425 100644
--- a/src/net/messageout.cpp
+++ b/src/net/messageout.cpp
@@ -33,21 +33,16 @@
#include <cstring>
#include <string>
-#ifdef TMWSERV_SUPPORT
MessageOut::MessageOut(short id):
mData(0),
-#else
-MessageOut::MessageOut(Network *network):
- mNetwork(network),
-#endif
mDataSize(0),
mPos(0)
{
-#ifdef TMWSERV_SUPPORT
- writeInt16(id);
-#else
+#ifdef EATHENA_SUPPORT
+ mNetwork = Network::instance();
mData = mNetwork->mOutBuffer + mNetwork->mOutSize;
#endif
+ writeInt16(id);
}
#ifdef TMWSERV_SUPPORT
diff --git a/src/net/messageout.h b/src/net/messageout.h
index 1ddd040d..9dc31525 100644
--- a/src/net/messageout.h
+++ b/src/net/messageout.h
@@ -43,15 +43,13 @@ class MessageOut
/**
* Constructor.
*/
-#ifdef TMWSERV_SUPPORT
MessageOut(short id);
+#ifdef TMWSERV_SUPPORT
/**
* Destructor.
*/
~MessageOut();
-#else
- MessageOut(Network *network);
#endif
void writeInt8(Sint8 value); /**< Writes a byte. */
diff --git a/src/npc.cpp b/src/npc.cpp
index b75d74b3..98c3e0eb 100644
--- a/src/npc.cpp
+++ b/src/npc.cpp
@@ -129,8 +129,7 @@ void NPC::talk()
if (!mNetwork)
return;
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_NPC_TALK);
+ MessageOut outMsg(CMSG_NPC_TALK);
outMsg.writeInt32(mId);
outMsg.writeInt8(0);
#endif
diff --git a/src/party.cpp b/src/party.cpp
index 51a86360..4a7912ee 100644
--- a/src/party.cpp
+++ b/src/party.cpp
@@ -56,8 +56,7 @@ void Party::respond(const std::string &command, const std::string &args)
localChatTab->chatLog(_("Not yet implemented!"), BY_SERVER);
return;
/*
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_PARTY_SETTINGS);
+ MessageOut outMsg(CMSG_PARTY_SETTINGS);
outMsg.writeInt16(0); // Experience
outMsg.writeInt16(0); // Item
*/
@@ -72,16 +71,14 @@ void Party::create(const std::string &party)
localChatTab->chatLog(_("Party name is missing."), BY_SERVER);
return;
}
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_PARTY_CREATE);
+ MessageOut outMsg(CMSG_PARTY_CREATE);
outMsg.writeString(party.substr(0, 23), 24);
mCreating = true;
}
void Party::leave(const std::string &args)
{
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_PARTY_LEAVE);
+ MessageOut outMsg(CMSG_PARTY_LEAVE);
localChatTab->chatLog(_("Left party."), BY_SERVER);
mInParty = false;
}
@@ -137,8 +134,7 @@ void Party::invitedAsk(const std::string &nick, int gender,
void Party::InviteListener::action(const gcn::ActionEvent &event)
{
- MessageOut outMsg(mNetwork);
- outMsg.writeInt16(CMSG_PARTY_INVITED);
+ MessageOut outMsg(CMSG_PARTY_INVITED);
outMsg.writeInt32(player_node->getId());
bool accept = event.getId() == "yes";
outMsg.writeInt32(accept ? 1 : 0);