protected static void GetFactories(MetadataLogService metadataLogService, out ESMAnalyzer analyzer, out TES5ReferenceFactory referenceFactory, out TES5ValueFactory valueFactory, out TES5FragmentFactory fragmentFactory) { TES5ObjectCallFactory objectCallFactory; TES5ChainedCodeChunkFactory chainedCodeChunkFactory; TES5AdditionalBlockChangesPass additionalBlockChangesPass; GetFactories(metadataLogService, out analyzer, out objectCallFactory, out referenceFactory, out valueFactory, out chainedCodeChunkFactory, out additionalBlockChangesPass); fragmentFactory = new TES5FragmentFactory(chainedCodeChunkFactory, additionalBlockChangesPass); }
public ForceActorValueFactory(TES5ValueFactory valueFactory, TES5ObjectCallFactory objectCallFactory, TES5ObjectCallArgumentsFactory objectCallArgumentsFactory, TES5ReferenceFactory referenceFactory, TES5ObjectPropertyFactory objectPropertyFactory, ESMAnalyzer analyzer, TES5TypeInferencer typeInferencer, MetadataLogService metadataLogService) : base("ForceAV", "ForceActorValue", valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService) { }
public UnlockFactory(TES5ValueFactory valueFactory, TES5ObjectCallFactory objectCallFactory, TES5ObjectCallArgumentsFactory objectCallArgumentsFactory, TES5ReferenceFactory referenceFactory, TES5ObjectPropertyFactory objectPropertyFactory, ESMAnalyzer analyzer, TES5TypeInferencer typeInferencer, MetadataLogService metadataLogService) { this.objectCallArgumentsFactory = objectCallArgumentsFactory; this.valueFactory = valueFactory; this.referenceFactory = referenceFactory; this.analyzer = analyzer; this.objectPropertyFactory = objectPropertyFactory; this.typeInferencer = typeInferencer; this.metadataLogService = metadataLogService; this.objectCallFactory = objectCallFactory; }
public GetIsCurrentPackageFactory(TES5ReferenceFactory referenceFactory, TES5ObjectCallFactory objectCallFactory) { this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; }
public SetCellOwnershipFactory(TES5ObjectCallFactory objectCallFactory, TES5ObjectCallArgumentsFactory objectCallArgumentsFactory, TES5ReferenceFactory referenceFactory) { this.objectCallArgumentsFactory = objectCallArgumentsFactory; this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; }
public ObjectiveHandlingFactory(TES5ReferenceFactory referenceFactory) { this.referenceFactory = referenceFactory; }
public ITES5ValueCodeChunk ConvertFunction(ITES5Referencer calledOn, TES4Function function, TES5CodeScope codeScope, TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope) { TES5LocalScope localScope = codeScope.LocalScope; TES4FunctionArguments functionArguments = function.Arguments; //WARNING: This is not an exact implementation //According to cs.elderscrolls.com, its about being in the faction AND having an attack on them ( violent crime ) //It"s similar but groups all nonviolent wrongdoings ITES5Referencer factionReference = this.referenceFactory.CreateReadReference(functionArguments[0].StringValue, globalScope, multipleScriptsScope, localScope); TES5ObjectCallArguments arguments = new TES5ObjectCallArguments() { factionReference }; TES5ObjectCall isInFaction = this.objectCallFactory.CreateObjectCall(TES5ReferenceFactory.CreateReferenceToPlayer(), "IsInFaction", multipleScriptsScope, arguments); TES5TrueBooleanExpression leftExpression = TES5ExpressionFactory.CreateTrueBooleanExpression(isInFaction); TES5ObjectCall crimeGoldNonViolent = this.objectCallFactory.CreateObjectCall(factionReference, "GetCrimeGoldNonViolent", multipleScriptsScope); TES5ComparisonExpression rightExpression = TES5ExpressionFactory.CreateComparisonExpression(crimeGoldNonViolent, TES5ComparisonExpressionOperator.OPERATOR_GREATER, new TES5Integer(0)); TES5LogicalExpression logicalExpression = TES5ExpressionFactory.CreateLogicalExpression(leftExpression, TES5LogicalExpressionOperator.OPERATOR_AND, rightExpression); return(logicalExpression); }
public ModCrimeGoldFactory(TES5ReferenceFactory referenceFactory, TES5ObjectCallFactory objectCallFactory, TES5ObjectCallArgumentsFactory objectCallArgumentsFactory) { this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; this.objectCallArgumentsFactory = objectCallArgumentsFactory; }
public SetWeatherFactory(TES5ObjectCallFactory objectCallFactory, TES5ObjectCallArgumentsFactory objectCallArgumentsFactory, TES5ReferenceFactory referenceFactory) { this.objectCallFactory = objectCallFactory; this.objectCallArgumentsFactory = objectCallArgumentsFactory; this.referenceFactory = referenceFactory; }
public SetPCFactionMurderFactory(TES5ObjectCallFactory objectCallFactory, TES5ReferenceFactory referenceFactory) : base(objectCallFactory, referenceFactory) { }
public ITES5ValueCodeChunk ConvertFunction(ITES5Referencer calledOn, TES4Function function, TES5CodeScope codeScope, TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope) { TES5LocalScope localScope = codeScope.LocalScope; TES4FunctionArguments functionArguments = function.Arguments; //Made in post-analysis TES5ObjectCall race = this.objectCallFactory.CreateObjectCall(TES5ReferenceFactory.CreateReferenceToPlayer(), "GetRace", multipleScriptsScope); ITES5Referencer checkAgainst = this.referenceFactory.CreateReadReference(functionArguments[0].StringValue, globalScope, multipleScriptsScope, localScope); TES5ComparisonExpression expression = TES5ExpressionFactory.CreateComparisonExpression(race, TES5ComparisonExpressionOperator.OPERATOR_EQUAL, checkAgainst); return(expression); }
protected PayFineOrPayFineThiefFactory(TES5ObjectCallFactory objectCallFactory, TES5ReferenceFactory referenceFactory, bool payFineThief) { this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; this.payFineThief = payFineThief; }
public MessageBoxFactory(TES5ObjectCallFactory objectCallFactory, TES5ObjectCallArgumentsFactory objectCallArgumentsFactory, TES5ReferenceFactory referenceFactory, MetadataLogService metadataLogService) { this.objectCallArgumentsFactory = objectCallArgumentsFactory; this.referenceFactory = referenceFactory; this.metadataLogService = metadataLogService; this.objectCallFactory = objectCallFactory; this.messageBoxData = new MessageBoxData(); }
protected static void GetFactories(MetadataLogService metadataLogService, out ESMAnalyzer analyzer, out TES5ObjectCallFactory objectCallFactory, out TES5ReferenceFactory referenceFactory, out TES5BlockFactory blockFactory) { TES5ChainedCodeChunkFactory chainedCodeChunkFactory; TES5AdditionalBlockChangesPass additionalBlockChangesPass; GetFactories(metadataLogService, out analyzer, out objectCallFactory, out referenceFactory, out _, out chainedCodeChunkFactory, out additionalBlockChangesPass); TES5InitialBlockCodeFactory initialBlockCodeFactory = new TES5InitialBlockCodeFactory(referenceFactory, objectCallFactory); blockFactory = new TES5BlockFactory(chainedCodeChunkFactory, additionalBlockChangesPass, initialBlockCodeFactory, objectCallFactory); }
/* * Injects function handlers to value factory, as only two-way link in whole project */ public static void FillFunctions(TES5ValueFactory valueFactory, TES5ObjectCallFactory objectCallFactory, TES5ObjectCallArgumentsFactory objectCallArgumentsFactory, TES5ReferenceFactory referenceFactory, TES5ObjectPropertyFactory objectPropertyFactory, ESMAnalyzer analyzer, TES5TypeInferencer typeInferencer, MetadataLogService metadataLogService) { valueFactory.AddFunctionFactory("activate", new ActivateFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("addachievement", new FillerFactory()); valueFactory.AddFunctionFactory("additem", new AddOrRemoveItemFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("addscriptpackage", new AddScriptPackageFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("addspell", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("addtopic", new PopCalledRenameFunctionFactory("Add", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("autosave", new AutosaveFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("cast", new CastFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("clearownership", new ClearOwnershipFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("closecurrentobliviongate", new FillerFactory()); valueFactory.AddFunctionFactory("closeobliviongate", new FillerFactory()); valueFactory.AddFunctionFactory("completequest", new PopCalledRenameFunctionFactory("CompleteQuest", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("createfullactorcopy", new CreateFullActorCopyFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("deletefullactorcopy", new RenamedFunctionFactory("Delete", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("disablelinkedpathpoints", new FillerFactory()); valueFactory.AddFunctionFactory("disableplayercontrols", new DisablePlayerControlsFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("disable", new DisableFactory(objectCallFactory)); valueFactory.AddFunctionFactory("dispel", new RenamedFunctionFactory("DispelSpell", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("dropme", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("drop", new RenamedFunctionFactory("DropObject", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("duplicateallitems", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("enablefasttravel", new EnableFastTravelFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("enablelinkedpathpoints", new FillerFactory()); valueFactory.AddFunctionFactory("enableplayercontrols", new EnablePlayerControlsFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("enable", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("equipitem", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("essentialdeathreload", new FillerFactory()); valueFactory.AddFunctionFactory("evaluatepackage", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("forceactorvalue", new ForceActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("forcecloseobliviongate", new FillerFactory()); valueFactory.AddFunctionFactory("forceflee", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory));//WTM: Change: Added valueFactory.AddFunctionFactory("forceweather", new ForceWeatherFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getactionref", new GetActionRefFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getactorvalue", new GetActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getamountsoldstolen", new GetAmountSoldStolenFactory(objectCallFactory)); valueFactory.AddFunctionFactory("getangle", new GetAngleFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getarmorrating", new GetArmorRatingFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getattacked", new RenamedFunctionFactory("IsInCombat", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getbaseactorvalue", new GetBaseActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getbuttonpressed", new GetButtonPressedFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getclothingvalue", new GetClothingValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getcombattarget", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getcontainer", new GetContainerFactory(objectCallFactory)); valueFactory.AddFunctionFactory("getcrimegold", new GetCrimeGoldFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getcrimeknown", new ReturnFalseFactory()); valueFactory.AddFunctionFactory("getcrime", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getcurrentaipackage", new RenamedFunctionFactory("GetCurrentPackage", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getcurrentaiprocedure", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getcurrenttime", new GetCurrentTimeFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getdayofweek", new GetDayOfWeekFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getdeadcount", new PopCalledRenameFunctionFactory("GetDeadCount", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getdead", new RenamedFunctionFactory("IsDead", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getdestroyed", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getdetected", new GetDetectedFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getdisabled", new RenamedFunctionFactory("IsDisabled", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getdisposition", new GetDispositionFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getdistance", new GetDistanceFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getequipped", new RenamedFunctionFactory("IsEquipped", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getfactionrank", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getforcesneak", new ReturnFalseFactory()); valueFactory.AddFunctionFactory("getgamesetting", new GetGameSettingFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getgold", new RenamedFunctionFactory("GetGoldAmount", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getheadingangle", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getincell", new GetInCellFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getinfaction", new RenamedFunctionFactory("IsInFaction", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getinsamecell", new GetInSameCellFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getinworldspace", new GetInWorldspaceFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getisalerted", new RenamedFunctionFactory("IsAlerted", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getiscurrentpackage", new GetIsCurrentPackageFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getiscurrentweather", new GetIsCurrentWeatherFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getisid", new GetIsIdFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getisplayablerace", new GetIsPlayableRaceFactory(objectCallFactory)); valueFactory.AddFunctionFactory("getisplayerbirthsign", new NotSupportedFactory()); valueFactory.AddFunctionFactory("getisrace", new GetIsRaceFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getisreference", new GetIsReferenceFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getissex", new GetIsSexFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getitemcount", new GetItemCountFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getknockedstate", new ReturnTrueFactory()); valueFactory.AddFunctionFactory("getlevel", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getlocked", new RenamedFunctionFactory("IsLocked", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getlos", new RenamedFunctionFactory("HasLOS", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getopenstate", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getparentref", new RenamedFunctionFactory("GetEnableParent", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getpcexpelled", new PopCalledRenameFunctionFactory("IsPlayerExpelled", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getpcfactionmurder", new GetPCFactionMurderFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getpcfactionattack", new GetPCFactionAttackFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getpcfactionsteal", new GetPCFactionStealFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getpcfame", new GetPCFameFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getpcinfamy", new GetPCInfamyFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getpcisrace", new GetPCIsRaceFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getpcissex", new GetPCIsSexFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getpcmiscstat", new GetPCMiscStatFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getplayercontrolsdisabled", new ReturnFalseFactory()); valueFactory.AddFunctionFactory("getplayerinseworld", new GetPlayerInSEWorldFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getpos", new GetPosFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getquestrunning", new PopCalledRenameFunctionFactory("IsRunning", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getrandompercent", new GetRandomPercentFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getrestrained", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getsecondspassed", new GetSecondsPassedFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getself", new GetSelfFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getshouldattack", new ReturnFalseFactory()); valueFactory.AddFunctionFactory("getsleeping", new RenamedFunctionFactory("GetSleepState", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getstagedone", new PopCalledRenameFunctionFactory("GetStageDone", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getstage", new PopCalledRenameFunctionFactory("GetStage", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getstartingangle", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("getstartingpos", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("gettalkedtopc", new ReturnTrueFactory()); valueFactory.AddFunctionFactory("getweaponanimtype", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("gotojail", new GoToJailFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("hasmagiceffect", new HasMagicEffectFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("hasvampirefed", new ReturnFalseFactory()); valueFactory.AddFunctionFactory("isactionref", new IsActionRefFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("isactorusingatorch", new RenamedFunctionFactory("IsTorchOut", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("isactor", new IsActorFactory()); valueFactory.AddFunctionFactory("isanimplaying", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("isessential", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("isguard", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("isidleplaying", new ReturnTrueFactory()); valueFactory.AddFunctionFactory("isincombat", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("isindangerouswater", new ReturnFalseFactory()); valueFactory.AddFunctionFactory("isininterior", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("isowner", new IsOwnerFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("ispcamurderer", new IsPCAMurdererFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("ispcsleeping", new IsPCSleepingFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("isplayerinjail", new IsPlayerInJailFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("israining", new IsRainingFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("isridinghorse", new RenamedFunctionFactory("IsOnMount", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("issneaking", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("isspelltarget", new IsSpellTargetFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("isswimming", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("istalking", new RenamedFunctionFactory("IsInDialogueWithPlayer", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("istimepassing", new ReturnTrueFactory()); valueFactory.AddFunctionFactory("isweaponout", new RenamedFunctionFactory("IsWeaponDrawn", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("isxbox", new ReturnFalseFactory()); valueFactory.AddFunctionFactory("kill", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("lock", new LockFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("look", new RenamedFunctionFactory("SetLookAt", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("menumode", new MenumodeFactory(/*valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService*/));//WTM: Change: MenumodeFactory's constructor has no parameters. valueFactory.AddFunctionFactory("messagebox", new MessageBoxFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("message", new MessageFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("modactorvalue", new ModActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("modamountsoldstolen", new ModAmountSoldStolenFactory(objectCallFactory, objectCallArgumentsFactory));//WTM: Change: Added valueFactory.AddFunctionFactory("modcrimegold", new ModCrimeGoldFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("moddisposition", new ModDispositionFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("modfactionreaction", new PopCalledRenameFunctionFactory("ModReaction", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("modpcfame", new ModPCFameFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("modpcinfamy", new ModPCInfamyFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("modpcmiscstat", new FillerFactory()); valueFactory.AddFunctionFactory("movetomarker", new RenamedFunctionFactory("MoveTo", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("moveto", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("payfine", new PayFineFactory(objectCallFactory, referenceFactory)); valueFactory.AddFunctionFactory("payfinethief", new PayFineThiefFactory(objectCallFactory, referenceFactory));//WTM: Change: Added valueFactory.AddFunctionFactory("pickidle", new FillerFactory()); valueFactory.AddFunctionFactory("placeatme", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("playbink", new PlayBinkFactory(objectCallFactory, objectCallArgumentsFactory));//WTM: Change: Added valueFactory.AddFunctionFactory("playgroup", new PlayGroupFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("playmagiceffectvisuals", new FillerFactory()); valueFactory.AddFunctionFactory("playmagicshadervisuals", new FillerFactory()); valueFactory.AddFunctionFactory("playsound3d", new PlaySound3DFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("playsound", new PlaySoundFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("purgecellbuffers", new FillerFactory()); valueFactory.AddFunctionFactory("pushactoraway", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("refreshtopiclist", new FillerFactory()); valueFactory.AddFunctionFactory("releaseweatheroverride", new ReleaseWeatherOverrideFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("removeallitems", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("removeitem", new AddOrRemoveItemFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("removeme", new RemoveMeFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("removescriptpackage", new FillerFactory()); valueFactory.AddFunctionFactory("removespell", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("reset3dstate", new RenamedFunctionFactory("Reset", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("resetfalldamagetimer", new FillerFactory()); valueFactory.AddFunctionFactory("resethealth", new ResetHealthFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("resetinterior", new PopCalledRenameFunctionFactory("Reset", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("resurrect", new ResurrectFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("rotate", new RotateFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("sayto", new SayToFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("say", new SayFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("sendtrespassalarm", new FillerFactory()); valueFactory.AddFunctionFactory("setactoralpha", new SetActorAlphaFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setactorfullname", new FillerFactory()); valueFactory.AddFunctionFactory("setactorrefraction", new FillerFactory()); valueFactory.AddFunctionFactory("setactorsai", new RenamedFunctionFactory("EnableAI", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setactorvalue", new SetActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setalert", new SetAlertFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setallreachable", new FillerFactory()); valueFactory.AddFunctionFactory("setallvisible", new FillerFactory()); valueFactory.AddFunctionFactory("setangle", new SetAngleFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setcellfullname", new SetCellFullNameFactory(objectCallFactory, objectCallArgumentsFactory, referenceFactory)); //WTM: Change: Added valueFactory.AddFunctionFactory("setcellpublicflag", new SetCellPublicFlagFactory(objectCallFactory, objectCallArgumentsFactory, referenceFactory)); valueFactory.AddFunctionFactory("setcellownership", new SetCellOwnershipFactory(objectCallFactory, objectCallArgumentsFactory, referenceFactory)); //WTM: Change: Added valueFactory.AddFunctionFactory("setclass", new FillerFactory()); valueFactory.AddFunctionFactory("setcombatstyle", new FillerFactory()); valueFactory.AddFunctionFactory("setcrimegold", new SetCrimeGoldFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setdestroyed", new RenamedFunctionFactory("BlockActivation", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setdoordefaultopen", new FillerFactory()); valueFactory.AddFunctionFactory("setessential", new PopCalledRenameFunctionFactory("SetEssential", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setfactionrank", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setfactionreaction", new PopCalledRenameFunctionFactory("SetReaction", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setforcerun", new SetForceRunFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setforcesneak", new SetForceSneakFactory(objectCallFactory)); valueFactory.AddFunctionFactory("setghost", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setignorefriendlyhits", new FillerFactory()); valueFactory.AddFunctionFactory("setinchargen", new SetInChargenFactory(objectCallFactory));//WTM: Change: Added valueFactory.AddFunctionFactory("setinvestmentgold", new FillerFactory()); valueFactory.AddFunctionFactory("setitemvalue", new FillerFactory()); valueFactory.AddFunctionFactory("setlevel", new SetLevelFactory(objectCallFactory));//WTM: Change: Added valueFactory.AddFunctionFactory("setnoavoidance", new FillerFactory()); valueFactory.AddFunctionFactory("setnorumors", new FillerFactory()); valueFactory.AddFunctionFactory("setopenstate", new SetOpenStateFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setownership", new SetOwnershipFactory(objectCallFactory, objectCallArgumentsFactory, referenceFactory, analyzer)); valueFactory.AddFunctionFactory("setpackduration", new FillerFactory()); valueFactory.AddFunctionFactory("setpcexpelled", new PopCalledRenameFunctionFactory("SetPlayerExpelled", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setpcfactionattack", new SetPCFactionAttackFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setpcfactionmurder", new SetPCFactionMurderFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setpcfactionsteal", new SetPCFactionStealFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setpcfame", new SetPCFameFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setpcinfamy", new SetPCInfamyFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setplayerinseworld", new FillerFactory()); valueFactory.AddFunctionFactory("setpos", new SetPosFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setpublic", new SetCellPublicFlagFactory(objectCallFactory, objectCallArgumentsFactory, referenceFactory));//WTM: Change: Added valueFactory.AddFunctionFactory("setquestobject", new FillerFactory()); valueFactory.AddFunctionFactory("setrestrained", new FillerFactory()); valueFactory.AddFunctionFactory("setrigidbodymass", new FillerFactory()); valueFactory.AddFunctionFactory("setscale", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setsceneiscomplex", new FillerFactory()); valueFactory.AddFunctionFactory("setshowquestitems", new FillerFactory()); valueFactory.AddFunctionFactory("setstage", new PopCalledRenameFunctionFactory("SetStage", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setunconscious", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("setweather", new SetWeatherFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("showbirthsignmenu", new FillerFactory()); valueFactory.AddFunctionFactory("showclassmenu", new FillerFactory()); valueFactory.AddFunctionFactory("showdialogsubtitles", new FillerFactory()); valueFactory.AddFunctionFactory("showenchantment", new FillerFactory()); valueFactory.AddFunctionFactory("showmap", new ShowMapFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("showracemenu", new FillerFactory()); valueFactory.AddFunctionFactory("showspellmaking", new FillerFactory()); valueFactory.AddFunctionFactory("startcombat", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("startconversation", new StartConversationFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("startquest", new PopCalledRenameFunctionFactory("Start", referenceFactory, objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("stopcombatalarmonactor", new RenamedFunctionFactory("StopCombatAlarm", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("stopcombat", new StopCombatFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("stoplook", new StopLookFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("stopmagiceffectvisuals", new FillerFactory()); valueFactory.AddFunctionFactory("stopmagicshadervisuals", new FillerFactory()); valueFactory.AddFunctionFactory("stopwaiting", new FillerFactory()); valueFactory.AddFunctionFactory("stopquest", new StopQuestFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("trapupdate", new FillerFactory()); valueFactory.AddFunctionFactory("triggerhitshader", new FillerFactory()); valueFactory.AddFunctionFactory("unequipitem", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("unlock", new UnlockFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("wait", new FillerFactory()); valueFactory.AddFunctionFactory("wakeuppc", new NotSupportedFactory()); valueFactory.AddFunctionFactory("yield", new DefaultFunctionFactory(objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("evp", new RenamedFunctionFactory("EvaluatePackage", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("forceav", new ForceActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("fw", new ForceWeatherFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getav", new GetActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getbaseav", new GetBaseActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getgs", new GetGameSettingFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("getiscreature", new GetIsCreatureFactory(objectCallFactory));//WTM: Change: This previously used IsActorFactory. valueFactory.AddFunctionFactory("this", new GetSelfFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("isactordetected", new RenamedFunctionFactory("IsInCombat", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("modav", new ModActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("modpcskill", new ModActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("pme", new FillerFactory()); valueFactory.AddFunctionFactory("pms", new FillerFactory()); valueFactory.AddFunctionFactory("pcb", new FillerFactory()); valueFactory.AddFunctionFactory("scripteffectelapsedseconds", new GetSecondsPassedFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("saa", new SetActorAlphaFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("setav", new SetActorValueFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); valueFactory.AddFunctionFactory("sme", new FillerFactory()); valueFactory.AddFunctionFactory("scaonactor", new RenamedFunctionFactory("StopCombatAlarm", objectCallFactory, objectCallArgumentsFactory)); valueFactory.AddFunctionFactory("sms", new FillerFactory()); valueFactory.AddFunctionFactory("sw", new SetWeatherFactory(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService)); }
public GetPCInfamyFactory(TES5ReferenceFactory referenceFactory) { this.referenceFactory = referenceFactory; }
public PayFineThiefFactory(TES5ObjectCallFactory objectCallFactory, TES5ReferenceFactory referenceFactory) : base(objectCallFactory, referenceFactory, true) { }
private IEnumerable <TES5CodeBlock> CombineRepeatedEventCodeBlockNames(List <ITES5CodeBlock> blocks, string blockType, bool isStandalone, TES5GlobalScope globalScope) { ITES5CodeBlock[] nonEvents = blocks.Where(b => !(b is TES5EventCodeBlock)).ToArray(); if (nonEvents.Any()) { throw new ConversionException("Some non-event code blocks were present in " + nameof(CombineRepeatedEventCodeBlockNames) + ": " + string.Join("; ", nonEvents.Select(b => b.GetType().FullName))); } TES5EventCodeBlock[] eventBlocks = blocks.Cast <TES5EventCodeBlock>().ToArray(); List <TES5FunctionCodeBlock> functions = new List <TES5FunctionCodeBlock>(); TES5ObjectCallArguments? localScopeArguments = null; for (int i = 0; i < eventBlocks.Length; i++) { ITES5CodeBlock block = eventBlocks[i]; TES5FunctionScope newFunctionScope = new TES5FunctionScope(blockType + "_" + (i + 1).ToString()); foreach (var parameter in block.FunctionScope.GetParameters()) { newFunctionScope.AddParameter(parameter); } TES5FunctionCodeBlock function = new TES5FunctionCodeBlock(newFunctionScope, block.CodeScope, TES5VoidType.Instance, isStandalone, false); functions.Add(function); if (localScopeArguments == null) { localScopeArguments = new TES5ObjectCallArguments(); foreach (var parameter in block.FunctionScope.GetParameters()) { localScopeArguments.Add(TES5ReferenceFactory.CreateReferenceToVariableOrProperty(parameter)); } } } if (functions.Any()) { //Create the proxy block. ITES5CodeBlock lastBlock = blocks.Last(); TES5EventCodeBlock proxyBlock = TES5BlockFactory.CreateEventCodeBlock( //WTM: Change: block was used below, but block is out of scope. The PHP must have been using the last defined block from above. //WTM: Change: PHP called "clone" below, but I'm not sure if this is necessary or would even operate the same in C#. lastBlock.FunctionScope, globalScope); foreach (var function in functions) { yield return(function); TES5ObjectCall functionCall = this.objectCallFactory.CreateObjectCall(TES5ReferenceFactory.CreateReferenceToSelf(globalScope), function.BlockName, localScopeArguments, false// hacky. ); proxyBlock.AddChunk(functionCall); } yield return(proxyBlock); } /* * //This was not ultimately necessary. * IGrouping<string, TES5StateCodeBlock>[] states = blocks.OfType<TES5StateCodeBlock>().ToLookup(b => b.BlockName).ToArray(); * List<TES5CodeBlock> consolidatedStateCodeBlocks = states.Where(b => b.Count() == 1).SelectMany(b => b.Select(b2 => (TES5CodeBlock)b2).ToArray()).ToList(); * IGrouping<string, TES5StateCodeBlock>[] repeatedStateCodeBlocks = states.Where(b => b.Count() > 1).ToArray(); * for (int i = 0; i < repeatedStateCodeBlocks.Length; i++) * { * IGrouping<string, TES5StateCodeBlock> groupsWithSameName = repeatedStateCodeBlocks[i]; * TES5StateCodeBlock firstGroup = groupsWithSameName.First(); * foreach (var otherGroup in groupsWithSameName.Skip(1)) * { * foreach (ITES5CodeChunk chunk in otherGroup.CodeScope.CodeChunks) * { * firstGroup.AddChunk(chunk); * } * } * if (firstGroup.CodeBlocks.Blocks.Any()) * { * TES5CodeBlock[] reducedBlocks = CombineRepeatedCodeBlockNames(firstGroup.CodeBlocks.Blocks, blockType, isStandalone, globalScope, multipleScriptsScope).ToArray(); * firstGroup.CodeBlocks.Blocks.Clear(); * firstGroup.CodeBlocks.Blocks.AddRange(reducedBlocks); * } * consolidatedStateCodeBlocks.Add(firstGroup); * } * foreach(TES5CodeBlock codeBlock in consolidatedStateCodeBlocks) * { * yield return codeBlock; * } */ }
public SetActorValueFactory(TES5ValueFactory valueFactory, TES5ObjectCallFactory objectCallFactory, TES5ReferenceFactory referenceFactory) : base("SetAV", "SetActorValue", valueFactory, objectCallFactory, referenceFactory) { }
public ModActorValueFactory(TES5ReferenceFactory referenceFactory, TES5ValueFactory valueFactory, TES5ObjectCallFactory objectCallFactory) { this.valueFactory = valueFactory; this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; }
public IsOwnerFactory(TES5ObjectCallFactory objectCallFactory, TES5ReferenceFactory referenceFactory) { this.objectCallFactory = objectCallFactory; this.referenceFactory = referenceFactory; }
public ITES5ValueCodeChunk ConvertFunction(ITES5Referencer calledOn, TES4Function function, TES5CodeScope codeScope, TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope) { TES4FunctionArguments functionArguments = function.Arguments; TES5LocalScope localScope = codeScope.LocalScope; if (function.FunctionCall.FunctionName.Equals("modpcskill", StringComparison.OrdinalIgnoreCase)) { /* * MODPCSkill means we will need to call upon the player object */ calledOn = TES5ReferenceFactory.CreateReferenceToPlayer(globalScope); } TES5ObjectCallArguments convertedArguments = new TES5ObjectCallArguments(); string firstArgString = functionArguments[0].StringValue; string firstArgStringLower = firstArgString.ToLower(); switch (firstArgStringLower) { case "strength": case "intelligence": case "willpower": case "agility": case "speed": case "endurance": case "personality": case "luck": { if (!TES5PlayerReference.EqualsPlayer(calledOn.Name)) { //We can"t convert those.. and shouldn"t be any, too. throw new ConversionException(nameof(ModActorValueFactory) + ": Cannot set attributes on non-player. Name: " + calledOn.Name + ", Argument: " + firstArgString); } const string functionName = "SetValue"; string tes4AttrFirstArg = TES5ReferenceFactory.GetTES4AttrPlusName(firstArgStringLower); /* * Switch out callee with the reference to attr */ ITES5Referencer newCalledOn = this.referenceFactory.CreateReference(tes4AttrFirstArg, globalScope, multipleScriptsScope, localScope); ITES4StringValue secondArg = functionArguments[1]; ITES5Value addedValue = this.valueFactory.CreateValue(secondArg, codeScope, globalScope, multipleScriptsScope); convertedArguments.Add(TES5ExpressionFactory.CreateArithmeticExpression(addedValue, TES5ArithmeticExpressionOperator.OPERATOR_ADD, this.referenceFactory.CreateReadReference(tes4AttrFirstArg, globalScope, multipleScriptsScope, localScope))); return(this.objectCallFactory.CreateObjectCall(newCalledOn, functionName, convertedArguments)); } case "fatigue": case "armorer": case "security": case "acrobatics": case "mercantile": case "mysticism": //It doesn"t exist in Skyrim - defaulting to Illusion.. case "blade": case "blunt": case "encumbrance": case "spellabsorbchance": case "resistfire": case "resistfrost": case "resistdisease": case "resistmagic": case "resistpoison": case "resistshock": { const string functionName = "ModActorValue"; convertedArguments.Add(new TES5String(ActorValueMap.Map[firstArgStringLower])); ITES4StringValue secondArg = functionArguments[1]; convertedArguments.Add(this.valueFactory.CreateValue(secondArg, codeScope, globalScope, multipleScriptsScope)); return(this.objectCallFactory.CreateObjectCall(calledOn, functionName, convertedArguments)); } case "aggression": { const string functionName = "ModActorValue"; ITES4StringValue secondArg = functionArguments[1]; int secondArgData = (int)secondArg.Data; int newValue; if (secondArgData < -80) { newValue = -3; } else if (secondArgData >= -80 && secondArgData < -50) { newValue = -2; } else if (secondArgData >= -50 && secondArgData < 0) { newValue = -1; } else if (secondArgData == 0) { newValue = 0; } else if (secondArgData > 0 && secondArgData < 50) { newValue = 1; } else if (secondArgData >= 50 && secondArgData < 80) { newValue = 2; } else { newValue = 3; } convertedArguments.Add(new TES5String(firstArgString)); convertedArguments.Add(new TES5Float(newValue)); return(this.objectCallFactory.CreateObjectCall(calledOn, functionName, convertedArguments)); } case "confidence": { const string functionName = "ModActorValue"; ITES4StringValue secondArg = functionArguments[1]; int secondArgData = (int)secondArg.Data; int newValue; if (secondArgData == -100) { newValue = -4; } else if (secondArgData <= -70 && secondArgData > -100) { newValue = -3; } else if (secondArgData <= -30 && secondArgData > -70) { newValue = -2; } else if (secondArgData < 0 && secondArgData > -30) { newValue = -1; } else if (secondArgData == 0) { newValue = 0; } else if (secondArgData > 0 && secondArgData < 30) { newValue = 1; } else if (secondArgData >= 30 && secondArgData < 70) { newValue = 2; } else if (secondArgData >= 70 && secondArgData < 99) { newValue = 3; } else { newValue = 4; } convertedArguments.Add(new TES5String(firstArgString)); convertedArguments.Add(new TES5Float(newValue)); return(this.objectCallFactory.CreateObjectCall(calledOn, functionName, convertedArguments)); } default: { const string functionName = "ModActorValue"; convertedArguments.Add(new TES5String(firstArgString)); ITES4StringValue secondArg = functionArguments[1]; convertedArguments.Add(this.valueFactory.CreateValue(secondArg, codeScope, globalScope, multipleScriptsScope)); return(this.objectCallFactory.CreateObjectCall(calledOn, functionName, convertedArguments)); } } }
public GetPCFameFactory(TES5ReferenceFactory referenceFactory) { this.referenceFactory = referenceFactory; }
public GetDayOfWeekFactory(TES5ReferenceFactory referenceFactory, TES5ObjectCallFactory objectCallFactory, TES5ObjectCallArgumentsFactory objectCallArgumentsFactory) { this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; this.objectCallArgumentsFactory = objectCallArgumentsFactory; }
public PlaySound3DFactory(TES5ReferenceFactory referenceFactory, TES5ObjectCallFactory objectCallFactory) { this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; }
public GetActorValueFactory(TES5ReferenceFactory referenceFactory, TES5ObjectCallFactory objectCallFactory) { this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; }
public ModPCInfamyFactory(TES5ReferenceFactory referenceFactory, TES5ObjectCallFactory objectCallFactory) { this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; }
public ITES5ValueCodeChunk ConvertFunction(ITES5Referencer calledOn, TES4Function function, TES5CodeScope codeScope, TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope) { TES5LocalScope localScope = codeScope.LocalScope; const string functionName = "GetActorValue"; TES4FunctionArguments functionArguments = function.Arguments; //@TODO - This should be fixed on expression-parsing level, with agression and confidence checks adjusted accordingly. There are no retail uses, so im not doing this for now ;) ITES4StringValue firstArg = functionArguments[0]; string firstArgString = firstArg.StringValue; string firstArgStringLower = firstArgString.ToLower(); switch (firstArgStringLower) { case "strength": case "intelligence": case "willpower": case "agility": case "speed": case "endurance": case "personality": case "luck": { if (!TES5PlayerReference.EqualsPlayer(calledOn.Name)) { if (calledOn.TES5Type.NativeType == TES5BasicType.T_ACTOR) //WTM: Change: I added this if branch. { TES5ObjectCallArguments convertedArguments = new TES5ObjectCallArguments() { new TES5String(firstArgString) }; return(this.objectCallFactory.CreateObjectCall(calledOn, functionName, convertedArguments)); } //We can"t convert those.. and shouldn"t be any, too. throw new ConversionException(nameof(GetActorValueFactory) + ": Cannot get attributes on non-player. Name: " + calledOn.Name + ", Argument: " + firstArgString); } /* * Switch out callee with the reference to attr */ string tes4AttrFirstArg = TES5ReferenceFactory.GetTES4AttrPlusName(firstArgStringLower); return(this.referenceFactory.CreateReadReference(tes4AttrFirstArg, globalScope, multipleScriptsScope, localScope)); } case "fatigue": case "armorer": case "security": case "acrobatics": case "mercantile": case "mysticism": //It doesn"t exist in Skyrim - defaulting to Illusion.. case "blade": case "blunt": case "encumbrance": case "spellabsorbchance": case "resistfire": case "resistfrost": case "resistdisease": case "resistmagic": case "resistpoison": case "resistshock": { TES5ObjectCallArguments convertedArguments = new TES5ObjectCallArguments() { new TES5String(ActorValueMap.Map[firstArgStringLower]) }; return(this.objectCallFactory.CreateObjectCall(calledOn, functionName, convertedArguments)); } default: { TES5ObjectCallArguments convertedArguments = new TES5ObjectCallArguments() { new TES5String(firstArgString) }; return(this.objectCallFactory.CreateObjectCall(calledOn, functionName, convertedArguments)); } } }
public GetPCFactionAttackFactory(TES5ReferenceFactory referenceFactory, TES5ObjectCallFactory objectCallFactory) { this.referenceFactory = referenceFactory; this.objectCallFactory = objectCallFactory; }
private static void GetFactories(MetadataLogService metadataLogService, out ESMAnalyzer analyzer, out TES5ObjectCallFactory objectCallFactory, out TES5ReferenceFactory referenceFactory, out TES5ValueFactory valueFactory, out TES5ChainedCodeChunkFactory chainedCodeChunkFactory, out TES5AdditionalBlockChangesPass additionalBlockChangesPass) { analyzer = new ESMAnalyzer(DataDirectory.TES4GameFileName); TES5TypeInferencer typeInferencer = new TES5TypeInferencer(analyzer, BuildTarget.StandaloneSourcePath); TES5ObjectPropertyFactory objectPropertyFactory = new TES5ObjectPropertyFactory(typeInferencer); objectCallFactory = new TES5ObjectCallFactory(typeInferencer); referenceFactory = new TES5ReferenceFactory(objectCallFactory, objectPropertyFactory); valueFactory = new TES5ValueFactory(objectCallFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService); TES5ObjectCallArgumentsFactory objectCallArgumentsFactory = new TES5ObjectCallArgumentsFactory(valueFactory); TES5ValueFactoryFunctionFiller.FillFunctions(valueFactory, objectCallFactory, objectCallArgumentsFactory, referenceFactory, objectPropertyFactory, analyzer, typeInferencer, metadataLogService); TES5VariableAssignationConversionFactory assignationConversionFactory = new TES5VariableAssignationConversionFactory(objectCallFactory, referenceFactory, valueFactory, typeInferencer); TES5ReturnFactory returnFactory = new TES5ReturnFactory(objectCallFactory); chainedCodeChunkFactory = new TES5ChainedCodeChunkFactory(valueFactory, returnFactory, assignationConversionFactory); additionalBlockChangesPass = new TES5AdditionalBlockChangesPass(objectCallFactory, referenceFactory); }