Skip to content

Commit cfc65a5

Browse files
committed
Update internal struct definitions
1 parent 804d2bb commit cfc65a5

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

nmspy/data/types.py

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,13 @@ def StateChange(
274274
): ...
275275

276276

277+
class cGcSimulation(Structure):
278+
@function_hook(
279+
"48 89 5C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D 6C 24 ? 48 81 EC ? ? ? ? 45 33 FF"
280+
)
281+
def Construct(self, this: "ctypes._Pointer[cGcSimulation]"): ...
282+
283+
277284
@partial_struct
278285
class cGcApplication(cTkFSM):
279286
# There are tricky to get...
@@ -291,6 +298,7 @@ class Data(Structure):
291298
# These are found in cGcApplication::Data::Data
292299
mRealityManager: Annotated[cGcRealityManager, 0x60]
293300
mGameState: Annotated[cGcGameState, 0xDB0]
301+
mSimulation: Annotated[cGcSimulation, 0x3D4D00]
294302

295303
@function_hook(
296304
"48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 56 41 57 48 83 EC ? 45 33 FF 48 C7 41 ? ? ? ? ? 4C 89 39"
@@ -332,8 +340,9 @@ class cGcMarkerPoint(Structure):
332340
mNode: Annotated[basic.TkHandle, 0x104]
333341
mModelNode: Annotated[basic.TkHandle, 0x108]
334342
meBuildingClass: Annotated[
335-
int, Field(ctypes.c_uint32, 0x118)
336-
] # cGcBuildingClassification
343+
c_enum32[enums.cGcBuildingClassification],
344+
Field(c_enum32[enums.cGcBuildingClassification], 0x118),
345+
]
337346

338347
@static_function_hook("40 53 48 83 EC ? 33 C0 0F 57 C0 0F 11 01 48 8B D9")
339348
@staticmethod
@@ -540,13 +549,15 @@ class cGcPlanet(Structure):
540549
mPlanetData: Annotated[nmse.cGcPlanetData, 0x60]
541550
# TODO: This field follows directly after the above one. Once we have the cGcPlanetData struct mapped
542551
# correctly we can remove the offset to make it just be determined automatically.
543-
mPlanetGenerationInputData: Annotated[cGcPlanetGenerationInputData, 0x3A50]
552+
mPlanetGenerationInputData: Annotated[cGcPlanetGenerationInputData, 0x3A60]
544553
mRegionMap: Annotated[cGcTerrainRegionMap, 0x3B80]
545-
mNode: Annotated[basic.TkHandle, 0xD73C8]
546-
mPosition: Annotated[basic.Vector3f, 0xD73E0]
554+
mNode: Annotated[basic.TkHandle, 0xD73D8]
555+
mAtmosphereNode: Annotated[basic.TkHandle, 0xD73DC]
556+
mRingNode: Annotated[basic.TkHandle, 0xD73E4]
557+
mPosition: Annotated[basic.Vector3f, 0xD73F0]
547558

548-
mpEnvProperties: Annotated[ctypes._Pointer[GcEnvironmentProperties], 0xD9048]
549-
mpSkyProperties: Annotated[ctypes._Pointer[GcPlanetSkyProperties], 0xD9050]
559+
mpEnvProperties: Annotated[ctypes._Pointer[GcEnvironmentProperties], 0xD9058]
560+
mpSkyProperties: Annotated[ctypes._Pointer[GcPlanetSkyProperties], 0xD9060]
550561

551562
@function_hook(
552563
"48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 56 41 57 48 83 EC ? 45 33 FF 48 C7 41 ? ? ? ? ? 44 89 79"
@@ -589,6 +600,7 @@ def UpdateWeather(
589600

590601
@partial_struct
591602
class cGcSolarSystem(Structure):
603+
# These can be found in cGcSolarSystem::cGcSolarSystem
592604
mSolarSystemData: Annotated[nmse.cGcSolarSystemData, 0x0]
593605
maPlanets: Annotated[list["cGcPlanet"], Field(cGcPlanet * 6, 0x2630)]
594606

@@ -691,13 +703,6 @@ def UpdateGravityPoint(
691703
]
692704

693705

694-
class cGcSimulation(Structure):
695-
@function_hook(
696-
"48 89 5C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D 6C 24 ? 48 81 EC ? ? ? ? 45 33 FF"
697-
)
698-
def Construct(self, this: "ctypes._Pointer[cGcSimulation]"): ...
699-
700-
701706
@partial_struct
702707
class cGcPlayerEnvironment(Structure):
703708
mPlayerTM: Annotated[basic.cTkMatrix34, Field(basic.cTkMatrix34, 0x0)]

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)