From befcee0b12005706f29650cfbef425fc3b8a77b0 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 6 Feb 2014 19:02:06 +0300 Subject: In crazy moves A add support for all emotes. --- src/being/localplayer.cpp | 14 ++++++++++---- src/resources/db/emotedb.cpp | 15 +++++++++++++++ src/resources/db/emotedb.h | 4 ++++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index 529f2c73a..84b18774c 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -66,6 +66,8 @@ #include "resources/iteminfo.h" +#include "resources/db/emotedb.h" + #include "utils/gettext.h" #include "utils/timer.h" @@ -2988,14 +2990,18 @@ void LocalPlayer::crazyMoveA() if (emo == '?') { srand(tick_time); - emote(static_cast(1 + (rand() % 13))); + emote(static_cast(1 + (rand() % EmoteDB::size()))); } else { + unsigned char emoteId = 0; if (emo >= '0' && emo <= '9') - emote(static_cast(emo - '0' + 1)); - else if (emo >= 'a' && emo <= 'd') - emote(static_cast(emo - 'a' + 11)); + emoteId = static_cast(emo - '0' + 1); + else if (emo >= 'a' && emo <= 'z') + emoteId = static_cast(emo - 'a' + 11); + else if (emo >= 'A' && emo <= 'Z') + emoteId = static_cast(emo - 'A' + 37); + emote(emoteId); } mCrazyMoveState ++; diff --git a/src/resources/db/emotedb.cpp b/src/resources/db/emotedb.cpp index 97ea95aa0..943628978 100644 --- a/src/resources/db/emotedb.cpp +++ b/src/resources/db/emotedb.cpp @@ -295,3 +295,18 @@ const int &EmoteDB::getLast() { return mLastEmote; } + +int EmoteDB::size() +{ + return static_cast(mEmoteInfos.size()); +} + +int EmoteDB::getIdByIndex(const int index) +{ + if (index < 0 || index >= static_cast(mEmoteInfos.size())) + return 0; + EmoteInfos::const_iterator it = mEmoteInfos.begin(); + for (int f = 0; f < index; f ++) + ++ it; + return (*it).first; +} diff --git a/src/resources/db/emotedb.h b/src/resources/db/emotedb.h index 02683a99a..29a2a8de4 100644 --- a/src/resources/db/emotedb.h +++ b/src/resources/db/emotedb.h @@ -87,6 +87,10 @@ namespace EmoteDB const int &getLast() A_WARN_UNUSED; + int getIdByIndex(const int index); + + int size(); + typedef EmoteInfos::iterator EmoteInfosIterator; } // namespace EmoteDB -- cgit v1.2.3-70-g09d2