EmoteClasses.c
class EmoteGreetingclass EmoteSOSclass EmoteHeartclass EmoteTauntclass EmoteLyingDownclass EmoteTauntKissclass EmotePointclass EmoteTauntElbowclass EmoteThumbclass EmoteThumbDownclass EmoteThroatclass EmoteDanceclass EmoteSaluteclass EmoteTimeoutclass EmoteDabbingclass EmoteFacepalmclass EmoteClapclass EmoteSilentclass EmoteWatchingclass EmoteHoldclass EmoteListeningclass EmotePointSelfclass EmoteLookAtMeclass EmoteTauntThinkclass EmoteMoveclass EmoteGetDownclass EmoteComeclass EmoteSurrenderclass EmoteCampfireSitclass EmoteSitAclass EmoteSitBclass EmoteRPSRandomclass EmoteRPSRockclass EmoteRPSPaperclass EmoteRPSScisorsclass EmoteNodclass EmoteShakeclass EmoteShrugclass EmoteSuicideclass EmoteVomit
class EmoteGreeting extends EmoteBase
{
void EmoteGreeting()
{
m_ID = EmoteConstants.ID_EMOTE_GREETING;
m_InputActionName = "EmoteGreeting";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_GREETING;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_GREETING;
m_HideItemInHands = false;
}
}
class EmoteSOS extends EmoteBase
{
void EmoteSOS()
{
m_ID = EmoteConstants.ID_EMOTE_SOS;
m_InputActionName = "EmoteSOS";
m_StanceMaskAdditive = 0;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_ERECT;
m_AdditiveCallbackUID = 0;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SOS;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
return !m_Player.GetItemInHands();
}
}
class EmoteHeart extends EmoteBase
{
void EmoteHeart()
{
m_ID = EmoteConstants.ID_EMOTE_HEART;
m_InputActionName = "EmoteHeart";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_HEART;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_HEART;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
return !m_Player.GetItemInHands();
}
}
class EmoteTaunt extends EmoteBase
{
void EmoteTaunt()
{
m_ID = EmoteConstants.ID_EMOTE_TAUNT;
m_InputActionName = "EmoteTaunt";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TAUNT;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_TAUNT;
m_HideItemInHands = false;
}
}
class EmoteLyingDown extends EmoteBase
{
protected const float WATER_DEPTH = 0.15;
void EmoteLyingDown()
{
m_ID = EmoteConstants.ID_EMOTE_LYINGDOWN;
m_InputActionName = "EmoteLyingDown";
m_StanceMaskAdditive = 0;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_CROUCH;
m_AdditiveCallbackUID = 0;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_LYINGDOWN;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
vector water_info = HumanCommandSwim.WaterLevelCheck( m_Player, m_Player.GetPosition() - (m_Player.GetDirection() * 0.9) );
if (water_info[0] >= WATER_DEPTH) //is player able to lay down without "drowning"?
return false;
return !m_Player.GetItemInHands();
}
}
class EmoteTauntKiss extends EmoteBase
{
void EmoteTauntKiss()
{
m_ID = EmoteConstants.ID_EMOTE_TAUNTKISS;
m_InputActionName = "EmoteTauntKiss";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TAUNTKISS;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_TAUNTKISS;
m_HideItemInHands = false;
}
}
class EmotePoint extends EmoteBase
{
void EmotePoint()
{
m_ID = EmoteConstants.ID_EMOTE_POINT;
m_InputActionName = "EmotePoint";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_POINT;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_POINT;
m_HideItemInHands = false;
}
}
class EmoteTauntElbow extends EmoteBase
{
void EmoteTauntElbow()
{
m_ID = EmoteConstants.ID_EMOTE_TAUNTELBOW;
m_InputActionName = "EmoteTauntElbow";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TAUNTELBOW;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
return !m_Player.GetItemInHands();
}
}
class EmoteThumb extends EmoteBase
{
void EmoteThumb()
{
m_ID = EmoteConstants.ID_EMOTE_THUMB;
m_InputActionName = "EmoteThumb";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_THUMB;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_THUMB;
m_HideItemInHands = false;
}
}
class EmoteThumbDown extends EmoteBase
{
void EmoteThumbDown()
{
m_ID = EmoteConstants.ID_EMOTE_THUMBDOWN;
m_InputActionName = "EmoteThumbDown";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_THUMBDOWN;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_THUMBDOWN;
m_HideItemInHands = false;
}
}
class EmoteThroat extends EmoteBase
{
void EmoteThroat()
{
m_ID = EmoteConstants.ID_EMOTE_THROAT;
m_InputActionName = "EmoteThroat";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_THROAT;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_THROAT;
m_HideItemInHands = false;
}
}
class EmoteDance extends EmoteBase
{
void EmoteDance()
{
m_ID = EmoteConstants.ID_EMOTE_DANCE;
m_InputActionName = "EmoteDance";
m_StanceMaskAdditive = 0;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_ERECT;
m_AdditiveCallbackUID = 0;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_DANCE;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
if (m_Player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
return false;
return !m_Player.GetItemInHands();
}
}
class EmoteSalute extends EmoteBase
{
void EmoteSalute()
{
m_ID = EmoteConstants.ID_EMOTE_SALUTE;
m_InputActionName = "EmoteSalute";
m_StanceMaskAdditive = 0;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_ERECT;
m_AdditiveCallbackUID = 0;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SALUTE;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
return !m_Player.GetItemInHands();
}
}
class EmoteTimeout extends EmoteBase
{
void EmoteTimeout()
{
m_ID = EmoteConstants.ID_EMOTE_TIMEOUT;
m_InputActionName = "EmoteTimeout";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TIMEOUT;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_TIMEOUT;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
return !m_Player.GetItemInHands();
}
}
class EmoteDabbing extends EmoteBase
{
void EmoteDabbing()
{
m_ID = EmoteConstants.ID_EMOTE_DABBING;
//m_InputActionName = "EmoteDabbing";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_DABBING;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = true;
}
}
class EmoteFacepalm extends EmoteBase
{
void EmoteFacepalm()
{
m_ID = EmoteConstants.ID_EMOTE_FACEPALM;
m_InputActionName = "EmoteFacepalm";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_FACEPALM;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = false;
}
}
class EmoteClap extends EmoteBase
{
void EmoteClap()
{
m_ID = EmoteConstants.ID_EMOTE_CLAP;
m_InputActionName = "EmoteClap";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_CLAP;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
return !m_Player.GetItemInHands();
}
}
class EmoteSilent extends EmoteBase
{
void EmoteSilent()
{
m_ID = EmoteConstants.ID_EMOTE_SILENT;
m_InputActionName = "EmoteSilent";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_SILENCE;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SILENCE;
m_HideItemInHands = false;
}
}
class EmoteWatching extends EmoteBase
{
void EmoteWatching()
{
m_ID = EmoteConstants.ID_EMOTE_WATCHING;
m_InputActionName = "EmoteWatching";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_WATCHING;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_WATCHING;
m_HideItemInHands = false;
}
}
class EmoteHold extends EmoteBase
{
void EmoteHold()
{
m_ID = EmoteConstants.ID_EMOTE_HOLD;
m_InputActionName = "EmoteHold";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_HOLD;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_HOLD;
m_HideItemInHands = false;
}
}
class EmoteListening extends EmoteBase
{
void EmoteListening()
{
m_ID = EmoteConstants.ID_EMOTE_LISTENING;
m_InputActionName = "EmoteListening";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_LISTENING;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_LISTENING;
m_HideItemInHands = false;
}
}
class EmotePointSelf extends EmoteBase
{
void EmotePointSelf()
{
m_ID = EmoteConstants.ID_EMOTE_POINTSELF;
m_InputActionName = "EmotePointSelf";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_POINTSELF;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_POINTSELF;
m_HideItemInHands = false;
}
}
class EmoteLookAtMe extends EmoteBase
{
void EmoteLookAtMe()
{
m_ID = EmoteConstants.ID_EMOTE_LOOKATME;
m_InputActionName = "EmoteLookAtMe";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_LOOKATME;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_LOOKATME;
m_HideItemInHands = false;
}
}
class EmoteTauntThink extends EmoteBase
{
void EmoteTauntThink()
{
m_ID = EmoteConstants.ID_EMOTE_TAUNTTHINK;
m_InputActionName = "EmoteTauntThink";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TAUNTTHINK;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_TAUNTTHINK;
m_HideItemInHands = false;
}
}
class EmoteMove extends EmoteBase
{
void EmoteMove()
{
m_ID = EmoteConstants.ID_EMOTE_MOVE;
m_InputActionName = "EmoteMove";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_MOVE;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_MOVE;
m_HideItemInHands = false;
}
}
class EmoteGetDown extends EmoteBase
{
void EmoteGetDown()
{
m_ID = EmoteConstants.ID_EMOTE_DOWN;
m_InputActionName = "EmoteGetDown";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_DOWN;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_DOWN;
m_HideItemInHands = false;
}
}
class EmoteCome extends EmoteBase
{
void EmoteCome()
{
m_ID = EmoteConstants.ID_EMOTE_COME;
m_InputActionName = "EmoteCome";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_COME;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_COME;
m_HideItemInHands = false;
}
}
//Handled directly via EmoteManager!
class EmoteSurrender extends EmoteBase
{
void EmoteSurrender()
{
m_ID = EmoteConstants.ID_EMOTE_SURRENDER;
m_InputActionName = "EmoteSurrender";
m_HideItemInHands = false;
}
override bool EmoteCondition(int stancemask)
{
Transport transportEnt; //standing on a Transport-type object...
return !m_Player.PhysicsGetLinkedEntity() && !Class.CastTo(transportEnt,m_Player.PhysicsGetFloorEntity());
}
override bool DetermineOverride(out int callback_ID, out int stancemask, out bool is_fullbody)
{
stancemask = DayZPlayerConstants.STANCEMASK_ALL;
return true;
}
override bool EmoteStartOverride(typename callbacktype, int id, int mask, bool fullbody)
{
bool surrenderTargetState = !m_Player.GetEmoteManager().m_IsSurrendered;
if (!surrenderTargetState && m_Player.GetItemInHands())
{
m_Player.GetItemInHands().DeleteSafe();
}
m_Player.GetEmoteManager().PlaySurrenderInOut(surrenderTargetState);
return true;
}
}
class EmoteCampfireSit extends EmoteBase
{
void EmoteCampfireSit()
{
m_ID = EmoteConstants.ID_EMOTE_CAMPFIRE;
m_InputActionName = "EmoteCampfireSit";
m_StanceMaskAdditive = 0;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_CROUCH;
m_AdditiveCallbackUID = 0;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_CAMPFIRE;
m_HideItemInHands = true;
}
override bool EmoteCondition(int stancemask)
{
return !m_Player.GetItemInHands();
}
}
class EmoteSitA extends EmoteBase
{
void EmoteSitA()
{
m_ID = EmoteConstants.ID_EMOTE_SITA;
m_InputActionName = "EmoteSitA";
m_StanceMaskAdditive = 0;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_CROUCH;
m_AdditiveCallbackUID = 0;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SITA;
m_HideItemInHands = false;
}
}
class EmoteSitB extends EmoteBase
{
void EmoteSitB()
{
m_ID = EmoteConstants.ID_EMOTE_SITB;
m_InputActionName = "EmoteSitB";
m_StanceMaskAdditive = 0;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_CROUCH;
m_AdditiveCallbackUID = 0;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SITB;
m_HideItemInHands = false;
}
override bool EmoteCondition(int stancemask)
{
return !m_Player.GetItemInHands();
}
}
class EmoteRPSRandom extends EmoteBase
{
void EmoteRPSRandom()
{
m_ID = EmoteConstants.ID_EMOTE_RPS;
m_InputActionName = "EmoteRPSRandom";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_RPS;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = false;
}
}
class EmoteRPSRock extends EmoteBase
{
void EmoteRPSRock()
{
m_ID = EmoteConstants.ID_EMOTE_RPS_R;
m_InputActionName = "EmoteRPSRock";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_RPS;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = false;
}
}
class EmoteRPSPaper extends EmoteBase
{
void EmoteRPSPaper()
{
m_ID = EmoteConstants.ID_EMOTE_RPS_P;
m_InputActionName = "EmoteRPSPaper";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_RPS;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = false;
}
}
class EmoteRPSScisors extends EmoteBase
{
void EmoteRPSScisors()
{
m_ID = EmoteConstants.ID_EMOTE_RPS_S;
m_InputActionName = "EmoteRPSScisors";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_RPS;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = false;
}
}
class EmoteNod extends EmoteBase
{
void EmoteNod()
{
m_ID = EmoteConstants.ID_EMOTE_NOD;
m_InputActionName = "EmoteNod";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_NODHEAD;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_NODHEAD;
m_HideItemInHands = false;
}
}
class EmoteShake extends EmoteBase
{
void EmoteShake()
{
m_ID = EmoteConstants.ID_EMOTE_SHAKE;
m_InputActionName = "EmoteShake";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_SHAKEHEAD;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SHAKEHEAD;
m_HideItemInHands = false;
}
}
class EmoteShrug extends EmoteBase
{
void EmoteShrug()
{
m_ID = EmoteConstants.ID_EMOTE_SHRUG;
m_InputActionName = "EmoteShrug";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_SHRUG;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SHRUG;
m_HideItemInHands = false;
}
}
class EmoteSuicide extends EmoteBase
{
void EmoteSuicide()
{
m_ID = EmoteConstants.ID_EMOTE_SUICIDE;
m_InputActionName = "EmoteSuicide";
m_StanceMaskAdditive = 0;
m_StanceMaskFullbody = 0;
m_AdditiveCallbackUID = 0;
m_FullbodyCallbackUID = 0;
m_HideItemInHands = false;
}
override bool DetermineOverride(out int callback_ID, out int stancemask, out bool is_fullbody)
{
is_fullbody = true;
callback_ID = -1;
stancemask = 0;
string suicideStr;
ItemBase weapon;
weapon = m_Player.GetItemInHands();
if (weapon)
{
if (weapon.ConfigIsExisting("suicideAnim"))
{
suicideStr = weapon.ConfigGetString("suicideAnim");
}
if (weapon.IsKindOf("Pistol_Base"))
{
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_PISTOL;
stancemask = DayZPlayerConstants.STANCEMASK_CROUCH;
//m_Player.OverrideShootFromCamera(false);
}
else if (Weapon_Base.Cast(weapon)) //long firearms
{
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_RIFLE;
stancemask = DayZPlayerConstants.STANCEMASK_CROUCH;
//m_Player.OverrideShootFromCamera(false);
}
else
{
switch (suicideStr)
{
case "onehanded":
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_1HD;
stancemask = DayZPlayerConstants.STANCEMASK_CROUCH;
break;
case "fireaxe":
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_FIREAXE;
stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
break;
case "pitchfork":
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_PITCHFORK;
stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
break;
case "sword":
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_SWORD;
stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
break;
case "spear":
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_SPEAR;
stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
break;
case "woodaxe":
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_WOODAXE;
stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
break;
case "sickle":
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_SICKLE;
stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
break;
case "hoe":
callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_HOE;
stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
break;
}
}
}
if (callback_ID > -1)
{
return true;
}
return false;
}
override bool EmoteCondition(int stancemask)
{
ItemBase itemInHands = m_Player.GetItemInHands();
if (!itemInHands.CanBeUsedForSuicide())
{
return false;
}
return super.EmoteCondition(stancemask);
}
override bool CanBeCanceledNormally(notnull EmoteCB callback)
{
int state = callback.GetState();
if (state > HumanCommandActionCallback.STATE_LOOP_LOOP) //Cannot be canceled once started
return false;
return super.CanBeCanceledNormally(callback);;
}
override void OnBeforeStandardCallbackCreated(int callback_ID, int stancemask, bool is_fullbody)
{
if (callback_ID > -1)
{
if (callback_ID == DayZPlayerConstants.CMD_SUICIDEFB_PISTOL || callback_ID == DayZPlayerConstants.CMD_SUICIDEFB_RIFLE)
m_Player.OverrideShootFromCamera(false);
}
}
override void OnCallbackEnd()
{
m_Player.SetSuicide(false);
}
}
class EmoteVomit extends EmoteBase
{
void EmoteVomit()
{
m_ID = EmoteConstants.ID_EMOTE_VOMIT;
m_InputActionName = "EmoteVomit";
m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_NODHEAD;
m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_NODHEAD;
m_HideItemInHands = false;
}
override bool EmoteCondition(int stancemask)
{
return DayZPlayerUtils.PlayerCanChangeStance(m_Player,DayZPlayerConstants.STANCEIDX_CROUCH);
}
override bool EmoteStartOverride(typename callbacktype, int id, int mask, bool fullbody)
{
if ( m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_SERVER || !g_Game.IsMultiplayer() )
{
SymptomBase symptom = m_Player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT);
if ( symptom )
{
symptom.SetDuration(Math.RandomIntInclusive(4,8));
}
}
m_Player.GetEmoteManager().SetEmoteLockState(false);
return true;
}
}