DayZ 1.24
Loading...
Searching...
No Matches
EmoteManager.c File Reference

Go to the source code of this file.

Classes

class  EmoteCB
 
class  EmoteLauncher
 
class  SurrenderData
 

Functions

void EmoteManager (PlayerBase player)
 
void ~EmoteManager ()
 
void ConstructData ()
 
void SetGesture (int id)
 
int GetGesture ()
 
int DetermineGestureIndex ()
 
bool DetermineEmoteData (EmoteBase emote, out int callback_ID, out int stancemask, out bool is_fullbody)
 Also includes a stance check for FB callbacks.
 
void Update (float deltaT)
 
void OnEmoteEnd ()
 
bool OnInputUserDataProcess (int userDataType, ParamsReadContext ctx)
 
void OnSyncJuncture (int pJunctureID, ParamsReadContext pCtx)
 
void OnCallbackEnd ()
 
void AfterStoreLoad ()
 
bool PlayEmote (int id)
 
void CreateEmoteCallback (typename callbacktype, int id, int mask, bool fullbody)
 
void HideItemInHands ()
 
void ShowItemInHands ()
 
void CommitSuicide ()
 
void KillPlayer ()
 
void LogSuicide ()
 
void CreateEmoteCBFromMenu (int id, bool interrupts_same=false)
 
EmoteLauncher GetEmoteLauncher ()
 
void InterruptCallbackCommand ()
 
void EndCallbackCommand ()
 
void SendEmoteRequestSync (int id)
 
bool IsControllsLocked ()
 
bool CanPlayEmote (int id)
 
bool CanPlayEmoteClientCheck (int id)
 
void PlaySurrenderInOut (bool state)
 
void SetEmoteLockState (bool state)
 
void CheckEmoteLockedState ()
 
void EndSurrenderRequest (SurrenderData data=null)
 directly force-ends surrender state from outside of normal flow
 
void ServerRequestEmoteCancel ()
 
bool InterruptGestureCheck ()
 
bool InterruptWaterCheck ()
 
bool IsEmotePlaying ()
 
map< int, ref EmoteBaseGetNameEmoteMap ()
 
void CreateBleedingEffect (int Callback_ID)
 
void PickEmote (int gestureslot)
 Deprecated.
 
void End ()
 called on surrender end request end
 
void ChainedDropAndKillPlayerLambda (EntityAI old_item, string new_item_type, PlayerBase player)
 
override void Execute (HumanInventoryWithFSM fsm_to_notify=null)
 

Variables

class EmoteLauncher m_Player
 
ItemBase m_item
 
EmoteCB m_Callback
 
HumanInputController m_HIC
 
ref array< stringm_InterruptInputs
 
ref array< UAInputm_InterruptInputDirect
 
ref InventoryLocation m_HandInventoryLocation
 
ref EmoteLauncher m_MenuEmote
 
bool m_bEmoteIsRequestPending
 
bool m_bEmoteIsPlaying
 
bool m_IsSurrendered
 
bool m_ItemToBeCreated
 
bool m_CancelEmote
 
bool m_InstantCancelEmote
 
bool m_GestureInterruptInput
 
bool m_ItemToHands
 
bool m_ItemIsOn
 
bool m_MouseButtonPressed
 
bool m_PlayerDies
 
bool m_controllsLocked
 
bool m_InventoryAccessLocked
 
bool m_EmoteLockState
 
int m_DeferredEmoteExecution
 
int m_GestureID
 
int m_PreviousGestureID
 
int m_CurrentGestureID
 
int m_LastMask
 
int m_RPSOutcome
 
int m_InterruptInputsCount
 
const int CALLBACK_CMD_INVALID = -1
 
const int CALLBACK_CMD_END = -2
 
const int CALLBACK_CMD_GESTURE_INTERRUPT = -3
 
const int CALLBACK_CMD_INSTACANCEL = -4
 
PluginAdminLog m_AdminLog
 
ref Timer m_ReservationTimer
 
ref map< int, ref EmoteBasem_NameEmoteMap
 
ref array< ref EmoteBasem_EmoteClassArray
 
ref array< intm_EmoteIDs
 
ref array< intm_EmoteInputIDs
 
SHumanCommandSwimSettings m_HumanSwimSettings
 

Function Documentation

◆ AfterStoreLoad()

void AfterStoreLoad ( )
protected

Definition at line 521 of file EmoteManager.c.

522 {
523 if (m_Player.GetItemInHands() && SurrenderDummyItem.Cast(m_Player.GetItemInHands()))
524 m_Player.GetItemInHands().Delete();
525 }
class EmoteLauncher m_Player

References m_Player.

◆ CanPlayEmote()

bool CanPlayEmote ( int id)
protected

Definition at line 772 of file EmoteManager.c.

773 {
774 //special cases
776 return true;
777
778 if (!m_Player || !m_Player.IsAlive() || (!IsEmotePlaying() && (m_Player.GetCommand_Action() || m_Player.GetCommandModifier_Action())) || m_Player.GetThrowing().IsThrowingModeEnabled())
779 {
780 //Debug.Log("!CanPlayEmote | reason: 1");
781 return false;
782 }
783
784 ItemBase item = m_Player.GetItemInHands();
785 if (item)
786 {
787 if (item.IsHeavyBehaviour() && id != EmoteConstants.ID_EMOTE_SURRENDER)
788 {
789 //Debug.Log("!CanPlayEmote | reason: 2");
790 return false;
791 }
792
794 if (m_Player.IsItemsToDelete() && Class.CastTo(sda, item) && !sda.IsSetForDeletion())
795 {
796 //Debug.Log("!CanPlayEmote | reason: 3");
797 return false;
798 }
799 }
800
801 if ((m_Player.GetWeaponManager() && m_Player.GetWeaponManager().IsRunning()) || (m_Player.GetActionManager() && m_Player.GetActionManager().GetRunningAction()))
802 {
803 //Debug.Log("!CanPlayEmote | reason: 4");
804 return false;
805 }
806
807 if (m_HIC.IsWeaponRaised() || m_Player.IsRolling() || m_Player.IsClimbing() || m_Player.IsRestrainStarted() || m_Player.IsFighting() || m_Player.IsSwimming() || m_Player.IsClimbingLadder() || m_Player.IsFalling() || m_Player.IsUnconscious() || m_Player.IsJumpInProgress() || m_Player.IsRestrained()) // rework conditions into something better?
808 {
809 //Debug.Log("!CanPlayEmote | reason: 5");
810 return false;
811 }
812
813 if (m_Player.GetCommand_Vehicle())
814 {
815 //Debug.Log("!CanPlayEmote | reason: 6");
816 return false;
817 }
818
819 if (m_Player.GetCommand_Move() && m_Player.GetCommand_Move().IsOnBack() && id != EmoteConstants.ID_EMOTE_SURRENDER)
820 {
821 //Debug.Log("!CanPlayEmote | reason: 7");
822 return false;
823 }
824
825 //"locks" player in surrender state
827 {
828 //Debug.Log("!CanPlayEmote | reason: 8");
829 return false;
830 }
831
832 if (m_Player.GetDayZPlayerInventory().IsProcessing())
833 {
834 //Debug.Log("!CanPlayEmote | reason: 9");
835 return false;
836 }
837
839 if (m_NameEmoteMap.Find(id, emote))
840 {
841 int callback_ID;
842 int stancemask;
843 bool is_fullbody;
845 return true;
846 //Debug.Log("!CanPlayEmote | reason: 10");
847 }
848
849 return false;
850 }
const int CALLBACK_CMD_END
const int CALLBACK_CMD_INSTACANCEL
bool IsEmotePlaying()
bool DetermineEmoteData(EmoteBase emote, out int callback_ID, out int stancemask, out bool is_fullbody)
Also includes a stance check for FB callbacks.
bool m_IsSurrendered
const int CALLBACK_CMD_GESTURE_INTERRUPT
ref map< int, ref EmoteBase > m_NameEmoteMap
HumanInputController m_HIC
Super root of all classes in Enforce script.
Definition EnScript.c:11
proto native bool IsWeaponRaised()
returns true if weapon is raised
const int ID_EMOTE_SURRENDER
Definition constants.c:389
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.

References CALLBACK_CMD_END, CALLBACK_CMD_GESTURE_INTERRUPT, CALLBACK_CMD_INSTACANCEL, Class::CastTo(), DetermineEmoteData(), DayZPlayer::GetDayZPlayerInventory(), DayZPlayer::GetThrowing(), DayZPlayer::GetWeaponManager(), EmoteConstants::ID_EMOTE_SURRENDER, DayZPlayer::IsClimbingLadder(), IsEmotePlaying(), DayZPlayer::IsFighting(), DayZPlayer::IsRestrained(), WeaponManager::IsRunning(), DayZPlayer::IsSwimming(), DayZPlayerImplementThrowing::IsThrowingModeEnabled(), HumanInputController::IsWeaponRaised(), m_HIC, m_IsSurrendered, m_NameEmoteMap, and m_Player.

Referenced by OnInputUserDataProcess(), PlayEmote(), and SendEmoteRequestSync().

◆ CanPlayEmoteClientCheck()

bool CanPlayEmoteClientCheck ( int id)
protected

Definition at line 852 of file EmoteManager.c.

853 {
854 if (!GetGame().IsClient())
855 return true;
856
857 if (GetGame().GetUIManager().FindMenu(MENU_INVENTORY))
858 {
859 //Debug.Log("!CanPlayEmoteClientCheck | reason: 1");
860 return false;
861 }
862
863 return true;
864 }
proto native CGame GetGame()
const int MENU_INVENTORY
Definition constants.c:170

References GetGame(), and MENU_INVENTORY.

Referenced by SendEmoteRequestSync().

◆ ChainedDropAndKillPlayerLambda()

void ChainedDropAndKillPlayerLambda ( EntityAI old_item,
string new_item_type,
PlayerBase player )
protected

Definition at line 1078 of file EmoteManager.c.

1079 {
1080 m_Player = player;
1082 vector mtx[4];
1083 old_item.GetTransform(mtx);
1084 gnd.SetGround(old_item, mtx);
1085
1086 OverrideNewLocation(gnd);
1087 }
InventoryLocation.

References m_Player.

◆ CheckEmoteLockedState()

void CheckEmoteLockedState ( )
protected

Definition at line 941 of file EmoteManager.c.

942 {
943 if (!m_Player.GetItemInHands() || (m_Player.GetItemInHands() && !SurrenderDummyItem.Cast(m_Player.GetItemInHands())))
944 return;
945
946 //refreshes reservation in case of unwanted timeout
948 m_Player.GetInventory().ExtendInventoryReservationEx(null, m_HandInventoryLocation, 10000);
949 }
ref InventoryLocation m_HandInventoryLocation
bool m_EmoteLockState

References m_EmoteLockState, m_HandInventoryLocation, and m_Player.

◆ CommitSuicide()

void CommitSuicide ( )
protected

Definition at line 610 of file EmoteManager.c.

611 {
613 WeaponEventBase weapon_event = new WeaponEventTrigger;
614
615 if (Weapon_Base.CastTo(weapon, m_Player.GetItemInHands()))
616 {
617 if (weapon.CanFire())
618 {
619 m_Callback.RegisterAnimationEvent("Simulation_End", EmoteConstants.EMOTE_SUICIDE_SIMULATION_END);
620 m_Player.SetSuicide(true);
621 weapon.ProcessWeaponEvent(weapon_event);
622 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
623 if (m_Player.IsAlive())
624 {
625 EntityAI helm = m_Player.FindAttachmentBySlotName("Headgear");
626 if (helm && GetGame().IsServer())
627 {
628 float damage = helm.GetMaxHealth("", "");
629 helm.AddHealth("", "", -damage / 2);
630 }
631 GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Call(this.KillPlayer);
632 if (m_AdminLog)
633 m_AdminLog.Suicide(m_Player);
634 }
635 }
636 else
637 {
638 if (!weapon.IsDamageDestroyed())
639 weapon.ProcessWeaponEvent(weapon_event);
640 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
641 }
642 }
643 else if (m_Player.GetItemInHands() && m_Player.GetItemInHands().ConfigIsExisting("suicideAnim"))
644 {
645 m_Callback.RegisterAnimationEvent("Death", EmoteConstants.EMOTE_SUICIDE_DEATH);
646 m_Callback.RegisterAnimationEvent("Bleed", EmoteConstants.EMOTE_SUICIDE_BLEED);
647 m_Callback.RegisterAnimationEvent("Simulation_End", EmoteConstants.EMOTE_SUICIDE_SIMULATION_END);
648 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
649 m_Player.SetSuicide(true);
650 }
651 else
652 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_FINISH);
653 }
EmoteCB m_Callback
PluginAdminLog m_AdminLog
void KillPlayer()
signalize mechanism manipulation
Definition Events.c:35
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:597
const int EMOTE_SUICIDE_SIMULATION_END
Definition constants.c:400
const int EMOTE_SUICIDE_BLEED
Definition constants.c:399
const int EMOTE_SUICIDE_DEATH
Definition constants.c:398
const int CALL_CATEGORY_GAMEPLAY
Definition tools.c:10

References CALL_CATEGORY_GAMEPLAY, EmoteConstants::EMOTE_SUICIDE_BLEED, EmoteConstants::EMOTE_SUICIDE_DEATH, EmoteConstants::EMOTE_SUICIDE_SIMULATION_END, GetGame(), KillPlayer(), m_AdminLog, m_Callback, m_Player, and DayZPlayer::SetSuicide().

Referenced by Update().

◆ ConstructData()

void ConstructData ( )
protected

Definition at line 198 of file EmoteManager.c.

199 {
201 if (!m_NameEmoteMap)
202 {
203 ec.ConstructEmotes(m_Player, m_NameEmoteMap);
207 int inputID;
208 int count = m_NameEmoteMap.Count();
209 UAInput inp;
210
211 for (int i = 0; i < count; i++)
212 {
213 m_EmoteClassArray.Insert(m_NameEmoteMap.GetElement(i));
214 m_EmoteIDs.Insert(m_NameEmoteMap.GetElement(i).GetID());
215 inp = GetUApi().GetInputByName(m_NameEmoteMap.GetElement(i).GetInputActionName());
216 inputID = inp.ID();
217 m_EmoteInputIDs.Insert(inputID);
218 }
219
220 if (m_EmoteInputIDs.Count() != m_EmoteClassArray.Count())
221 ErrorEx("Faulty emote data detected in 'ConstructData' method!", ErrorExSeverity.WARNING);
222 }
223 }
ref array< int > m_EmoteInputIDs
ref array< int > m_EmoteIDs
ref array< ref EmoteBase > m_EmoteClassArray
proto native UAInputAPI GetUApi()
ErrorExSeverity
Definition EnDebug.c:62
enum ShapeType ErrorEx

References ErrorEx, GetUApi(), m_EmoteClassArray, m_EmoteIDs, m_EmoteInputIDs, m_NameEmoteMap, and m_Player.

Referenced by EmoteManager().

◆ CreateBleedingEffect()

void CreateBleedingEffect ( int Callback_ID)
protected

Definition at line 1021 of file EmoteManager.c.

1022 {
1023 if (GetGame().IsServer() && m_Player.IsAlive())
1024 {
1025 switch (Callback_ID)
1026 {
1027 case DayZPlayerConstants.CMD_SUICIDEFB_1HD :
1028 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Neck");
1029 break;
1030
1031 case DayZPlayerConstants.CMD_SUICIDEFB_FIREAXE :
1032 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
1033 break;
1034
1035 case DayZPlayerConstants.CMD_SUICIDEFB_PITCHFORK :
1036 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Spine2");
1037 break;
1038
1039 case DayZPlayerConstants.CMD_SUICIDEFB_SWORD :
1040 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Spine2");
1041 break;
1042
1043 case DayZPlayerConstants.CMD_SUICIDEFB_SPEAR :
1044 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("Head");
1045 break;
1046
1047 case DayZPlayerConstants.CMD_SUICIDEFB_WOODAXE :
1048 m_Player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection("LeftForeArmRoll");
1049 break;
1050
1051 default :
1052 ErrorEx("EmoteManager.c | CreateBleedingEffect | WRONG ID", ErrorExSeverity.INFO);
1053 break;
1054 }
1055 }
1056 }

References ErrorEx, GetGame(), and m_Player.

◆ CreateEmoteCallback()

void CreateEmoteCallback ( typename callbacktype ,
int id,
int mask,
bool fullbody )
protected

Definition at line 569 of file EmoteManager.c.

570 {
571 if (m_Player)
572 {
573 m_LastMask = -1;
574
575 if (fullbody)
576 {
577 Class.CastTo(m_Callback, m_Player.StartCommand_Action(id, callbacktype, mask));
579 m_Callback.EnableCancelCondition(true);
580 }
581 else if (m_Player.IsPlayerInStance(mask))
582 {
583 m_LastMask = mask; //character is probably not prone now
584 Class.CastTo(m_Callback, m_Player.AddCommandModifier_Action(id, callbacktype));
585 }
586
587 if (m_Callback)
588 {
589 m_bEmoteIsPlaying = true;
592 m_Callback.m_Manager = this;
593 }
594 }
595 }
int m_LastMask
bool m_bEmoteIsPlaying
EmoteManager m_Manager
Definition EmoteManager.c:6
bool m_IsFullbody
Definition EmoteManager.c:3
PlayerBase m_player
Definition EmoteManager.c:5
int m_callbackID
Definition EmoteManager.c:4

References Class::CastTo(), m_bEmoteIsPlaying, m_Callback, EmoteCB::m_callbackID, EmoteCB::m_IsFullbody, m_LastMask, EmoteCB::m_Manager, m_Player, and EmoteCB::m_player.

Referenced by PlayEmote(), and PlaySurrenderInOut().

◆ CreateEmoteCBFromMenu()

void CreateEmoteCBFromMenu ( int id,
bool interrupts_same = false )
protected

Definition at line 671 of file EmoteManager.c.

672 {
674 }
ref EmoteLauncher m_MenuEmote

References m_MenuEmote.

Referenced by Update().

◆ DetermineEmoteData()

bool DetermineEmoteData ( EmoteBase emote,
out int callback_ID,
out int stancemask,
out bool is_fullbody )
protected

Also includes a stance check for FB callbacks.

Definition at line 248 of file EmoteManager.c.

249 {
250 if (emote.DetermineOverride(callback_ID, stancemask, is_fullbody))
251 return emote.EmoteFBStanceCheck(stancemask);
252 else if (emote.GetAdditiveCallbackUID() != 0 && m_Player.IsPlayerInStance(emote.GetStanceMaskAdditive()))
253 {
254 callback_ID = emote.GetAdditiveCallbackUID();
255 stancemask = emote.GetStanceMaskAdditive();
256 is_fullbody = false;
257 return true;
258 }
259 else if (emote.GetFullbodyCallbackUID() != 0 && emote.EmoteFBStanceCheck(emote.GetStanceMaskFullbody()))
260 {
261 callback_ID = emote.GetFullbodyCallbackUID();
262 stancemask = emote.GetStanceMaskFullbody();
263 is_fullbody = true;
264 return true;
265 }
266
267 return false;
268 }

References m_Player.

Referenced by CanPlayEmote(), and PlayEmote().

◆ DetermineGestureIndex()

int DetermineGestureIndex ( )
protected

Definition at line 235 of file EmoteManager.c.

236 {
237 int count = m_EmoteInputIDs.Count();
238 for (int i = 0; i < count; ++i)
239 {
240 if (GetUApi().GetInputByID(m_EmoteInputIDs[i]).LocalPress())
241 return m_EmoteIDs[i];
242 }
243
244 return 0;
245 }

References GetUApi(), m_EmoteIDs, and m_EmoteInputIDs.

Referenced by Update().

◆ EmoteManager()

void EmoteManager ( PlayerBase player)
protected

Definition at line 156 of file EmoteManager.c.

157 {
159 m_HIC = m_Player.GetInputController();
160 m_ItemIsOn = false;
161 m_controllsLocked = false;
163 m_RPSOutcome = -1;
165
167 m_InterruptInputs.Insert("UAMoveForward");
168 m_InterruptInputs.Insert("UAMoveBack");
169 m_InterruptInputs.Insert("UATurnLeft");
170 m_InterruptInputs.Insert("UATurnRight");
171 m_InterruptInputs.Insert("UAMoveLeft");
172 m_InterruptInputs.Insert("UAMoveRight");
173 m_InterruptInputs.Insert("UAStand");
174 m_InterruptInputs.Insert("UACrouch");
175 m_InterruptInputs.Insert("UAProne");
176 m_InterruptInputs.Insert("UAGetOver");
177
180
181 if (GetGame().IsServer())
182 m_AdminLog = PluginAdminLog.Cast(GetPlugin(PluginAdminLog));
183
185 m_ReservationTimer.Run(8, this, "CheckEmoteLockedState", null, true);
186
187 m_HumanSwimSettings = m_Player.GetDayZPlayerType().CommandSwimSettingsW();
188
190 }
ref Timer m_ReservationTimer
bool m_controllsLocked
int m_RPSOutcome
const int CALLBACK_CMD_INVALID
ref array< string > m_InterruptInputs
int m_DeferredEmoteExecution
void ConstructData()
bool m_InventoryAccessLocked
SHumanCommandSwimSettings m_HumanSwimSettings
bool m_ItemIsOn
PluginBase GetPlugin(typename plugin_type)

References CALLBACK_CMD_INVALID, ConstructData(), GetGame(), GetPlugin(), m_AdminLog, m_controllsLocked, m_DeferredEmoteExecution, m_HandInventoryLocation, m_HIC, m_HumanSwimSettings, m_InterruptInputs, m_InventoryAccessLocked, m_ItemIsOn, m_Player, m_ReservationTimer, and m_RPSOutcome.

Referenced by ManBase::Init().

◆ End()

◆ EndCallbackCommand()

void EndCallbackCommand ( )
protected

Definition at line 691 of file EmoteManager.c.

692 {
694 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
695 else
696 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
697
698 if (m_MenuEmote)
701 }
int m_CurrentGestureID
const int ID_EMOTE_DANCE
Definition constants.c:361

References CALLBACK_CMD_INVALID, EmoteConstants::ID_EMOTE_DANCE, m_Callback, m_CurrentGestureID, m_DeferredEmoteExecution, and m_MenuEmote.

Referenced by SendEmoteRequestSync(), and Update().

◆ EndSurrenderRequest()

void EndSurrenderRequest ( SurrenderData data = null)
protected

directly force-ends surrender state from outside of normal flow

Definition at line 952 of file EmoteManager.c.

953 {
954 if (m_IsSurrendered && data)
955 {
956 if (m_Player.GetItemInHands())
957 m_Player.GetItemInHands().DeleteSafe();//Note, this keeps item 'alive' until it is released by all the systems (inventory swapping etc.)
958
959 m_IsSurrendered = false;
961 data.End();
962 }
963 }
void SetEmoteLockState(bool state)

References IsEmotePlaying(), m_IsSurrendered, m_Player, and SetEmoteLockState().

Referenced by Update().

◆ Execute()

override void Execute ( HumanInventoryWithFSM fsm_to_notify = null)
protected

Definition at line 1089 of file EmoteManager.c.

1090 {
1091 if (PrepareLocations())
1092 {
1093 vector transform[4];
1094
1095 m_Player.GetInventory().TakeToDst(InventoryMode.SERVER, m_OldLocation, m_NewLocation);
1096 m_Player.OnItemInHandsChanged();
1097 }
1098
1099 m_Player.SetHealth(0);
1100
1101 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[syncinv] player=" + Object.GetDebugName(m_Player) + " STS = " + m_Player.GetSimulationTimeStamp() + " ChainedDropAndKillPlayerLambda");
1102 }
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
Definition Inventory.c:22
void hndDebugPrint(string s)
Definition HandFSM.c:1
static bool IsInventoryHFSMLogEnable()
Definition Debug.c:749

References hndDebugPrint(), LogManager::IsInventoryHFSMLogEnable(), m_Player, and DayZPlayer::OnItemInHandsChanged().

◆ GetEmoteLauncher()

EmoteLauncher GetEmoteLauncher ( )
protected

Definition at line 676 of file EmoteManager.c.

677 {
678 return m_MenuEmote;
679 }

References m_MenuEmote.

◆ GetGesture()

int GetGesture ( )
protected

Definition at line 230 of file EmoteManager.c.

231 {
232 return m_GestureID;
233 }
int m_GestureID

References m_GestureID.

◆ GetNameEmoteMap()

map< int, ref EmoteBase > GetNameEmoteMap ( )
protected

Definition at line 1016 of file EmoteManager.c.

1017 {
1018 return m_NameEmoteMap;
1019 }

References m_NameEmoteMap.

◆ HideItemInHands()

void HideItemInHands ( )
protected

Definition at line 597 of file EmoteManager.c.

598 {
599 m_item = m_Player.GetItemInHands();
600 if (m_Callback && m_item)
601 m_Player.TryHideItemInHands(true);
602 }
ItemBase m_item

References m_Callback, m_item, and m_Player.

Referenced by PlayEmote().

◆ InterruptCallbackCommand()

void InterruptCallbackCommand ( )
protected

Definition at line 681 of file EmoteManager.c.

682 {
683 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
684
685 if (m_MenuEmote)
687
689 }

References CALLBACK_CMD_INVALID, m_Callback, m_DeferredEmoteExecution, and m_MenuEmote.

Referenced by Update().

◆ InterruptGestureCheck()

bool InterruptGestureCheck ( )
protected

Definition at line 974 of file EmoteManager.c.

975 {
976 //init pass
978 {
981
982 for (int i = 0; i < m_InterruptInputsCount; i++)
983 m_InterruptInputDirect.Insert(GetUApi().GetInputByName(m_InterruptInputs[i]));
984 }
985
986 //interrupts any callback if restrain action is in progress, takes priority
988 return false;
989
990 for (int idx = 0; idx < m_InterruptInputsCount; idx++)
991 {
992 if (m_InterruptInputDirect[idx].LocalPress())
993 return true;
994 }
995
996 return false;
997 }
ref array< UAInput > m_InterruptInputDirect
int m_InterruptInputsCount

References GetUApi(), m_Callback, m_InterruptInputDirect, m_InterruptInputs, m_InterruptInputsCount, and EmoteCB::m_IsFullbody.

Referenced by Update().

◆ InterruptWaterCheck()

bool InterruptWaterCheck ( )
protected

Definition at line 999 of file EmoteManager.c.

1000 {
1001 float waterLevel = m_Player.GetCurrentWaterLevel();
1002
1003 if (m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE | DayZPlayerConstants.STANCEMASK_PRONE) && waterLevel >= m_HumanSwimSettings.m_fToCrouchLevel)
1004 return true;
1005 else if (m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEIDX_RAISEDCROUCH) && waterLevel >= m_HumanSwimSettings.m_fToErectLevel)
1006 return true;
1007
1008 return m_Player.GetModifiersManager() && m_Player.GetModifiersManager().IsModifierActive(eModifiers.MDF_DROWNING);
1009 }
float m_fToCrouchLevel
when to crouch
float m_fToErectLevel
when to stand
eModifiers
Definition eModifiers.c:2

References DayZPlayer::GetCurrentWaterLevel(), SHumanCommandSwimSettings::m_fToCrouchLevel, SHumanCommandSwimSettings::m_fToErectLevel, m_HumanSwimSettings, and m_Player.

Referenced by Update().

◆ IsControllsLocked()

bool IsControllsLocked ( )
protected

Definition at line 767 of file EmoteManager.c.

768 {
769 return m_controllsLocked;
770 }

References m_controllsLocked.

Referenced by ManBase::HeadingModel().

◆ IsEmotePlaying()

◆ KillPlayer()

void KillPlayer ( )
protected

Definition at line 655 of file EmoteManager.c.

656 {
657 if (GetGame().IsServer())
658 m_Player.SetHealth(0);
659 }

References GetGame(), and m_Player.

Referenced by CommitSuicide().

◆ LogSuicide()

void LogSuicide ( )
protected

Definition at line 661 of file EmoteManager.c.

662 {
663 if (GetGame().IsServer())
664 {
665 PlayerIdentity identity = m_Player.GetIdentity();
666 if (identity)
667 GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Call(GetGame().AdminLog, "Player '" + identity.GetName() + "' (id=" + identity.GetId() + ") committed suicide.");
668 }
669 }
The class that will be instanced (moddable)
Definition gameplay.c:376

References CALL_CATEGORY_GAMEPLAY, GetGame(), and m_Player.

◆ OnCallbackEnd()

void OnCallbackEnd ( )
protected

Definition at line 514 of file EmoteManager.c.

515 {
518 emoteData.OnCallbackEnd();
519 }

References m_CurrentGestureID, and m_NameEmoteMap.

◆ OnEmoteEnd()

void OnEmoteEnd ( )
protected

Definition at line 410 of file EmoteManager.c.

411 {
413
414 if (m_PlayerDies)
415 {
416 m_Player.SetHealth(0.0);
417 return;
418 }
419
420 //surrender "state" switch
422 {
425 }
426
428
429 m_bEmoteIsPlaying = false;
431
432 if (m_IsSurrendered)
433 return;
435 SetEmoteLockState(false);
436
437 // back to the default - shoot from camera - if not set already
438 if (!m_Player.IsShootingFromCamera())
439 m_Player.OverrideShootFromCamera(true);
440 }
void ShowItemInHands()
bool m_GestureInterruptInput
bool m_PlayerDies

References EmoteConstants::ID_EMOTE_SURRENDER, DayZPlayer::IsShootingFromCamera(), m_bEmoteIsPlaying, m_bEmoteIsRequestPending, m_CurrentGestureID, m_GestureInterruptInput, m_IsSurrendered, m_Player, m_PlayerDies, DayZPlayer::OverrideShootFromCamera(), SetEmoteLockState(), and ShowItemInHands().

Referenced by PlaySurrenderInOut(), and Update().

◆ OnInputUserDataProcess()

bool OnInputUserDataProcess ( int userDataType,
ParamsReadContext ctx )
protected

Definition at line 443 of file EmoteManager.c.

444 {
446 {
448 int gestureID = -1;
449 int random = -1;
450
451 if (ctx.Read(gestureID))
452 {
453 ctx.Read(forced);
454 if (ctx.Read(random))
456
457 //server-side check, sends CALLBACK_CMD_INSTACANCEL as a fail
460
462 pCtx.Write(gestureID);
463 pCtx.Write(forced);
466 }
467 return true;
468 }
469 return false;
470 }
const int INPUT_UDT_GESTURE
Definition _constants.c:18
bool CanPlayEmote(int id)
static const int FORCE_NONE

References CALLBACK_CMD_INSTACANCEL, CanPlayEmote(), EmoteLauncher::FORCE_NONE, INPUT_UDT_GESTURE, m_bEmoteIsRequestPending, m_Player, m_RPSOutcome, and DayZPlayerSyncJunctures::SJ_GESTURE_REQUEST.

Referenced by ManBase::OnInputUserDataProcess(), and DayZPlayer::OnInputUserDataReceived().

◆ OnSyncJuncture()

void OnSyncJuncture ( int pJunctureID,
ParamsReadContext pCtx )
protected

Definition at line 473 of file EmoteManager.c.

474 {
475 int forced;
476 int gesture_id;
477 if (!m_CancelEmote)
478 {
479 pCtx.Read(gesture_id);
480 pCtx.Read(forced);
481
484 {
485 if (m_Callback)
486 {
487 if (m_NameEmoteMap.Find(m_CurrentGestureID, emoteData) && emoteData.CanBeCanceledNormally(m_Callback))
488 m_CancelEmote = true;
489 else
490 return;
491 }
492 m_CancelEmote = true;
493 }
494
496 {
497 if (m_Callback)
498 {
499 if (m_NameEmoteMap.Find(m_CurrentGestureID, emoteData) && !emoteData.CanBeCanceledNormally(m_Callback))
500 {
501 m_InstantCancelEmote = false;
502 return;
503 }
504 }
506 }
507
509 }
510 else
511 m_CancelEmote = false;
512 }
bool m_CancelEmote
bool m_InstantCancelEmote
static const int FORCE_ALL
static const int FORCE_DIFFERENT

References CALLBACK_CMD_INSTACANCEL, EmoteLauncher::FORCE_ALL, EmoteLauncher::FORCE_DIFFERENT, m_Callback, m_CancelEmote, m_CurrentGestureID, m_DeferredEmoteExecution, m_InstantCancelEmote, m_IsSurrendered, and m_NameEmoteMap.

◆ PickEmote()

void PickEmote ( int gestureslot)
protected

Deprecated.

Definition at line 1060 of file EmoteManager.c.

1061 {
1062 }

◆ PlayEmote()

bool PlayEmote ( int id)
protected

Definition at line 527 of file EmoteManager.c.

528 {
531
532 if (CanPlayEmote(id))
533 {
534 if (m_AdminLog)
535 m_AdminLog.LogPrint("[emote] " + Object.GetDebugName(m_Player) + " play emote id=" + id + " IH=" + Object.GetDebugName(m_Player.GetItemInHands()));
536
539 if (id > 0)
540 {
542 if (m_NameEmoteMap.Find(id, emote))
543 {
544 int callback_ID;
545 int stancemask;
546 bool is_fullbody;
548 {
549 if (!emote.EmoteStartOverride(EmoteCB, callback_ID, stancemask, is_fullbody))
550 {
551 emote.OnBeforeStandardCallbackCreated(callback_ID, stancemask, is_fullbody);
553 }
554
555 if (emote.GetHideItemInHands())
557 }
558 else
559 ErrorEx("EmoteManager | DetermineEmoteData failed!");
560 }
561 }
562 }
563
565 return m_bEmoteIsPlaying;
566 }
void HideItemInHands()
void CreateEmoteCallback(typename callbacktype, int id, int mask, bool fullbody)
int m_PreviousGestureID

References CALLBACK_CMD_INVALID, CanPlayEmote(), CreateEmoteCallback(), DetermineEmoteData(), ErrorEx, HideItemInHands(), m_AdminLog, m_bEmoteIsPlaying, m_bEmoteIsRequestPending, m_CurrentGestureID, m_DeferredEmoteExecution, m_NameEmoteMap, m_Player, m_PreviousGestureID, and SetEmoteLockState().

Referenced by SendEmoteRequestSync(), and Update().

◆ PlaySurrenderInOut()

void PlaySurrenderInOut ( bool state)
protected

Definition at line 866 of file EmoteManager.c.

867 {
870 if (state)
871 {
872 if (m_Player.GetItemInHands() && !m_Player.CanDropEntity(m_Player.GetItemInHands()))
873 return;
874
875 if (m_Player.GetItemInHands() && GetGame().IsClient())
876 m_Player.PhysicalPredictiveDropItem(m_Player.GetItemInHands());
877
878 CreateEmoteCallback(EmoteCB, DayZPlayerConstants.CMD_GESTUREFB_SURRENDERIN, DayZPlayerConstants.STANCEMASK_ALL, true);
879
880 if (m_Callback)
881 m_Callback.RegisterAnimationEvent("ActionExec", UA_ANIM_EVENT);
882 }
883 else
884 {
885 if (m_Player.IsAlive() && !m_Player.IsUnconscious())
886 CreateEmoteCallback(EmoteCB, DayZPlayerConstants.CMD_GESTUREFB_SURRENDEROUT, DayZPlayerConstants.STANCEMASK_ALL, true);
887 else
888 OnEmoteEnd();
889 }
890 }
void OnEmoteEnd()
const int UA_ANIM_EVENT
Definition constants.c:443

References CreateEmoteCallback(), GetGame(), EmoteConstants::ID_EMOTE_SURRENDER, m_Callback, m_CurrentGestureID, m_Player, m_PreviousGestureID, OnEmoteEnd(), and UA_ANIM_EVENT.

Referenced by Update().

◆ SendEmoteRequestSync()

void SendEmoteRequestSync ( int id)
protected

Definition at line 704 of file EmoteManager.c.

705 {
707 if (m_MenuEmote)
708 forced = m_MenuEmote.GetForced();
709
710 m_RPSOutcome = -1;
711 switch (id)
712 {
715 break;
716
718 m_RPSOutcome = 0;
719 break;
720
722 m_RPSOutcome = 1;
723 break;
724
726 m_RPSOutcome = 2;
727 break;
728 }
729
731 if (GetGame().IsMultiplayer() && GetGame().IsClient())
732 {
733 bool canProceed = true; //running callbacks in certain state can block additional actions
736 canProceed = emoteData.CanBeCanceledNormally(m_Callback);
737
738 if (ctx.CanStoreInputUserData() && ((CanPlayEmote(id) && CanPlayEmoteClientCheck(id)) || forced) && canProceed)
739 {
740 ctx.Write(INPUT_UDT_GESTURE);
741 ctx.Write(id);
742 ctx.Write(forced);
743 if (m_RPSOutcome != -1)
744 ctx.Write(m_RPSOutcome);
745 ctx.Send();
747 }
748 else
752 }
753 else if (!GetGame().IsMultiplayer())
754 {
755 if (id == CALLBACK_CMD_END)
757 else if (id == CALLBACK_CMD_GESTURE_INTERRUPT)
759 else if (CanPlayEmote(id) && CanPlayEmoteClientCheck(id))
760 PlayEmote(id);
761 else
764 }
765 }
bool CanPlayEmoteClientCheck(int id)
void EndCallbackCommand()
bool PlayEmote(int id)
Definition EnMath.c:7
const int ID_EMOTE_RPS_P
Definition constants.c:384
const int ID_EMOTE_RPS
Definition constants.c:373
const int ID_EMOTE_RPS_S
Definition constants.c:385
const int ID_EMOTE_RPS_R
Definition constants.c:383
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].

References CALLBACK_CMD_END, CALLBACK_CMD_GESTURE_INTERRUPT, CanPlayEmote(), CanPlayEmoteClientCheck(), EndCallbackCommand(), EmoteLauncher::FORCE_NONE, GetGame(), EmoteConstants::ID_EMOTE_RPS, EmoteConstants::ID_EMOTE_RPS_P, EmoteConstants::ID_EMOTE_RPS_R, EmoteConstants::ID_EMOTE_RPS_S, INPUT_UDT_GESTURE, IsEmotePlaying(), m_bEmoteIsRequestPending, m_Callback, m_CurrentGestureID, m_DeferredEmoteExecution, m_MenuEmote, m_NameEmoteMap, m_RPSOutcome, PlayEmote(), Math::RandomInt(), and SetEmoteLockState().

Referenced by Update().

◆ ServerRequestEmoteCancel()

void ServerRequestEmoteCancel ( )
protected

◆ SetEmoteLockState()

void SetEmoteLockState ( bool state)
protected

Definition at line 893 of file EmoteManager.c.

894 {
895 //separate inventory access locking
897 {
898 m_Player.SetInventorySoftLock(state);
900 }
901
902 //full emote locking (
903 if (state == m_EmoteLockState)
904 {
905 //ErrorEx("emote lock state already set",ErrorExSeverity.INFO);
906 return;
907 }
908
910 {
913 }
914
915 if (!state)
916 {
917 if (m_Player.GetInventory().HasInventoryReservation(null, m_HandInventoryLocation))
918 m_Player.GetInventory().ClearInventoryReservationEx(null, m_HandInventoryLocation);
919
920 if (m_Player.GetActionManager())
921 m_Player.GetActionManager().EnableActions(true);
922
924 m_controllsLocked = false;
925 }
926 else
927 {
928 if (!m_Player.GetInventory().HasInventoryReservation(null, m_HandInventoryLocation))
929 m_Player.GetInventory().AddInventoryReservationEx(null, m_HandInventoryLocation, GameInventory.c_InventoryReservationTimeoutMS);
930
931 if (m_Player.GetActionManager())
932 m_Player.GetActionManager().EnableActions(false);
933
934 //Movement lock in fullbody anims
936 m_controllsLocked = true;
937 }
939 }
script counterpart to engine's class Inventory
Definition Inventory.c:79
const int c_InventoryReservationTimeoutMS
reservations
Definition Inventory.c:687

References GameInventory::c_InventoryReservationTimeoutMS, m_Callback, m_controllsLocked, m_EmoteLockState, m_HandInventoryLocation, m_InventoryAccessLocked, EmoteCB::m_IsFullbody, and m_Player.

Referenced by EndSurrenderRequest(), OnEmoteEnd(), PlayEmote(), SendEmoteRequestSync(), and Update().

◆ SetGesture()

void SetGesture ( int id)
protected

Definition at line 225 of file EmoteManager.c.

226 {
227 m_GestureID = id;
228 }

References m_GestureID.

◆ ShowItemInHands()

void ShowItemInHands ( )
protected

Definition at line 604 of file EmoteManager.c.

605 {
606 if (m_item)
607 m_Player.TryHideItemInHands(false);
608 }

References m_item, and m_Player.

Referenced by OnEmoteEnd().

◆ Update()

void Update ( float deltaT)
protected

Definition at line 271 of file EmoteManager.c.

272 {
273 // no updates on restrained characters
274 if (m_Player.IsRestrained())
275 return;
276
278 {
279 if (!m_Player.GetItemInHands() && GetGame().IsServer())
280 m_Player.GetHumanInventory().CreateInHands("SurrenderDummyItem");
281 m_ItemToBeCreated = false;
282 }
283
285
286 //deferred emote cancel
287 if (m_InstantCancelEmote) //'hard' cancel
288 {
289 if (m_Callback)
290 m_Callback.Cancel();
291
292 if (m_MenuEmote)
295 m_InstantCancelEmote = false;
297 SetEmoteLockState(false);
298 }
299 else if (m_CancelEmote) //'soft' cancel
300 {
301 if (m_IsSurrendered)
303 else if (m_Callback)
304 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_INTERRUPT);
305
307 m_CancelEmote = false;
308 }
309
310 if (m_MenuEmote && m_MenuEmote.GetForced() > EmoteLauncher.FORCE_NONE && !GetGame().IsDedicatedServer()) //forced emote playing
312 else if (m_Callback)
313 {
314 bool uiGesture = false;
315 if (!GetGame().IsDedicatedServer())
316 {
317 uiGesture = GetGame().GetUIManager().IsMenuOpen(MENU_GESTURES);
318
321
324 }
325
327 {
329 {
330 if (m_Callback.GetState() == m_Callback.STATE_LOOP_LOOP)
332 else
333 return;
334 }
336 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_ACTION);
338 {
339 if (m_RPSOutcome != -1)
340 {
341 if (m_RPSOutcome == 0)
342 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_ROCK);
343 else if (m_RPSOutcome == 1)
344 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_PAPER);
345 else if (m_RPSOutcome == 2)
346 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_RPS_SCISSORS);
347 m_RPSOutcome = -1;
348 }
349 else
350 m_Callback.InternalCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
351 }
356 }
357
358 if (m_LastMask != -1 && m_Player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_PRONE))
359 m_Callback.Cancel();
360
363
366
369 }
370 //no m_Callback exists
371 else
372 {
373 if (m_bEmoteIsRequestPending && (m_Player.IsUnconscious() || !m_Player.IsAlive()))
375
377 OnEmoteEnd();
378 else if (!m_Player.GetItemInHands() && m_IsSurrendered && !m_ItemToBeCreated && (!m_MenuEmote || m_MenuEmote.GetForced() != EmoteLauncher.FORCE_NONE)) //play only when there is time to do so
379 {
380 PlaySurrenderInOut(false);
381 return;
382 }
383 // getting out of surrender state - hard cancel
385 {
386 if (m_Player.GetItemInHands())
387 m_Player.GetItemInHands().DeleteSafe();//Note, this keeps item 'alive' until it is released by all the systems (inventory swapping etc.)
388 return;
389 }
390 // fallback in case lock does not end properly
391 else if (m_IsSurrendered && (!m_Player.GetItemInHands() || (m_Player.GetItemInHands() && m_Player.GetItemInHands().GetType() != "SurrenderDummyItem" && m_EmoteLockState)))
392 {
393 m_IsSurrendered = false;
394 SetEmoteLockState(false);
395 return;
396 }
397 //actual emote launch
400 //client-side emote launcher
401 else if (!m_bEmoteIsPlaying && m_MenuEmote && !GetGame().IsDedicatedServer())
403 else if (!m_MenuEmote && gestureSlot > 0)
404 {
405 CreateEmoteCBFromMenu(gestureSlot, true); //translation no longer needed
406 }
407 }
408 }
void CreateEmoteCBFromMenu(int id, bool interrupts_same=false)
void InterruptCallbackCommand()
void PlaySurrenderInOut(bool state)
int DetermineGestureIndex()
void CommitSuicide()
void EndSurrenderRequest(SurrenderData data=null)
directly force-ends surrender state from outside of normal flow
bool InterruptGestureCheck()
bool InterruptWaterCheck()
bool m_ItemToBeCreated
void SendEmoteRequestSync(int id)
proto native bool IsSingleUse()
single 'UADefaultAction' (== true for 1 tick only) + not raised
proto native bool IsContinuousUseStart()
is start of cont. 'UADefaultAction' (== true for 1 tick only) + not raised
const int ID_EMOTE_THUMB
Definition constants.c:358
const int ID_EMOTE_SUICIDE
Definition constants.c:360
const int ID_EMOTE_THUMBDOWN
Definition constants.c:365
const int MENU_GESTURES
Definition constants.c:184

References CALLBACK_CMD_END, CALLBACK_CMD_GESTURE_INTERRUPT, CALLBACK_CMD_INSTACANCEL, CALLBACK_CMD_INVALID, CommitSuicide(), CreateEmoteCBFromMenu(), DetermineGestureIndex(), EndCallbackCommand(), EndSurrenderRequest(), EmoteLauncher::FORCE_NONE, GetGame(), EmoteConstants::ID_EMOTE_RPS, EmoteConstants::ID_EMOTE_RPS_P, EmoteConstants::ID_EMOTE_RPS_R, EmoteConstants::ID_EMOTE_RPS_S, EmoteConstants::ID_EMOTE_SUICIDE, EmoteConstants::ID_EMOTE_THUMB, EmoteConstants::ID_EMOTE_THUMBDOWN, InterruptCallbackCommand(), InterruptGestureCheck(), InterruptWaterCheck(), HumanInputController::IsContinuousUseStart(), DayZPlayer::IsRestrained(), HumanInputController::IsSingleUse(), HumanInputController::IsWeaponRaised(), m_bEmoteIsPlaying, m_bEmoteIsRequestPending, m_Callback, m_CancelEmote, m_CurrentGestureID, m_DeferredEmoteExecution, m_EmoteLockState, m_GestureInterruptInput, m_HIC, m_InstantCancelEmote, EmoteCB::m_IsFullbody, m_IsSurrendered, m_ItemToBeCreated, m_LastMask, m_MenuEmote, m_Player, m_RPSOutcome, MENU_GESTURES, OnEmoteEnd(), PlayEmote(), PlaySurrenderInOut(), SendEmoteRequestSync(), and SetEmoteLockState().

◆ ~EmoteManager()

void ~EmoteManager ( )
protected

Definition at line 192 of file EmoteManager.c.

193 {
194 if (m_ReservationTimer && m_ReservationTimer.IsRunning())
195 m_ReservationTimer.Stop();
196 }

References m_ReservationTimer.

Variable Documentation

◆ CALLBACK_CMD_END

const int CALLBACK_CMD_END = -2
protected

Definition at line 144 of file EmoteManager.c.

Referenced by CanPlayEmote(), SendEmoteRequestSync(), and Update().

◆ CALLBACK_CMD_GESTURE_INTERRUPT

const int CALLBACK_CMD_GESTURE_INTERRUPT = -3
protected

◆ CALLBACK_CMD_INSTACANCEL

const int CALLBACK_CMD_INSTACANCEL = -4
protected

Definition at line 146 of file EmoteManager.c.

Referenced by CanPlayEmote(), OnInputUserDataProcess(), OnSyncJuncture(), and Update().

◆ CALLBACK_CMD_INVALID

const int CALLBACK_CMD_INVALID = -1
protected

◆ m_AdminLog

◆ m_bEmoteIsPlaying

bool m_bEmoteIsPlaying

Definition at line 123 of file EmoteManager.c.

Referenced by CreateEmoteCallback(), IsEmotePlaying(), OnEmoteEnd(), PlayEmote(), and Update().

◆ m_bEmoteIsRequestPending

bool m_bEmoteIsRequestPending

◆ m_Callback

◆ m_CancelEmote

bool m_CancelEmote

Definition at line 126 of file EmoteManager.c.

Referenced by OnSyncJuncture(), and Update().

◆ m_controllsLocked

bool m_controllsLocked
protected

Definition at line 133 of file EmoteManager.c.

Referenced by EmoteManager(), IsControllsLocked(), and SetEmoteLockState().

◆ m_CurrentGestureID

◆ m_DeferredEmoteExecution

int m_DeferredEmoteExecution
protected

◆ m_EmoteClassArray

ref array<ref EmoteBase> m_EmoteClassArray
protected

Definition at line 151 of file EmoteManager.c.

Referenced by ConstructData().

◆ m_EmoteIDs

ref array<int> m_EmoteIDs
protected

Definition at line 152 of file EmoteManager.c.

Referenced by ConstructData(), and DetermineGestureIndex().

◆ m_EmoteInputIDs

ref array<int> m_EmoteInputIDs
protected

Definition at line 153 of file EmoteManager.c.

Referenced by ConstructData(), and DetermineGestureIndex().

◆ m_EmoteLockState

bool m_EmoteLockState
protected

Definition at line 135 of file EmoteManager.c.

Referenced by CheckEmoteLockedState(), SetEmoteLockState(), and Update().

◆ m_GestureID

int m_GestureID
protected

Definition at line 137 of file EmoteManager.c.

Referenced by GetGesture(), and SetGesture().

◆ m_GestureInterruptInput

bool m_GestureInterruptInput

Definition at line 128 of file EmoteManager.c.

Referenced by OnEmoteEnd(), and Update().

◆ m_HandInventoryLocation

ref InventoryLocation m_HandInventoryLocation

Definition at line 120 of file EmoteManager.c.

Referenced by CheckEmoteLockedState(), EmoteManager(), and SetEmoteLockState().

◆ m_HIC

Definition at line 117 of file EmoteManager.c.

Referenced by CanPlayEmote(), EmoteManager(), and Update().

◆ m_HumanSwimSettings

SHumanCommandSwimSettings m_HumanSwimSettings
protected

Definition at line 154 of file EmoteManager.c.

Referenced by EmoteManager(), and InterruptWaterCheck().

◆ m_InstantCancelEmote

bool m_InstantCancelEmote

Definition at line 127 of file EmoteManager.c.

Referenced by OnSyncJuncture(), and Update().

◆ m_InterruptInputDirect

ref array<UAInput> m_InterruptInputDirect

Definition at line 119 of file EmoteManager.c.

Referenced by InterruptGestureCheck().

◆ m_InterruptInputs

ref array<string> m_InterruptInputs

Definition at line 118 of file EmoteManager.c.

Referenced by EmoteManager(), and InterruptGestureCheck().

◆ m_InterruptInputsCount

int m_InterruptInputsCount
protected

Definition at line 142 of file EmoteManager.c.

Referenced by InterruptGestureCheck().

◆ m_InventoryAccessLocked

bool m_InventoryAccessLocked
protected

Definition at line 134 of file EmoteManager.c.

Referenced by EmoteManager(), and SetEmoteLockState().

◆ m_IsSurrendered

bool m_IsSurrendered

◆ m_item

ItemBase m_item

Definition at line 115 of file EmoteManager.c.

Referenced by HideItemInHands(), and ShowItemInHands().

◆ m_ItemIsOn

bool m_ItemIsOn
protected

Definition at line 130 of file EmoteManager.c.

Referenced by EmoteManager().

◆ m_ItemToBeCreated

bool m_ItemToBeCreated

Definition at line 125 of file EmoteManager.c.

Referenced by Update().

◆ m_ItemToHands

bool m_ItemToHands
protected

Definition at line 129 of file EmoteManager.c.

◆ m_LastMask

int m_LastMask
protected

Definition at line 140 of file EmoteManager.c.

Referenced by CreateEmoteCallback(), and Update().

◆ m_MenuEmote

◆ m_MouseButtonPressed

bool m_MouseButtonPressed
protected

Definition at line 131 of file EmoteManager.c.

◆ m_NameEmoteMap

◆ m_Player

m_Player

◆ m_PlayerDies

bool m_PlayerDies
protected

Definition at line 132 of file EmoteManager.c.

Referenced by OnEmoteEnd().

◆ m_PreviousGestureID

int m_PreviousGestureID
protected

Definition at line 138 of file EmoteManager.c.

Referenced by PlayEmote(), and PlaySurrenderInOut().

◆ m_ReservationTimer

ref Timer m_ReservationTimer
protected

Definition at line 148 of file EmoteManager.c.

Referenced by EmoteManager(), and ~EmoteManager().

◆ m_RPSOutcome

int m_RPSOutcome
protected

Definition at line 141 of file EmoteManager.c.

Referenced by EmoteManager(), OnInputUserDataProcess(), SendEmoteRequestSync(), and Update().