Skip to content

Commit cf0c1b8

Browse files
committed
Add support for identifying Sims install type and path
Expanded `SimsHooked` to include `SimsPath` and `SimsInstallType` properties. Updated process module scanning to determine the install type (Steam or EA) and executable path. This allows for better handling of specific Sims installation
1 parent 4dca187 commit cf0c1b8

1 file changed

Lines changed: 30 additions & 2 deletions

File tree

Sims1LegacyHacks/SimsProcess.cs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,18 @@
1010

1111
namespace Sims1LegacyHacks;
1212

13-
public class SimsHooked(Process simsProcess, SafeFileHandle simsHandle)
13+
public class SimsHooked(
14+
Process simsProcess,
15+
SafeFileHandle simsHandle,
16+
string? simsPath,
17+
SimsInstallType? simsInstallType
18+
)
1419
{
1520
public nint BaseAddress { get; } = simsProcess.MainModule!.BaseAddress;
1621
public SafeFileHandle SimsHandle { get; } = simsHandle;
1722
public Process SimsProcess { get; } = simsProcess;
23+
public string? SimsPath { get; set; } = simsPath;
24+
public SimsInstallType? SimsInstallType { get; set; } = simsInstallType;
1825
}
1926

2027
public class SimsProcessSettings
@@ -118,6 +125,25 @@ public void Start()
118125
simsProc.EnableRaisingEvents = true;
119126
simsProc.Exited += SimsProcOnExited;
120127

128+
string? simsPathForEvt = null;
129+
SimsInstallType? simsInstallTypeForEvt = null;
130+
foreach (ProcessModule module in simsProc.Modules)
131+
{
132+
if (module.ModuleName == "Sims.exe")
133+
{
134+
simsPathForEvt = module.FileName;
135+
}
136+
137+
simsInstallTypeForEvt = module.ModuleName switch
138+
{
139+
"steam_api.dll" => SimsInstallType.Steam,
140+
"Activation.dll" => SimsInstallType.Ea,
141+
_ => simsInstallTypeForEvt,
142+
};
143+
144+
// logger.LogInformation($"{module.ModuleName} {module.FileName}");
145+
}
146+
121147
LogAttemptToOpenSimsProcess(_logger, simsProc.Id);
122148
var simsHandle = PInvoke.OpenProcess_SafeHandle(
123149
PROCESS_ACCESS_RIGHTS.PROCESS_ALL_ACCESS,
@@ -131,7 +157,9 @@ public void Start()
131157

132158
LogHandleSuccess(_logger);
133159
LogStopMonitoringForSimsProcess(_logger);
134-
_simsHookedSubject.OnNext(new SimsHooked(simsProc, simsHandle));
160+
_simsHookedSubject.OnNext(
161+
new SimsHooked(simsProc, simsHandle, simsPathForEvt, simsInstallTypeForEvt)
162+
);
135163
});
136164
_simsThread.Start();
137165
}

0 commit comments

Comments
 (0)