To avoid mixing m_MenuEmote with exceptional sync commands.
См. определение в файле EmoteManager.c строка 941
942 {
943 int id = launcher.GetID();
944 int forced = launcher.GetForced();
945 bool guaranteedLaunch = launcher.IsStartGuaranteed();
946
948 switch (id)
949 {
952 break;
953
956 break;
957
960 break;
961
964 break;
965 }
966
969 {
970 bool canProceed = true;
973 {
975 }
976
978 {
982 ctx.
Write(guaranteedLaunch);
984 {
986 }
988 launcher.VerifySyncRequest();
990 }
991 else
992 {
994 }
995
999 }
1000 else if (!
g_Game.IsMultiplayer())
1001 {
1003 {
1005 }
1007 {
1009 }
1011 {
1013 }
1014
1018 }
1019 }
const int CALLBACK_CMD_END
bool CanPlayEmoteClientCheck(int id)
bool CanPlayEmote(int id)
int m_DeferredEmoteExecution
void SetPending(bool state)
void SetEmoteLockState(bool state)
bool ClearEmoteLauncher(bool forced=false)
ref EmoteLauncher m_MenuEmote
const int CALLBACK_CMD_GESTURE_INTERRUPT
ref map< int, ref EmoteBase > m_NameEmoteMap
void EndCallbackCommand()
bool CanBeCanceledNormally(notnull EmoteCB callback)
proto bool Write(void value_out)
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
Перекрестные ссылки CALLBACK_CMD_END, CALLBACK_CMD_GESTURE_INTERRUPT, EmoteBase::CanBeCanceledNormally(), CanPlayEmote(), CanPlayEmoteClientCheck(), ScriptInputUserData::CanStoreInputUserData(), ClearEmoteLauncher(), EndCallbackCommand(), g_Game, EmoteConstants::ID_EMOTE_RPS, EmoteConstants::ID_EMOTE_RPS_P, EmoteConstants::ID_EMOTE_RPS_R, EmoteConstants::ID_EMOTE_RPS_S, INPUT_UDT_GESTURE, IsEmotePlaying(), m_Callback, m_CurrentGestureID, m_DeferredEmoteExecution, m_MenuEmote, m_NameEmoteMap, m_RPSOutcome, PlayEmote(), Math::RandomInt(), ScriptInputUserData::Send(), SetEmoteLockState(), SetPending() и Serializer::Write().
Используется в Update().