Skip to content

Commit 8bf3de9

Browse files
authored
Merge pull request #12 from SpeedrunTooling/develop
1.3.0.1: Fix for DLC DA.
2 parents e32e807 + c2d9c2e commit 8bf3de9

2 files changed

Lines changed: 35 additions & 22 deletions

File tree

SRTPluginProviderRE8/GameMemoryRE8Scanner.cs

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ internal class GameMemoryRE8Scanner : IDisposable
2323

2424
// Pointer Address Variables
2525
private int pointerPropsManager;
26-
private int pointerRankManager;
26+
private int pointerRankManagerMain;
27+
private int pointerRankManagerDLC1;
2728
private int pointerInventory;
2829
private int pointerAddressEnemies;
2930

@@ -32,7 +33,8 @@ internal class GameMemoryRE8Scanner : IDisposable
3233
private MultilevelPointer PointerPlayerStatus { get; set; }
3334
private MultilevelPointer PointerPlayerHP { get; set; }
3435
private MultilevelPointer PointerPlayerPosition { get; set; }
35-
private MultilevelPointer PointerRankManager { get; set; }
36+
private MultilevelPointer PointerRankManagerMain { get; set; }
37+
private MultilevelPointer PointerRankManagerDLC1 { get; set; }
3638

3739
// Enemy Pointers
3840
private MultilevelPointer PointerEnemyEntryList { get; set; }
@@ -161,7 +163,8 @@ private void SelectPointerAddresses(int pid)
161163
{
162164
pointerInventory = 0x0C9B7810; // app_InventoryManager *
163165
pointerPropsManager = 0x0C9C4960; // app_PropsManager *
164-
pointerRankManager = 0x0C9B7958; // app_RankManager *
166+
pointerRankManagerMain = 0x0C9B7958; // app_RankManager *
167+
pointerRankManagerDLC1 = 0x0C9B7648;
165168
pointerAddressEnemies = 0x0C9FC1C0; // app_MoveManager *
166169
break;
167170
}
@@ -201,11 +204,16 @@ private void SelectPointerAddresses(int pid)
201204
0x50
202205
);
203206

204-
PointerRankManager = new MultilevelPointer(
207+
PointerRankManagerMain = new MultilevelPointer(
205208
memoryAccess,
206-
IntPtr.Add(BaseAddress, pointerRankManager)
209+
IntPtr.Add(BaseAddress, pointerRankManagerMain)
207210
);
208211

212+
PointerRankManagerDLC1 = new MultilevelPointer(
213+
memoryAccess,
214+
IntPtr.Add(BaseAddress, pointerRankManagerDLC1)
215+
);
216+
209217
PointerActiveInventory = new MultilevelPointer(
210218
memoryAccess,
211219
IntPtr.Add(BaseAddress, pointerInventory),
@@ -253,7 +261,7 @@ private void SelectPointerAddresses(int pid)
253261
{
254262
pointerInventory = 0x0A06B7F0 + 0x10F0; // app_InventoryManager
255263
pointerPropsManager = 0x0A06B900 + 0x10F0; // app_PropsManager
256-
pointerRankManager = 0x0A06B920 + 0x10F0; // app_RankManager
264+
pointerRankManagerMain = 0x0A06B920 + 0x10F0; // app_RankManager
257265
pointerAddressEnemies = 0x0A06B880 + 0x10F0; // app_MoveManager
258266
break;
259267
}
@@ -264,53 +272,53 @@ private void SelectPointerAddresses(int pid)
264272
{
265273
pointerInventory = 0x0A06B7F0; // app_InventoryManager
266274
pointerPropsManager = 0x0A06B900; // app_PropsManager
267-
pointerRankManager = 0x0A06B920; // app_RankManager
275+
pointerRankManagerMain = 0x0A06B920; // app_RankManager
268276
pointerAddressEnemies = 0x0A06B880; // app_MoveManager
269277
break;
270278
}
271279
case GameVersion.RE8_CEROD_20210810_3:
272280
{
273281
pointerInventory = 0x0A06B7F0 + 0x2000;
274282
pointerPropsManager = 0x0A06B900 + 0x2000;
275-
pointerRankManager = 0x0A06B920 + 0x2000;
283+
pointerRankManagerMain = 0x0A06B920 + 0x2000;
276284
pointerAddressEnemies = 0x0A06B880 + 0x2000;
277285
break;
278286
}
279287
case GameVersion.RE8_CEROZ_20210810_3:
280288
{
281289
pointerInventory = 0x0A06B7F0 + 0x1000;
282290
pointerPropsManager = 0x0A06B900 + 0x1000;
283-
pointerRankManager = 0x0A06B920 + 0x1000;
291+
pointerRankManagerMain = 0x0A06B920 + 0x1000;
284292
pointerAddressEnemies = 0x0A06B880 + 0x1000;
285293
break;
286294
}
287295
case GameVersion.RE8_WW_20210719_2:
288296
{
289-
pointerRankManager = 0x0A05CFF8;
297+
pointerRankManagerMain = 0x0A05CFF8;
290298
pointerInventory = 0x0A06A5B8;
291299
pointerAddressEnemies = 0x0A0698B0;
292300
pointerPropsManager = 0x0A042F88;
293301
break;
294302
}
295303
case GameVersion.RE8_CEROD_20210719_2:
296304
{
297-
pointerRankManager = 0x0A05CFF8 + 0x2000;
305+
pointerRankManagerMain = 0x0A05CFF8 + 0x2000;
298306
pointerInventory = 0x0A06A5B8 + 0x2000;
299307
pointerAddressEnemies = 0x0A0698B0 + 0x2000;
300308
pointerPropsManager = 0x0A042F88 + 0x2000;
301309
break;
302310
}
303311
case GameVersion.RE8_CEROZ_20210719_2:
304312
{
305-
pointerRankManager = 0x0A05CFF8 + 0x1000;
313+
pointerRankManagerMain = 0x0A05CFF8 + 0x1000;
306314
pointerInventory = 0x0A06A5B8 + 0x1000;
307315
pointerAddressEnemies = 0x0A0698B0 + 0x1000;
308316
pointerPropsManager = 0x0A042F88 + 0x1000;
309317
break;
310318
}
311319
case GameVersion.RE8_PROMO_01_20210426_1:
312320
{
313-
pointerRankManager = 0x0A1A50C0 + 0x1030;
321+
pointerRankManagerMain = 0x0A1A50C0 + 0x1030;
314322
pointerInventory = 0x0A1B29F0 + 0x1030;
315323
pointerAddressEnemies = 0x0A1B1D00 + 0x1030;
316324
pointerPropsManager = 0x0A18D990 + 0x1030;
@@ -320,23 +328,23 @@ private void SelectPointerAddresses(int pid)
320328
case GameVersion.RE8_UNK_20210710_1:
321329
case GameVersion.RE8_UNK_20210714_1:
322330
{
323-
pointerRankManager = 0x0A1A50C0;
331+
pointerRankManagerMain = 0x0A1A50C0;
324332
pointerInventory = 0x0A1B29F0;
325333
pointerAddressEnemies = 0x0A1B1D00;
326334
pointerPropsManager = 0x0A18D990;
327335
break;
328336
}
329337
case GameVersion.RE8_CEROD_20210506_1:
330338
{
331-
pointerRankManager = 0x0A1A50C0 + 0x2000;
339+
pointerRankManagerMain = 0x0A1A50C0 + 0x2000;
332340
pointerInventory = 0x0A1B29F0 + 0x2000;
333341
pointerAddressEnemies = 0x0A1B1D00 + 0x2000;
334342
pointerPropsManager = 0x0A18D990 + 0x2000;
335343
break;
336344
}
337345
case GameVersion.RE8_CEROZ_20210508_1:
338346
{
339-
pointerRankManager = 0x0A1A50C0 + 0x1000;
347+
pointerRankManagerMain = 0x0A1A50C0 + 0x1000;
340348
pointerInventory = 0x0A1B1C70 + 0x1000;
341349
pointerAddressEnemies = 0x0A1B1D00 + 0x1000;
342350
pointerPropsManager = 0x0A18D990 + 0x1000;
@@ -378,9 +386,9 @@ private void SelectPointerAddresses(int pid)
378386
0x50
379387
);
380388

381-
PointerRankManager = new MultilevelPointer(
389+
PointerRankManagerMain = new MultilevelPointer(
382390
memoryAccess,
383-
IntPtr.Add(BaseAddress, pointerRankManager)
391+
IntPtr.Add(BaseAddress, pointerRankManagerMain)
384392
);
385393

386394
PointerActiveInventory = new MultilevelPointer(
@@ -493,7 +501,8 @@ internal void UpdatePointers()
493501
PointerPlayerHP.UpdatePointers();
494502
PointerPlayerPosition.UpdatePointers();
495503

496-
PointerRankManager.UpdatePointers();
504+
PointerRankManagerMain.UpdatePointers();
505+
PointerRankManagerDLC1.UpdatePointers();
497506

498507
PointerEnemyEntryList.UpdatePointers();
499508
GenerateEnemyEntries();
@@ -514,7 +523,11 @@ internal unsafe IGameMemoryRE8 Refresh()
514523
gameMemoryValues._playerPosition = PointerPlayerPosition.Deref<GamePlayerPosition>(0x180);
515524

516525
// DA
517-
GameRank gameRank = PointerRankManager.Deref<GameRank>(0x70);
526+
GameRank gameRank;
527+
if (PointerRankManagerDLC1.Address != IntPtr.Zero)
528+
gameRank = PointerRankManagerDLC1.Deref<GameRank>(0x70);
529+
else
530+
gameRank = PointerRankManagerMain.Deref<GameRank>(0x70);
518531
gameMemoryValues._rankScore = gameRank.Score;
519532
gameMemoryValues._rank = gameRank.Rank;
520533

SRTPluginProviderRE8/SRTPluginProviderRE8.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
<Copyright>Copyright © 2020 Christopher Couture / Travis J. Gutjahr</Copyright>
1111
<Product>Resident Evil 8 (2021) Memory Provider Plugin</Product>
1212
<Description>A provider plugin for the SRT Host to provide memory values to other plugins.</Description>
13-
<Version>1.3.0.0</Version>
14-
<FileVersion>1.3.0.0</FileVersion>
13+
<Version>1.3.0.1</Version>
14+
<FileVersion>1.3.0.1</FileVersion>
1515
<AssemblyVersion>3.0.0.0</AssemblyVersion>
1616
<DebugType>embedded</DebugType>
1717
<!-- netcoreapp3.1 had to be hardcoded here because this project reports $(TargetFramework) as netstandard2.0 (rightfully so) and I am not sure how this project's csproj can auto-detect another project's framework version to copy it to the appropriate folder so we're just... hardcoding this. -->

0 commit comments

Comments
 (0)