To avoid mixing m_MenuEmote with exceptional sync commands.
См. определение в файле EmoteManager.c строка 974
975 {
976 int id = launcher.GetID();
977 int forced = launcher.GetForced();
978 bool guaranteedLaunch = launcher.IsStartGuaranteed();
979
981 switch (id)
982 {
985 break;
986
989 break;
990
993 break;
994
997 break;
998 }
999
1002 {
1003 bool canProceed = true;
1006 {
1008 }
1009
1011 {
1015 ctx.
Write(guaranteedLaunch);
1017 {
1019 }
1021 launcher.VerifySyncRequest();
1023 }
1024 else
1025 {
1027 }
1028
1032 }
1033 else if (!
g_Game.IsMultiplayer())
1034 {
1036 {
1038 }
1040 {
1042 }
1044 {
1046 }
1047
1051 }
1052 }
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().