G1R AngelScript
Scripting reference for the Gothic 1 Remake
Loading...
Searching...
No Matches
UCrimeMemorySubsystem Class Reference

Public Member Functions

Functions
bool GetRelativeCrime (FRelativeCrimeDataEntry &RelativeCrimeEntryOutput, int CrimeID, AGothicCharacterState Character) const
 Find FRelativeCrimeDataEntry from memory by Crime ID and Owning Character returns true if Entry was found.
bool ChangeCrimeTimeCommitted (int CrimeID, FInGameTime NewTime)
 Overrides TimeCommited of Given Crime with new values return true if crime was found.
bool CharacterHasRelativeCrime (AGothicCharacterState Character, int CrimeID) const
FRelativeCrimeDataEntry ConvertCrimeToRelativeMemoryWithoutRemembering (AGothicCharacterState Witness, int CrimeId) const
 Returns a Relative Crime Memory that based on Witness and CrimeID, does NOT add it to memory.
void CreateRelativeMemoriesToCrime (AGothicCharacterState Witness, int CrimeId, const ERelativeCrimeOrigin &Origin)
 Create FRelativeCrimeDataEntry Object form Parameters and add it to Memory.
void DrawLocationImGuiIfPossible ()
void DrawPathwayImGuiIfPossible ()
TArray< int > FindGlobalCrimesWithCrimeTypeAndParticipants (FGameplayTag CrimeType, const FName CriminalID, TArray< FName > Victims) const
void ForceSyncAndRestartTimers ()
bool ForgiveCrime (int CrimeID)
 Forgive Crime of given ID, returns true if the Crime was found.
TArray< int > GetAllCrimesCommitedAfter (FInGameTime Time) const
TArray< int > GetAllCrimesCommitedBefore (FInGameTime Time) const
TArray< int > GetAllCrimesCommitedBy (const AGothicCharacterState Character) const
TArray< int > GetAllCrimesWithVictim (AGothicCharacterState Character) const
bool GetCrimeByID (FGlobalCrimeDataEntry &CrimeEntryOutput, int CrimeID) const
 Find FGlobalCrimeDataEntry from memory by ID returns true if Entry was found.
bool GetLocationCrimeEntry (FLocationMemoryCrimeDataEntry &LocationMemoryEntryOutput, const FGameplayTag GuildTag, const FGameplayTag LocationTag) const
 Find FLocationMemoryCrimeDataEntry from memory by Guild Tag and Associated Location Tag returns true if Entry was found.
const TArray< FLocationMemoryCrimeDataEntry > & GetLocationMemoriesOfArea (const FGameplayTag LocationTag) const
void AddCharacterAreaTags (AGothicCharacterState CharacterState, FGameplayTagContainer AreaTags)
 Add Character to Associated Area Tags Relation Creates new Map Entry if not existing already.
bool GetRelativeCrimesOfCharacter (TArray< FRelativeCrimeDataEntry > &RelativeCrimes, AGothicCharacterState Character) const
int RegisterCrime (AGothicCharacterState Criminal, TArray< AGothicCharacterState > &Victims, FGameplayTag CrimeType, FGameplayTag AreaTag, FInGameTime TimeCommited, FGameplayTagContainer VictimGuilds, bool bIsForgiven, const ECrimeAffectedEntitySource &AffectedEntitySource, TSubclassOf< UItemDefinition > ItemDefinitionClass, TSubclassOf< UInteractiveObjectDefinition > InteractiveObjectDefinitionClass, AGothicCharacterState TrueCriminal)
 Create FGlobalCrimeDataEntry Object form Parameters and add it to Memory.
void RegisterLocationCrimeEntry (FGameplayTag LocationTag, FGameplayTag AssociatedGuild, EAreaBoundMemoryContainerType ContainerType)
 Create FLocationMemoryCrimeDataEntry Object form Parameters and add it to Memory.
void RegisterLocationMemoryPathway (const float32 &GameHoursUntilSpread, FGameplayTag StartArea, FGameplayTag StartGuild, FGameplayTag EndArea, FGameplayTag EndGuild)
 Create FLocationMemorySpreadingPathway Object form Parameters and add it to Memory.
void RegisterLongtermMemoryTagForCrimeData (FGameplayTagContainer CrimeTypes, FGameplayTag AffectedGuild, FGameplayTag MemoryTag)
 Registers a Memory Tag that is saved in Long term memory when a Crime fitting the given parameters is spread from a base location Entry.
void RegisterRelativeCrimeEntry (FRelativeCrimeDataEntry RelativeCrimeEntry)
 Add FRelativeCrimeDataEntry Object to Memory.
void RegisterRelativeCrimeEntryFromParameters (AGothicCharacterState Instigator, AGothicCharacterState Witness, TArray< AGothicCharacterState > Victims, FGameplayTagContainer VictimGuilds, int CrimeID, FGameplayTag CrimeType)
 Create FRelativeCrimeDataEntry Object form Parameters and add it to Memory.
bool RemoveCrime (int CrimeID)
 Removes Crime of given ID Returns true if anything was removed.
bool RemoveCrimeEntryFromLocationMemory (int CrimeID, const FGameplayTag GuildTag, const FGameplayTag LocationTag)
 Removes given Crime ID from the Array of Crime IDs of given Location Memory.
bool RemoveLocationMemoryFromArea (const FGameplayTag GuildTag, const FGameplayTag LocationTag)
 Remove Location Memory of given Guild and Location Tag from that Location in LocationCrimeDataEntries.
bool RemoveRelativeCrimeOnCharacter (int RelativeCrimeID, AGothicCharacterState Character)
 Removes Relative Crime with given ID for Character Returns true if anything was removed.
void ReplaceCharacterAreaTags (AGothicCharacterState CharacterState, FGameplayTagContainer AreaTags)
 Replaces Characters Associated Area Tags with given Container Creates new Map Entry if not existing already.
bool SuppressRelativeCrime (int RelativeCrimeID, AGothicCharacterState Character)
 Suppress Relative Crime of given ID, returns true if the Relative Crime was found If a Character is given, only Relative Crimes associated with this character are suppressed.
Public Member Functions inherited from UObject
bool MarkPackageDirty () const
void RemoveFromRoot ()
bool GetIsRooted () const
bool IsTransient () const
bool Modify (bool bAlwaysMarkDirty=true)
void SetTransactional (bool bTransactional)
bool IsSupportedForNetworking () const
UClass GetClass () const
UObject GetOuter () const
UObject GetTypedOuter (TSubclassOf< UObject > Target) const
 Traverses the outer chain searching for the next object of a certain type.
UPackage GetOutermost () const
UPackage GetPackage () const
void AddToRoot ()
UWorld GetWorld () const
FName GetName () const
FString GetFullName (const UObject StopOuter=nullptr) const
FString GetPathName (const UObject StopOuter=nullptr) const
bool IsA (const UClass Class) const
 Returns true if this object is of the specified type, or a child of that type.
void SaveConfig ()
void LoadConfig ()
void ReloadConfig ()
void CopyScriptPropertiesFrom (const UObject OtherObject)
void opCast (?&Address) const
FString ToString () const

Static Public Member Functions

Static Functions
static UClass StaticClass ()
static UCrimeMemorySubsystem Get ()
static UCrimeMemorySubsystem Get (const UObject WorldContextObject)
Static Public Member Functions inherited from UWorldSubsystem
static UClass StaticClass ()
Static Public Member Functions inherited from USubsystem
static UClass StaticClass ()
Static Public Member Functions inherited from UObject
static UClass StaticClass ()

Public Attributes

CrimeMemorySubsystem
float32 SpreadMemoryTimeIntervalSeconds
float32 DefaultDeleteTimeHours
 Default time for a crime to be deleted after if not otherwise specified in CrimeTypeTagToDeleteTimeInHours.
FGameplayTagContainer CrimeTypesToNeverSync
 Any Crime Type listed here will be excluded form syncing to location memory and other characters.
FGameplayTagContainer CrimeTypesToNeverSave
 Any Crime Type listed here will be excluded form the save game.
FGameplayTagContainer CrimeTypesToNotSaveWhenForgiven
 Any Crime Type listed here will be excluded form the save game IF it was forgiven.
FGameplayTagContainer CrimeTypesForReactionVoicelines
TMap< FGameplayTag, float32 > CrimeTypeTagToDeleteTimeInHours
 Map of Crime types to the time in hours after which a Global Crime of that type will be deleted from memory.
float32 SyncLocationMemoryTimeIntervalSeconds
float32 MinAgeOfCrimeToSpreadToLocationMemoryInHours
FGameplayTagContainer SpeciesSpecificCrimeTags
 Crimes with these tags might not be spread if the Victims have a certain species.
FGameplayTagContainer SpeciesToIncludeForMemorySpreadOfSpeciesExclusiveCrimes
 If a Crime listed in SpeciesSpecificCrimeTags has 1 or more Victims with these species, it can be spread to location memory.
TSet< FName > CharacterGlobalIDsExcludedFromSpeciesSelection
 / if a Characters global ID is added here, if they are a Victim of a crime that usually wouldn't be spread due to their species, it will sitll be spread anyways
TArray< FClockTime > TimesToSyncLocationMemory
Public Attributes inherited from UObject
const UClass Class
const UObject Outer
const UPackage Outermost
const UPackage Package
const UWorld World
const FName Name
const bool IsRooted

Member Function Documentation

◆ AddCharacterAreaTags()

void AddCharacterAreaTags ( AGothicCharacterState CharacterState,
FGameplayTagContainer AreaTags )

Add Character to Associated Area Tags Relation Creates new Map Entry if not existing already.

◆ ChangeCrimeTimeCommitted()

bool ChangeCrimeTimeCommitted ( int CrimeID,
FInGameTime NewTime )

Overrides TimeCommited of Given Crime with new values return true if crime was found.

◆ CharacterHasRelativeCrime()

bool CharacterHasRelativeCrime ( AGothicCharacterState Character,
int CrimeID ) const

◆ ConvertCrimeToRelativeMemoryWithoutRemembering()

FRelativeCrimeDataEntry ConvertCrimeToRelativeMemoryWithoutRemembering ( AGothicCharacterState Witness,
int CrimeId ) const

Returns a Relative Crime Memory that based on Witness and CrimeID, does NOT add it to memory.

◆ CreateRelativeMemoriesToCrime()

void CreateRelativeMemoriesToCrime ( AGothicCharacterState Witness,
int CrimeId,
const ERelativeCrimeOrigin & Origin )

Create FRelativeCrimeDataEntry Object form Parameters and add it to Memory.

◆ DrawLocationImGuiIfPossible()

void DrawLocationImGuiIfPossible ( )

◆ DrawPathwayImGuiIfPossible()

void DrawPathwayImGuiIfPossible ( )

◆ FindGlobalCrimesWithCrimeTypeAndParticipants()

TArray< int > FindGlobalCrimesWithCrimeTypeAndParticipants ( FGameplayTag CrimeType,
const FName CriminalID,
TArray< FName > Victims ) const

◆ ForceSyncAndRestartTimers()

void ForceSyncAndRestartTimers ( )

◆ ForgiveCrime()

bool ForgiveCrime ( int CrimeID)

Forgive Crime of given ID, returns true if the Crime was found.

◆ Get() [1/2]

UCrimeMemorySubsystem Get ( )
static

◆ Get() [2/2]

UCrimeMemorySubsystem Get ( const UObject WorldContextObject)
static

◆ GetAllCrimesCommitedAfter()

TArray< int > GetAllCrimesCommitedAfter ( FInGameTime Time) const

◆ GetAllCrimesCommitedBefore()

TArray< int > GetAllCrimesCommitedBefore ( FInGameTime Time) const

◆ GetAllCrimesCommitedBy()

TArray< int > GetAllCrimesCommitedBy ( const AGothicCharacterState Character) const

◆ GetAllCrimesWithVictim()

TArray< int > GetAllCrimesWithVictim ( AGothicCharacterState Character) const

◆ GetCrimeByID()

bool GetCrimeByID ( FGlobalCrimeDataEntry & CrimeEntryOutput,
int CrimeID ) const

Find FGlobalCrimeDataEntry from memory by ID returns true if Entry was found.

◆ GetLocationCrimeEntry()

bool GetLocationCrimeEntry ( FLocationMemoryCrimeDataEntry & LocationMemoryEntryOutput,
const FGameplayTag GuildTag,
const FGameplayTag LocationTag ) const

Find FLocationMemoryCrimeDataEntry from memory by Guild Tag and Associated Location Tag returns true if Entry was found.

◆ GetLocationMemoriesOfArea()

const TArray< FLocationMemoryCrimeDataEntry > & GetLocationMemoriesOfArea ( const FGameplayTag LocationTag) const

◆ GetRelativeCrime()

bool GetRelativeCrime ( FRelativeCrimeDataEntry & RelativeCrimeEntryOutput,
int CrimeID,
AGothicCharacterState Character ) const

Find FRelativeCrimeDataEntry from memory by Crime ID and Owning Character returns true if Entry was found.

◆ GetRelativeCrimesOfCharacter()

bool GetRelativeCrimesOfCharacter ( TArray< FRelativeCrimeDataEntry > & RelativeCrimes,
AGothicCharacterState Character ) const

◆ RegisterCrime()

int RegisterCrime ( AGothicCharacterState Criminal,
TArray< AGothicCharacterState > & Victims,
FGameplayTag CrimeType,
FGameplayTag AreaTag,
FInGameTime TimeCommited,
FGameplayTagContainer VictimGuilds,
bool bIsForgiven,
const ECrimeAffectedEntitySource & AffectedEntitySource,
TSubclassOf< UItemDefinition > ItemDefinitionClass,
TSubclassOf< UInteractiveObjectDefinition > InteractiveObjectDefinitionClass,
AGothicCharacterState TrueCriminal )

Create FGlobalCrimeDataEntry Object form Parameters and add it to Memory.

◆ RegisterLocationCrimeEntry()

void RegisterLocationCrimeEntry ( FGameplayTag LocationTag,
FGameplayTag AssociatedGuild,
EAreaBoundMemoryContainerType ContainerType )

Create FLocationMemoryCrimeDataEntry Object form Parameters and add it to Memory.

◆ RegisterLocationMemoryPathway()

void RegisterLocationMemoryPathway ( const float32 & GameHoursUntilSpread,
FGameplayTag StartArea,
FGameplayTag StartGuild,
FGameplayTag EndArea,
FGameplayTag EndGuild )

Create FLocationMemorySpreadingPathway Object form Parameters and add it to Memory.

◆ RegisterLongtermMemoryTagForCrimeData()

void RegisterLongtermMemoryTagForCrimeData ( FGameplayTagContainer CrimeTypes,
FGameplayTag AffectedGuild,
FGameplayTag MemoryTag )

Registers a Memory Tag that is saved in Long term memory when a Crime fitting the given parameters is spread from a base location Entry.

◆ RegisterRelativeCrimeEntry()

void RegisterRelativeCrimeEntry ( FRelativeCrimeDataEntry RelativeCrimeEntry)

Add FRelativeCrimeDataEntry Object to Memory.

◆ RegisterRelativeCrimeEntryFromParameters()

void RegisterRelativeCrimeEntryFromParameters ( AGothicCharacterState Instigator,
AGothicCharacterState Witness,
TArray< AGothicCharacterState > Victims,
FGameplayTagContainer VictimGuilds,
int CrimeID,
FGameplayTag CrimeType )

Create FRelativeCrimeDataEntry Object form Parameters and add it to Memory.

◆ RemoveCrime()

bool RemoveCrime ( int CrimeID)

Removes Crime of given ID Returns true if anything was removed.

◆ RemoveCrimeEntryFromLocationMemory()

bool RemoveCrimeEntryFromLocationMemory ( int CrimeID,
const FGameplayTag GuildTag,
const FGameplayTag LocationTag )

Removes given Crime ID from the Array of Crime IDs of given Location Memory.

◆ RemoveLocationMemoryFromArea()

bool RemoveLocationMemoryFromArea ( const FGameplayTag GuildTag,
const FGameplayTag LocationTag )

Remove Location Memory of given Guild and Location Tag from that Location in LocationCrimeDataEntries.

◆ RemoveRelativeCrimeOnCharacter()

bool RemoveRelativeCrimeOnCharacter ( int RelativeCrimeID,
AGothicCharacterState Character )

Removes Relative Crime with given ID for Character Returns true if anything was removed.

◆ ReplaceCharacterAreaTags()

void ReplaceCharacterAreaTags ( AGothicCharacterState CharacterState,
FGameplayTagContainer AreaTags )

Replaces Characters Associated Area Tags with given Container Creates new Map Entry if not existing already.

◆ StaticClass()

UClass StaticClass ( )
static

◆ SuppressRelativeCrime()

bool SuppressRelativeCrime ( int RelativeCrimeID,
AGothicCharacterState Character )

Suppress Relative Crime of given ID, returns true if the Relative Crime was found If a Character is given, only Relative Crimes associated with this character are suppressed.

Member Data Documentation

◆ CharacterGlobalIDsExcludedFromSpeciesSelection

TSet<FName> CharacterGlobalIDsExcludedFromSpeciesSelection

/ if a Characters global ID is added here, if they are a Victim of a crime that usually wouldn't be spread due to their species, it will sitll be spread anyways

◆ CrimeTypesForReactionVoicelines

FGameplayTagContainer CrimeTypesForReactionVoicelines

◆ CrimeTypesToNeverSave

FGameplayTagContainer CrimeTypesToNeverSave

Any Crime Type listed here will be excluded form the save game.

◆ CrimeTypesToNeverSync

FGameplayTagContainer CrimeTypesToNeverSync

Any Crime Type listed here will be excluded form syncing to location memory and other characters.

◆ CrimeTypesToNotSaveWhenForgiven

FGameplayTagContainer CrimeTypesToNotSaveWhenForgiven

Any Crime Type listed here will be excluded form the save game IF it was forgiven.

◆ CrimeTypeTagToDeleteTimeInHours

TMap<FGameplayTag,float32> CrimeTypeTagToDeleteTimeInHours

Map of Crime types to the time in hours after which a Global Crime of that type will be deleted from memory.

◆ DefaultDeleteTimeHours

float32 DefaultDeleteTimeHours

Default time for a crime to be deleted after if not otherwise specified in CrimeTypeTagToDeleteTimeInHours.

◆ MinAgeOfCrimeToSpreadToLocationMemoryInHours

float32 MinAgeOfCrimeToSpreadToLocationMemoryInHours

◆ SpeciesSpecificCrimeTags

FGameplayTagContainer SpeciesSpecificCrimeTags

Crimes with these tags might not be spread if the Victims have a certain species.

◆ SpeciesToIncludeForMemorySpreadOfSpeciesExclusiveCrimes

FGameplayTagContainer SpeciesToIncludeForMemorySpreadOfSpeciesExclusiveCrimes

If a Crime listed in SpeciesSpecificCrimeTags has 1 or more Victims with these species, it can be spread to location memory.

◆ SpreadMemoryTimeIntervalSeconds

float32 SpreadMemoryTimeIntervalSeconds

◆ SyncLocationMemoryTimeIntervalSeconds

float32 SyncLocationMemoryTimeIntervalSeconds

◆ TimesToSyncLocationMemory

TArray<FClockTime> TimesToSyncLocationMemory