diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | src/game.cpp | 24 |
2 files changed, 29 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2005-09-18 Duane Bailey <nayryeliab@gmail.com> + + * game.cpp: added weight notice; now notifies person when they + are carrying more then half their weight + 2005-09-18 Yohann Ferreira <bertram@cegetel.net> * src/game.cpp, src/graphics.cpp, src/graphics.h, @@ -30,6 +35,7 @@ png. 2005-09-17 Duane Bailey <nayryeliab@gmail.com> +>>>>>>> 1.203 * src/net/messagin.cpp, src/net/messageout.cpp, src/net/network.cpp: removed replaced MACOSX defines with big endian defines diff --git a/src/game.cpp b/src/game.cpp index 98dbb318..88990ee1 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -91,6 +91,7 @@ Being *autoTarget = NULL; Engine *engine = NULL; SDL_Joystick *joypad = NULL; /**< Joypad object */ +OkDialog *weightNotice = NULL; OkDialog *deathNotice = NULL; ConfirmDialog *exitConfirm = NULL; @@ -120,10 +121,20 @@ Inventory *inventory = NULL; const int EMOTION_TIME = 150; /**< Duration of emotion icon */ const int MAX_TIME = 10000; +class WeightNoticeListener : public gcn::ActionListener +{ +public: + void action(const std::string &eventId) + { + weightNotice = NULL; + } +} weightNoticeListener; + + /** * Listener used for handling death message. */ -class DeatchNoticeListener : public gcn::ActionListener { +class DeathNoticeListener : public gcn::ActionListener { public: void action(const std::string &eventId) { MessageOut outMsg; @@ -511,6 +522,10 @@ void do_input() { deathNotice->action("ok"); } + else if (weightNotice) + { + weightNotice->action("ok"); + } // Close the Browser if opened else if (helpWindow->isVisible()) { @@ -1561,6 +1576,13 @@ void do_parse() break; case 0x0018: player_info->totalWeight = msg.readLong(); + if (player_info->totalWeight >= player_info->maxWeight) + { + weightNotice = new OkDialog("Message", + "You are carrying more then half your weight. You are unable to regain health.", + &weightNoticeListener); + weightNotice->releaseModalFocus(); + } break; case 0x0019: player_info->maxWeight = msg.readLong(); |