F4MP/tiltedcode/Code/server/Game/Animation/AnimationEventLists.cpp

192 lines
7.2 KiB
C++
Raw Normal View History

#include "AnimationEventLists.h"
/*
/* The lists in this file might not contain all relevant animation events, so extend as necessary
*/
const Map<std::string_view, std::string_view> AnimationEventLists::kIdleToInstant = {
// Idle animations that have instant counterparts
{"HorseEnter", "HorseEnterInstant"},
{"IdleAlchemyEnter", "IdleAlchemyEnterInstant"},
{"IdleAltarEnter", "IdleAltarEnterInstant"},
{"IdleBarCounterEnter", "IdleBarCounterEnterInstant"},
{"IdleBedEnterStart", "IdleBedEnterInstant"},
{"IdleBedLeftEnterStart", "IdleBedLeftEnterInstant"},
{"IdleBedRightEnterStart", "IdleBedRightEnterInstant"},
{"IdleBedRollFrontEnterStart", "IdleBedRollFrontEnterInstant"},
{"IdleBedRollLeftEnterStart", "IdleBedRollLeftEnterInstant"},
{"IdleBedRollRightEnterStart", "IdleBedRollRightEnterInstant"},
{"IdleBlackSmithingEnterStart", "IdleBlackSmithEnterInstant"},
{"IdleBlessingKneelEnter", "IdleBlessingKneelEnterInstant"},
{"IdleBoundKneesStart", "IdleBoundKneesEnterInstant"},
{"IdleCartTravelDriverEnter", "IdleCartTravelDriverEnterInstant"},
{"IdleCartTravelPlayerEnter", "IdleCartTravelPlayerEnterInstant"},
{"IdleChairCHILDFrontEnter", "IdleChairCHILDEnterInstant"},
{"IdleChairCHILDLeftEnter", "IdleChairCHILDEnterInstant"},
{"IdleChairCHILDRightEnter", "IdleChairCHILDEnterInstant"},
{"IdleChairEnterStart", "IdleChairEnterInstant"},
{"IdleChairEnterToSit", "IdleChairEnterInstant"},
{"IdleChairFrontEnter", "IdleChairEnterInstant"},
{"IdleChairLeftEnter", "IdleChairEnterInstant"},
{"IdleChairRightEnter", "IdleChairEnterInstant"},
{"IdleChildSitOnKnees", "IdleChildSitOnKneesInstant"},
{"IdleCoffinEnter", "IdleCoffinEnterInstant"},
{"IdleCookingPotEnter", "IdleCookingPotEnterInstant"},
{"IdleCookingSpitEnter", "IdleCookingSpitEnterInstant"},
{"IdleCounterStart", "IdleCounterEnterInstant"},
{"IdleCowerEnter", "IdleCowerEnterInstant"},
{"IdleDLC2PickaxeEnter", "IdleDLC2PickaxeEnterInstant"},
{"IdleEnchantingEnter", "IdleEnchantingEnterInstant"},
{"IdleExecutionerIdle", "IdleExecutionerIdleEnterInstant"},
{"IdleGrainMillEnter", "IdleGrainMillEnterInstant"},
{"IdleHammerTableEnter", "IdleHammerTableEnterInstant"},
{"IdleHammerWallEnter", "IdleHammerWallEnterInstant"},
{"IdleHideLEnter", "IdleHideLEnterInstant"},
{"IdleHideREnter", "IdleHideREnterInstant"},
{"IdleJarlChairEnter", "IdleJarlChairEnterInstant"},
{"IdleLayDownEnter", "IdleLayDownEnterInstant"},
{"IdleLeanTable", "IdleLeanTableEnterInstant"},
{"IdleLeanTableEnter", "IdleLeanTableEnterInstant"},
{"IdleLeverPushStart", "IdleLeverPushEnterInstant"},
{"IdleOvenEnter", "IdleOvenEnterInstant"},
{"IdlePickaxeEnter", "IdlePickaxeEnterInstant"},
{"IdlePickaxeFloorEnter", "IdlePickaxeFloorEnterInstant"},
{"IdlePickaxeTableEnter", "IdlePickaxeTableEnterInstant"},
{"IdlePrayCrouchedEnter", "IdlePrayCrouchedEnterInstant"},
{"IdleRailLeanEnter", "IdleRailLeanEnterInstant"},
{"IdleSearchingChest", "IdleSearchChestEnterInstant"},
{"IdleSearchingTable", "IdleSearchTableEnterInstant"},
{"IdleSharpeningWheelStart", "IdleSharpeningWheelEnterInstant"},
{"IdleSitCrossLeggedEnter", "IdleSitCrossLeggedEnterInstant"},
{"IdleSitLedgeEnter", "IdleSitLedgeEnterInstant"},
{"IdleSmelterEnter", "IdleSmelterEnterInstant"},
{"IdleSnowElfPrinceChairEnter", "IdleSnowElfPrinceChairEnterInstant"},
{"IdleStoolEnter", "IdleStoolEnterInstant"},
{"IdleTableEnter", "IdleTableEnterInstant"},
{"IdleTableEnterPlayer", "IdleTableEnterInstant"},
{"IdleTanningEnter", "IdleTanningEnterInstant"},
{"IdleWallLeanStart", "IdleWallLeanEnterInstant"},
{"IdleWallSoldierEnter", "IdleWallSoldierEnterInstant"},
{"IdleWoodChopStart", "IdleWoodChopEnterInstant"},
{"IdleWoodPickUpEnter", "IdleWoodPickUpEnterInstant"},
// ...there is probably more
// No instant counterpart exists
{"IdleBeggar", ""},
{"IdleCombatShieldStart", ""},
{"IdleCombatStart", ""},
{"IdleDialogueAngryStart", ""},
{"IdleDialogueExpressiveStart", ""},
{"IdleDialogueHappyStart", ""},
{"idleDrinkingStandingStart", ""},
{"IdleDrumStart", ""},
{"idleEatingStandingStart", ""},
{"IdleFluteStart", ""},
{"IdleFurnitureStart", ""},
{"IdleGetAttention", ""},
{"idleLooseSweepingStart", ""},
{"IdleLuteStart", ""},
{"IdleReadElderScrollStart", ""},
{"IdleTableDrinkAndMugEnter", ""},
{"IdleTableDrinkEnter", ""},
{"IdleTableMugEnter", ""},
{"IdleTablePassOutEnter", ""},
{"IdleWarmHands", ""},
};
const Set<std::string_view> AnimationEventLists::kExitSpecial = {
{"IdleForceDefaultState"},
{"IdleReturnToDefault"},
{"ReturnDefaultState"},
{"ReturnToDefault"},
{"ForceFurnExit"},
{"IdleStop"},
{"IdleStopInstant"},
{"IdleBedExitToStand"},
{"IdleChairExitToStand"},
{"IdleFurnitureExitSlow"},
{"IdleMesmerizeStop"},
{"IdleWoodChopStop"},
{"BlackSmithAnvilExit"},
{"BlacksmithSharpeningWheelExit"},
{"BleedOutEarlyExit"},
{"CartExit"},
{"CraftingEnchantingBenchExit"},
{"DragonMountExit"},
{"DragonMountExitOut"},
{"GetUpExit"},
{"HorseExit"},
{"HorseExitOut"},
{"LayExit"},
{"NPCDragonMountExitOut"},
{"NPCHorseExit"},
{"NPCHorseExitOut"},
{"StoolBackExit"},
{"TableBackExit"},
{"TrapExitStart"},
{"VehicleExit"},
{"WebIdleExit"},
{"GetUpBegin"}, // Not an "Exit" action per se, but belongs here as it makes the actor return to its initial anim
// state
// ...others are checked in `IsExitAction()` using ends_with
};
const Set<std::string_view> AnimationEventLists::kIgnore = {
// Animation events with empty names don't carry anything useful besides
// various animvars updates and state changes to the currently running animations.
// Ignored because they spam too much
{""},
{"TurnLeft"},
{"TurnRight"},
{"turnStop"},
{"CyclicFreeze"},
{"CyclicCrossBlend"},
{"NPC_BumpedFromBack"},
{"NPC_BumpedFromLeft"},
{"NPC_BumpedFromRight"},
{"NPC_BumpEnd"},
{"NPC_BumpFromFront"},
{"NPC_TurnLeft180"},
{"NPC_TurnLeft90"},
{"NPC_TurnRight180"},
{"NPC_TurnRight90"},
{"NPC_TurnToWalkLeft180"},
{"NPC_TurnToWalkLeft90"},
{"NPC_TurnToWalkRight180"},
{"NPC_TurnToWalkRight90"},
// Ignore jump animations
{"JumpDirectionalStart"},
{"JumpFall"},
{"JumpFallDirectional"},
{"JumpFastEnd"},
{"JumpFastLeft"},
{"JumpFastRight"},
{"JumpForwardEnd"},
{"JumpForwardStart"},
{"JumpLand"},
{"JumpLandDirectional"},
{"JumpLandEnd"},
{"JumpLandFailSafe"},
{"JumpLandFast"},
{"JumpLandSoft"},
{"JumpSoftEnd"},
{"JumpStandingStart"},
// Useless idles, sometimes spam
{"IdlePlayer"},
{"IdleChairVar1"},
{"idleChairVar2"},
{"idleChairArmsCrossedVar1"},
{"idleChairArmsCrossedVar2"},
// See `Actor::FixVampireLordModel`
{"LevitationToggle"},
// Weapon drawing is handled separately in CharacterService
{"WeapEquip"},
{"WeapSoloEquip"},
{"WeapForceEquip"},
{"WeapEquip_Out"},
{"WeapUnEquip"},
// https://github.com/tiltedphoques/TiltedEvolution/issues/810
{"Unequip"},
{"combatStanceStop"},
};