@@ -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
278285class 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
591602class 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
702707class cGcPlayerEnvironment (Structure ):
703708 mPlayerTM : Annotated [basic .cTkMatrix34 , Field (basic .cTkMatrix34 , 0x0 )]
0 commit comments