CommonLibSSE (powerof3)
TESCondition.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
4 #include "RE/M/MemoryManager.h"
5 
6 namespace RE
7 {
8  class TESGlobal;
9  class TESObjectREFR;
10 
12  {
13  kSelf = 0,
14  kTarget = 1,
15  kRef = 2,
16  kCombatTarget = 3,
17  kLinkedRef = 4,
18  kQuestAlias = 5,
19  kPackData = 6,
20  kEventData = 7,
21  kCommandTarget = 8
22  };
23 
25  {
26  public:
27  // Betheseda keeps these in a giant lookup table
28  // using func_t = bool(TESObjectREFR* a_thisObj, void* a_param1, void* a_param2, double& a_result);
29  enum class FunctionID
30  {
31  kGetWantBlocking = 0,
32  kGetDistance = 1,
33  kAddItem = 2,
34  kSetEssential = 3,
35  kRotate = 4,
36  kGetLocked = 5,
37  kGetPos = 6,
38  kSetPos = 7,
39  kGetAngle = 8,
40  kSetAngle = 9,
41  kGetStartingPos = 10,
42  kGetStartingAngle = 11,
43  kGetSecondsPassed = 12,
44  kActivate = 13,
45  kGetActorValue = 14,
46  kGetAV = static_cast<std::underlying_type_t<FunctionID>>(kGetActorValue),
47  kSetActorValue = 15,
48  kSetAV = static_cast<std::underlying_type_t<FunctionID>>(kSetActorValue),
49  kModActorValue = 16,
50  kModAV = static_cast<std::underlying_type_t<FunctionID>>(kModActorValue),
51  kSetAtStart = 17,
52  kGetCurrentTime = 18,
53  kPlayGroup = 19,
54  kLoopGroup = 20,
55  kSkipAnim = 21,
56  kStartCombat = 22,
57  kStopCombat = 23,
58  kGetScale = 24,
59  kIsMoving = 25,
60  kIsTurning = 26,
61  kGetLineOfSight = 27,
62  kGetLOS = static_cast<std::underlying_type_t<FunctionID>>(kGetLineOfSight),
63  kAddSpell = 28,
64  kRemoveSpell = 29,
65  kCast = 30,
66  kGetButtonPressed = 31,
67  kGetInSameCell = 32,
68  kEnable = 33,
69  kDisable = 34,
70  kGetDisabled = 35,
71  kMenuMode = 36,
72  kPlaceAtMe = 37,
73  kPlaySound = 38,
74  kGetDisease = 39,
75  kFailAllObjectives = 40,
76  kGetClothingValue = 41,
77  kSameFaction = 42,
78  kSameRace = 43,
79  kSameSex = 44,
80  kGetDetected = 45,
81  kGetDead = 46,
82  kGetItemCount = 47,
83  kGetGold = 48,
84  kGetSleeping = 49,
85  kGetTalkedToPC = 50,
86  kSay = 51,
87  kSayTo = 52,
88  kGetScriptVariable = 53,
89  kStartQuest = 54,
90  kStopQuest = 55,
91  kGetQuestRunning = 56,
92  kGetQR = static_cast<std::underlying_type_t<FunctionID>>(kGetQuestRunning),
93  kSetStage = 57,
94  kGetStage = 58,
95  kGetStageDone = 59,
96  kGetFactionRankDifference = 60,
97  kGetAlarmed = 61,
98  kIsRaining = 62,
99  kGetAttacked = 63,
100  kGetIsCreature = 64,
101  kGetLockLevel = 65,
102  kGetShouldAttack = 66,
103  kGetInCell = 67,
104  kGetIsClass = 68,
105  kGetIsRace = 69,
106  kGetIsSex = 70,
107  kGetInFaction = 71,
108  kGetIsID = 72,
109  kGetFactionRank = 73,
110  kGetGlobalValue = 74,
111  kIsSnowing = 75,
112  kFastTravel = 76,
113  kFT = static_cast<std::underlying_type_t<FunctionID>>(kFastTravel),
114  kGetRandomPercent = 77,
115  kRemoveMusic = 78,
116  kGetQuestVariable = 79,
117  kGetLevel = 80,
118  kIsRotating = 81,
119  kRemoveItem = 82,
120  kGetLeveledEncounterValue = 83,
121  kGetDeadCount = 84,
122  kAddToMap = 85,
123  kShowMap = static_cast<std::underlying_type_t<FunctionID>>(kAddToMap),
124  kStartConversation = 86,
125  kDrop = 87,
126  kAddTopic = 88,
127  kShowMessage = 89,
128  kSetAlert = 90,
129  kGetIsAlerted = 91,
130  kLook = 92,
131  kStopLook = 93,
132  kEvaluatePackage = 94,
133  kEvP = static_cast<std::underlying_type_t<FunctionID>>(kEvaluatePackage),
134  kSendAssaultAlarm = 95,
135  kEnablePlayerControls = 96,
136  kEPC = static_cast<std::underlying_type_t<FunctionID>>(kEnablePlayerControls),
137  kDisablePlayerControls = 97,
138  kDPC = static_cast<std::underlying_type_t<FunctionID>>(kDisablePlayerControls),
139  kGetPlayerControlsDisabled = 98,
140  kGPC = static_cast<std::underlying_type_t<FunctionID>>(kGetPlayerControlsDisabled),
141  kGetHeadingAngle = 99,
142  kPickIdle = 100,
143  kIsWeaponMagicOut = 101,
144  kIsTorchOut = 102,
145  kIsShieldOut = 103,
146  kCreateDetectionEvent = 104,
147  kIsActionRef = 105,
148  kIsFacingUp = 106,
149  kGetKnockedState = 107,
150  kGetWeaponAnimType = 108,
151  kIsWeaponSkillType = 109,
152  kGetCurrentAIPackage = 110,
153  kIsWaiting = 111,
154  kIsIdlePlaying = 112,
155  kCompleteQuest = 113,
156  kLock = 114,
157  kUnLock = 115,
158  kIsIntimidatedByPlayer = 116,
159  kIsPlayerInRegion = 117,
160  kGetActorAggroRadiusViolated = 118,
161  kGetCrimeKnown = 119,
162  kSetEnemy = 120,
163  kSetAlly = 121,
164  kGetCrime = 122,
165  kIsGreetingPlayer = 123,
166  kStartMisterSandMan = 124,
167  kIsGuard = 125,
168  kStartCannibal = 126,
169  kHasBeenEaten = 127,
170  kGetStaminaPercentage = 128,
171  kGetStamina = static_cast<std::underlying_type_t<FunctionID>>(kGetStaminaPercentage),
172  kGetPCIsClass = 129,
173  kGetPCIsRace = 130,
174  kGetPCIsSex = 131,
175  kGetPCInFaction = 132,
176  kSameFactionAsPC = 133,
177  kSameRaceAsPC = 134,
178  kSameSexAsPC = 135,
179  kGetIsReference = 136,
180  kSetFactionRank = 137,
181  kModFactionRank = 138,
182  kKillActor = 139,
183  kkill = static_cast<std::underlying_type_t<FunctionID>>(kKillActor),
184  kResurrectActor = 140,
185  kResurrect = static_cast<std::underlying_type_t<FunctionID>>(kResurrectActor),
186  kIsTalking = 141,
187  kGetWalkSpeed = 142,
188  kGetWalk = static_cast<std::underlying_type_t<FunctionID>>(kGetWalkSpeed),
189  kGetCurrentAIProcedure = 143,
190  kGetTrespassWarningLevel = 144,
191  kIsTrespassing = 145,
192  kIsInMyOwnedCell = 146,
193  kGetWindSpeed = 147,
194  kGetCurrentWeatherPercent = 148,
195  kGetweatherpct = static_cast<std::underlying_type_t<FunctionID>>(kGetCurrentWeatherPercent),
196  kGetIsCurrentWeather = 149,
197  kGetweather = static_cast<std::underlying_type_t<FunctionID>>(kGetIsCurrentWeather),
198  kIsContinuingPackagePCNear = 150,
199  kSetCrimeFaction = 151,
200  kGetIsCrimeFaction = 152,
201  kCanHaveFlames = 153,
202  kHasFlames = 154,
203  kAddFlames = 155,
204  kRemoveFlames = 156,
205  kGetOpenState = 157,
206  kMoveToMarker = 158,
207  kMoveTo = static_cast<std::underlying_type_t<FunctionID>>(kMoveToMarker),
208  kGetSitting = 159,
209  kGetFurnitureMarkerID = 160,
210  kGetIsCurrentPackage = 161,
211  kIsCurrentFurnitureRef = 162,
212  kIsCurrentFurnitureObj = 163,
213  kSetSize = 164,
214  kCSize = static_cast<std::underlying_type_t<FunctionID>>(kSetSize),
215  kRemoveMe = 165,
216  kDropMe = 166,
217  kGetFactionReaction = 167,
218  kSetFactionReaction = 168,
219  kModFactionReaction = 169,
220  kGetDayOfWeek = 170,
221  kIgnoreCrime = 171,
222  kGetTalkedToPCParam = 172,
223  kRemoveAllItems = 173,
224  kWakeUpPC = 174,
225  kIsPCSleeping = 175,
226  kIsPCAMurderer = 176,
227  kSetCombatStyle = 177,
228  kSetCS = static_cast<std::underlying_type_t<FunctionID>>(kSetCombatStyle),
229  kPlaySound3D = 178,
230  kSelectPlayerSpell = 179,
231  kSPSpell = static_cast<std::underlying_type_t<FunctionID>>(kSelectPlayerSpell),
232  kHasSameEditorLocAsRef = 180,
233  kHasSameEditorLocAsRefAlias = 181,
234  kGetEquipped = 182,
235  kWait = 183,
236  kStopWaiting = 184,
237  kIsSwimming = 185,
238  kScriptEffectElapsedSeconds = 186,
239  kSetCellPublicFlag = 187,
240  kSetPublic = static_cast<std::underlying_type_t<FunctionID>>(kSetCellPublicFlag),
241  kGetPCSleepHours = 188,
242  kSetPCSleepHours = 189,
243  kGetAmountSoldStolen = 190,
244  kModAmountSoldStolen = 191,
245  kGetIgnoreCrime = 192,
246  kGetPCExpelled = 193,
247  kSetPCExpelled = 194,
248  kGetPCFactionMurder = 195,
249  kSetPCFactionMurder = 196,
250  kGetPCEnemyofFaction = 197,
251  kSetPCEnemyofFaction = 198,
252  kGetPCFactionAttack = 199,
253  kSetPCFactionAttack = 200,
254  kStartScene = 201,
255  kStopScene = 202,
256  kGetDestroyed = 203,
257  kSetDestroyed = 204,
258  kGetActionRef = 205,
259  kGetAR = static_cast<std::underlying_type_t<FunctionID>>(kGetActionRef),
260  kGetSelf = 206,
261  kThis = static_cast<std::underlying_type_t<FunctionID>>(kGetSelf),
262  kGetContainer = 207,
263  kGetForceRun = 208,
264  kSetForceRun = 209,
265  kGetForceSneak = 210,
266  kSetForceSneak = 211,
267  kAdvancePCSkill = 212,
268  kAdvSkill = static_cast<std::underlying_type_t<FunctionID>>(kAdvancePCSkill),
269  kAdvancePCLevel = 213,
270  kAdvLevel = static_cast<std::underlying_type_t<FunctionID>>(kAdvancePCLevel),
271  kHasMagicEffect = 214,
272  kGetDefaultOpen = 215,
273  kSetDefaultOpen = 216,
274  kShowClassMenu = 217,
275  kShowRaceMenu = 218,
276  kSetPlayerRace = static_cast<std::underlying_type_t<FunctionID>>(kShowRaceMenu),
277  kGetAnimAction = 219,
278  kShowNameMenu = 220,
279  kSetOpenState = 221,
280  kResetReference = 222,
281  kRecycleActor = static_cast<std::underlying_type_t<FunctionID>>(kResetReference),
282  kIsSpellTarget = 223,
283  kGetVATSMode = 224,
284  kGetPersuasionNumber = 225,
285  kGetVampireFeed = 226,
286  kGetCannibal = 227,
287  kGetIsClassDefault = 228,
288  kGetClassDefaultMatch = 229,
289  kGetInCellParam = 230,
290  kUnusedFunction1 = 231,
291  kGetCombatTarget = 232,
292  kGetPackageTarget = 233,
293  kShowSpellMaking = 234,
294  kGetVatsTargetHeight = 235,
295  kSetGhost = 236,
296  kGetIsGhost = 237,
297  kEquipItem = 238,
298  kEquipObject = static_cast<std::underlying_type_t<FunctionID>>(kEquipItem),
299  kUnequipItem = 239,
300  kUnEquipObject = static_cast<std::underlying_type_t<FunctionID>>(kUnequipItem),
301  kSetClass = 240,
302  kSetUnconscious = 241,
303  kGetUnconscious = 242,
304  kSetRestrained = 243,
305  kGetRestrained = 244,
306  kForceFlee = 245,
307  kFlee = static_cast<std::underlying_type_t<FunctionID>>(kForceFlee),
308  kGetIsUsedItem = 246,
309  kGetIsUsedItemType = 247,
310  kIsScenePlaying = 248,
311  kIsInDialogueWithPlayer = 249,
312  kGetLocationCleared = 250,
313  kSetLocationCleared = 251,
314  kForceRefIntoAlias = 252,
315  kEmptyRefAlias = 253,
316  kGetIsPlayableRace = 254,
317  kGetOffersServicesNow = 255,
318  kGetGameSetting = 256,
319  kGetGS = static_cast<std::underlying_type_t<FunctionID>>(kGetGameSetting),
320  kStopCombatAlarmOnActor = 257,
321  kSCAOnActor = static_cast<std::underlying_type_t<FunctionID>>(kStopCombatAlarmOnActor),
322  kHasAssociationType = 258,
323  kHasFamilyRelationship = 259,
324  kFamily = static_cast<std::underlying_type_t<FunctionID>>(kHasFamilyRelationship),
325  kSetWeather = 260,
326  kSW = static_cast<std::underlying_type_t<FunctionID>>(kSetWeather),
327  kHasParentRelationship = 261,
328  kIsParent = static_cast<std::underlying_type_t<FunctionID>>(kHasParentRelationship),
329  kIsWarningAbout = 262,
330  kIsWeaponOut = 263,
331  kHasSpell = 264,
332  kIsTimePassing = 265,
333  kIsPleasant = 266,
334  kIsCloudy = 267,
335  kTrapUpdate = 268,
336  kShowQuestObjectives = 269,
337  kSQO = static_cast<std::underlying_type_t<FunctionID>>(kShowQuestObjectives),
338  kForceActorValue = 270,
339  kForceAV = static_cast<std::underlying_type_t<FunctionID>>(kForceActorValue),
340  kIncrementPCSkill = 271,
341  kIncPCS = static_cast<std::underlying_type_t<FunctionID>>(kIncrementPCSkill),
342  kDoTrap = 272,
343  kEnableFastTravel = 273,
344  kEnableFast = static_cast<std::underlying_type_t<FunctionID>>(kEnableFastTravel),
345  kIsSmallBump = 274,
346  kGetParentRef = 275,
347  kPlayBink = 276,
348  kGetBaseActorValue = 277,
349  kGetBaseAV = static_cast<std::underlying_type_t<FunctionID>>(kGetBaseActorValue),
350  kIsOwner = 278,
351  kSetOwnership = 279,
352  kIsCellOwner = 280,
353  kSetCellOwnership = 281,
354  kIsHorseStolen = 282,
355  kSetCellFullName = 283,
356  kSetActorFullName = 284,
357  kIsLeftUp = 285,
358  kIsSneaking = 286,
359  kIsRunning = 287,
360  kGetFriendHit = 288,
361  kIsInCombat = 289,
362  kSetPackDuration = 290,
363  kSPDur = static_cast<std::underlying_type_t<FunctionID>>(kSetPackDuration),
364  kPlayMagicShaderVisuals = 291,
365  kPMS = static_cast<std::underlying_type_t<FunctionID>>(kPlayMagicShaderVisuals),
366  kPlayMagicEffectVisuals = 292,
367  kPME = static_cast<std::underlying_type_t<FunctionID>>(kPlayMagicEffectVisuals),
368  kStopMagicShaderVisuals = 293,
369  kSMS = static_cast<std::underlying_type_t<FunctionID>>(kStopMagicShaderVisuals),
370  kStopMagicEffectVisuals = 294,
371  kSME = static_cast<std::underlying_type_t<FunctionID>>(kStopMagicEffectVisuals),
372  kResetInterior = 295,
373  kIsAnimPlaying = 296,
374  kSetActorAlpha = 297,
375  kSAA = static_cast<std::underlying_type_t<FunctionID>>(kSetActorAlpha),
376  kEnableLinkedPathPoints = 298,
377  kDisableLinkedPathPoints = 299,
378  kIsInInterior = 300,
379  kForceWeather = 301,
380  kFW = static_cast<std::underlying_type_t<FunctionID>>(kForceWeather),
381  kToggleActorsAI = 302,
382  kIsActorsAIOff = 303,
383  kIsWaterObject = 304,
384  kGetPlayerAction = 305,
385  kIsActorUsingATorch = 306,
386  kSetLevel = 307,
387  kResetFallDamageTimer = 308,
388  kIsXBox = 309,
389  kGetInWorldspace = 310,
390  kModPCMiscStat = 311,
391  kModPCMS = static_cast<std::underlying_type_t<FunctionID>>(kModPCMiscStat),
392  kGetPCMiscStat = 312,
393  kGetPCMS = static_cast<std::underlying_type_t<FunctionID>>(kGetPCMiscStat),
394  kGetPairedAnimation = 313,
395  kGPA = static_cast<std::underlying_type_t<FunctionID>>(kGetPairedAnimation),
396  kIsActorAVictim = 314,
397  kGetTotalPersuasionNumber = 315,
398  kSetScale = 316,
399  kModScale = 317,
400  kGetIdleDoneOnce = 318,
401  kKillAllActors = 319,
402  kkillall = static_cast<std::underlying_type_t<FunctionID>>(kKillAllActors),
403  kGetNoRumors = 320,
404  kSetNoRumors = 321,
405  kDispel = 322,
406  kGetCombatState = 323,
407  kTriggerHitShader = 324,
408  kTHS = static_cast<std::underlying_type_t<FunctionID>>(kTriggerHitShader),
409  kGetWithinPackageLocation = 325,
410  kReset3DState = 326,
411  kIsRidingMount = 327,
412  kDispelAllSpells = 328,
413  kIsFleeing = 329,
414  kAddAchievement = 330,
415  kDuplicateAllItems = 331,
416  kIsInDangerousWater = 332,
417  kEssentialDeathReload = 333,
418  kSetShowQuestItems = 334,
419  kDuplicateNPCStats = 335,
420  kResetHealth = 336,
421  kSetIgnoreFriendlyHits = 337,
422  kSIFH = static_cast<std::underlying_type_t<FunctionID>>(kSetIgnoreFriendlyHits),
423  kGetIgnoreFriendlyHits = 338,
424  kGIFH = static_cast<std::underlying_type_t<FunctionID>>(kGetIgnoreFriendlyHits),
425  kIsPlayersLastRiddenMount = 339,
426  kSetActorRefraction = 340,
427  kSAR = static_cast<std::underlying_type_t<FunctionID>>(kSetActorRefraction),
428  kSetItemValue = 341,
429  kSetRigidBodyMass = 342,
430  kShowViewerStrings = 343,
431  kSVS = static_cast<std::underlying_type_t<FunctionID>>(kShowViewerStrings),
432  kReleaseWeatherOverride = 344,
433  kRWO = static_cast<std::underlying_type_t<FunctionID>>(kReleaseWeatherOverride),
434  kSetAllReachable = 345,
435  kSetAllVisible = 346,
436  kSetNoAvoidance = 347,
437  kSendTrespassAlarm = 348,
438  kSetSceneIsComplex = 349,
439  kAutosave = 350,
440  kStartMasterFileSeekData = 351,
441  kDumpMasterFileSeekData = 352,
442  kIsActor = 353,
443  kIsEssential = 354,
444  kPreloadMagicEffect = 355,
445  kShowDialogSubtitles = 356,
446  kSetPlayerResistingArrest = 357,
447  kIsPlayerMovingIntoNewSpace = 358,
448  kGetInCurrentLoc = 359,
449  kGetInCurrentLocAlias = 360,
450  kGetTimeDead = 361,
451  kHasLinkedRef = 362,
452  kGetLinkedRef = 363,
453  kDamageObject = 364,
454  kDO = static_cast<std::underlying_type_t<FunctionID>>(kDamageObject),
455  kIsChild = 365,
456  kGetStolenItemValueNoCrime = 366,
457  kGetLastPlayerAction = 367,
458  kIsPlayerActionActive = 368,
459  kSetTalkingActivatorActor = 369,
460  kIsTalkingActivatorActor = 370,
461  kShowBarterMenu = 371,
462  kSBM = static_cast<std::underlying_type_t<FunctionID>>(kShowBarterMenu),
463  kIsInList = 372,
464  kGetStolenItemValue = 373,
465  kAddPerk = 374,
466  kGetCrimeGoldViolent = 375,
467  kGetviolent = static_cast<std::underlying_type_t<FunctionID>>(kGetCrimeGoldViolent),
468  kGetCrimeGoldNonviolent = 376,
469  kGetnonviolent = static_cast<std::underlying_type_t<FunctionID>>(kGetCrimeGoldNonviolent),
470  kShowRepairMenu = 377,
471  kSRM = static_cast<std::underlying_type_t<FunctionID>>(kShowRepairMenu),
472  kHasShout = 378,
473  kAddNote = 379,
474  kAN = static_cast<std::underlying_type_t<FunctionID>>(kAddNote),
475  kRemoveNote = 380,
476  kRN = static_cast<std::underlying_type_t<FunctionID>>(kRemoveNote),
477  kGetHasNote = 381,
478  kGetN = static_cast<std::underlying_type_t<FunctionID>>(kGetHasNote),
479  kAddToFaction = 382,
480  kAddFac = static_cast<std::underlying_type_t<FunctionID>>(kAddToFaction),
481  kRemoveFromFaction = 383,
482  kRemoveFac = static_cast<std::underlying_type_t<FunctionID>>(kRemoveFromFaction),
483  kDamageActorValue = 384,
484  kDamageAV = static_cast<std::underlying_type_t<FunctionID>>(kDamageActorValue),
485  kRestoreActorValue = 385,
486  kRestoreAV = static_cast<std::underlying_type_t<FunctionID>>(kRestoreActorValue),
487  kTriggerHUDShudder = 386,
488  kHudSH = static_cast<std::underlying_type_t<FunctionID>>(kTriggerHUDShudder),
489  kGetObjectiveFailed = 387,
490  kSetObjectiveFailed = 388,
491  kSetGlobalTimeMultiplier = 389,
492  kSGTM = static_cast<std::underlying_type_t<FunctionID>>(kSetGlobalTimeMultiplier),
493  kGetHitLocation = 390,
494  kIsPC1stPerson = 391,
495  kPC1st = static_cast<std::underlying_type_t<FunctionID>>(kIsPC1stPerson),
496  kPurgeCellBuffers = 392,
497  kPCB = static_cast<std::underlying_type_t<FunctionID>>(kPurgeCellBuffers),
498  kPushActorAway = 393,
499  kSetActorsAI = 394,
500  kClearOwnership = 395,
501  kGetCauseofDeath = 396,
502  kIsLimbGone = 397,
503  kIsWeaponInList = 398,
504  kPlayIdle = 399,
505  kApplyImageSpaceModifier = 400,
506  kIMod = static_cast<std::underlying_type_t<FunctionID>>(kApplyImageSpaceModifier),
507  kRemoveImageSpaceModifier = 401,
508  kRIMod = static_cast<std::underlying_type_t<FunctionID>>(kRemoveImageSpaceModifier),
509  kIsBribedbyPlayer = 402,
510  kGetRelationshipRank = 403,
511  kSetRelationshipRank = 404,
512  kSetCellImageSpace = 405,
513  kShowChargenMenu = 406,
514  kSCGM = static_cast<std::underlying_type_t<FunctionID>>(kShowChargenMenu),
515  kGetVATSValue = 407,
516  kIsKiller = 408,
517  kIsKillerObject = 409,
518  kGetFactionCombatReaction = 410,
519  kUseWeapon = 411,
520  kEvaluateSpellConditions = 412,
521  kESC = static_cast<std::underlying_type_t<FunctionID>>(kEvaluateSpellConditions),
522  kToggleMotionBlur = 413,
523  kTMB = static_cast<std::underlying_type_t<FunctionID>>(kToggleMotionBlur),
524  kExists = 414,
525  kGetGroupMemberCount = 415,
526  kGetGroupTargetCount = 416,
527  kSetObjectiveCompleted = 417,
528  kSetObjectiveDisplayed = 418,
529  kGetObjectiveCompleted = 419,
530  kGetObjectiveDisplayed = 420,
531  kSetImageSpace = 421,
532  kPipboyRadio = 422,
533  kPRad = static_cast<std::underlying_type_t<FunctionID>>(kPipboyRadio),
534  kRemovePerk = 423,
535  kDisableAllActors = 424,
536  kDisAA = static_cast<std::underlying_type_t<FunctionID>>(kDisableAllActors),
537  kGetIsFormType = 425,
538  kGetIsVoiceType = 426,
539  kGetPlantedExplosive = 427,
540  kCompleteAllObjectives = 428,
541  kIsScenePackageRunning = 429,
542  kGetHealthPercentage = 430,
543  kSetAudioMultithreading = 431,
544  kSAM = static_cast<std::underlying_type_t<FunctionID>>(kSetAudioMultithreading),
545  kGetIsObjectType = 432,
546  kShowChargenMenuParams = 433,
547  kSCGMP = static_cast<std::underlying_type_t<FunctionID>>(kShowChargenMenuParams),
548  kGetDialogueEmotion = 434,
549  kGetDialogueEmotionValue = 435,
550  kExitGame = 436,
551  kExit = static_cast<std::underlying_type_t<FunctionID>>(kExitGame),
552  kGetIsCreatureType = 437,
553  kPlayerCreatePotion = 438,
554  kPlayerEnchantObject = 439,
555  kShowWarning = 440,
556  kEnterTrigger = 441,
557  kMarkForDelete = 442,
558  kSetPlayerAIDriven = 443,
559  kGetInCurrentLocFormList = 444,
560  kGetInZone = 445,
561  kGetVelocity = 446,
562  kGetGraphVariableFloat = 447,
563  kHasPerk = 448,
564  kGetFactionRelation = 449,
565  kIsLastIdlePlayed = 450,
566  kSetNPCRadio = 451,
567  kSNR = static_cast<std::underlying_type_t<FunctionID>>(kSetNPCRadio),
568  kSetPlayerTeammate = 452,
569  kGetPlayerTeammate = 453,
570  kGetPlayerTeammateCount = 454,
571  kOpenActorContainer = 455,
572  kClearFactionPlayerEnemyFlag = 456,
573  kClearActorsFactionsPlayerEnemyFlag = 457,
574  kGetActorCrimePlayerEnemy = 458,
575  kGetCrimeGold = 459,
576  kSetCrimeGold = 460,
577  kModCrimeGold = 461,
578  kGetPlayerGrabbedRef = 462,
579  kIsPlayerGrabbedRef = 463,
580  kPlaceLeveledActorAtMe = 464,
581  kGetKeywordItemCount = 465,
582  kShowLockpickMenu = 466,
583  kSLPM = static_cast<std::underlying_type_t<FunctionID>>(kShowLockpickMenu),
584  kGetBroadcastState = 467,
585  kSetBroadcastState = 468,
586  kStartRadioConversation = 469,
587  kGetDestructionStage = 470,
588  kClearDestruction = 471,
589  kCastImmediateOnSelf = 472,
590  kCIOS = static_cast<std::underlying_type_t<FunctionID>>(kCastImmediateOnSelf),
591  kGetIsAlignment = 473,
592  kResetQuest = 474,
593  kSetQuestDelay = 475,
594  kIsProtected = 476,
595  kGetThreatRatio = 477,
596  kMatchFaceGeometry = 478,
597  kGetIsUsedItemEquipType = 479,
598  kGetPlayerName = 480,
599  kFireWeapon = 481,
600  kPayCrimeGold = 482,
601  kUnusedFunction2 = 483,
602  kMatchRace = 484,
603  kSetPCYoung = 485,
604  kSexChange = 486,
605  kIsCarryable = 487,
606  kGetConcussed = 488,
607  kSetZoneRespawns = 489,
608  kSetVATSTarget = 490,
609  kGetMapMarkerVisible = 491,
610  kResetInventory = 492,
611  kPlayerKnows = 493,
612  kGetPermanentActorValue = 494,
613  kGetPermAV = static_cast<std::underlying_type_t<FunctionID>>(kGetPermanentActorValue),
614  kGetKillingBlowLimb = 495,
615  kGoToJail = 496,
616  kCanPayCrimeGold = 497,
617  kServeTime = 498,
618  kGetDaysInJail = 499,
619  kEPAlchemyGetMakingPoison = 500,
620  kEPAlchemyEffectHasKeyword = 501,
621  kShowAllMapMarkers = 502,
622  kTMM = static_cast<std::underlying_type_t<FunctionID>>(kShowAllMapMarkers),
623  kGetAllowWorldInteractions = 503,
624  kResetAI = 504,
625  kSetRumble = 505,
626  kSetNoActivationSound = 506,
627  kClearNoActivationSound = 507,
628  kGetLastHitCritical = 508,
629  kAddMusic = 509,
630  kUnusedFunction3 = 510,
631  kUnusedFunction4 = 511,
632  kSetPCToddler = 512,
633  kIsCombatTarget = 513,
634  kTriggerScreenBlood = 514,
635  kTSB = static_cast<std::underlying_type_t<FunctionID>>(kTriggerScreenBlood),
636  kGetVATSRightAreaFree = 515,
637  kGetVATSLeftAreaFree = 516,
638  kGetVATSBackAreaFree = 517,
639  kGetVATSFrontAreaFree = 518,
640  kGetIsLockBroken = 519,
641  kIsPS3 = 520,
642  kIsWin32 = 521,
643  kGetVATSRightTargetVisible = 522,
644  kGetVATSLeftTargetVisible = 523,
645  kGetVATSBackTargetVisible = 524,
646  kGetVATSFrontTargetVisible = 525,
647  kAttachAshPile = 526,
648  kSetCriticalStage = 527,
649  kIsInCriticalStage = 528,
650  kRemoveFromAllFactions = 529,
651  kGetXPForNextLevel = 530,
652  kShowLockpickMenuDebug = 531,
653  kSLPMD = static_cast<std::underlying_type_t<FunctionID>>(kShowLockpickMenuDebug),
654  kForceSave = 532,
655  kGetInfamy = 533,
656  kGetInfamyViolent = 534,
657  kGetInfamyNonViolent = 535,
658  kUnusedFunction5 = 536,
659  kSin = 537,
660  kCos = 538,
661  kTan = 539,
662  kSqrt = 540,
663  kLog = 541,
664  kAbs = 542,
665  kGetQuestCompleted = 543,
666  kGetQC = static_cast<std::underlying_type_t<FunctionID>>(kGetQuestCompleted),
667  kUnusedFunction6 = 544,
668  kPipBoyRadioOff = 545,
669  kAutoDisplayObjectives = 546,
670  kIsGoreDisabled = 547,
671  kFadeSFX = 548,
672  kFSFX = static_cast<std::underlying_type_t<FunctionID>>(kFadeSFX),
673  kSetMinimalUse = 549,
674  kIsSceneActionComplete = 550,
675  kShowQuestStages = 551,
676  kSQS = static_cast<std::underlying_type_t<FunctionID>>(kShowQuestStages),
677  kGetSpellUsageNum = 552,
678  kForceRadioStationUpdate = 553,
679  kFRSU = static_cast<std::underlying_type_t<FunctionID>>(kForceRadioStationUpdate),
680  kGetActorsInHigh = 554,
681  kHasLoaded3D = 555,
682  kDisableAllMines = 556,
683  kSetLastExtDoorActivated = 557,
684  kKillQuestUpdates = 558,
685  kKQU = static_cast<std::underlying_type_t<FunctionID>>(kKillQuestUpdates),
686  kIsImageSpaceActive = 559,
687  kHasKeyword = 560,
688  kHasRefType = 561,
689  kLocationHasKeyword = 562,
690  kLocationHasRefType = 563,
691  kCreateEvent = 564,
692  kGetIsEditorLocation = 565,
693  kGetIsAliasRef = 566,
694  kGetIsEditorLocAlias = 567,
695  kIsSprinting = 568,
696  kIsBlocking = 569,
697  kHasEquippedSpell = 570,
698  kGetCurrentCastingType = 571,
699  kGetCasting = static_cast<std::underlying_type_t<FunctionID>>(kGetCurrentCastingType),
700  kGetCurrentDeliveryType = 572,
701  kGetDelivery = static_cast<std::underlying_type_t<FunctionID>>(kGetCurrentDeliveryType),
702  kEquipSpell = 573,
703  kGetAttackState = 574,
704  kGetAliasedRef = 575,
705  kGetEventData = 576,
706  kIsCloserToAThanB = 577,
707  kEquipShout = 578,
708  kGetEquippedShout = 579,
709  kIsBleedingOut = 580,
710  kUnlockWord = 581,
711  kTeachWord = 582,
712  kAddToContainer = 583,
713  kGetRelativeAngle = 584,
714  kSendAnimEvent = 585,
715  kSAE = static_cast<std::underlying_type_t<FunctionID>>(kSendAnimEvent),
716  kShout = 586,
717  kAddShout = 587,
718  kRemoveShout = 588,
719  kGetMovementDirection = 589,
720  kIsInScene = 590,
721  kGetRefTypeDeadCount = 591,
722  kGetRefTypeAliveCount = 592,
723  kApplyHavokImpulse = 593,
724  kGetIsFlying = 594,
725  kIsCurrentSpell = 595,
726  kSpellHasKeyword = 596,
727  kGetEquippedItemType = 597,
728  kGetLocationAliasCleared = 598,
729  kSetLocationAliasCleared = 599,
730  kGetLocAliasRefTypeDeadCount = 600,
731  kGetLocAliasRefTypeAliveCount = 601,
732  kIsWardState = 602,
733  kIsInSameCurrentLocAsRef = 603,
734  kIsInSameCurrentLocAsRefAlias = 604,
735  kLocAliasIsLocation = 605,
736  kGetKeywordDataForLocation = 606,
737  kSetKeywordDataForLocation = 607,
738  kGetKeywordDataForAlias = 608,
739  kSetKeywordDataForAlias = 609,
740  kLocAliasHasKeyword = 610,
741  kIsNullPackageData = 611,
742  kGetNumericPackageData = 612,
743  kIsFurnitureAnimType = 613,
744  kIsFurnitureEntryType = 614,
745  kGetHighestRelationshipRank = 615,
746  kGetLowestRelationshipRank = 616,
747  kHasAssociationTypeAny = 617,
748  kHasFamilyRelationshipAny = 618,
749  kGetPathingTargetOffset = 619,
750  kGetPathingTargetAngleOffset = 620,
751  kGetPathingTargetSpeed = 621,
752  kGetPathingTargetSpeedAngle = 622,
753  kGetMovementSpeed = 623,
754  kGetInContainer = 624,
755  kIsLocationLoaded = 625,
756  kIsLocAliasLoaded = 626,
757  kIsDualCasting = 627,
758  kDualCast = 628,
759  kGetVMQuestVariable = 629,
760  kGetVMScriptVariable = 630,
761  kIsEnteringInteractionQuick = 631,
762  kIsCasting = 632,
763  kGetFlyingState = 633,
764  kSetFavorState = 634,
765  kIsInFavorState = 635,
766  kHasTwoHandedWeaponEquipped = 636,
767  kIsExitingInstant = 637,
768  kIsInFriendStateWithPlayer = 638,
769  kGetWithinDistance = 639,
770  kGetActorValuePercent = 640,
771  kIsUnique = 641,
772  kGetLastBumpDirection = 642,
773  kCameraShake = 643,
774  kIsInFurnitureState = 644,
775  kGetIsInjured = 645,
776  kGetIsCrashLandRequest = 646,
777  kGetIsHastyLandRequest = 647,
778  kUpdateQuestInstanceGlobal = 648,
779  kSetAllowFlying = 649,
780  kIsLinkedTo = 650,
781  kGetKeywordDataForCurrentLocation = 651,
782  kGetInSharedCrimeFaction = 652,
783  kGetBribeAmount = 653,
784  kGetBribeSuccess = 654,
785  kGetIntimidateSuccess = 655,
786  kGetArrestedState = 656,
787  kGetArrestingActor = 657,
788  kClearArrestState = 658,
789  kEPTemperingItemIsEnchanted = 659,
790  kEPTemperingItemHasKeyword = 660,
791  kGetReceivedGiftValue = 661,
792  kGetGiftGivenValue = 662,
793  kForceLocIntoAlias = 663,
794  kGetReplacedItemType = 664,
795  kSetHorseActor = 665,
796  kPlayReferenceEffect = 666,
797  kPRE = static_cast<std::underlying_type_t<FunctionID>>(kPlayReferenceEffect),
798  kStopReferenceEffect = 667,
799  kSRE = static_cast<std::underlying_type_t<FunctionID>>(kStopReferenceEffect),
800  kPlayShaderParticleGeometry = 668,
801  kPSPG = static_cast<std::underlying_type_t<FunctionID>>(kPlayShaderParticleGeometry),
802  kStopShaderParticleGeometry = 669,
803  kSSPG = static_cast<std::underlying_type_t<FunctionID>>(kStopShaderParticleGeometry),
804  kApplyImageSpaceModifierCrossFade = 670,
805  kIModCF = static_cast<std::underlying_type_t<FunctionID>>(kApplyImageSpaceModifierCrossFade),
806  kRemoveImageSpaceModifierCrossFade = 671,
807  kRIModCF = static_cast<std::underlying_type_t<FunctionID>>(kRemoveImageSpaceModifierCrossFade),
808  kIsAttacking = 672,
809  kIsPowerAttacking = 673,
810  kIsLastHostileActor = 674,
811  kGetGraphVariableInt = 675,
812  kGetCurrentShoutVariation = 676,
813  kPlayImpactEffect = 677,
814  kPIE = static_cast<std::underlying_type_t<FunctionID>>(kPlayImpactEffect),
815  kShouldAttackKill = 678,
816  kSendStealAlarm = 679,
817  kSteal = static_cast<std::underlying_type_t<FunctionID>>(kSendStealAlarm),
818  kGetActivationHeight = 680,
819  kEPModSkillUsage_IsAdvanceSkill = 681,
820  kWornHasKeyword = 682,
821  kGetPathingCurrentSpeed = 683,
822  kGetPathingCurrentSpeedAngle = 684,
823  kKnockAreaEffect = 685,
824  kKAE = static_cast<std::underlying_type_t<FunctionID>>(kKnockAreaEffect),
825  kInterruptCast = 686,
826  kAddFormToFormList = 687,
827  kRevertFormList = 688,
828  kAddFormToLeveledList = 689,
829  kRevertLeveledList = 690,
830  kEPModSkillUsage_AdvanceObjectHasKeyword = 691,
831  kEPModSkillUsage_IsAdvanceAction = 692,
832  kEPMagic_SpellHasKeyword = 693,
833  kGetNoBleedoutRecovery = 694,
834  kSetNoBleedoutRecovery = 695,
835  kEPMagic_SpellHasSkill = 696,
836  kIsAttackType = 697,
837  kIsAllowedToFly = 698,
838  kHasMagicEffectKeyword = 699,
839  kIsCommandedActor = 700,
840  kIsStaggered = 701,
841  kIsRecoiling = 702,
842  kIsExitingInteractionQuick = 703,
843  kIsPathing = 704,
844  kGetShouldHelp = 705,
845  kHasBoundWeaponEquipped = 706,
846  kGetCombatTargetHasKeyword = 707,
847  kGCTHK = static_cast<std::underlying_type_t<FunctionID>>(kGetCombatTargetHasKeyword),
848  kUpdateLevel = 708,
849  kGetCombatGroupMemberCount = 709,
850  kGCGMC = static_cast<std::underlying_type_t<FunctionID>>(kGetCombatGroupMemberCount),
851  kIsIgnoringCombat = 710,
852  kGetLightLevel = 711,
853  kGLL = static_cast<std::underlying_type_t<FunctionID>>(kGetLightLevel),
854  kSavePCFace = 712,
855  kSPF = static_cast<std::underlying_type_t<FunctionID>>(kSavePCFace),
856  kSpellHasCastingPerk = 713,
857  kIsBeingRidden = 714,
858  kIsUndead = 715,
859  kGetRealHoursPassed = 716,
860  kUnequipAll = 717,
861  kIsUnlockedDoor = 718,
862  kIsHostileToActor = 719,
863  kGetTargetHeight = 720,
864  kIsPoison = 721,
865  kWornApparelHasKeywordCount = 722,
866  kGetItemHealthPercent = 723,
867  kEffectWasDualCast = 724,
868  kGetKnockStateEnum = 725,
869  kDoesNotExist = 726,
870  kUnequipItemSlot = 727,
871  kMountActor = 728,
872  kDismountActor = 729,
873  kIsOnFlyingMount = 730,
874  kCanFlyHere = 731,
875  kIsFlyingMountPatrolQueued = 732,
876  kIsFlyingMountFastTravelling = 733,
877  kIsOverEncumbered = 734,
878  kGetActorWarmth = 735,
879 
880  kTotal
881  };
882 
884  ~FUNCTION_DATA() = default;
885 
886  // members
888  std::uint16_t pad02; // 02
889  std::uint32_t pad04; // 04
890  void* params[2]; // 08
891  };
892  static_assert(sizeof(FUNCTION_DATA) == 0x18);
893 
895  {
896  public:
897  enum class OpCode : std::uint8_t
898  {
899  kEqualTo, // ==
900  kNotEqualTo, // !=
901  kGreaterThan, // >
902  kGreaterThanOrEqualTo, // >=
903  kLessThan, // <
904  kLessThanOrEqualTo, // <=
905  };
906 
908  {
910  ~GlobalOrFloat() = default;
911 
913  float f;
914  };
915  static_assert(sizeof(GlobalOrFloat) == 0x8);
916 
917  struct Flags
918  {
919  public:
920  Flags();
921  ~Flags() = default;
922 
923  // members
924  bool isOR: 1; // 0 - false == AND, true == OR
925  bool usesAliases: 1; // 1
926  bool global: 1; // 2
927  bool usePackData: 1; // 3
928  bool swapTarget: 1; // 4
929  OpCode opCode: 3; // 5
930  };
931  static_assert(sizeof(Flags) == 0x1);
932 
934  ~CONDITION_ITEM_DATA() = default;
935 
936  // members
938  ObjectRefHandle runOnRef; // 10 - kReference
939  std::uint32_t dataID; // 14
941  Flags flags; // 30
943  std::uint16_t pad32; // 32
944  std::uint32_t pad34; // 34
945  };
946  static_assert(sizeof(CONDITION_ITEM_DATA) == 0x30);
947 
949  {
950  public:
951  constexpr ConditionCheckParams(TESObjectREFR* a_actionRef, TESObjectREFR* a_targetRef) :
952  actionRef(a_actionRef),
953  targetRef(a_targetRef),
954  unk10(nullptr),
955  unk18(nullptr),
956  unk20(nullptr),
957  unk28(nullptr)
958  {}
959 
960  // members
963  void* unk10; // 10
964  void* unk18; // 18
965  void* unk20; // 20
966  void* unk28; // 28
967  };
968  static_assert(sizeof(ConditionCheckParams) == 0x30);
969 
970  struct TESConditionItem // CTDA
971  {
973  ~TESConditionItem() = default;
974 
976 
977  bool operator()(ConditionCheckParams& a_solution) const;
978  bool IsTrue(ConditionCheckParams& a_solution) const;
979 
980  // members
983  };
984  static_assert(sizeof(TESConditionItem) == 0x38);
985 
987  {
988  public:
991 
993 
994  [[nodiscard]] explicit operator bool() const;
995 
996  bool operator()(TESObjectREFR* a_actionRef, TESObjectREFR* a_targetRef) const;
997  bool IsTrue(TESObjectREFR* a_actionRef, TESObjectREFR* a_targetRef) const; // Perk fragments will short circuit
998 
999  // members
1001  };
1002  static_assert(sizeof(TESCondition) == 0x8);
1003 }
Definition: TESCondition.h:987
bool IsTrue(TESObjectREFR *a_actionRef, TESObjectREFR *a_targetRef) const
bool operator()(TESObjectREFR *a_actionRef, TESObjectREFR *a_targetRef) const
TESConditionItem * head
Definition: TESCondition.h:1000
Definition: TESGlobal.h:10
Definition: TESObjectREFR.h:103
Definition: AbsorbEffect.h:6
CONDITIONITEMOBJECT
Definition: TESCondition.h:12
Definition: TESCondition.h:918
bool swapTarget
Definition: TESCondition.h:928
bool global
Definition: TESCondition.h:926
bool usePackData
Definition: TESCondition.h:927
bool usesAliases
Definition: TESCondition.h:925
OpCode opCode
Definition: TESCondition.h:929
bool isOR
Definition: TESCondition.h:924
Definition: TESCondition.h:895
FUNCTION_DATA functionData
Definition: TESCondition.h:940
ObjectRefHandle runOnRef
Definition: TESCondition.h:938
std::uint16_t pad32
Definition: TESCondition.h:943
GlobalOrFloat comparisonValue
Definition: TESCondition.h:937
~CONDITION_ITEM_DATA()=default
OpCode
Definition: TESCondition.h:898
std::uint32_t dataID
Definition: TESCondition.h:939
stl::enumeration< CONDITIONITEMOBJECT, std::uint8_t > object
Definition: TESCondition.h:942
Flags flags
Definition: TESCondition.h:941
std::uint32_t pad34
Definition: TESCondition.h:944
Definition: TESCondition.h:949
void * unk10
Definition: TESCondition.h:963
void * unk18
Definition: TESCondition.h:964
TESObjectREFR * targetRef
Definition: TESCondition.h:962
constexpr ConditionCheckParams(TESObjectREFR *a_actionRef, TESObjectREFR *a_targetRef)
Definition: TESCondition.h:951
TESObjectREFR * actionRef
Definition: TESCondition.h:961
void * unk20
Definition: TESCondition.h:965
void * unk28
Definition: TESCondition.h:966
Definition: TESCondition.h:25
std::uint16_t pad02
Definition: TESCondition.h:888
std::uint32_t pad04
Definition: TESCondition.h:889
~FUNCTION_DATA()=default
FunctionID
Definition: TESCondition.h:30
void * params[2]
Definition: TESCondition.h:890
Definition: TESCondition.h:971
CONDITION_ITEM_DATA data
Definition: TESCondition.h:982
bool operator()(ConditionCheckParams &a_solution) const
bool IsTrue(ConditionCheckParams &a_solution) const
TESConditionItem * next
Definition: TESCondition.h:981
~TESConditionItem()=default
Definition: TESCondition.h:908
TESGlobal * g
Definition: TESCondition.h:912
float f
Definition: TESCondition.h:913