From 1a5e92da18e2f933f920858adcb861132964dd9a Mon Sep 17 00:00:00 2001 From: Hazzer Date: Tue, 19 Mar 2024 23:46:38 +0100 Subject: [PATCH] release (#267) --- 1.4/Assemblies/PrisonLabor.dll | Bin 299008 -> 300032 bytes .../PrisonLaborCashRegistryCompatibility.dll | Bin 8192 -> 8192 bytes .../PrisonLaborCleaningAreaCompatibility.dll | Bin 8704 -> 8704 bytes .../PrisonLaborColonyGroupsCompatibility.dll | Bin 11264 -> 11264 bytes 1.4/Defs/Interrogation/InterrogationDefs.xml | 54 +-- .../Interrogation/InterrogationPatterns.xml | 41 +- .../PrisonLaborHospitalityCompatibility.dll | Bin 8192 -> 8192 bytes .../Defs/PL_Ideology_InterrogationDefs.xml | 55 +++ .../PrisonLaborKijinCompatibility.dll | Bin 7680 -> 7680 bytes .../PrisonLaborQuarryCompatibility.dll | Bin 5632 -> 5632 bytes .../PrisonLaborTherapyCompatibility.dll | Bin 11264 -> 11264 bytes About/About.xml | 2 +- README.md | 2 +- .../Core/Interrogation/InterrogationDefsOf.cs | 10 +- .../Ritual/JobGiver_Interrogate.cs | 1 + Source/Core/Meta/Version.cs | 3 +- Source/Core/Meta/VersionUtility.cs | 4 +- Source/HarmonyPatches/HPatcher.cs | 403 +++++++++--------- .../Patches_Work/Patch_Breastfeed.cs | 2 - .../Patch_WorkGiver_PrisonerFaction.cs | 7 +- .../Patches_Work/Patch_WorkGiver_Refuel.cs | 7 +- .../Patches_Work/Patch_WorkGiver_Repair.cs | 7 +- .../Patch_ResetWorktableWhenRecruited.cs | 2 +- Source/Organizer/NewsFeed.xml | 10 + changelog.txt | 4 + 25 files changed, 341 insertions(+), 273 deletions(-) create mode 100644 1.4/Ideology/Defs/PL_Ideology_InterrogationDefs.xml diff --git a/1.4/Assemblies/PrisonLabor.dll b/1.4/Assemblies/PrisonLabor.dll index df47e9d3daa9858bc919886440e2b6f07a30d874..4c420edc621f17ab0d626f5c67a5af54d8839506 100644 GIT binary patch delta 103335 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 diff --git a/1.4/CleaningArea/Assemblies/PrisonLaborCleaningAreaCompatibility.dll b/1.4/CleaningArea/Assemblies/PrisonLaborCleaningAreaCompatibility.dll index 553835b2782ae7522c87419b9729e2a50cfd25fb..84498a77a1bdded0c7ca23fa3e27a9b70c67be23 100644 GIT binary patch delta 83 zcmZp0X>gg)!Lp0(M9apWFI+4=O3X_)w{XXB2}m1BihjTI*lTTzsZh-}={cJ}h%z%V lT5kR#K8uNylYxbSk%57MbMthmL`IY=PW3jhR090&ja delta 83 zcmZp0X>gg)!6M;yVC%-7FI+6`N+L{~TexGm1XTYruNA0RTxz+f?1kx6HAB%?Z`#^grEdPyb+ z1~Bjdl1vP&3>B&j3@wrj42+WvmCQE>Fm~tpqr|*)vmXB}UV#s>F24P5 z&7HcI-ut#}p5VF7H)L9wS!XjcG)$dbC!#-jqJkBNiHV+xk&%h<|p}pSwL)J55$uN6?Y1K1F~R1zyZion5Zbm#N@E~3y|8(r}B%HNyT8Zpw@fFi3aQd D_R~2) delta 219 zcmZpOXo#55!Sc3>_2|SN8AiE@E5jL2O=e_NXZ>Nvz+f?1kx6HAB%?Z`%H&4IddYwG z3}D~^B$*gk87fp67#buQ7#JrTDw%H%VCrCHRM>ozJ&>KHT}gy#vmXB}UV$W+Jhrop zRZe?1J-Bf8pkDRn8#1lTtTP!I8YWM!6VabMQNfDM*iz5b*l6-)1#Qt)i4KcEb}#|) zEFd-jT4^v@RB@-!C#dBhSsn)PL_GenQuest
  • OpportunitySite_ItemStash
  • -
  • OpportunitySite_WorkSite
  • +
  • OpportunitySite_WorkSite
  • - - PL_InterrogationChair - - Not comfortable chair used to interrogate prisoners. - - Things/Building/Furniture/DiningChair - Graphic_Multi - (1,1) - - (0.25,0.234375,0.5,0.28125) - (0.25,0.234375,0.5,0.28125) - (0.28125,0.25,0.453125,0.25) - (0.28125,0.25,0.453125,0.25) - - - (0.23, 0.26, 0.23) - - - Building - - 100 - 8000 - 5 - 1.0 - 1 - 0.30 - 5 - - true - -
  • Metallic
  • -
  • Woody
  • -
    - 45 - 30 - Misc7 - 0.35 - South - 2410 - - true - true - - 4 - -
  • ComplexFurniture
  • -
    - -
  • -
  • - - PL_InterrogationRoom diff --git a/1.4/Defs/Interrogation/InterrogationPatterns.xml b/1.4/Defs/Interrogation/InterrogationPatterns.xml index cbe8b30..44e5800 100644 --- a/1.4/Defs/Interrogation/InterrogationPatterns.xml +++ b/1.4/Defs/Interrogation/InterrogationPatterns.xml @@ -22,7 +22,7 @@ PL_Interrogation false PL_Interrogation - SelectedThing + PL_SelectedThing PL_InterrogationRoom PL_Interrogation false @@ -93,7 +93,7 @@
  • warden - DeliverPawnToCell + PL_DeliverPawnToCell
  • @@ -123,7 +123,7 @@
  • prisoner - StandOnCell + PL_StandOnCell
  • @@ -145,12 +145,43 @@
  • - Speech_Ideoligious_Male - Speech_Ideoligious_Female + Speech_Ideoligious_Male + Speech_Ideoligious_Female
  • + + PL_DeliverPawnToCell + HighPriority + Off + + + +
  • + true + Jog +
  • +
    +
    +
    + + PL_StandOnCell + + + +
  • + 60 +
  • + +
    +
    +
    + + + PL_SelectedThing + RitualTargetFilter_SelectedThing + PL_Interrogate PrisonLabor.Core.Interrogation.Ritual.JobDriver_Interrogate diff --git a/1.4/Hospitality/Assemblies/PrisonLaborHospitalityCompatibility.dll b/1.4/Hospitality/Assemblies/PrisonLaborHospitalityCompatibility.dll index 6880cbbf8cbd829131032dd81b509997b4781d53..a7937e7a4908914d45821770fc4dd6162b81698c 100644 GIT binary patch delta 73 zcmZp0XmFU&!6MMIeBs8P7s3Kp9=O?mKlsFbbw+>3`Dgc!Z*CEJ&&X)GxkOBgiIbCo ag@KWQfq`@LbcsZe=ugS}AnK;HItu`t6dV5l delta 73 zcmZp0XmFU&!P303|INmp7s3MfdQ4aS%sJ?{Oe63>o@2qr%`GDD85u1$mxxI*adI%Q aFfcMOFmP<1E|CZl{V91LMBS8DX8{0fl^U1; diff --git a/1.4/Ideology/Defs/PL_Ideology_InterrogationDefs.xml b/1.4/Ideology/Defs/PL_Ideology_InterrogationDefs.xml new file mode 100644 index 0000000..c811234 --- /dev/null +++ b/1.4/Ideology/Defs/PL_Ideology_InterrogationDefs.xml @@ -0,0 +1,55 @@ + + + + PL_InterrogationChair + + Not comfortable chair used to interrogate prisoners. + + Things/Building/Furniture/DiningChair + Graphic_Multi + (1,1) + + (0.25,0.234375,0.5,0.28125) + (0.25,0.234375,0.5,0.28125) + (0.28125,0.25,0.453125,0.25) + (0.28125,0.25,0.453125,0.25) + + + (0.23, 0.26, 0.23) + + + Building + + 100 + 8000 + 5 + 1.0 + 1 + 0.30 + 5 + + true + +
  • Metallic
  • +
  • Woody
  • +
    + 45 + 30 + Misc7 + 0.35 + South + 2410 + + true + true + + 4 + +
  • ComplexFurniture
  • +
    + +
  • +
  • + + + \ No newline at end of file diff --git a/1.4/Kijin/Assemblies/PrisonLaborKijinCompatibility.dll b/1.4/Kijin/Assemblies/PrisonLaborKijinCompatibility.dll index d750c5b9afbba5f41e9120885f936bf1df2ad954..6f62230c184683a2eb588671e9e9b8872b8022db 100644 GIT binary patch delta 83 zcmZp$X|S2l!NRo7@ZiQCCN7p9CFZ4@Cvg>V3hZN9Y_c>&-g*0x_TBbss!^LoM6NS3 kT5f(Lx`>IBlYxbSk%57MbMthGP>|?b$=x7orF1wG0GQeuCjbBd delta 83 zcmZp$X|S2l!6Mz&@nmBU6BkRnk_gl0NnAyo0;;#xYz&T>?KxNdcg)%MY9}{~h+Jo6 kwAlPcbP*FL2LlTOBLf2i$L8r0p&-$>lDk3FO6hPW0Q00A5&!@I diff --git a/1.4/Quarry/Assemblies/PrisonLaborQuarryCompatibility.dll b/1.4/Quarry/Assemblies/PrisonLaborQuarryCompatibility.dll index 381ffd8cfc405065b6007d837d64a96e91bea5cf..5ef90a6efca84ad80db5049de7fb174df9192f5b 100644 GIT binary patch delta 83 zcmZqBY0#O_!BQigGj(H63L8t067$l{U)UzF3OHVN&pC9k+o>%m?!xVr2mWlH!ehtC kXu0_^?`|eeP6ieRMg|53&dt*WLP4T$1rLL$jl%v+06G61S^xk5 delta 83 zcmZqBY0#O_!NU1k@5IKQ6gHN2B@w30U)UzF3T%8hA^(5MYKN8sB^K`&F3H?Hg~yJO k(PHyu-rY=`91JWBj0_A69Gj;Lgn~rh3LXYg8-@Lu06Cf+9{>OV diff --git a/1.4/Therapy/Assemblies/PrisonLaborTherapyCompatibility.dll b/1.4/Therapy/Assemblies/PrisonLaborTherapyCompatibility.dll index a6d894a31e96190a0f040499e4665cf8d83b5f95..84c2ab8a469d1346265a451d4c1b4b5ad97fa099 100644 GIT binary patch delta 83 zcmZpOXo#55!NMsm*}t(TN`R$DiFxVfR|4z!1oVU-?Aa&Q;yW>KsUpYY^6t$m`<*8$JL4 delta 83 zcmZpOXo#55!E$HQ*5ey{q6Apll|+~}zY^p|{qA8ifD= diff --git a/About/About.xml b/About/About.xml index 1762220..b2f9c05 100644 --- a/About/About.xml +++ b/About/About.xml @@ -35,7 +35,7 @@ - Version 1.4.8 + Version 1.4.9 This mod force prisoners to work. To enable this feature prisoners must have "Force to work" option checked ("Prisoner" tab). Prison labor needs management that consist: - Motivation - prisoners need to be motivated by presence of colonists. Wardens have new job - supervising prisoners. Low motivation can lead to revolts. diff --git a/README.md b/README.md index 64640f4..5a8acb7 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

    - v1.4.8 + v1.4.9

    diff --git a/Source/Core/Interrogation/InterrogationDefsOf.cs b/Source/Core/Interrogation/InterrogationDefsOf.cs index c8c9be7..0c52ca7 100644 --- a/Source/Core/Interrogation/InterrogationDefsOf.cs +++ b/Source/Core/Interrogation/InterrogationDefsOf.cs @@ -9,16 +9,24 @@ namespace PrisonLabor.Core.Interrogation { - [DefOf] + [DefOf] public static class InterrogationDefsOf { + [MayRequireIdeology] public static InterrogationQuestGenDef PL_GenQuest; + [MayRequireIdeology] public static ThoughtDef PL_BitMe; + [MayRequireIdeology] public static ThoughtDef PL_KindInterrogation; + [MayRequireIdeology] public static ThoughtDef PL_Interrogated; + [MayRequireIdeology] public static ThoughtDef PL_BrutallyInterrogated; + [MayRequireIdeology] public static JobDef PL_Interrogate; + [MayRequireIdeology] public static InteractionDef PL_InterrogateInteraction; + [MayRequireIdeology] public static InteractionDef PL_BeIntrrogatedInteraction; } } diff --git a/Source/Core/Interrogation/Ritual/JobGiver_Interrogate.cs b/Source/Core/Interrogation/Ritual/JobGiver_Interrogate.cs index 5c5f948..70c859f 100644 --- a/Source/Core/Interrogation/Ritual/JobGiver_Interrogate.cs +++ b/Source/Core/Interrogation/Ritual/JobGiver_Interrogate.cs @@ -45,6 +45,7 @@ protected override Job TryGiveJob(Pawn pawn) { job.interaction = lordToil_Ritual.stage.BehaviorForRole(lordJob_Ritual.RoleFor(pawn).id).speakerInteraction; } + job.speechSoundMale = (soundDefMale ?? SoundDefOf.Speech_Leader_Male); job.speechSoundFemale = (soundDefFemale ?? SoundDefOf.Speech_Leader_Female); job.speechFaceSpectatorsIfPossible = faceSpectatorsIfPossible; diff --git a/Source/Core/Meta/Version.cs b/Source/Core/Meta/Version.cs index 2c0d6ab..e724939 100644 --- a/Source/Core/Meta/Version.cs +++ b/Source/Core/Meta/Version.cs @@ -88,6 +88,7 @@ public enum Version v1_4_5, v1_4_6, v1_4_7, - v1_4_8 + v1_4_8, + v1_4_9 } } diff --git a/Source/Core/Meta/VersionUtility.cs b/Source/Core/Meta/VersionUtility.cs index fbe4cf3..fb65562 100644 --- a/Source/Core/Meta/VersionUtility.cs +++ b/Source/Core/Meta/VersionUtility.cs @@ -5,8 +5,8 @@ namespace PrisonLabor.Core.Meta { public class VersionUtility { - public const Version versionNumber = Version.v1_4_8; - public const string versionString = "1.4.8"; + public const Version versionNumber = Version.v1_4_9; + public const string versionString = "1.4.9"; public static Version VersionOfSaveFile { get; set; } diff --git a/Source/HarmonyPatches/HPatcher.cs b/Source/HarmonyPatches/HPatcher.cs index 4e56782..7604fb7 100644 --- a/Source/HarmonyPatches/HPatcher.cs +++ b/Source/HarmonyPatches/HPatcher.cs @@ -10,220 +10,227 @@ namespace PrisonLabor.HarmonyPatches { - public static class HPatcher + public static class HPatcher + { + + static readonly MethodInfo getFactionMethod = AccessTools.PropertyGetter(typeof(Thing), nameof(Thing.Faction)); + // For logging purposes, it stores whenever each fragment was completed + private static Dictionary fragments; + + public static void Init() { - // For logging purposes, it stores whenever each fragment was completed - private static Dictionary fragments; + var harmony = new Harmony("Harmony_PrisonLabor"); - public static void Init() - { - var harmony = new Harmony("Harmony_PrisonLabor"); - - // SECTION - Classic patches - try - { - // Clear old data, to avoid misleading info - fragments = new Dictionary(); - - harmony.PatchAll(Assembly.GetExecutingAssembly()); - - // Print out not completed methods - foreach (var f in fragments.Keys) - { - if (!fragments[f]) - Log.Error($"PrisonLaborWarning: Harmony patch failed to find \"{f}\" fragment."); - } - } - catch (Exception e) - { - Log.Error($"PrisonLaborException: failed to proceed harmony patches: {e.InnerException.Message}"); - Log.Error(e.ToString()); - } - } + // SECTION - Classic patches + try + { + // Clear old data, to avoid misleading info + fragments = new Dictionary(); - /// - /// CIL Debugging method. Creates debug file on desktop that list all CIL code instructions in the method. - /// - /// - /// - public static void CreateDebugFileOnDesktop(string fileName, IEnumerable instr) - { - // Set a variable to the Desktop path. - string myDesktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - - // Write the string array to a new file. - using (StreamWriter outputFile = new StreamWriter(myDesktopPath + @"\" + fileName + ".txt")) - { - outputFile.WriteLine("================"); - outputFile.WriteLine("Body of " + fileName + " method", fileName); - outputFile.WriteLine("================"); - foreach (CodeInstruction instruction in instr) - { - var instructionString = instruction.opcode.ToString(); - instructionString += " | "; - instructionString += instruction.operand is Label ? $"Label {instruction.operand.GetHashCode()}" : instruction.operand; - instructionString += " | "; - if (instruction.labels.Count > 0) - foreach (var label in instruction.labels) - instructionString += $"Label {label.GetHashCode()}"; - else - instructionString += "no labels"; - outputFile.WriteLine(instructionString); - } - } - } + harmony.PatchAll(Assembly.GetExecutingAssembly()); - /// - /// This method is used to add some CIL instructions after certain fragment in original code. - /// It should be used inside foreach loop, and return true if particular iteration is the desired one. - /// - /// - /// - /// - /// - /// - public static bool IsFragment(OpCode[] opCodes, String[] operands, CodeInstruction instr, ref int step, string fragmentName, bool perfectMatch = true) + // Print out not completed methods + foreach (var f in fragments.Keys) { - if (opCodes.Length != operands.Length) - { - Log.Error("PrisonLaborException: IsFragment() arguments does not match requirments. Trace:" + new StackTrace()); - return false; - } - - if (!fragments.ContainsKey(fragmentName)) - fragments.Add(fragmentName, false); - if (step < 0 || step >= opCodes.Length) - { - return false; - } - - var finalStep = opCodes.Length; - - - if (InstructionMatching(instr, opCodes[step], operands[step], perfectMatch)) - step++; - else - step = 0; - - if (step == finalStep) - { - step++; - fragments[fragmentName] = true; - return true; - } - return false; + if (!fragments[f]) + Log.Error($"PrisonLaborWarning: Harmony patch failed to find \"{f}\" fragment."); } + } + catch (Exception e) + { + Log.Error($"PrisonLaborException: failed to proceed harmony patches: {e.InnerException.Message}"); + Log.Error(e.ToString()); + } + } - /// - /// This method is used to find particular label that is assigned to last instruction's operand - /// - /// - /// - /// - /// - /// - public static object FindOperandAfter(OpCode[] opCodes, String[] operands, IEnumerable instr, bool perfectMatch = true) + /// + /// CIL Debugging method. Creates debug file on desktop that list all CIL code instructions in the method. + /// + /// + /// + public static void CreateDebugFileOnDesktop(string fileName, IEnumerable instr) + { + // Set a variable to the Desktop path. + string myDesktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); + + // Write the string array to a new file. + using (StreamWriter outputFile = new StreamWriter(myDesktopPath + @"\" + fileName + ".txt")) + { + outputFile.WriteLine("================"); + outputFile.WriteLine("Body of " + fileName + " method", fileName); + outputFile.WriteLine("================"); + foreach (CodeInstruction instruction in instr) { - if (opCodes.Length != operands.Length) - { - Log.Error("PrisonLaborException: FindOperandAfter() arguments does not match requirments. Trace:" + new StackTrace()); - return null; - } - - var finalStep = opCodes.Length; - - int step = 0; - foreach (var ci in instr) - { - if (InstructionMatching(ci, opCodes[step], operands[step], perfectMatch)) - step++; - else - step = 0; - - if (step == finalStep) - return ci.operand; - } - - Log.Error("PrisonLaborException: FindOperandAfter() didn't find any lines. Trace:" + new StackTrace()); - return null; + var instructionString = instruction.opcode.ToString(); + instructionString += " | "; + instructionString += instruction.operand is Label ? $"Label {instruction.operand.GetHashCode()}" : instruction.operand; + instructionString += " | "; + if (instruction.labels.Count > 0) + foreach (var label in instruction.labels) + instructionString += $"Label {label.GetHashCode()}"; + else + instructionString += "no labels"; + outputFile.WriteLine(instructionString); } + } + } - public static IEnumerable ReplaceFragment(OpCode[] opCodes, String[] operands, IEnumerable instr, IEnumerable newFragment, string fragmentName, bool perfectMatch = true) + /// + /// This method is used to add some CIL instructions after certain fragment in original code. + /// It should be used inside foreach loop, and return true if particular iteration is the desired one. + /// + /// + /// + /// + /// + /// + public static bool IsFragment(OpCode[] opCodes, String[] operands, CodeInstruction instr, ref int step, string fragmentName, bool perfectMatch = true) + { + if (opCodes.Length != operands.Length) + { + Log.Error("PrisonLaborException: IsFragment() arguments does not match requirments. Trace:" + new StackTrace()); + return false; + } + + if (!fragments.ContainsKey(fragmentName)) + fragments.Add(fragmentName, false); + if (step < 0 || step >= opCodes.Length) + { + return false; + } + + var finalStep = opCodes.Length; + + + if (InstructionMatching(instr, opCodes[step], operands[step], perfectMatch)) + step++; + else + step = 0; + + if (step == finalStep) + { + step++; + fragments[fragmentName] = true; + return true; + } + return false; + } + + /// + /// This method is used to find particular label that is assigned to last instruction's operand + /// + /// + /// + /// + /// + /// + public static object FindOperandAfter(OpCode[] opCodes, String[] operands, IEnumerable instr, bool perfectMatch = true) + { + if (opCodes.Length != operands.Length) + { + Log.Error("PrisonLaborException: FindOperandAfter() arguments does not match requirments. Trace:" + new StackTrace()); + return null; + } + + var finalStep = opCodes.Length; + + int step = 0; + foreach (var ci in instr) + { + if (InstructionMatching(ci, opCodes[step], operands[step], perfectMatch)) + step++; + else + step = 0; + + if (step == finalStep) + return ci.operand; + } + + Log.Error("PrisonLaborException: FindOperandAfter() didn't find any lines. Trace:" + new StackTrace()); + return null; + } + + public static IEnumerable ReplaceFragment(OpCode[] opCodes, String[] operands, IEnumerable instr, IEnumerable newFragment, string fragmentName, bool perfectMatch = true) + { + // Convert to list, to freely jump between lines + var instructions = instr.ToList(); + + // Find last index of fragment + int index = -1; + int step = 0; + for (int i = 0; i < instructions.Count; i++) + { + if (HPatcher.IsFragment(opCodes, operands, instructions[i], ref step, fragmentName, perfectMatch)) { - // Convert to list, to freely jump between lines - var instructions = instr.ToList(); - - // Find last index of fragment - int index = -1; - int step = 0; - for (int i = 0; i < instructions.Count; i++) - { - if (HPatcher.IsFragment(opCodes, operands, instructions[i], ref step, fragmentName, perfectMatch)) - { - index = i; - break; - } - } - - // Jump back to begining of fragment - index -= operands.Length - 1; - - // If no fragment is found throw exception (or somehow begining of fragment is lower than 0) - if (index < 0) - { - throw new Exception($"Couldn't find fragment {fragmentName}"); - } - - // Remove fragment - instructions.RemoveRange(index, operands.Length); - - // Add fragment - instructions.InsertRange(index, newFragment); - - return instructions; + index = i; + break; } + } + + // Jump back to begining of fragment + index -= operands.Length - 1; - public static IEnumerable InjectFragmentBefore(OpCode[] opCodes, String[] operands, IEnumerable instr, IEnumerable newFragment, string fragmentName, bool perfectMatch = true) + // If no fragment is found throw exception (or somehow begining of fragment is lower than 0) + if (index < 0) + { + throw new Exception($"Couldn't find fragment {fragmentName}"); + } + + // Remove fragment + instructions.RemoveRange(index, operands.Length); + + // Add fragment + instructions.InsertRange(index, newFragment); + + return instructions; + } + + public static IEnumerable InjectFragmentBefore(OpCode[] opCodes, String[] operands, IEnumerable instr, IEnumerable newFragment, string fragmentName, bool perfectMatch = true) + { + // Convert to list, to freely jump between lines + var instructions = instr.ToList(); + + // Find last index of fragment + int index = -1; + int step = 0; + for (int i = 0; i < instructions.Count; i++) + { + if (HPatcher.IsFragment(opCodes, operands, instructions[i], ref step, fragmentName, perfectMatch)) { - // Convert to list, to freely jump between lines - var instructions = instr.ToList(); - - // Find last index of fragment - int index = -1; - int step = 0; - for (int i = 0; i < instructions.Count; i++) - { - if (HPatcher.IsFragment(opCodes, operands, instructions[i], ref step, fragmentName, perfectMatch)) - { - index = i; - break; - } - } - - // Jump back to begining of fragment - index -= operands.Length; - - // If no fragment is found throw exception (or somehow begining of fragment is lower than 0) - if (index < 0) - { - throw new Exception($"Couldn't find fragment {fragmentName}"); - } - - // Add fragment - instructions.InsertRange(index + 1, newFragment); - - return instructions; + index = i; + break; } + } - private static bool InstructionMatching(CodeInstruction instr, OpCode opCode, string operand, bool perfectMatch) - { - bool matchingOpCodes = instr.opcode == opCode; - bool noOperands = instr.operand == null || string.IsNullOrEmpty(operand); - bool matchingOperands; - if (perfectMatch) matchingOperands = instr.operand != null && instr.operand.ToString() == operand; - else matchingOperands = instr.operand != null && instr.operand.ToString().Contains(operand); + // Jump back to begining of fragment + index -= operands.Length; - return matchingOpCodes && (noOperands || matchingOperands); - } + // If no fragment is found throw exception (or somehow begining of fragment is lower than 0) + if (index < 0) + { + throw new Exception($"Couldn't find fragment {fragmentName}"); + } + + // Add fragment + instructions.InsertRange(index + 1, newFragment); + + return instructions; + } + + private static bool InstructionMatching(CodeInstruction instr, OpCode opCode, string operand, bool perfectMatch) + { + bool matchingOpCodes = instr.opcode == opCode; + bool noOperands = instr.operand == null || string.IsNullOrEmpty(operand); + bool matchingOperands; + if (perfectMatch) matchingOperands = instr.operand != null && instr.operand.ToString() == operand; + else matchingOperands = instr.operand != null && instr.operand.ToString().Contains(operand); + + return matchingOpCodes && (noOperands || matchingOperands); + } + + public static bool IsGetFactionOperand(CodeInstruction inst) + { + return inst.opcode == OpCodes.Callvirt && inst.OperandIs(getFactionMethod); } + } } diff --git a/Source/HarmonyPatches/Patches_Work/Patch_Breastfeed.cs b/Source/HarmonyPatches/Patches_Work/Patch_Breastfeed.cs index a22b16c..5443112 100644 --- a/Source/HarmonyPatches/Patches_Work/Patch_Breastfeed.cs +++ b/Source/HarmonyPatches/Patches_Work/Patch_Breastfeed.cs @@ -17,8 +17,6 @@ namespace PrisonLabor.HarmonyPatches.Patches_Work [HarmonyPatch(new[] { typeof(Pawn), typeof(Pawn) })] class Patch_BreastfeedCompatibleFactions { - static readonly MethodInfo expectedMethod = AccessTools.PropertyGetter(typeof(Pawn), nameof(Pawn.Faction)); - [HarmonyPatch("HasBreastfeedCompatibleFactions")] static bool Postfix(bool __result, Pawn mom, Pawn baby) { diff --git a/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_PrisonerFaction.cs b/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_PrisonerFaction.cs index e64273f..cac41bf 100644 --- a/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_PrisonerFaction.cs +++ b/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_PrisonerFaction.cs @@ -16,7 +16,6 @@ namespace PrisonLabor.HarmonyPatches.Patches_Work [HarmonyPatch] public class Patch_WorkGiver_PrisonerFaction { - static readonly MethodInfo expectedMethod = AccessTools.PropertyGetter(typeof(Pawn), nameof(Pawn.Faction)); static IEnumerable TargetMethods() { foreach (MethodBase mb in Assembly.GetAssembly(typeof(WorkGiver_Scanner)).GetTypes() @@ -35,7 +34,7 @@ static IEnumerable TargetMethods() } public static IEnumerable Transpiler(ILGenerator gen, MethodBase mBase, IEnumerable inst) - { + { var codes = new List(inst); for (int i = 0; i < codes.Count(); i++) { @@ -52,8 +51,8 @@ public static IEnumerable Transpiler(ILGenerator gen, MethodBas } private static bool ShouldPatch(CodeInstruction actual, CodeInstruction prev) - { - return prev.opcode == OpCodes.Ldarg_1 && actual.opcode == OpCodes.Callvirt && actual.OperandIs(expectedMethod); + { + return prev.opcode == OpCodes.Ldarg_1 && HPatcher.IsGetFactionOperand(actual); } } } diff --git a/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_Refuel.cs b/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_Refuel.cs index 068925f..20e0d05 100644 --- a/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_Refuel.cs +++ b/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_Refuel.cs @@ -5,24 +5,27 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Reflection.Emit; using System.Text; using System.Threading.Tasks; using Verse; using Verse.AI; +using static Verse.HediffCompProperties_RandomizeSeverityPhases; namespace PrisonLabor.HarmonyPatches.Patches_Work { [HarmonyPatch(typeof(RefuelWorkGiverUtility), "CanRefuel")] class Patch_WorkGiver_Refuel { - static IEnumerable Transpiler(IEnumerable instructions) + static IEnumerable Transpiler(MethodBase mBase, IEnumerable instructions) { var codes = new List(instructions); for (int i = 0; i < codes.Count(); i++) { if (i > 0 && ShouldPatch(codes[i], codes[i - 1])) { + DebugLogger.debug($"Patch_WorkGiver_Refuel patch: {mBase.ReflectedType.Assembly.GetName().Name}.{mBase.ReflectedType.Name}.{mBase.Name}"); yield return new CodeInstruction(OpCodes.Call, typeof(PrisonLaborUtility).GetMethod(nameof(PrisonLaborUtility.GetPawnFaction))); } else @@ -34,7 +37,7 @@ static IEnumerable Transpiler(IEnumerable inst private static bool ShouldPatch(CodeInstruction actual, CodeInstruction prev) { - return prev.opcode == OpCodes.Ldarg_0 && actual.opcode == OpCodes.Callvirt && actual.operand != null && actual.operand.ToString().Contains("RimWorld.Faction get_Faction()"); + return prev.opcode == OpCodes.Ldarg_0 && HPatcher.IsGetFactionOperand(actual); } static bool Postfix(bool __result, Pawn pawn, Thing t, bool forced) { diff --git a/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_Repair.cs b/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_Repair.cs index c656486..8cee861 100644 --- a/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_Repair.cs +++ b/Source/HarmonyPatches/Patches_Work/Patch_WorkGiver_Repair.cs @@ -7,6 +7,8 @@ using System.Reflection; using Verse; using Verse.AI; +using PrisonLabor.Core.Other; +using static Verse.HediffCompProperties_RandomizeSeverityPhases; namespace PrisonLabor.HarmonyPatches.Patches_Work { @@ -19,13 +21,14 @@ static IEnumerable TargetMethods() yield return typeof(RepairUtility).GetMethod(nameof(RepairUtility.PawnCanRepairNow)); } - static IEnumerable Transpiler(IEnumerable instructions) + static IEnumerable Transpiler(MethodBase mBase, IEnumerable instructions) { var codes = new List(instructions); for (int i = 0; i < codes.Count(); i++) { if (i > 0 && ShouldPatch(codes[i], codes[i - 1])) { + DebugLogger.debug($"Patch_RepairUtility patch: {mBase.ReflectedType.Assembly.GetName().Name}.{mBase.ReflectedType.Name}.{mBase.Name}"); yield return new CodeInstruction(OpCodes.Call, typeof(PrisonLaborUtility).GetMethod(nameof(PrisonLaborUtility.GetPawnFaction))); } else @@ -37,7 +40,7 @@ static IEnumerable Transpiler(IEnumerable inst private static bool ShouldPatch(CodeInstruction actual, CodeInstruction prev) { - return prev.opcode == OpCodes.Ldarg_0 && actual.opcode == OpCodes.Callvirt && actual.operand != null && actual.operand.ToString().Contains("RimWorld.Faction get_Faction()"); + return prev.opcode == OpCodes.Ldarg_0 && HPatcher.IsGetFactionOperand(actual); } } diff --git a/Source/HarmonyPatches/Patches_WorkSettings/Patch_ResetWorktableWhenRecruited.cs b/Source/HarmonyPatches/Patches_WorkSettings/Patch_ResetWorktableWhenRecruited.cs index a7d9eb2..d1a5cb1 100644 --- a/Source/HarmonyPatches/Patches_WorkSettings/Patch_ResetWorktableWhenRecruited.cs +++ b/Source/HarmonyPatches/Patches_WorkSettings/Patch_ResetWorktableWhenRecruited.cs @@ -23,7 +23,7 @@ static void Prefix(Pawn recruiter, Pawn recruitee) if (recruitee != null && recruitee.IsPrisonerOfColony && recruiter != null && recruiter.Faction == Faction.OfPlayer) { CleanPrisonersStatus.Clean(recruitee); - Log.Message($"[PrisonLabor] Removed prisoners effects from {recruitee.LabelShort}"); + DebugLogger.debug($"Removed prisoners effects from {recruitee.LabelShort}"); } } diff --git a/Source/Organizer/NewsFeed.xml b/Source/Organizer/NewsFeed.xml index a45f194..9264a7b 100644 --- a/Source/Organizer/NewsFeed.xml +++ b/Source/Organizer/NewsFeed.xml @@ -4,6 +4,16 @@ + + Prison Labor v1.4.9 + + [-] Unfortunately interrogation requires Ideology DLC + [-] Interrogation Chair should load with Ideology DLC. If already placed in your game, one time error may occur. + [-] Some fixes and code refactor + [gap] + I was hoping that interrogation can be handled without Ideology DLC. Unfortunately, too many mechanisms are checked when DLC is installed. So... sorry for incontinence ;/ + + Prison Labor v1.4.8 diff --git a/changelog.txt b/changelog.txt index d6d9bec..538bdd7 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,8 @@ Changelog: +1.4.9 +- Unfortunately interrogation requires Ideology DLC +- Interrogation Chair should load with Ideology DLC. If already placed in your game, one time error may occur. +- Some fixes and code refactor 1.4.8 - Apparel policy can be assigned to prisoners - Motivated prisoner will respect assigned apparel policy