diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/engine.cpp | 44 | ||||
-rw-r--r-- | src/engine.h | 2 | ||||
-rw-r--r-- | src/gui/chat.cpp | 12 | ||||
-rw-r--r-- | src/gui/chat.h | 2 | ||||
-rw-r--r-- | src/gui/checkbox.cpp | 3 | ||||
-rw-r--r-- | src/gui/equipmentwindow.cpp | 8 | ||||
-rw-r--r-- | src/gui/help.cpp | 3 | ||||
-rw-r--r-- | src/gui/itemcontainer.cpp | 6 | ||||
-rw-r--r-- | src/gui/listbox.cpp | 5 | ||||
-rw-r--r-- | src/gui/listbox.h | 12 | ||||
-rw-r--r-- | src/gui/login.cpp | 8 | ||||
-rw-r--r-- | src/gui/ministatus.cpp | 32 | ||||
-rw-r--r-- | src/gui/window.cpp | 25 | ||||
-rw-r--r-- | src/main.cpp | 14 | ||||
-rw-r--r-- | src/resources/image.cpp | 12 |
15 files changed, 68 insertions, 120 deletions
diff --git a/src/engine.cpp b/src/engine.cpp index 43d4d0e5..3be152bd 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -82,7 +82,6 @@ Engine::Engine(Network *network): { std::stringstream filename; filename << "graphics/sprites/weapon" << i << ".png"; - printf("hairstyle: %s\n", filename.str().c_str()); Spriteset *tmp = ResourceManager::getInstance()->createSpriteset( filename.str(), 64, 64); if (!tmp) { @@ -117,53 +116,44 @@ Engine::~Engine() delete itemDb; } -void Engine::changeMap(std::string mapPath) +void Engine::changeMap(const std::string &mapPath) { - // Clean up floor items + // Clear floor items and beings floorItemManager->clear(); - beingManager->clear(); - // Generate full map path - mapPath = "maps/" + mapPath; - mapPath = mapPath.substr(0, mapPath.rfind(".")) + ".tmx.gz"; + std::string oldMusic; + // Remove old map + if (mCurrentMap) { + oldMusic = mCurrentMap->getProperty("music"); + delete mCurrentMap; + } - // Store in global var - map_path = mapPath; + // Generate full map path + map_path = "maps/" + mapPath.substr(0, mapPath.rfind(".")) + ".tmx.gz"; // Attempt to load the new map - Map *newMap = MapReader::readMap(mapPath); - - if (!newMap) { + if (!(mCurrentMap = MapReader::readMap(map_path))) { logger->error("Could not find map file"); } // Notify the minimap and beingManager about the map change Image *mapImage = NULL; - if (newMap->hasProperty("minimap")) { + if (mCurrentMap->hasProperty("minimap")) { ResourceManager *resman = ResourceManager::getInstance(); - mapImage = resman->getImage(newMap->getProperty("minimap")); + mapImage = resman->getImage(mCurrentMap->getProperty("minimap")); } minimap->setMapImage(mapImage); - beingManager->setMap(newMap); + beingManager->setMap(mCurrentMap); - // Start playing new music file when necessary - std::string oldMusic = ""; - - if (mCurrentMap) { - oldMusic = mCurrentMap->getProperty("music"); - delete mCurrentMap; - } - - std::string newMusic = newMap->getProperty("music"); + // Change the music, if necessary + std::string newMusic = mCurrentMap->getProperty("music"); if (newMusic != oldMusic) { - newMusic = std::string(TMW_DATADIR) + "data/music/" + newMusic; + newMusic = std::string(TMW_DATADIR "data/music/") + newMusic; sound.playMusic(newMusic.c_str(), -1); } - mCurrentMap = newMap; - // Send "map loaded" MessageOut outMsg(mNetwork); outMsg.writeInt16(CMSG_MAP_LOADED); diff --git a/src/engine.h b/src/engine.h index fd508857..ff39cfba 100644 --- a/src/engine.h +++ b/src/engine.h @@ -56,7 +56,7 @@ class Engine /** * Sets the currently active map. */ - void changeMap(std::string mapName); + void changeMap(const std::string &mapName); /** * Performs engine logic. diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 558c5558..7e0e4849 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -197,9 +197,9 @@ ChatWindow::action(const std::string& eventId) { std::string message = mChatInput->getText(); - if (message.length() > 0) { + if (!message.empty()) { // If message different from previous, put it in the history - if (mHistory.size() == 0 || message != mHistory.back()) { + if (mHistory.empty() || message != mHistory.back()) { mHistory.push_back(message); } @@ -207,7 +207,7 @@ ChatWindow::action(const std::string& eventId) mCurHist = mHistory.end(); // Send the message to the server - chatSend(player_node->getName().c_str(), message.c_str()); + chatSend(player_node->getName(), message); // Clear the text from the chat input mChatInput->setText(""); @@ -252,7 +252,7 @@ ChatWindow::isFocused() } void -ChatWindow::chatSend(std::string nick, std::string msg) +ChatWindow::chatSend(const std::string &nick, std::string msg) { // Prepare command if (msg.substr(0, 1) == "/") @@ -292,9 +292,7 @@ ChatWindow::chatSend(std::string nick, std::string msg) } // Prepare ordinary message else { - nick += " : "; - nick += msg; - msg = nick; + msg = nick + " : " + msg; MessageOut outMsg(mNetwork); outMsg.writeInt16(CMSG_CHAT_MESSAGE); diff --git a/src/gui/chat.h b/src/gui/chat.h index f1c48569..80e57a84 100644 --- a/src/gui/chat.h +++ b/src/gui/chat.h @@ -182,7 +182,7 @@ class ChatWindow : public Window, public gcn::ActionListener, * chatlog.chat_send("Zaeiru", "Hello to all users on the screen!"); */ void - chatSend(std::string nick, std::string msg); + chatSend(const std::string &nick, std::string msg); /** Called when key is pressed */ void keyPress(const gcn::Key& key); diff --git a/src/gui/checkbox.cpp b/src/gui/checkbox.cpp index 7506d3c0..ec7eb578 100644 --- a/src/gui/checkbox.cpp +++ b/src/gui/checkbox.cpp @@ -37,10 +37,9 @@ Image *CheckBox::checkBoxDisabledChecked; CheckBox::CheckBox(const std::string& caption, bool marked): gcn::CheckBox(caption, marked) { - ResourceManager *resman = ResourceManager::getInstance(); - if (instances == 0) { + ResourceManager *resman = ResourceManager::getInstance(); Image *checkBox = resman->getImage("graphics/gui/checkbox.png"); checkBoxNormal = checkBox->getSubImage(0, 0, 9, 10); checkBoxChecked = checkBox->getSubImage(9, 0, 9, 10); diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp index 61a9ad55..64c368bc 100644 --- a/src/gui/equipmentwindow.cpp +++ b/src/gui/equipmentwindow.cpp @@ -60,8 +60,10 @@ void EquipmentWindow::draw(gcn::Graphics *graphics) Item *item; Image *image; + // Rectangles around items are black + graphics->setColor(gcn::Color(0, 0, 0)); + for (int i = 0; i < 8; i++) { - graphics->setColor(gcn::Color(0, 0, 0)); graphics->drawRectangle(gcn::Rectangle(10 + 36 * (i % 4), 36 * (i / 4) + 25, 32, 32)); @@ -74,7 +76,6 @@ void EquipmentWindow::draw(gcn::Graphics *graphics) image, 36 * (i % 4) + 10, 36 * (i / 4) + 25); } - graphics->setColor(gcn::Color(0, 0, 0)); graphics->drawRectangle(gcn::Rectangle(160, 25, 32, 32)); if (!(item = mEquipment->getArrows())) { @@ -86,6 +87,5 @@ void EquipmentWindow::draw(gcn::Graphics *graphics) 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(n.str(), 170, 62, gcn::Graphics::CENTER); } diff --git a/src/gui/help.cpp b/src/gui/help.cpp index 6b2eca6b..dfb814db 100644 --- a/src/gui/help.cpp +++ b/src/gui/help.cpp @@ -26,9 +26,6 @@ #include "button.h" #include "browserbox.h" #include "scrollarea.h" -#include "textbox.h" - -#include "../log.h" #include "../resources/resourcemanager.h" diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp index 874c0b63..e0730ced 100644 --- a/src/gui/itemcontainer.cpp +++ b/src/gui/itemcontainer.cpp @@ -76,8 +76,7 @@ void ItemContainer::draw(gcn::Graphics* graphics) { int gridWidth = mItemset->get(0)->getWidth() + 4; int gridHeight = mItemset->get(0)->getHeight() + 10; - int w = getWidth(); - int columns = w / gridWidth; + int columns = getWidth() / gridWidth; // Have at least 1 column if (columns < 1) @@ -170,8 +169,7 @@ void ItemContainer::mousePress(int mx, int my, int button) { int gridWidth = mItemset->get(0)->getWidth() + 4; int gridHeight = mItemset->get(0)->getHeight() + 10; - int w = getWidth(); - int columns = w / gridWidth; + int columns = getWidth() / gridWidth; if (button == gcn::MouseInput::LEFT || gcn::MouseInput::RIGHT) { diff --git a/src/gui/listbox.cpp b/src/gui/listbox.cpp index 5b20bb55..df03b81b 100644 --- a/src/gui/listbox.cpp +++ b/src/gui/listbox.cpp @@ -27,11 +27,6 @@ #include <guichan/graphics.hpp> #include <guichan/listmodel.hpp> -ListBox::ListBox(): - gcn::ListBox() -{ -} - ListBox::ListBox(gcn::ListModel *listModel): gcn::ListBox(listModel) { diff --git a/src/gui/listbox.h b/src/gui/listbox.h index 23b81a57..5999f7a7 100644 --- a/src/gui/listbox.h +++ b/src/gui/listbox.h @@ -21,8 +21,8 @@ * $Id$ */ -#ifndef __TMW_LISTBOX_H__ -#define __TMW_LISTBOX_H__ +#ifndef _TMW_LISTBOX_H +#define _TMW_LISTBOX_H #include <guichan/widgets/listbox.hpp> @@ -33,16 +33,12 @@ * * \ingroup GUI */ -class ListBox : public gcn::ListBox { +class ListBox : public gcn::ListBox +{ public: /** * Constructor. */ - ListBox(); - - /** - * Constructor. - */ ListBox(gcn::ListModel *listModel); /** diff --git a/src/gui/login.cpp b/src/gui/login.cpp index d6c8bfea..ee648669 100644 --- a/src/gui/login.cpp +++ b/src/gui/login.cpp @@ -39,7 +39,7 @@ void WrongDataNoticeListener::setTarget(gcn::TextField *textField) { - this->mTarget = textField; + mTarget = textField; } void @@ -114,7 +114,7 @@ LoginDialog::LoginDialog(LoginData *loginData): setLocationRelativeTo(getParent()); - if (!mUserField->getText().length()) { + if (mUserField->getText().empty()) { mUserField->requestFocus(); } else { mPassField->requestFocus(); @@ -134,9 +134,9 @@ LoginDialog::action(const std::string& eventId) if (eventId == "ok") { // Check login - if (mUserField->getText().length() == 0) + if (mUserField->getText().empty()) { - mWrongDataNoticeListener->setTarget(this->mPassField); + mWrongDataNoticeListener->setTarget(mPassField); OkDialog *dlg = new OkDialog("Error", "Enter your username first"); dlg->addActionListener(mWrongDataNoticeListener); } diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp index e4cfc6a6..fc2f451b 100644 --- a/src/gui/ministatus.cpp +++ b/src/gui/ministatus.cpp @@ -23,7 +23,6 @@ #include "ministatus.h" -#include <guichan/imagefont.hpp> #include <guichan/widgets/label.hpp> #include <sstream> @@ -48,12 +47,18 @@ MiniStatusWindow::MiniStatusWindow(): mHpBar->setPosition(0, 3); mMpBar->setPosition(mHpBar->getWidth() + 3, 3); + mHpLabel->setDimension(mHpBar->getDimension()); + mMpLabel->setDimension(mMpBar->getDimension()); + mHpLabel->setForegroundColor(gcn::Color(255, 255, 255)); mMpLabel->setForegroundColor(gcn::Color(255, 255, 255)); mHpLabel->setFont(speechFont); mMpLabel->setFont(speechFont); + mHpLabel->setAlignment(gcn::Graphics::CENTER); + mMpLabel->setAlignment(gcn::Graphics::CENTER); + add(mHpBar); add(mMpBar); add(mHpLabel); @@ -70,16 +75,13 @@ void MiniStatusWindow::update() { mHpBar->setColor(223, 32, 32); // Red } + else if (player_node->mHp < int((player_node->mMaxHp / 3) * 2)) + { + mHpBar->setColor(230, 171, 34); // Orange + } else { - if (player_node->mHp < int((player_node->mMaxHp / 3) * 2)) - { - mHpBar->setColor(230, 171, 34); // Orange - } - else - { - mHpBar->setColor(0, 171, 34); // Green - } + mHpBar->setColor(0, 171, 34); // Green } mHpBar->setProgress((float)player_node->mHp / (float)player_node->mMaxHp); @@ -89,21 +91,9 @@ void MiniStatusWindow::update() std::stringstream updatedText; updatedText << player_node->mHp; mHpLabel->setCaption(updatedText.str()); - mHpLabel->adjustSize(); updatedText.str(""); updatedText << player_node->mMp; mMpLabel->setCaption(updatedText.str()); - mMpLabel->adjustSize(); - mHpLabel->setPosition( - mHpBar->getX() + - int((mHpBar->getWidth() / 2) - (mHpLabel->getWidth() / 2)), - mHpBar->getY() + - int((mHpBar->getHeight() / 2) - (mHpLabel->getHeight() / 2))); - mMpLabel->setPosition( - mMpBar->getX() + - int((mMpBar->getWidth() / 2) - (mMpLabel->getWidth() / 2)), - mMpBar->getY() + - int((mMpBar->getHeight() / 2) - (mMpLabel->getHeight() / 2))); } void MiniStatusWindow::draw(gcn::Graphics *graphics) diff --git a/src/gui/window.cpp b/src/gui/window.cpp index 3b577116..492fe292 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -46,25 +46,12 @@ Image *Window::resizeGrip; class WindowConfigListener : public ConfigListener { - public: - /** - * Called when an config option changes. - */ - void optionChanged(const std::string &name) - { - if (name == "guialpha") - { - float guiAlpha = config.getValue("guialpha", 0.8); - - for (int i = 0; i < 9; i++) - { - if (Window::border.grid[i]->getAlpha() != guiAlpha) - { - Window::border.grid[i]->setAlpha(guiAlpha); - } - } - } - } + void optionChanged(const std::string &) + { + for_each(Window::border.grid, Window::border.grid + 9, + std::bind2nd(std::mem_fun(&Image::setAlpha), + config.getValue("guialpha", 0.8))); + } }; Window::Window(const std::string& caption, bool modal, Window *parent): diff --git a/src/main.cpp b/src/main.cpp index de41bb14..e3fbdca6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -210,15 +210,11 @@ void init_engine() if (tmwFile == NULL) { // We reopen the file in write mode and we create it tmwFile = fopen(configPath.c_str(), "wt"); - if (tmwFile == NULL) { - std::cout << "Can't create " << configPath << ". Using Defaults." << std::endl; - } - else { - fclose(tmwFile); - config.init(configPath); - } } - else { + if (tmwFile == NULL) { + std::cout << "Can't create " << configPath << ". " + "Using Defaults." << std::endl; + } else { fclose(tmwFile); config.init(configPath); } @@ -267,7 +263,7 @@ void init_engine() playerset = resman->createSpriteset( "graphics/sprites/player_male_base.png", 64, 64); if (!playerset) logger->error("Couldn't load player spriteset!"); - + for (int i=0; i < NR_HAIR_STYLES; i++) { std::stringstream filename; diff --git a/src/resources/image.cpp b/src/resources/image.cpp index ee2736d4..51899d3f 100644 --- a/src/resources/image.cpp +++ b/src/resources/image.cpp @@ -282,14 +282,16 @@ Image *Image::getSubImage(int x, int y, int width, int height) void Image::setAlpha(float a) { - mAlpha = a; - - if (!mImage) { + if (mAlpha == a) { return; } - // Set the alpha value this image is drawn at - SDL_SetAlpha(mImage, SDL_SRCALPHA | SDL_RLEACCEL, (int)(255 * mAlpha)); + mAlpha = a; + + if (mImage) { + // Set the alpha value this image is drawn at + SDL_SetAlpha(mImage, SDL_SRCALPHA | SDL_RLEACCEL, (int)(255 * mAlpha)); + } } float Image::getAlpha() |