diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/being.cpp | 12 | ||||
-rw-r--r-- | src/configuration.cpp | 7 | ||||
-rw-r--r-- | src/engine.cpp | 17 | ||||
-rw-r--r-- | src/gui/buy.cpp | 18 | ||||
-rw-r--r-- | src/gui/char_select.cpp | 24 | ||||
-rw-r--r-- | src/gui/char_server.cpp | 9 | ||||
-rw-r--r-- | src/gui/debugwindow.cpp | 35 | ||||
-rw-r--r-- | src/gui/debugwindow.h | 7 | ||||
-rw-r--r-- | src/gui/equipmentwindow.cpp | 7 | ||||
-rw-r--r-- | src/gui/inttextbox.cpp | 16 | ||||
-rw-r--r-- | src/gui/inventorywindow.cpp | 10 | ||||
-rw-r--r-- | src/gui/itemcontainer.cpp | 16 | ||||
-rw-r--r-- | src/gui/ministatus.cpp | 11 | ||||
-rw-r--r-- | src/gui/register.cpp | 2 | ||||
-rw-r--r-- | src/gui/sell.cpp | 18 | ||||
-rw-r--r-- | src/gui/setup.cpp | 6 | ||||
-rw-r--r-- | src/gui/status.cpp | 109 | ||||
-rw-r--r-- | src/gui/tabbedcontainer.cpp | 17 | ||||
-rw-r--r-- | src/gui/trade.cpp | 16 | ||||
-rw-r--r-- | src/gui/updatewindow.cpp | 9 | ||||
-rw-r--r-- | src/log.cpp | 20 | ||||
-rw-r--r-- | src/main.cpp | 7 | ||||
-rw-r--r-- | src/monster.cpp | 12 | ||||
-rw-r--r-- | src/net/chathandler.cpp | 8 | ||||
-rw-r--r-- | src/utils/tostring.h | 37 |
27 files changed, 212 insertions, 252 deletions
@@ -1,3 +1,16 @@ +2006-03-18 Björn Steinbrink <B.Steinbrink@gmx.de> + + * src/configuration.cpp, src/log.cpp, src/main.cpp, src/being.cpp, + src/monster.cpp, src/gui/equipmentwindow.cpp, src/gui/sell.cpp, + src/gui/trade.cpp, src/gui/char_server.cpp, src/gui/setup.cpp, + src/gui/updatewindow.cpp, src/gui/char_select.cpp, + src/gui/ministatus.cpp, src/gui/debugwindow.cpp, + src/gui/tabbedcontainer.cpp, src/gui/inventorywindow.cpp, + src/gui/buy.cpp, src/gui/itemcontainer.cpp, src/gui/inttextbox.cpp, + src/gui/debugwindow.h, src/gui/status.cpp, src/gui/register.cpp, + src/net/chathandler.cpp, src/engine.cpp, src/utils/tostring.h, + src/Makefile.am: Added a toString conversion function. + 2006-03-15 Björn Steinbrink <B.Steinbrink@gmx.de> * src/engine.h, src/main.cpp, src/gui/equipmentwindow.cpp, diff --git a/src/Makefile.am b/src/Makefile.am index eaa559d5..cee6a95a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -173,6 +173,7 @@ tmw_SOURCES = graphic/spriteset.cpp \ resources/buddylist.h \ resources/buddylist.cpp \ utils/dtor.h \ + utils/tostring.h \ base64.cpp \ base64.h \ being.cpp \ diff --git a/src/being.cpp b/src/being.cpp index 5ee8276c..a74efe5f 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -22,8 +22,6 @@ */ #include "being.h" -#include <sstream> - #include "game.h" #include "graphics.h" #include "log.h" @@ -33,6 +31,8 @@ #include "gui/gui.h" +#include "utils/tostring.h" + extern Spriteset *emotionset; PATH_NODE::PATH_NODE(Uint16 iX, Uint16 iY): @@ -120,13 +120,7 @@ Being::setSpeech(const std::string &text, Uint32 time) void Being::setDamage(Sint16 amount, Uint32 time) { - if (!amount) { - mDamage = "miss"; - } else { - std::stringstream damageString; - damageString << amount; - mDamage = damageString.str(); - } + mDamage = amount ? toString(amount) : "miss"; mDamageTime = tick_time; mShowDamage = true; } diff --git a/src/configuration.cpp b/src/configuration.cpp index aa63f46c..4085b20b 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -24,12 +24,13 @@ #include "configuration.h" -#include <sstream> #include <libxml/xmlwriter.h> #include "configlistener.h" #include "log.h" +#include "utils/tostring.h" + void Configuration::init(const std::string &filename) { mConfigPath = filename; @@ -127,9 +128,7 @@ void Configuration::setValue(const std::string &key, std::string value) void Configuration::setValue(const std::string &key, float value) { - std::stringstream ss; - ss << ((value == (int)value) ? (int)value : value); - setValue(key, ss.str()); + setValue(key, toString((value == (int)value) ? (int)value : value)); } std::string Configuration::getValue(const std::string &key, std::string deflt) diff --git a/src/engine.cpp b/src/engine.cpp index 3be152bd..8d78a078 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -24,7 +24,6 @@ #include "engine.h" #include <list> -#include <sstream> #include "being.h" #include "beingmanager.h" @@ -51,6 +50,7 @@ #include "resources/resourcemanager.h" #include "utils/dtor.h" +#include "utils/tostring.h" extern Minimap *minimap; @@ -80,10 +80,8 @@ Engine::Engine(Network *network): 30, 32); for (int i = 0; i < 2; i++) { - std::stringstream filename; - filename << "graphics/sprites/weapon" << i << ".png"; Spriteset *tmp = ResourceManager::getInstance()->createSpriteset( - filename.str(), 64, 64); + "graphics/sprites/weapon" + toString(i) + ".png", 64, 64); if (!tmp) { logger->error("Unable to load weaponset"); } else { @@ -218,15 +216,12 @@ void Engine::draw(Graphics *graphics) { int squareX = i->x * 32 - map_x + 12; int squareY = i->y * 32 - map_y + 12; + graphics->setColor(gcn::Color(255, 0, 0)); graphics->fillRectangle(gcn::Rectangle(squareX, squareY, 8, 8)); - - MetaTile *tile = mCurrentMap->getMetaTile(i->x, i->y); - - std::stringstream cost; - cost << tile->Gcost; - graphics->drawText(cost.str(), squareX + 4, squareY + 12, - gcn::Graphics::CENTER); + graphics->drawText( + toString(mCurrentMap->getMetaTile(i->x, i->y)->Gcost), + squareX + 4, squareY + 12, gcn::Graphics::CENTER); } } diff --git a/src/gui/buy.cpp b/src/gui/buy.cpp index 18542385..86bd5413 100644 --- a/src/gui/buy.cpp +++ b/src/gui/buy.cpp @@ -23,8 +23,6 @@ #include "buy.h" -#include <sstream> - #include <guichan/widgets/label.hpp> #include "button.h" @@ -41,6 +39,8 @@ #include "../net/messageout.h" #include "../net/protocol.h" +#include "../utils/tostring.h" + BuyDialog::BuyDialog(Network *network): Window("Buy"), mNetwork(network), @@ -139,10 +139,8 @@ void BuyDialog::reset() void BuyDialog::addItem(short id, int price) { ITEM_SHOP item_shop; - std::stringstream ss; - ss << itemDb->getItemInfo(id)->getName() << " " << price << " GP"; - item_shop.name = ss.str(); + item_shop.name = itemDb->getItemInfo(id)->getName() + " " + toString(price) + " GP"; item_shop.price = price; item_shop.id = id; @@ -242,21 +240,17 @@ void BuyDialog::action(const std::string& eventId) // If anything has changed, we have to update the buttons and labels if (updateButtonsAndLabels) { - std::stringstream oss; - // Update buttons mIncreaseButton->setEnabled(mAmountItems < mMaxItems); mDecreaseButton->setEnabled(mAmountItems > 0); mBuyButton->setEnabled(mAmountItems > 0); // Update labels - oss << mAmountItems; - mQuantityLabel->setCaption(oss.str()); + mQuantityLabel->setCaption(toString(mAmountItems)); mQuantityLabel->adjustSize(); - oss.str(""); - oss << "Price : " << mAmountItems * mShopItems->at(selectedItem).price << " GP"; - mMoneyLabel->setCaption(oss.str()); + int price = mAmountItems * mShopItems->at(selectedItem).price; + mMoneyLabel->setCaption("Price : " + toString(price) + " GP"); mMoneyLabel->adjustSize(); } } diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp index b1d08951..40c1d145 100644 --- a/src/gui/char_select.cpp +++ b/src/gui/char_select.cpp @@ -23,7 +23,6 @@ #include "char_select.h" -#include <sstream> #include <string> #include <guichan/widgets/label.hpp> @@ -40,6 +39,8 @@ #include "../net/messageout.h" +#include "./utils/tostring.h" + /** * Listener for confirming character deletion. */ @@ -69,7 +70,8 @@ void CharDeleteConfirm::action(const std::string &eventId) } CharSelectDialog::CharSelectDialog(Network *network, LockedArray<LocalPlayer*> *charInfo): - Window("Select Character"), mNetwork(network), mCharInfo(charInfo), mCharSelected(false) + Window("Select Character"), mNetwork(network), + mCharInfo(charInfo), mCharSelected(false) { mSelectButton = new Button("Ok", "ok", this); mCancelButton = new Button("Cancel", "cancel", this); @@ -171,17 +173,10 @@ void CharSelectDialog::updatePlayerInfo() LocalPlayer *pi = mCharInfo->getEntry(); if (pi) { - std::stringstream nameCaption, levelCaption, jobCaption, moneyCaption; - - nameCaption << pi->getName(); - levelCaption << "Lvl: " << pi->mLevel; - jobCaption << "Job Lvl: " << pi->mJobLevel; - moneyCaption << "Gold: " << pi->mGp; - - mNameLabel->setCaption(nameCaption.str()); - mLevelLabel->setCaption(levelCaption.str()); - mJobLevelLabel->setCaption(jobCaption.str()); - mMoneyLabel->setCaption(moneyCaption.str()); + mNameLabel->setCaption(pi->getName()); + mLevelLabel->setCaption("Lvl: " + toString(pi->mLevel)); + mJobLevelLabel->setCaption("Job Lvl: " + toString(pi->mJobLevel)); + mMoneyLabel->setCaption("Gold: " + toString(pi->mGp)); if (!mCharSelected) { mNewCharButton->setEnabled(false); @@ -191,8 +186,7 @@ void CharSelectDialog::updatePlayerInfo() mPlayerBox->mHairStyle = pi->getHairStyle() - 1; mPlayerBox->mHairColor = pi->getHairColor() - 1; mPlayerBox->mShowPlayer = true; - } - else { + } else { mNameLabel->setCaption("Name"); mLevelLabel->setCaption("Level"); mJobLevelLabel->setCaption("Job Level"); diff --git a/src/gui/char_server.cpp b/src/gui/char_server.cpp index 8a0a67ab..ad0df223 100644 --- a/src/gui/char_server.cpp +++ b/src/gui/char_server.cpp @@ -23,8 +23,6 @@ #include "char_server.h" -#include <sstream> - #include "button.h" #include "listbox.h" #include "scrollarea.h" @@ -35,6 +33,8 @@ #include "../net/network.h" // TODO this is just for iptostring, move that? +#include "../utils/tostring.h" + extern SERVER_INFO **server_info; /** @@ -120,7 +120,6 @@ ServerListModel::getNumberOfElements() std::string ServerListModel::getElementAt(int i) { - std::stringstream s; - s << server_info[i]->name << " (" << server_info[i]->online_users << ")"; - return s.str(); + const SERVER_INFO *si = server_info[i]; + return si->name + " (" + toString(si->online_users) + ")"; } diff --git a/src/gui/debugwindow.cpp b/src/gui/debugwindow.cpp index cf30df93..66681a8b 100644 --- a/src/gui/debugwindow.cpp +++ b/src/gui/debugwindow.cpp @@ -23,16 +23,18 @@ #include "debugwindow.h" -#include <guichan/widgets/label.hpp> -#include <sstream> #include <SDL_mouse.h> +#include <guichan/widgets/label.hpp> + #include "button.h" #include "../game.h" #include "../engine.h" #include "../map.h" +#include "../utils/tostring.h" + DebugWindow::DebugWindow(): Window("Debug") { @@ -73,29 +75,24 @@ DebugWindow::logic() int mouseTileX = mouseX / 32 + camera_x; int mouseTileY = mouseY / 32 + camera_y; - std::stringstream updatedText; - updatedText << "[" << fps << " FPS]"; - mFPSLabel->setCaption(updatedText.str()); + mFPSLabel->setCaption("[" + toString(fps) + " FPS"); mFPSLabel->adjustSize(); - updatedText.str(""); - updatedText << "[Mouse: " << mouseTileX << ", " << mouseTileY << "]"; - mTileMouseLabel->setCaption(updatedText.str()); + mTileMouseLabel->setCaption("[Mouse: " + + toString(mouseTileX) + ", " + toString(mouseTileY) + "]"); mTileMouseLabel->adjustSize(); - updatedText.str(""); - mCurrentMap = engine->getCurrentMap(); - - if (mCurrentMap != NULL) + Map *currentMap = engine->getCurrentMap(); + if (currentMap != NULL) { - updatedText << " [Music File: " - << mCurrentMap->getProperty("music") << "]"; - mMusicFileLabel->setCaption(updatedText.str()); + const std::string music = + " [Music File: " + currentMap->getProperty("music") + "]"; + mMusicFileLabel->setCaption(music); mMusicFileLabel->adjustSize(); - updatedText.str(""); - updatedText << " [MiniMap File: " - << mCurrentMap->getProperty("minimap") << "]"; - mMapFileLabel->setCaption(updatedText.str()); + + const std::string minimap = + " [MiniMap File: " + currentMap->getProperty("minimap") + "]"; + mMapFileLabel->setCaption(minimap); mMapFileLabel->adjustSize(); } } diff --git a/src/gui/debugwindow.h b/src/gui/debugwindow.h index d318df16..80524ffa 100644 --- a/src/gui/debugwindow.h +++ b/src/gui/debugwindow.h @@ -24,14 +24,13 @@ #ifndef _TMW_DEBUGWINDOW_H #define _TMW_DEBUGWINDOW_H -#include <string> +#include <iosfwd> #include <guichan/actionlistener.hpp> #include "window.h" -#include "../guichanfwd.h" -class Map; +#include "../guichanfwd.h" /** * The chat window. @@ -59,8 +58,6 @@ class DebugWindow : public Window, public gcn::ActionListener private: gcn::Label *mMusicFileLabel, *mMapFileLabel; gcn::Label *mTileMouseLabel, *mFPSLabel; - Map *mCurrentMap; - }; #endif diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp index 64c368bc..1b9cfc55 100644 --- a/src/gui/equipmentwindow.cpp +++ b/src/gui/equipmentwindow.cpp @@ -33,7 +33,7 @@ #include "../resources/iteminfo.h" #include "../resources/resourcemanager.h" -#include <sstream> +#include "../utils/tostring.h" EquipmentWindow::EquipmentWindow(Equipment *equipment): Window("Equipment"), mEquipment(equipment) @@ -85,7 +85,6 @@ void EquipmentWindow::draw(gcn::Graphics *graphics) image = mItemset->get(item->getInfo()->getImage() - 1); dynamic_cast<Graphics*>(graphics)->drawImage(image, 160, 25); - std::stringstream n; - n << item->getQuantity(); - graphics->drawText(n.str(), 170, 62, gcn::Graphics::CENTER); + graphics->drawText(toString(item->getQuantity()), 170, 62, + gcn::Graphics::CENTER); } diff --git a/src/gui/inttextbox.cpp b/src/gui/inttextbox.cpp index 560a6cec..92f21e5f 100644 --- a/src/gui/inttextbox.cpp +++ b/src/gui/inttextbox.cpp @@ -23,10 +23,10 @@ #include "inttextbox.h" -#include <sstream> - #include <guichan/key.hpp> +#include "../utils/tostring.h" + IntTextBox::IntTextBox(int i): mValue(i) { @@ -40,9 +40,8 @@ void IntTextBox::keyPress(const gcn::Key &key) gcn::TextBox::keyPress(key); } - std::stringstream s; + std::stringstream s(gcn::TextBox::getText()); int i; - s << gcn::TextBox::getText(); s >> i; if (gcn::TextBox::getText() != "") setInt(i); @@ -63,11 +62,10 @@ int IntTextBox::getInt() void IntTextBox::setInt(int i) { - std::stringstream s; - if (i >= mMin && i <= mMax) mValue = i; - s << mValue; - setText(s.str()); - setCaretPosition(s.str().length() + 1); + + const std::string valStr = toString(mValue); + setText(valStr); + setCaretPosition(valStr.length() + 1); } diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index 422d92af..8f672bc9 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -24,7 +24,6 @@ #include "inventorywindow.h" #include <string> -#include <sstream> #include <guichan/mouseinput.hpp> @@ -41,6 +40,8 @@ #include "../resources/iteminfo.h" +#include "../utils/tostring.h" + InventoryWindow::InventoryWindow(): Window("Inventory") { @@ -88,10 +89,9 @@ void InventoryWindow::logic() updateButtons(); // Update weight information - std::stringstream tempstr; - tempstr << "Total Weight: " << player_node->mTotalWeight - << " - Maximum Weight: " << player_node->mMaxWeight; - mWeightLabel->setCaption(tempstr.str()); + mWeightLabel->setCaption( + "Total Weight: " + toString(player_node->mTotalWeight) + " - " + "Maximum Weight: " + toString(player_node->mMaxWeight)); mWeightLabel->adjustSize(); } diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp index e0730ced..9b8dc09b 100644 --- a/src/gui/itemcontainer.cpp +++ b/src/gui/itemcontainer.cpp @@ -23,8 +23,6 @@ #include "itemcontainer.h" -#include <sstream> - #include <guichan/mouseinput.hpp> #include "../graphics.h" @@ -38,6 +36,8 @@ #include "../resources/iteminfo.h" #include "../resources/resourcemanager.h" +#include "../utils/tostring.h" + ItemContainer::ItemContainer(Inventory *inventory): mInventory(inventory) { @@ -122,16 +122,8 @@ void ItemContainer::draw(gcn::Graphics* graphics) } // Draw item caption - std::stringstream ss; - - if (!item->isEquipped()) { - ss << item->getQuantity(); - } - else { - ss << "Eq."; - } - - graphics->drawText(ss.str(), + graphics->drawText( + (item->isEquipped() ? "Eq." : toString(item->getQuantity())), itemX + gridWidth / 2, itemY + gridHeight - 11, gcn::Graphics::CENTER); diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp index fc2f451b..be089b68 100644 --- a/src/gui/ministatus.cpp +++ b/src/gui/ministatus.cpp @@ -24,13 +24,14 @@ #include "ministatus.h" #include <guichan/widgets/label.hpp> -#include <sstream> #include "gui.h" #include "progressbar.h" #include "../localplayer.h" +#include "../utils/tostring.h" + MiniStatusWindow::MiniStatusWindow(): Window("") { @@ -88,12 +89,8 @@ void MiniStatusWindow::update() // mpBar->setProgress((float)player_node->mp / (float)player_node->maxMp); // Update and center labels - std::stringstream updatedText; - updatedText << player_node->mHp; - mHpLabel->setCaption(updatedText.str()); - updatedText.str(""); - updatedText << player_node->mMp; - mMpLabel->setCaption(updatedText.str()); + mHpLabel->setCaption(toString(player_node->mHp)); + mMpLabel->setCaption(toString(player_node->mMp)); } void MiniStatusWindow::draw(gcn::Graphics *graphics) diff --git a/src/gui/register.cpp b/src/gui/register.cpp index a5e511b3..39c918f7 100644 --- a/src/gui/register.cpp +++ b/src/gui/register.cpp @@ -139,7 +139,7 @@ RegisterDialog::action(const std::string& eventId) int error = 0; // Check login - if (user.length() == 0) + if (user.empty()) { // No username errorMsg << "Enter your username first."; diff --git a/src/gui/sell.cpp b/src/gui/sell.cpp index aa67adab..bde8906b 100644 --- a/src/gui/sell.cpp +++ b/src/gui/sell.cpp @@ -24,7 +24,6 @@ #include "sell.h" #include <cassert> -#include <sstream> #include <guichan/widgets/label.hpp> @@ -43,6 +42,7 @@ #include "../net/messageout.h" #include "../net/protocol.h" +#include "../utils/tostring.h" SellDialog::SellDialog(Network *network): Window("Sell"), @@ -141,11 +141,8 @@ void SellDialog::addItem(Item *item, int price) return; ITEM_SHOP item_shop; - std::stringstream ss; - ss << item->getInfo()->getName() << " " << price << " GP"; - - item_shop.name = ss.str(); + item_shop.name = item->getInfo()->getName() + " " + toString(price) + " GP"; item_shop.price = price; item_shop.index = item->getInvIndex(); item_shop.id = item->getId(); @@ -240,15 +237,12 @@ void SellDialog::action(const std::string& eventId) // If anything changed, we need to update the buttons and labels if (updateButtonsAndLabels) { - std::stringstream oss; - // Update labels - oss << mAmountItems; - mQuantityLabel->setCaption(oss.str()); + mQuantityLabel->setCaption(toString(mAmountItems)); mQuantityLabel->adjustSize(); - oss.str(""); - oss << "Price: " << mAmountItems * mShopItems->at(selectedItem).price; - mMoneyLabel->setCaption(oss.str()); + + int price = mAmountItems * mShopItems->at(selectedItem).price; + mMoneyLabel->setCaption("Price: " + toString(price)); mMoneyLabel->adjustSize(); // Update Buttons diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp index f680d6ac..2fd99e1c 100644 --- a/src/gui/setup.cpp +++ b/src/gui/setup.cpp @@ -308,9 +308,9 @@ void Setup::action(const std::string &eventId) { std::stringstream error; error << "Failed to switch to " << - (fullscreen ? "windowed" : "fullscreen") << - "mode and restoration of old mode also failed!" << - std::endl; + (fullscreen ? "windowed" : "fullscreen") << + "mode and restoration of old mode also failed!" << + std::endl; logger->error(error.str()); } } diff --git a/src/gui/status.cpp b/src/gui/status.cpp index 28108fca..d7cae2f0 100644 --- a/src/gui/status.cpp +++ b/src/gui/status.cpp @@ -24,7 +24,6 @@ #include "status.h" #include <guichan/widgets/label.hpp> -#include <sstream> #include "button.h" #include "progressbar.h" @@ -33,6 +32,8 @@ #include "../graphics.h" +#include "../utils/tostring.h" + extern Graphics *graphics; StatusWindow::StatusWindow(LocalPlayer *player): @@ -224,43 +225,31 @@ StatusWindow::StatusWindow(LocalPlayer *player): void StatusWindow::update() { - std::stringstream updateText; - // Status Part // ----------- - updateText.str(""); - updateText << "Level: " << mPlayer->mLevel; - mLvlLabel->setCaption(updateText.str()); + mLvlLabel->setCaption("Level: " + toString(mPlayer->mLevel)); mLvlLabel->adjustSize(); - updateText.str(""); - updateText << "Money: " << mPlayer->mGp << " GP"; - mGpLabel->setCaption(updateText.str()); + mGpLabel->setCaption("Money: " + toString(mPlayer->mGp) + " GP"); mGpLabel->adjustSize(); - updateText.str(""); - updateText << "Job: " << mPlayer->mJobLevel; - mJobXpLabel->setCaption(updateText.str()); + mJobXpLabel->setCaption("Job: " + toString(mPlayer->mJobLevel)); mJobXpLabel->adjustSize(); - updateText.str(""); - updateText << mPlayer->mHp << "/" << mPlayer->mMaxHp; - mHpValueLabel->setCaption(updateText.str()); + mHpValueLabel->setCaption(toString(mPlayer->mHp) + + "/" + toString(mPlayer->mMaxHp)); mHpValueLabel->adjustSize(); - updateText.str(""); - updateText << mPlayer->mMp << "/" << mPlayer->mMaxMp; - mMpValueLabel->setCaption(updateText.str()); + mMpValueLabel->setCaption(toString(mPlayer->mMp) + + "/" + toString(mPlayer->mMaxMp)); mMpValueLabel->adjustSize(); - updateText.str(""); - updateText << (int)mPlayer->mXp << "/" << (int)mPlayer->mXpForNextLevel; - mXpValueLabel->setCaption(updateText.str()); + mXpValueLabel->setCaption(toString(mPlayer->mXp) + + "/" + toString(mPlayer->mXpForNextLevel)); mXpValueLabel->adjustSize(); - updateText.str(""); - updateText << (int)mPlayer->mJobXp << "/" << (int)mPlayer->mJobXpForNextLevel; - mJobValueLabel->setCaption(updateText.str()); + mJobValueLabel->setCaption(toString(mPlayer->mJobXp) + + "/" + toString(mPlayer->mJobXpForNextLevel)); mJobValueLabel->adjustSize(); // HP Bar coloration @@ -295,92 +284,76 @@ void StatusWindow::update() "Dexterity", "Luck" }; - int statusPoints = mPlayer->mStatsPointsToAttribute; - updateText.str(""); - updateText << "Remaining Status Points: " << statusPoints; - // Update labels for (int i = 0; i < 6; i++) { - std::stringstream sstr; - mStatsLabel[i]->setCaption(attrNames[i]); - mStatsLabel[i]->adjustSize(); + mStatsDisplayLabel[i]->setCaption(toString((int)mPlayer->mAttr[i])); + mPointsLabel[i]->setCaption(toString((int)mPlayer->mAttrUp[i])); - sstr.str(""); - sstr << (int)mPlayer->mAttr[i]; - mStatsDisplayLabel[i]->setCaption(sstr.str()); + mStatsLabel[i]->adjustSize(); mStatsDisplayLabel[i]->adjustSize(); - - sstr.str(""); - sstr << (int)mPlayer->mAttrUp[i]; - mPointsLabel[i]->setCaption(sstr.str()); mPointsLabel[i]->adjustSize(); mStatsButton[i]->setEnabled(mPlayer->mAttrUp[i] <= statusPoints); } - mRemainingStatsPointsLabel->setCaption(updateText.str()); + mRemainingStatsPointsLabel->setCaption("Remaining Status Points: " + + toString(statusPoints)); mRemainingStatsPointsLabel->adjustSize(); // Derived Stats Points // Attack TODO: Count equipped Weapons and items attack bonuses - updateText.str(""); - updateText << int(mPlayer->ATK + mPlayer->ATK_BONUS); - mStatsAttackPoints->setCaption(updateText.str()); + mStatsAttackPoints->setCaption( + toString(mPlayer->ATK + mPlayer->ATK_BONUS)); mStatsAttackPoints->adjustSize(); // Defense TODO: Count equipped Armors and items defense bonuses - updateText.str(""); - updateText << int(mPlayer->DEF + mPlayer->DEF_BONUS); - mStatsDefensePoints->setCaption(updateText.str()); + mStatsDefensePoints->setCaption( + toString(mPlayer->DEF + mPlayer->DEF_BONUS)); mStatsDefensePoints->adjustSize(); // Magic Attack TODO: Count equipped items M.Attack bonuses - updateText.str(""); - updateText << int(mPlayer->MATK + mPlayer->MATK_BONUS); - mStatsMagicAttackPoints->setCaption(updateText.str()); + mStatsMagicAttackPoints->setCaption( + toString(mPlayer->MATK + mPlayer->MATK_BONUS)); mStatsMagicAttackPoints->adjustSize(); // Magic Defense TODO: Count equipped items M.Defense bonuses - updateText.str(""); - updateText << int(mPlayer->MDEF + mPlayer->MDEF_BONUS); - mStatsMagicDefensePoints->setCaption(updateText.str()); + mStatsMagicDefensePoints->setCaption( + toString(mPlayer->MDEF + mPlayer->MDEF_BONUS)); mStatsMagicDefensePoints->adjustSize(); // Accuracy % - updateText.str(""); - updateText << (int)mPlayer->HIT; - mStatsAccuracyPoints->setCaption(updateText.str()); + mStatsAccuracyPoints->setCaption(toString(mPlayer->HIT)); mStatsAccuracyPoints->adjustSize(); // Evasion % - updateText.str(""); - updateText << (int)mPlayer->FLEE; - mStatsEvadePoints->setCaption(updateText.str()); + mStatsEvadePoints->setCaption(toString(mPlayer->FLEE)); mStatsEvadePoints->adjustSize(); // Reflex % - updateText.str(""); - updateText << ((int)mPlayer->DEX / 4); // + counter - mStatsReflexPoints->setCaption(updateText.str()); + mStatsReflexPoints->setCaption(toString(mPlayer->DEX / 4)); // + counter mStatsReflexPoints->adjustSize(); // Update Second column widgets position mGpLabel->setPosition(mLvlLabel->getX() + mLvlLabel->getWidth() + 20, mLvlLabel->getY()); - mXpLabel->setPosition(mHpValueLabel->getX() + mHpValueLabel->getWidth() + 10, - mHpLabel->getY()); - mXpBar->setPosition(mXpLabel->getX() + mXpLabel->getWidth() + 5, - mXpLabel->getY()); - mXpValueLabel->setPosition(mXpBar->getX() + mXpBar->getWidth() + 5, - mXpLabel->getY()); + mXpLabel->setPosition( + mHpValueLabel->getX() + mHpValueLabel->getWidth() + 10, + mHpLabel->getY()); + mXpBar->setPosition( + mXpLabel->getX() + mXpLabel->getWidth() + 5, + mXpLabel->getY()); + mXpValueLabel->setPosition( + mXpBar->getX() + mXpBar->getWidth() + 5, + mXpLabel->getY()); mJobXpLabel->setPosition(mXpLabel->getX(), mMpLabel->getY()); - mJobXpBar->setPosition(mXpBar->getX() + mXpBar->getWidth() - - mJobXpBar->getWidth(), mJobXpLabel->getY()); + mJobXpBar->setPosition( + mXpBar->getX() + mXpBar->getWidth() - mJobXpBar->getWidth(), + mJobXpLabel->getY()); mJobValueLabel->setPosition(290, mJobXpLabel->getY()); } diff --git a/src/gui/tabbedcontainer.cpp b/src/gui/tabbedcontainer.cpp index f19524e1..f1927c6f 100644 --- a/src/gui/tabbedcontainer.cpp +++ b/src/gui/tabbedcontainer.cpp @@ -23,10 +23,10 @@ #include "tabbedcontainer.h" -#include <sstream> - #include "button.h" +#include "../utils/tostring.h" + #define TABWIDTH 60 #define TABHEIGHT 20 @@ -48,12 +48,9 @@ TabbedContainer::~TabbedContainer() void TabbedContainer::addTab(gcn::Widget *widget, const std::string &caption) { - std::stringstream ss; int tabNumber = mTabs.size(); - ss << tabNumber; - - Button *tab = new Button(caption, ss.str(), this); + Button *tab = new Button(caption, toString(tabNumber), this); tab->setSize(TABWIDTH, TABHEIGHT); add(tab, TABWIDTH * tabNumber, 0); @@ -83,14 +80,12 @@ void TabbedContainer::logic() void TabbedContainer::action(const std::string &event) { + std::stringstream ss(event); int tabNo; - std::stringstream ss; - gcn::Widget *newContent; - - ss << event; ss >> tabNo; - if ((newContent = mContents[tabNo])) { + gcn::Widget *newContent = mContents[tabNo]; + if (newContent) { if (mActiveContent) { remove(mActiveContent); } diff --git a/src/gui/trade.cpp b/src/gui/trade.cpp index ee7bca06..9b98fa09 100644 --- a/src/gui/trade.cpp +++ b/src/gui/trade.cpp @@ -43,6 +43,8 @@ #include "../resources/iteminfo.h" +#include "../utils/tostring.h" + TradeWindow::TradeWindow(Network *network): Window("Trade: You"), mNetwork(network), @@ -130,9 +132,7 @@ TradeWindow::~TradeWindow() void TradeWindow::addMoney(int amount) { - std::stringstream tempMoney; - tempMoney << "You get: " << amount << "z"; - mMoneyLabel->setCaption(tempMoney.str()); + mMoneyLabel->setCaption("You get: " + toString(amount) + "z"); mMoneyLabel->adjustSize(); } @@ -292,14 +292,12 @@ void TradeWindow::action(const std::string &eventId) } else if (eventId == "ok") { - std::stringstream tempMoney[2]; - tempMoney[0] << mMoneyField->getText(); + std::stringstream tempMoney(mMoneyField->getText()); int tempInt; - if (tempMoney[0] >> tempInt) + if (tempMoney >> tempInt) { - tempMoney[1] << tempInt; - mMoneyField->setText(tempMoney[1].str()); - + mMoneyField->setText(toString(tempInt)); + MessageOut outMsg(mNetwork); outMsg.writeInt16(CMSG_TRADE_ITEM_ADD_REQUEST); outMsg.writeInt16(0); diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp index 9db09f27..4f43d1fc 100644 --- a/src/gui/updatewindow.cpp +++ b/src/gui/updatewindow.cpp @@ -24,7 +24,6 @@ #include "updatewindow.h" #include <iostream> -#include <sstream> #include <SDL.h> #include <SDL_thread.h> @@ -41,6 +40,8 @@ #include "../log.h" #include "../main.h" +#include "../utils/tostring.h" + UpdaterWindow::UpdaterWindow(): Window("Updating..."), mThread(NULL), mMutex(NULL), mDownloadStatus(UPDATE_NEWS), @@ -190,10 +191,8 @@ int UpdaterWindow::updateProgress(void *ptr, if (progress < 0) progress = 0.0f; if (progress > 1) progress = 1.0f; - std::stringstream progressString; - progressString << uw->mCurrentFile - << " (" << ((int)(progress * 100)) << "%)"; - uw->setLabel(progressString.str().c_str()); + uw->setLabel( + uw->mCurrentFile + " (" + toString((int)progress * 100) + "%)"); uw->setProgress(progress); if (state != UPDATE_STATE || uw->mDownloadStatus == UPDATE_ERROR) diff --git a/src/log.cpp b/src/log.cpp index d2f1e125..d40927c5 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -71,16 +71,16 @@ void Logger::log(const char *log_text, ...) // Print the log entry std::stringstream timeStr; - timeStr << "["; - timeStr << ((((t / 60) / 60) % 24 < 10) ? "0" : ""); - timeStr << (int)(((t / 60) / 60) % 24); - timeStr << ":"; - timeStr << (((t / 60) % 60 < 10) ? "0" : ""); - timeStr << (int)((t / 60) % 60); - timeStr << ":"; - timeStr << ((t % 60 < 10) ? "0" : ""); - timeStr << (int)(t % 60); - timeStr << "] "; + timeStr << "[" + << ((((t / 60) / 60) % 24 < 10) ? "0" : "") + << (int)(((t / 60) / 60) % 24) + << ":" + << (((t / 60) % 60 < 10) ? "0" : "") + << (int)((t / 60) % 60) + << ":" + << ((t % 60 < 10) ? "0" : "") + << (int)(t % 60) + << "] "; mLogFile << timeStr.str() << buf << std::endl; diff --git a/src/main.cpp b/src/main.cpp index e3fbdca6..d067d3c9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,7 +26,6 @@ #include <getopt.h> #include <iostream> #include <physfs.h> -#include <sstream> #include <unistd.h> #include <vector> #include <SDL_image.h> @@ -78,6 +77,7 @@ #include "resources/resourcemanager.h" #include "utils/dtor.h" +#include "utils/tostring.h" // Account infos char n_server, n_character; @@ -266,10 +266,9 @@ void init_engine() for (int i=0; i < NR_HAIR_STYLES; i++) { - std::stringstream filename; - filename << "graphics/sprites/hairstyle" << (i + 1) << ".png"; Spriteset *tmp = ResourceManager::getInstance()->createSpriteset( - filename.str(), 40, 40); + "graphics/sprites/hairstyle" + toString(i + 1) + ".png", + 40, 40); if (!tmp) { logger->error("Unable to load hairstyle"); } else { diff --git a/src/monster.cpp b/src/monster.cpp index 6416c716..af84b25e 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -23,13 +23,13 @@ #include "monster.h" -#include <sstream> - #include "game.h" #include "log.h" #include "resources/resourcemanager.h" +#include "utils/tostring.h" + class Spriteset; extern std::map<int, Spriteset*> monsterset; @@ -39,13 +39,9 @@ Monster::Monster(Uint32 id, Uint16 job, Map *map): // Load monster spriteset, if necessary if (monsterset.find(job - 1002) == monsterset.end()) { - std::stringstream filename; - - filename << "graphics/sprites/monster" << (job - 1002) << ".png"; - logger->log("%s",filename.str().c_str()); - Spriteset *tmp = ResourceManager::getInstance()->createSpriteset( - filename.str(), 60, 60); + "graphics/sprites/monster" + toString(job - 1002) + ".png", + 60, 60); if (!tmp) { logger->error("Unable to load monster spriteset!"); } else { diff --git a/src/net/chathandler.cpp b/src/net/chathandler.cpp index 97e8186d..9095a4e1 100644 --- a/src/net/chathandler.cpp +++ b/src/net/chathandler.cpp @@ -25,7 +25,6 @@ #include <SDL_types.h> #include <string> -#include <sstream> #include "messagein.h" #include "protocol.h" @@ -36,6 +35,8 @@ #include "../gui/chat.h" +#include "../utils/tostring.h" + extern Being *player_node; ChatHandler::ChatHandler() @@ -55,7 +56,6 @@ void ChatHandler::handleMessage(MessageIn *msg) { Being *being; std::string chatMsg; - std::stringstream ss; Sint16 chatMsgLength; switch (msg->getId()) @@ -105,8 +105,8 @@ void ChatHandler::handleMessage(MessageIn *msg) break; case SMSG_WHO_ANSWER: - ss << "Online users: " << msg->readInt32(); - chatWindow->chatLog(ss.str(), BY_SERVER); + chatWindow->chatLog("Online users: " + toString(msg->readInt32()), + BY_SERVER); break; case 0x010c: diff --git a/src/utils/tostring.h b/src/utils/tostring.h new file mode 100644 index 00000000..8fc6d105 --- /dev/null +++ b/src/utils/tostring.h @@ -0,0 +1,37 @@ +/* + * The Mana World + * Copyright 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * The Mana World is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * The Mana World is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with The Mana World; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * $Id$ + */ + +#ifndef _TMW_UTILS_TOSTRING_H +#define _TMW_UTISL_TOSTRING_H + +#include <sstream> + +template<typename T> +std::string toString(const T &arg) +{ + std::stringstream ss; + ss << arg; + return ss.str(); +} + +#endif |