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