From 4a62b4f1eed406d74a998a158d442ad4cc04e5b9 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 13 Feb 2011 17:51:32 +0200 Subject: Set weight notice message not modal and hide it after 10 seconds. --- src/game.cpp | 1 + src/localplayer.cpp | 9 +++++++++ src/net/tmwa/playerhandler.cpp | 7 +++++-- 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/game.cpp b/src/game.cpp index 5984c35c7..4b133d400 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -111,6 +111,7 @@ Joystick *joystick = NULL; OkDialog *weightNotice = NULL; +int weightNoticeTime = 0; OkDialog *deathNotice = NULL; QuitDialog *quitDialog = NULL; OkDialog *disconnectedDialog = NULL; diff --git a/src/localplayer.cpp b/src/localplayer.cpp index df4cad26f..b41f1d971 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -89,6 +89,8 @@ const short awayLimitTimer = 60; LocalPlayer *player_node = NULL; extern std::list beingInfoCache; +extern OkDialog *weightNotice; +extern int weightNoticeTime; LocalPlayer::LocalPlayer(int id, int subtype): Being(id, PLAYER, subtype, 0), @@ -235,6 +237,13 @@ void LocalPlayer::logic() } } + if (weightNotice && weightNoticeTime < cur_time) + { + weightNotice->scheduleDelete(); + weightNotice = 0; + weightNoticeTime = 0; + } + // Show XP messages if (!mMessages.empty()) { diff --git a/src/net/tmwa/playerhandler.cpp b/src/net/tmwa/playerhandler.cpp index 528e727a3..ac4d42a2e 100644 --- a/src/net/tmwa/playerhandler.cpp +++ b/src/net/tmwa/playerhandler.cpp @@ -46,6 +46,7 @@ extern OkDialog *weightNotice; extern OkDialog *deathNotice; +extern int weightNoticeTime; // Max. distance we are willing to scroll after a teleport; // everything beyond will reset the port hard. @@ -320,19 +321,21 @@ void PlayerHandler::handleMessage(Net::MessageIn &msg) = PlayerInfo::getAttribute(TOTAL_WEIGHT); if (value >= max && total < max) { + weightNoticeTime = cur_time + 10; weightNotice = new OkDialog(_("Message"), _("You are carrying more than " "half your weight. You are " - "unable to regain health.")); + "unable to regain health."), false); weightNotice->addActionListener( &weightListener); } else if (value < max && total >= max) { + weightNoticeTime = cur_time + 10; weightNotice = new OkDialog(_("Message"), _("You are carrying less than " "half your weight. You are " - "can regain health.")); + "can regain health."), false); weightNotice->addActionListener( &weightListener); } -- cgit v1.2.3-60-g2f50